@optimizely-opal/opal-tool-ocp-sdk 0.0.0-dev.1
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 +437 -0
- package/dist/decorator/Decorator.d.ts +46 -0
- package/dist/decorator/Decorator.d.ts.map +1 -0
- package/dist/decorator/Decorator.js +31 -0
- package/dist/decorator/Decorator.js.map +1 -0
- package/dist/decorator/Decorator.test.d.ts +2 -0
- package/dist/decorator/Decorator.test.d.ts.map +1 -0
- package/dist/decorator/Decorator.test.js +418 -0
- package/dist/decorator/Decorator.test.js.map +1 -0
- package/dist/function/ToolFunction.d.ts +15 -0
- package/dist/function/ToolFunction.d.ts.map +1 -0
- package/dist/function/ToolFunction.js +25 -0
- package/dist/function/ToolFunction.js.map +1 -0
- package/dist/function/ToolFunction.test.d.ts +2 -0
- package/dist/function/ToolFunction.test.d.ts.map +1 -0
- package/dist/function/ToolFunction.test.js +189 -0
- package/dist/function/ToolFunction.test.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/service/Service.d.ts +78 -0
- package/dist/service/Service.d.ts.map +1 -0
- package/dist/service/Service.js +204 -0
- package/dist/service/Service.js.map +1 -0
- package/dist/service/Service.test.d.ts +2 -0
- package/dist/service/Service.test.d.ts.map +1 -0
- package/dist/service/Service.test.js +341 -0
- package/dist/service/Service.test.js.map +1 -0
- package/dist/types/Models.d.ts +126 -0
- package/dist/types/Models.d.ts.map +1 -0
- package/dist/types/Models.js +181 -0
- package/dist/types/Models.js.map +1 -0
- package/package.json +58 -0
- package/src/decorator/Decorator.test.ts +523 -0
- package/src/decorator/Decorator.ts +83 -0
- package/src/function/ToolFunction.test.ts +224 -0
- package/src/function/ToolFunction.ts +25 -0
- package/src/index.ts +4 -0
- package/src/service/Service.test.ts +550 -0
- package/src/service/Service.ts +182 -0
- package/src/types/Models.ts +163 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Service_1 = require("./Service");
|
|
4
|
+
const Models_1 = require("../types/Models");
|
|
5
|
+
const app_sdk_1 = require("@zaiusinc/app-sdk");
|
|
6
|
+
// Mock the logger
|
|
7
|
+
jest.mock('@zaiusinc/app-sdk', () => ({
|
|
8
|
+
logger: {
|
|
9
|
+
error: jest.fn()
|
|
10
|
+
},
|
|
11
|
+
Response: jest.fn().mockImplementation((status, data) => ({
|
|
12
|
+
status,
|
|
13
|
+
data,
|
|
14
|
+
bodyJSON: data,
|
|
15
|
+
bodyAsU8Array: new Uint8Array()
|
|
16
|
+
}))
|
|
17
|
+
}));
|
|
18
|
+
describe('ToolsService', () => {
|
|
19
|
+
let mockTool;
|
|
20
|
+
let mockInteraction;
|
|
21
|
+
beforeEach(() => {
|
|
22
|
+
// Clear registered functions and interactions before each test
|
|
23
|
+
Service_1.toolsService.functions = new Map();
|
|
24
|
+
Service_1.toolsService.interactions = new Map();
|
|
25
|
+
// Reset all mocks
|
|
26
|
+
jest.clearAllMocks();
|
|
27
|
+
// Create mock tool handler
|
|
28
|
+
const mockToolHandler = jest.fn().mockResolvedValue({ result: 'success' });
|
|
29
|
+
// Create mock interaction handler
|
|
30
|
+
const mockInteractionHandler = jest.fn().mockResolvedValue({ message: 'interaction success' });
|
|
31
|
+
// Create mock tool
|
|
32
|
+
mockTool = new Service_1.Tool('testTool', 'Test tool description', [new Models_1.Parameter('param1', Models_1.ParameterType.String, 'Test parameter', true)], '/test-tool', mockToolHandler);
|
|
33
|
+
// Create mock interaction
|
|
34
|
+
mockInteraction = new Service_1.Interaction('testInteraction', '/test-interaction', mockInteractionHandler);
|
|
35
|
+
});
|
|
36
|
+
const createMockRequest = (overrides = {}) => {
|
|
37
|
+
// Create a mock headers object with get method
|
|
38
|
+
const createHeadersMap = (headersObj = {}) => {
|
|
39
|
+
const map = new Map();
|
|
40
|
+
Object.entries(headersObj).forEach(([key, value]) => {
|
|
41
|
+
map.set(key, value);
|
|
42
|
+
});
|
|
43
|
+
return map;
|
|
44
|
+
};
|
|
45
|
+
const baseRequest = {
|
|
46
|
+
path: '/test-tool',
|
|
47
|
+
method: 'POST',
|
|
48
|
+
bodyJSON: { parameters: { param1: 'test-value' } },
|
|
49
|
+
body: JSON.stringify({ parameters: { param1: 'test-value' } }),
|
|
50
|
+
bodyData: Buffer.from(''),
|
|
51
|
+
headers: createHeadersMap(),
|
|
52
|
+
params: {},
|
|
53
|
+
contentType: 'application/json'
|
|
54
|
+
};
|
|
55
|
+
return {
|
|
56
|
+
...baseRequest,
|
|
57
|
+
...overrides,
|
|
58
|
+
headers: createHeadersMap(overrides.headers)
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
describe('processRequest', () => {
|
|
62
|
+
describe('discovery endpoint', () => {
|
|
63
|
+
it('should return registered functions for discovery endpoint', async () => {
|
|
64
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
65
|
+
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
66
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
67
|
+
expect(response.status).toBe(200);
|
|
68
|
+
expect(response).toHaveProperty('bodyJSON');
|
|
69
|
+
expect(response.bodyAsU8Array).toBeDefined();
|
|
70
|
+
// Test the actual response structure
|
|
71
|
+
const responseData = response.bodyJSON;
|
|
72
|
+
expect(responseData).toHaveProperty('functions');
|
|
73
|
+
expect(Array.isArray(responseData.functions)).toBe(true);
|
|
74
|
+
expect(responseData.functions).toHaveLength(1);
|
|
75
|
+
// Test the registered function structure
|
|
76
|
+
const registeredFunction = responseData.functions[0];
|
|
77
|
+
expect(registeredFunction).toEqual({
|
|
78
|
+
name: mockTool.name,
|
|
79
|
+
description: mockTool.description,
|
|
80
|
+
parameters: mockTool.parameters.map((p) => p.toJSON()),
|
|
81
|
+
endpoint: mockTool.endpoint,
|
|
82
|
+
http_method: 'POST'
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
it('should return empty functions array when no tools are registered', async () => {
|
|
86
|
+
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
87
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
88
|
+
expect(response.status).toBe(200);
|
|
89
|
+
expect(response.bodyAsU8Array).toBeDefined();
|
|
90
|
+
// Test the actual response structure
|
|
91
|
+
const responseData = response.bodyJSON;
|
|
92
|
+
expect(responseData).toHaveProperty('functions');
|
|
93
|
+
expect(Array.isArray(responseData.functions)).toBe(true);
|
|
94
|
+
expect(responseData.functions).toHaveLength(0);
|
|
95
|
+
});
|
|
96
|
+
it('should return multiple registered functions in discovery endpoint', async () => {
|
|
97
|
+
// Register first tool
|
|
98
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
99
|
+
// Register second tool with auth requirements
|
|
100
|
+
const authRequirements = [new Models_1.AuthRequirement('oauth2', 'calendar', true)];
|
|
101
|
+
Service_1.toolsService.registerTool('second_tool', 'Second test tool', jest.fn(), [], '/second-tool', authRequirements);
|
|
102
|
+
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
103
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
104
|
+
expect(response.status).toBe(200);
|
|
105
|
+
// Test the actual response structure
|
|
106
|
+
const responseData = response.bodyJSON;
|
|
107
|
+
expect(responseData).toHaveProperty('functions');
|
|
108
|
+
expect(Array.isArray(responseData.functions)).toBe(true);
|
|
109
|
+
expect(responseData.functions).toHaveLength(2);
|
|
110
|
+
// Find and test both functions
|
|
111
|
+
const firstFunction = responseData.functions.find((f) => f.name === mockTool.name);
|
|
112
|
+
const secondFunction = responseData.functions.find((f) => f.name === 'second_tool');
|
|
113
|
+
expect(firstFunction).toEqual({
|
|
114
|
+
name: mockTool.name,
|
|
115
|
+
description: mockTool.description,
|
|
116
|
+
parameters: mockTool.parameters.map((p) => p.toJSON()),
|
|
117
|
+
endpoint: mockTool.endpoint,
|
|
118
|
+
http_method: 'POST'
|
|
119
|
+
});
|
|
120
|
+
expect(secondFunction).toEqual({
|
|
121
|
+
name: 'second_tool',
|
|
122
|
+
description: 'Second test tool',
|
|
123
|
+
parameters: [],
|
|
124
|
+
endpoint: '/second-tool',
|
|
125
|
+
http_method: 'POST',
|
|
126
|
+
auth_requirements: authRequirements.map((auth) => auth.toJSON())
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
describe('tool execution', () => {
|
|
131
|
+
beforeEach(() => {
|
|
132
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
133
|
+
});
|
|
134
|
+
it('should execute tool successfully with parameters', async () => {
|
|
135
|
+
const mockRequest = createMockRequest();
|
|
136
|
+
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
137
|
+
expect(response.status).toBe(200);
|
|
138
|
+
expect(mockTool.handler).toHaveBeenCalledWith({ param1: 'test-value' }, undefined);
|
|
139
|
+
});
|
|
140
|
+
it('should execute tool with OptiID auth data when provided', async () => {
|
|
141
|
+
const authData = new Models_1.OptiIdAuthData('optiId', new Models_1.OptiIdAuthDataCredentials('customer123', 'instance123', 'token123', 'sku123'));
|
|
142
|
+
const requestWithAuth = createMockRequest({
|
|
143
|
+
bodyJSON: {
|
|
144
|
+
parameters: { param1: 'test-value' },
|
|
145
|
+
auth: authData
|
|
146
|
+
},
|
|
147
|
+
body: JSON.stringify({
|
|
148
|
+
parameters: { param1: 'test-value' },
|
|
149
|
+
auth: authData
|
|
150
|
+
})
|
|
151
|
+
});
|
|
152
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuth);
|
|
153
|
+
expect(response.status).toBe(200);
|
|
154
|
+
expect(mockTool.handler).toHaveBeenCalledWith({ param1: 'test-value' }, authData);
|
|
155
|
+
});
|
|
156
|
+
it('should handle request body without parameters wrapper', async () => {
|
|
157
|
+
const requestWithoutWrapper = createMockRequest({
|
|
158
|
+
bodyJSON: { param1: 'test-value' },
|
|
159
|
+
body: JSON.stringify({ param1: 'test-value' })
|
|
160
|
+
});
|
|
161
|
+
const response = await Service_1.toolsService.processRequest(requestWithoutWrapper);
|
|
162
|
+
expect(response.status).toBe(200);
|
|
163
|
+
expect(mockTool.handler).toHaveBeenCalledWith({ param1: 'test-value' }, undefined);
|
|
164
|
+
});
|
|
165
|
+
it('should return 500 error when tool handler throws an error', async () => {
|
|
166
|
+
const errorMessage = 'Tool execution failed';
|
|
167
|
+
jest.mocked(mockTool.handler).mockRejectedValueOnce(new Error(errorMessage));
|
|
168
|
+
const mockRequest = createMockRequest();
|
|
169
|
+
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
170
|
+
expect(response.status).toBe(500);
|
|
171
|
+
expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockTool.name}:`, expect.any(Error));
|
|
172
|
+
});
|
|
173
|
+
it('should return 500 error with generic message when error has no message', async () => {
|
|
174
|
+
jest.mocked(mockTool.handler).mockRejectedValueOnce({});
|
|
175
|
+
const mockRequest = createMockRequest();
|
|
176
|
+
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
177
|
+
expect(response.status).toBe(500);
|
|
178
|
+
});
|
|
179
|
+
});
|
|
180
|
+
describe('interaction execution', () => {
|
|
181
|
+
beforeEach(() => {
|
|
182
|
+
Service_1.toolsService.registerInteraction(mockInteraction.name, mockInteraction.handler, mockInteraction.endpoint);
|
|
183
|
+
});
|
|
184
|
+
it('should execute interaction successfully with data', async () => {
|
|
185
|
+
const interactionRequest = createMockRequest({
|
|
186
|
+
path: '/test-interaction',
|
|
187
|
+
bodyJSON: { data: { param1: 'test-value' } },
|
|
188
|
+
body: JSON.stringify({ data: { param1: 'test-value' } })
|
|
189
|
+
});
|
|
190
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
191
|
+
expect(response.status).toBe(200);
|
|
192
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith({ param1: 'test-value' }, undefined);
|
|
193
|
+
});
|
|
194
|
+
it('should handle interaction request body without data wrapper', async () => {
|
|
195
|
+
const interactionRequest = createMockRequest({
|
|
196
|
+
path: '/test-interaction',
|
|
197
|
+
bodyJSON: { param1: 'test-value' },
|
|
198
|
+
body: JSON.stringify({ param1: 'test-value' })
|
|
199
|
+
});
|
|
200
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
201
|
+
expect(response.status).toBe(200);
|
|
202
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith({ param1: 'test-value' }, undefined);
|
|
203
|
+
});
|
|
204
|
+
it('should execute interaction with OptiID auth data when provided', async () => {
|
|
205
|
+
const authData = new Models_1.OptiIdAuthData('optiId', new Models_1.OptiIdAuthDataCredentials('customer123', 'instance123', 'token123', 'sku123'));
|
|
206
|
+
const interactionRequest = createMockRequest({
|
|
207
|
+
path: '/test-interaction',
|
|
208
|
+
bodyJSON: {
|
|
209
|
+
data: { param1: 'test-value' },
|
|
210
|
+
auth: authData
|
|
211
|
+
},
|
|
212
|
+
body: JSON.stringify({
|
|
213
|
+
data: { param1: 'test-value' },
|
|
214
|
+
auth: authData
|
|
215
|
+
})
|
|
216
|
+
});
|
|
217
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
218
|
+
expect(response.status).toBe(200);
|
|
219
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith({ param1: 'test-value' }, authData);
|
|
220
|
+
});
|
|
221
|
+
it('should handle interaction request without data wrapper but with auth data', async () => {
|
|
222
|
+
const authData = new Models_1.OptiIdAuthData('optiId', new Models_1.OptiIdAuthDataCredentials('customer123', 'instance123', 'token123', 'sku123'));
|
|
223
|
+
const interactionRequest = createMockRequest({
|
|
224
|
+
path: '/test-interaction',
|
|
225
|
+
bodyJSON: {
|
|
226
|
+
param1: 'test-value',
|
|
227
|
+
auth: authData
|
|
228
|
+
},
|
|
229
|
+
body: JSON.stringify({
|
|
230
|
+
param1: 'test-value',
|
|
231
|
+
auth: authData
|
|
232
|
+
})
|
|
233
|
+
});
|
|
234
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
235
|
+
expect(response.status).toBe(200);
|
|
236
|
+
expect(mockInteraction.handler).toHaveBeenCalledWith({
|
|
237
|
+
param1: 'test-value',
|
|
238
|
+
auth: authData
|
|
239
|
+
}, authData);
|
|
240
|
+
});
|
|
241
|
+
it('should return 500 error when interaction handler throws an error', async () => {
|
|
242
|
+
const errorMessage = 'Interaction execution failed';
|
|
243
|
+
jest.mocked(mockInteraction.handler).mockRejectedValueOnce(new Error(errorMessage));
|
|
244
|
+
const interactionRequest = createMockRequest({
|
|
245
|
+
path: '/test-interaction',
|
|
246
|
+
bodyJSON: { data: { param1: 'test-value' } }
|
|
247
|
+
});
|
|
248
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
249
|
+
expect(response.status).toBe(500);
|
|
250
|
+
expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockInteraction.name}:`, expect.any(Error));
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
describe('error cases', () => {
|
|
254
|
+
it('should return 404 when no matching tool or interaction is found', async () => {
|
|
255
|
+
const unknownRequest = createMockRequest({ path: '/unknown-endpoint' });
|
|
256
|
+
const response = await Service_1.toolsService.processRequest(unknownRequest);
|
|
257
|
+
expect(response.status).toBe(404);
|
|
258
|
+
});
|
|
259
|
+
it('should handle tool with OptiID auth requirements', async () => {
|
|
260
|
+
const authRequirements = [
|
|
261
|
+
new Models_1.AuthRequirement('OptiID', 'calendar', true)
|
|
262
|
+
];
|
|
263
|
+
Service_1.toolsService.registerTool('optiIdAuthTool', 'Tool with OptiID auth', mockTool.handler, mockTool.parameters, '/optid-auth-tool', authRequirements);
|
|
264
|
+
const authRequest = createMockRequest({
|
|
265
|
+
path: '/optid-auth-tool'
|
|
266
|
+
});
|
|
267
|
+
const response = await Service_1.toolsService.processRequest(authRequest);
|
|
268
|
+
expect(response.status).toBe(200);
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
describe('edge cases', () => {
|
|
272
|
+
it('should handle request with null bodyJSON', async () => {
|
|
273
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
274
|
+
const requestWithNullBody = createMockRequest({
|
|
275
|
+
bodyJSON: null,
|
|
276
|
+
body: null
|
|
277
|
+
});
|
|
278
|
+
const response = await Service_1.toolsService.processRequest(requestWithNullBody);
|
|
279
|
+
expect(response.status).toBe(200);
|
|
280
|
+
expect(mockTool.handler).toHaveBeenCalledWith(null, undefined);
|
|
281
|
+
});
|
|
282
|
+
it('should handle request with undefined bodyJSON', async () => {
|
|
283
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
284
|
+
const requestWithUndefinedBody = createMockRequest({
|
|
285
|
+
bodyJSON: undefined,
|
|
286
|
+
body: undefined
|
|
287
|
+
});
|
|
288
|
+
const response = await Service_1.toolsService.processRequest(requestWithUndefinedBody);
|
|
289
|
+
expect(response.status).toBe(200);
|
|
290
|
+
expect(mockTool.handler).toHaveBeenCalledWith(undefined, undefined);
|
|
291
|
+
});
|
|
292
|
+
it('should extract auth data from bodyJSON when body exists', async () => {
|
|
293
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
294
|
+
const authData = new Models_1.OptiIdAuthData('optiId', new Models_1.OptiIdAuthDataCredentials('customer123', 'instance123', 'token123', 'sku123'));
|
|
295
|
+
const requestWithAuth = createMockRequest({
|
|
296
|
+
bodyJSON: {
|
|
297
|
+
parameters: { param1: 'test-value' },
|
|
298
|
+
auth: authData
|
|
299
|
+
},
|
|
300
|
+
body: JSON.stringify({
|
|
301
|
+
parameters: { param1: 'test-value' },
|
|
302
|
+
auth: authData
|
|
303
|
+
})
|
|
304
|
+
});
|
|
305
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuth);
|
|
306
|
+
expect(response.status).toBe(200);
|
|
307
|
+
expect(mockTool.handler).toHaveBeenCalledWith({ param1: 'test-value' }, authData);
|
|
308
|
+
});
|
|
309
|
+
it('should handle missing auth data gracefully', async () => {
|
|
310
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
311
|
+
const requestWithoutAuth = createMockRequest({
|
|
312
|
+
bodyJSON: {
|
|
313
|
+
parameters: { param1: 'test-value' }
|
|
314
|
+
// No auth property
|
|
315
|
+
},
|
|
316
|
+
body: JSON.stringify({
|
|
317
|
+
parameters: { param1: 'test-value' }
|
|
318
|
+
})
|
|
319
|
+
});
|
|
320
|
+
const response = await Service_1.toolsService.processRequest(requestWithoutAuth);
|
|
321
|
+
expect(response.status).toBe(200);
|
|
322
|
+
expect(mockTool.handler).toHaveBeenCalledWith({ param1: 'test-value' }, undefined);
|
|
323
|
+
});
|
|
324
|
+
it('should handle auth extraction when body is falsy but bodyJSON has auth', async () => {
|
|
325
|
+
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
326
|
+
const authData = new Models_1.OptiIdAuthData('optiId', new Models_1.OptiIdAuthDataCredentials('customer123', 'instance123', 'token123', 'sku123'));
|
|
327
|
+
const requestWithAuthButNoBody = createMockRequest({
|
|
328
|
+
bodyJSON: {
|
|
329
|
+
parameters: { param1: 'test-value' },
|
|
330
|
+
auth: authData
|
|
331
|
+
},
|
|
332
|
+
body: ''
|
|
333
|
+
});
|
|
334
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuthButNoBody);
|
|
335
|
+
expect(response.status).toBe(200);
|
|
336
|
+
expect(mockTool.handler).toHaveBeenCalledWith({ param1: 'test-value' }, authData);
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
//# sourceMappingURL=Service.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Service.test.js","sourceRoot":"","sources":["../../src/service/Service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types of parameters supported by Opal tools
|
|
3
|
+
*/
|
|
4
|
+
export declare enum ParameterType {
|
|
5
|
+
String = "string",
|
|
6
|
+
Integer = "integer",
|
|
7
|
+
Number = "number",
|
|
8
|
+
Boolean = "boolean",
|
|
9
|
+
List = "list",
|
|
10
|
+
Dictionary = "object"
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Parameter definition for an Opal tool
|
|
14
|
+
*/
|
|
15
|
+
export declare class Parameter {
|
|
16
|
+
name: string;
|
|
17
|
+
type: ParameterType;
|
|
18
|
+
description: string;
|
|
19
|
+
required: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Create a new parameter definition
|
|
22
|
+
* @param name Parameter name
|
|
23
|
+
* @param type Parameter type
|
|
24
|
+
* @param description Parameter description
|
|
25
|
+
* @param required Whether the parameter is required
|
|
26
|
+
*/
|
|
27
|
+
constructor(name: string, type: ParameterType, description: string, required: boolean);
|
|
28
|
+
/**
|
|
29
|
+
* Convert to JSON for the discovery endpoint
|
|
30
|
+
*/
|
|
31
|
+
toJSON(): {
|
|
32
|
+
name: string;
|
|
33
|
+
type: ParameterType;
|
|
34
|
+
description: string;
|
|
35
|
+
required: boolean;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Credentials structure
|
|
40
|
+
*/
|
|
41
|
+
export declare class OptiIdAuthDataCredentials {
|
|
42
|
+
customerId: string;
|
|
43
|
+
instanceId: string;
|
|
44
|
+
accessToken: string;
|
|
45
|
+
productSku: string;
|
|
46
|
+
constructor(customerId: string, instanceId: string, accessToken: string, productSku: string);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Auth data structure
|
|
50
|
+
*/
|
|
51
|
+
export declare class OptiIdAuthData {
|
|
52
|
+
provider: string;
|
|
53
|
+
credentials: OptiIdAuthDataCredentials;
|
|
54
|
+
constructor(provider: string, credentials: OptiIdAuthDataCredentials);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Authentication requirements for an Opal tool
|
|
58
|
+
*/
|
|
59
|
+
export declare class AuthRequirement {
|
|
60
|
+
provider: string;
|
|
61
|
+
scopeBundle: string;
|
|
62
|
+
required: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Create a new authentication requirement
|
|
65
|
+
* @param provider Auth provider (e.g., "optiId")
|
|
66
|
+
* @param scopeBundle Scope bundle (e.g., "calendar", "drive")
|
|
67
|
+
* @param required Whether authentication is required
|
|
68
|
+
*/
|
|
69
|
+
constructor(provider: string, scopeBundle: string, required?: boolean);
|
|
70
|
+
/**
|
|
71
|
+
* Convert to JSON for the discovery endpoint
|
|
72
|
+
*/
|
|
73
|
+
toJSON(): {
|
|
74
|
+
provider: string;
|
|
75
|
+
scope_bundle: string;
|
|
76
|
+
required: boolean;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
export declare class IslandField {
|
|
80
|
+
name: string;
|
|
81
|
+
label: string;
|
|
82
|
+
type: 'string' | 'boolean' | 'json';
|
|
83
|
+
value: string | boolean | object;
|
|
84
|
+
hidden: boolean;
|
|
85
|
+
options: string[];
|
|
86
|
+
constructor(name: string, label: string, type: 'string' | 'boolean' | 'json', value?: string | boolean | object, hidden?: boolean, options?: string[]);
|
|
87
|
+
toJSON(): {
|
|
88
|
+
name: string;
|
|
89
|
+
label: string;
|
|
90
|
+
type: "string" | "boolean" | "json";
|
|
91
|
+
hidden: boolean;
|
|
92
|
+
options: string[];
|
|
93
|
+
value: string | boolean | object;
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export declare class IslandAction {
|
|
97
|
+
name: string;
|
|
98
|
+
label: string;
|
|
99
|
+
type: string;
|
|
100
|
+
endpoint: string;
|
|
101
|
+
operation: string;
|
|
102
|
+
constructor(name: string, label: string, type: string, endpoint: string, operation?: string);
|
|
103
|
+
toJSON(): {
|
|
104
|
+
name: string;
|
|
105
|
+
label: string;
|
|
106
|
+
type: string;
|
|
107
|
+
endpoint: string;
|
|
108
|
+
operation: string;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export declare class IslandConfig {
|
|
112
|
+
fields: IslandField[];
|
|
113
|
+
actions: IslandAction[];
|
|
114
|
+
constructor(fields: IslandField[], actions: IslandAction[]);
|
|
115
|
+
}
|
|
116
|
+
export declare class IslandResponse {
|
|
117
|
+
type: 'island';
|
|
118
|
+
config: {
|
|
119
|
+
islands: IslandConfig[];
|
|
120
|
+
};
|
|
121
|
+
constructor(type: 'island', config: {
|
|
122
|
+
islands: IslandConfig[];
|
|
123
|
+
});
|
|
124
|
+
static create(islands: IslandConfig[]): IslandResponse;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=Models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../../src/types/Models.ts"],"names":[],"mappings":"AACA;;GAEG;AACH,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,UAAU,WAAW;CACtB;AAED;;GAEG;AACH,qBAAa,SAAS;IASX,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,OAAO;IAX1B;;;;;;OAMG;gBAEM,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO;IAG1B;;OAEG;IACI,MAAM;;;;;;CAQd;AAED;;GAEG;AACH,qBAAa,yBAAyB;IAG3B,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,MAAM;IACnB,UAAU,EAAE,MAAM;gBAHlB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM;CAE5B;AAGD;;GAEG;AACH,qBAAa,cAAc;IAGhB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,yBAAyB;gBADtC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,yBAAyB;CAEhD;AAED;;GAEG;AACH,qBAAa,eAAe;IAQjB,QAAQ,EAAE,MAAM;IAChB,WAAW,EAAE,MAAM;IACnB,QAAQ,EAAE,OAAO;IAT1B;;;;;OAKG;gBAEM,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,GAAE,OAAc;IAGjC;;OAEG;IACI,MAAM;;;;;CAOd;AAED,qBAAa,WAAW;IAGb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM;IACnC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;IAChC,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,MAAM,EAAE;gBALjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,EACnC,KAAK,GAAE,MAAM,GAAG,OAAO,GAAG,MAAW,EACrC,MAAM,GAAE,OAAe,EACvB,OAAO,GAAE,MAAM,EAAO;IAGxB,MAAM;;;;;;;;CAUd;AAED,qBAAa,YAAY;IAGd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,MAAM;gBAJjB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAAiB;IAG9B,MAAM;;;;;;;CASd;AAED,qBAAa,YAAY;IAGd,MAAM,EAAE,WAAW,EAAE;IACrB,OAAO,EAAE,YAAY,EAAE;gBADvB,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,EAAE,YAAY,EAAE;CAEjC;AAED,qBAAa,cAAc;IAGhB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE;QACb,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB;gBAHM,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE;QACb,OAAO,EAAE,YAAY,EAAE,CAAC;KACzB;WAGW,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,cAAc;CAG9D"}
|