@optimizely-opal/opal-tool-ocp-sdk 0.0.0-beta.4 → 0.0.0-beta.5
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 +22 -2
- package/dist/function/ToolFunction.d.ts +7 -0
- package/dist/function/ToolFunction.d.ts.map +1 -1
- package/dist/function/ToolFunction.js +10 -1
- package/dist/function/ToolFunction.js.map +1 -1
- package/dist/function/ToolFunction.test.js +5 -5
- package/dist/function/ToolFunction.test.js.map +1 -1
- package/dist/service/Service.d.ts +1 -1
- package/dist/service/Service.d.ts.map +1 -1
- package/dist/service/Service.js +5 -1
- package/dist/service/Service.js.map +1 -1
- package/dist/service/Service.test.js +50 -22
- package/dist/service/Service.test.js.map +1 -1
- package/package.json +1 -1
- package/src/function/ToolFunction.test.ts +5 -5
- package/src/function/ToolFunction.ts +11 -1
- package/src/service/Service.test.ts +57 -22
- package/src/service/Service.ts +6 -1
package/README.md
CHANGED
|
@@ -277,6 +277,7 @@ Abstract base class for OCP functions:
|
|
|
277
277
|
|
|
278
278
|
```typescript
|
|
279
279
|
export abstract class ToolFunction extends Function {
|
|
280
|
+
protected ready(): Promise<boolean>;
|
|
280
281
|
public async perform(): Promise<Response>;
|
|
281
282
|
protected validateBearerToken(token: string): boolean;
|
|
282
283
|
}
|
|
@@ -295,9 +296,13 @@ Key model classes with generic type support:
|
|
|
295
296
|
- `InteractionResult` - Response from interactions
|
|
296
297
|
- `OptiIdAuthData` - OptiID specific authentication data
|
|
297
298
|
|
|
298
|
-
## Discovery
|
|
299
|
+
## Discovery and Ready Endpoints
|
|
299
300
|
|
|
300
|
-
The SDK automatically provides
|
|
301
|
+
The SDK automatically provides two important endpoints:
|
|
302
|
+
|
|
303
|
+
### Discovery Endpoint (`/discovery`)
|
|
304
|
+
|
|
305
|
+
Returns all registered tools in the proper OCP format for platform integration:
|
|
301
306
|
|
|
302
307
|
```json
|
|
303
308
|
{
|
|
@@ -347,6 +352,21 @@ The SDK automatically provides a discovery endpoint at `/discovery` that returns
|
|
|
347
352
|
}
|
|
348
353
|
```
|
|
349
354
|
|
|
355
|
+
### Ready Endpoint (`/ready`)
|
|
356
|
+
|
|
357
|
+
Returns the current readiness status of your function:
|
|
358
|
+
|
|
359
|
+
```json
|
|
360
|
+
{
|
|
361
|
+
"ready": true
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
This endpoint calls your function's `ready()` method and returns:
|
|
366
|
+
- `{ready: true}` when the function is ready to process requests
|
|
367
|
+
- `{ready: false}` when the function is not ready (missing configuration, external services unavailable, etc.)
|
|
368
|
+
- HTTP 200 status code regardless of ready state (the ready status is in the response body)
|
|
369
|
+
|
|
350
370
|
## Development
|
|
351
371
|
|
|
352
372
|
### Prerequisites
|
|
@@ -4,6 +4,13 @@ import { Function, Response } from '@zaiusinc/app-sdk';
|
|
|
4
4
|
* Provides a standard interface for processing requests through registered tools
|
|
5
5
|
*/
|
|
6
6
|
export declare abstract class ToolFunction extends Function {
|
|
7
|
+
/**
|
|
8
|
+
* Override this method to implement any required credentials and/or other configuration
|
|
9
|
+
* exist and are valid. Reasonable caching should be utilized to prevent excessive requests to external resources.
|
|
10
|
+
* @async
|
|
11
|
+
* @returns true if the opal function is ready to use
|
|
12
|
+
*/
|
|
13
|
+
protected ready(): Promise<boolean>;
|
|
7
14
|
/**
|
|
8
15
|
* Process the incoming request using the tools service
|
|
9
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGvD;;;GAGG;AACH,8BAAsB,YAAa,SAAQ,QAAQ;IAEjD;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAUzC;;;;;;;;OAQG;IACH,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;CAG7D"}
|
|
1
|
+
{"version":3,"file":"ToolFunction.d.ts","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGvD;;;GAGG;AACH,8BAAsB,YAAa,SAAQ,QAAQ;IAEjD;;;;;OAKG;IACH,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IAUzC;;;;;;;;OAQG;IACH,SAAS,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;CAG7D"}
|
|
@@ -8,6 +8,15 @@ const Service_1 = require("../service/Service");
|
|
|
8
8
|
* Provides a standard interface for processing requests through registered tools
|
|
9
9
|
*/
|
|
10
10
|
class ToolFunction extends app_sdk_1.Function {
|
|
11
|
+
/**
|
|
12
|
+
* Override this method to implement any required credentials and/or other configuration
|
|
13
|
+
* exist and are valid. Reasonable caching should be utilized to prevent excessive requests to external resources.
|
|
14
|
+
* @async
|
|
15
|
+
* @returns true if the opal function is ready to use
|
|
16
|
+
*/
|
|
17
|
+
ready() {
|
|
18
|
+
return Promise.resolve(true);
|
|
19
|
+
}
|
|
11
20
|
/**
|
|
12
21
|
* Process the incoming request using the tools service
|
|
13
22
|
*
|
|
@@ -19,7 +28,7 @@ class ToolFunction extends app_sdk_1.Function {
|
|
|
19
28
|
return new app_sdk_1.Response(403, { error: 'Forbidden' });
|
|
20
29
|
}
|
|
21
30
|
// Pass 'this' as context so decorated methods can use the existing instance
|
|
22
|
-
return Service_1.toolsService.processRequest(this.request, this);
|
|
31
|
+
return Service_1.toolsService.processRequest(this.request, this.ready.bind(this), this);
|
|
23
32
|
}
|
|
24
33
|
/**
|
|
25
34
|
* Validates the bearer token for authorization.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.js","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":";;;AAAA,+CAAuD;AACvD,gDAAkD;AAElD;;;GAGG;AACH,MAAsB,YAAa,SAAQ,kBAAQ;IAEjD;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,WAAW,GAAG,sBAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,kBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,4EAA4E;QAC5E,OAAO,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolFunction.js","sourceRoot":"","sources":["../../src/function/ToolFunction.ts"],"names":[],"mappings":";;;AAAA,+CAAuD;AACvD,gDAAkD;AAElD;;;GAGG;AACH,MAAsB,YAAa,SAAQ,kBAAQ;IAEjD;;;;;OAKG;IACO,KAAK;QACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,OAAO;QAClB,MAAM,WAAW,GAAG,sBAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1D,OAAO,IAAI,kBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,4EAA4E;QAC5E,OAAO,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;IAED;;;;;;;;OAQG;IACO,mBAAmB,CAAC,YAAoB;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAvCD,oCAuCC"}
|
|
@@ -81,7 +81,7 @@ describe('ToolFunction', () => {
|
|
|
81
81
|
// Assert
|
|
82
82
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
83
83
|
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
84
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
84
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
85
85
|
expect(result).toBe(mockResponse);
|
|
86
86
|
});
|
|
87
87
|
it('should return 403 Forbidden when bearer token validation fails', async () => {
|
|
@@ -109,7 +109,7 @@ describe('ToolFunction', () => {
|
|
|
109
109
|
// Assert
|
|
110
110
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
111
111
|
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(complexToken);
|
|
112
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
112
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
113
113
|
expect(result).toBe(mockResponse);
|
|
114
114
|
});
|
|
115
115
|
it('should handle bearer token validation throwing an error', async () => {
|
|
@@ -158,7 +158,7 @@ describe('ToolFunction', () => {
|
|
|
158
158
|
// Assert
|
|
159
159
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
160
160
|
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
161
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
161
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
162
162
|
expect(result).toBe(mockResponse);
|
|
163
163
|
});
|
|
164
164
|
it('should skip validation when bearer token is empty string', async () => {
|
|
@@ -170,7 +170,7 @@ describe('ToolFunction', () => {
|
|
|
170
170
|
// Assert
|
|
171
171
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
172
172
|
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
173
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
173
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
174
174
|
expect(result).toBe(mockResponse);
|
|
175
175
|
});
|
|
176
176
|
it('should use default validateBearerToken implementation when not overridden', async () => {
|
|
@@ -193,7 +193,7 @@ describe('ToolFunction', () => {
|
|
|
193
193
|
const result = await defaultToolFunction.perform();
|
|
194
194
|
// Assert - Default implementation should return true and allow request to proceed
|
|
195
195
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
196
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, defaultToolFunction);
|
|
196
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), defaultToolFunction);
|
|
197
197
|
expect(result).toBe(mockResponse);
|
|
198
198
|
});
|
|
199
199
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,7 +72,7 @@ export declare class ToolsService {
|
|
|
72
72
|
* @param endpoint API endpoint for the tool
|
|
73
73
|
*/
|
|
74
74
|
registerInteraction<TAuthData>(name: string, handler: (functionContext: any, data: unknown, authData?: TAuthData) => Promise<InteractionResult>, endpoint: string): void;
|
|
75
|
-
processRequest(req: App.Request, functionContext?: any): Promise<App.Response>;
|
|
75
|
+
processRequest(req: App.Request, readyCheck: () => Promise<boolean>, functionContext?: any): Promise<App.Response>;
|
|
76
76
|
}
|
|
77
77
|
export declare const toolsService: ToolsService;
|
|
78
78
|
//# 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;AAKzC;;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,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;gBAFlG,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;CAE5G;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,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC;IAC1F,gBAAgB,CAAC,EAAE,eAAe,EAAE;IApB7C;;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,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1F,gBAAgB,CAAC,EAAE,eAAe,EAAE,YAAA;IAG7C;;OAEG;IACI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAezC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAA4C;IAEhE;;;;OAIG;IACI,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS;IAUnE;;;;;;;;OAQG;IACI,YAAY,CAAC,SAAS,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1F,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,IAAI;IAKP;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC,EAClG,QAAQ,EAAE,MAAM,GACf,IAAI;IAKM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,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;AAKzC;;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,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;gBAFlG,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC;CAE5G;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,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC;IAC1F,gBAAgB,CAAC,EAAE,eAAe,EAAE;IApB7C;;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,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1F,gBAAgB,CAAC,EAAE,eAAe,EAAE,YAAA;IAG7C;;OAEG;IACI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAezC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAA4C;IAEhE;;;;OAIG;IACI,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS;IAUnE;;;;;;;;OAQG;IACI,YAAY,CAAC,SAAS,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,EAC1F,UAAU,EAAE,SAAS,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,eAAe,EAAE,GACnC,IAAI;IAKP;;;;;OAKG;IACI,mBAAmB,CAAC,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC,iBAAiB,CAAC,EAClG,QAAQ,EAAE,MAAM,GACf,IAAI;IAKM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAChB,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAClC,eAAe,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;CAoD1E;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
package/dist/service/Service.js
CHANGED
|
@@ -150,10 +150,14 @@ class ToolsService {
|
|
|
150
150
|
const func = new Interaction(name, endpoint, handler);
|
|
151
151
|
this.interactions.set(endpoint, func);
|
|
152
152
|
}
|
|
153
|
-
async processRequest(req, functionContext) {
|
|
153
|
+
async processRequest(req, readyCheck, functionContext) {
|
|
154
154
|
if (req.path === '/discovery') {
|
|
155
155
|
return new App.Response(200, { functions: Array.from(this.functions.values()).map((f) => f.toJSON()) });
|
|
156
156
|
}
|
|
157
|
+
else if (req.path === '/ready') {
|
|
158
|
+
const isReady = await readyCheck();
|
|
159
|
+
return new App.Response(200, { ready: isReady });
|
|
160
|
+
}
|
|
157
161
|
else {
|
|
158
162
|
const func = this.functions.get(req.path);
|
|
159
163
|
if (func) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/service/Service.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,12 +25,15 @@ jest.mock('@zaiusinc/app-sdk', () => ({
|
|
|
25
25
|
describe('ToolsService', () => {
|
|
26
26
|
let mockTool;
|
|
27
27
|
let mockInteraction;
|
|
28
|
+
let mockReadyCheck;
|
|
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 ready check function
|
|
36
|
+
mockReadyCheck = jest.fn().mockResolvedValue(true);
|
|
34
37
|
// Create mock tool handler
|
|
35
38
|
const mockToolHandler = jest.fn().mockResolvedValue({ result: 'success' });
|
|
36
39
|
// Create mock interaction handler
|
|
@@ -70,7 +73,7 @@ describe('ToolsService', () => {
|
|
|
70
73
|
it('should return registered functions for discovery endpoint', async () => {
|
|
71
74
|
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
72
75
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
73
|
-
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
76
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest, mockReadyCheck);
|
|
74
77
|
expect(response.status).toBe(200);
|
|
75
78
|
expect(response).toHaveProperty('bodyJSON');
|
|
76
79
|
expect(response.bodyAsU8Array).toBeDefined();
|
|
@@ -91,7 +94,7 @@ describe('ToolsService', () => {
|
|
|
91
94
|
});
|
|
92
95
|
it('should return empty functions array when no tools are registered', async () => {
|
|
93
96
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
94
|
-
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
97
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest, mockReadyCheck);
|
|
95
98
|
expect(response.status).toBe(200);
|
|
96
99
|
expect(response.bodyAsU8Array).toBeDefined();
|
|
97
100
|
// Test the actual response structure
|
|
@@ -107,7 +110,7 @@ describe('ToolsService', () => {
|
|
|
107
110
|
const authRequirements = [new Models_1.AuthRequirement('oauth2', 'calendar', true)];
|
|
108
111
|
Service_1.toolsService.registerTool('second_tool', 'Second test tool', jest.fn(), [], '/second-tool', authRequirements);
|
|
109
112
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
110
|
-
const response = await Service_1.toolsService.processRequest(discoveryRequest);
|
|
113
|
+
const response = await Service_1.toolsService.processRequest(discoveryRequest, mockReadyCheck);
|
|
111
114
|
expect(response.status).toBe(200);
|
|
112
115
|
// Test the actual response structure
|
|
113
116
|
const responseData = response.bodyJSON;
|
|
@@ -134,13 +137,38 @@ describe('ToolsService', () => {
|
|
|
134
137
|
});
|
|
135
138
|
});
|
|
136
139
|
});
|
|
140
|
+
describe('/ready endpoint', () => {
|
|
141
|
+
it('should return ready: true when readyCheck returns true', async () => {
|
|
142
|
+
const readyRequest = createMockRequest({ path: '/ready' });
|
|
143
|
+
const mockReadyCheckTrue = jest.fn().mockResolvedValue(true);
|
|
144
|
+
const response = await Service_1.toolsService.processRequest(readyRequest, mockReadyCheckTrue);
|
|
145
|
+
expect(response.status).toBe(200);
|
|
146
|
+
expect(response.bodyJSON).toEqual({ ready: true });
|
|
147
|
+
expect(mockReadyCheckTrue).toHaveBeenCalledTimes(1);
|
|
148
|
+
});
|
|
149
|
+
it('should return ready: false when readyCheck returns false', async () => {
|
|
150
|
+
const readyRequest = createMockRequest({ path: '/ready' });
|
|
151
|
+
const mockReadyCheckFalse = jest.fn().mockResolvedValue(false);
|
|
152
|
+
const response = await Service_1.toolsService.processRequest(readyRequest, mockReadyCheckFalse);
|
|
153
|
+
expect(response.status).toBe(200);
|
|
154
|
+
expect(response.bodyJSON).toEqual({ ready: false });
|
|
155
|
+
expect(mockReadyCheckFalse).toHaveBeenCalledTimes(1);
|
|
156
|
+
});
|
|
157
|
+
it('should handle readyCheck throwing an error', async () => {
|
|
158
|
+
const readyRequest = createMockRequest({ path: '/ready' });
|
|
159
|
+
const mockReadyCheckError = jest.fn().mockRejectedValue(new Error('Ready check failed'));
|
|
160
|
+
await expect(Service_1.toolsService.processRequest(readyRequest, mockReadyCheckError)).
|
|
161
|
+
rejects.toThrow('Ready check failed');
|
|
162
|
+
expect(mockReadyCheckError).toHaveBeenCalledTimes(1);
|
|
163
|
+
});
|
|
164
|
+
});
|
|
137
165
|
describe('tool execution', () => {
|
|
138
166
|
beforeEach(() => {
|
|
139
167
|
Service_1.toolsService.registerTool(mockTool.name, mockTool.description, mockTool.handler, mockTool.parameters, mockTool.endpoint);
|
|
140
168
|
});
|
|
141
169
|
it('should execute tool successfully with parameters', async () => {
|
|
142
170
|
const mockRequest = createMockRequest();
|
|
143
|
-
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
171
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockReadyCheck);
|
|
144
172
|
expect(response.status).toBe(200);
|
|
145
173
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
146
174
|
{ param1: 'test-value' }, undefined);
|
|
@@ -152,7 +180,7 @@ describe('ToolsService', () => {
|
|
|
152
180
|
someMethod: jest.fn()
|
|
153
181
|
};
|
|
154
182
|
const mockRequest = createMockRequest();
|
|
155
|
-
const response = await Service_1.toolsService.processRequest(mockRequest, mockToolFunctionInstance);
|
|
183
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockReadyCheck, mockToolFunctionInstance);
|
|
156
184
|
expect(response.status).toBe(200);
|
|
157
185
|
expect(mockTool.handler).toHaveBeenCalledWith(mockToolFunctionInstance, // functionContext - existing instance
|
|
158
186
|
{ param1: 'test-value' }, undefined);
|
|
@@ -189,7 +217,7 @@ describe('ToolsService', () => {
|
|
|
189
217
|
path: '/test-toolfunction-access',
|
|
190
218
|
bodyJSON: { action: 'test' }
|
|
191
219
|
});
|
|
192
|
-
const response = await Service_1.toolsService.processRequest(testRequest, mockToolFunctionInstance);
|
|
220
|
+
const response = await Service_1.toolsService.processRequest(testRequest, mockReadyCheck, mockToolFunctionInstance);
|
|
193
221
|
expect(response.status).toBe(200);
|
|
194
222
|
expect(response.data).toBeDefined();
|
|
195
223
|
expect(response.data.success).toBe(true);
|
|
@@ -211,7 +239,7 @@ describe('ToolsService', () => {
|
|
|
211
239
|
auth: authData
|
|
212
240
|
})
|
|
213
241
|
});
|
|
214
|
-
const response = await Service_1.toolsService.processRequest(requestWithAuth);
|
|
242
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuth, mockReadyCheck);
|
|
215
243
|
expect(response.status).toBe(200);
|
|
216
244
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
217
245
|
{ param1: 'test-value' }, authData);
|
|
@@ -221,7 +249,7 @@ describe('ToolsService', () => {
|
|
|
221
249
|
bodyJSON: { param1: 'test-value' },
|
|
222
250
|
body: JSON.stringify({ param1: 'test-value' })
|
|
223
251
|
});
|
|
224
|
-
const response = await Service_1.toolsService.processRequest(requestWithoutWrapper);
|
|
252
|
+
const response = await Service_1.toolsService.processRequest(requestWithoutWrapper, mockReadyCheck);
|
|
225
253
|
expect(response.status).toBe(200);
|
|
226
254
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
227
255
|
{ param1: 'test-value' }, undefined);
|
|
@@ -230,14 +258,14 @@ describe('ToolsService', () => {
|
|
|
230
258
|
const errorMessage = 'Tool execution failed';
|
|
231
259
|
jest.mocked(mockTool.handler).mockRejectedValueOnce(new Error(errorMessage));
|
|
232
260
|
const mockRequest = createMockRequest();
|
|
233
|
-
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
261
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockReadyCheck);
|
|
234
262
|
expect(response.status).toBe(500);
|
|
235
263
|
expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockTool.name}:`, expect.any(Error));
|
|
236
264
|
});
|
|
237
265
|
it('should return 500 error with generic message when error has no message', async () => {
|
|
238
266
|
jest.mocked(mockTool.handler).mockRejectedValueOnce({});
|
|
239
267
|
const mockRequest = createMockRequest();
|
|
240
|
-
const response = await Service_1.toolsService.processRequest(mockRequest);
|
|
268
|
+
const response = await Service_1.toolsService.processRequest(mockRequest, mockReadyCheck);
|
|
241
269
|
expect(response.status).toBe(500);
|
|
242
270
|
});
|
|
243
271
|
});
|
|
@@ -251,7 +279,7 @@ describe('ToolsService', () => {
|
|
|
251
279
|
bodyJSON: { data: { param1: 'test-value' } },
|
|
252
280
|
body: JSON.stringify({ data: { param1: 'test-value' } })
|
|
253
281
|
});
|
|
254
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
282
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
255
283
|
expect(response.status).toBe(200);
|
|
256
284
|
expect(mockInteraction.handler).toHaveBeenCalledWith(undefined, { param1: 'test-value' }, undefined);
|
|
257
285
|
});
|
|
@@ -261,7 +289,7 @@ describe('ToolsService', () => {
|
|
|
261
289
|
bodyJSON: { param1: 'test-value' },
|
|
262
290
|
body: JSON.stringify({ param1: 'test-value' })
|
|
263
291
|
});
|
|
264
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
292
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
265
293
|
expect(response.status).toBe(200);
|
|
266
294
|
expect(mockInteraction.handler).toHaveBeenCalledWith(undefined, { param1: 'test-value' }, undefined);
|
|
267
295
|
});
|
|
@@ -278,7 +306,7 @@ describe('ToolsService', () => {
|
|
|
278
306
|
auth: authData
|
|
279
307
|
})
|
|
280
308
|
});
|
|
281
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
309
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
282
310
|
expect(response.status).toBe(200);
|
|
283
311
|
expect(mockInteraction.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
284
312
|
{ param1: 'test-value' }, authData);
|
|
@@ -296,7 +324,7 @@ describe('ToolsService', () => {
|
|
|
296
324
|
auth: authData
|
|
297
325
|
})
|
|
298
326
|
});
|
|
299
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
327
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
300
328
|
expect(response.status).toBe(200);
|
|
301
329
|
expect(mockInteraction.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
302
330
|
{
|
|
@@ -311,7 +339,7 @@ describe('ToolsService', () => {
|
|
|
311
339
|
path: '/test-interaction',
|
|
312
340
|
bodyJSON: { data: { param1: 'test-value' } }
|
|
313
341
|
});
|
|
314
|
-
const response = await Service_1.toolsService.processRequest(interactionRequest);
|
|
342
|
+
const response = await Service_1.toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
315
343
|
expect(response.status).toBe(500);
|
|
316
344
|
expect(app_sdk_1.logger.error).toHaveBeenCalledWith(`Error in function ${mockInteraction.name}:`, expect.any(Error));
|
|
317
345
|
});
|
|
@@ -319,7 +347,7 @@ describe('ToolsService', () => {
|
|
|
319
347
|
describe('error cases', () => {
|
|
320
348
|
it('should return 404 when no matching tool or interaction is found', async () => {
|
|
321
349
|
const unknownRequest = createMockRequest({ path: '/unknown-endpoint' });
|
|
322
|
-
const response = await Service_1.toolsService.processRequest(unknownRequest);
|
|
350
|
+
const response = await Service_1.toolsService.processRequest(unknownRequest, mockReadyCheck);
|
|
323
351
|
expect(response.status).toBe(404);
|
|
324
352
|
});
|
|
325
353
|
it('should handle tool with OptiID auth requirements', async () => {
|
|
@@ -330,7 +358,7 @@ describe('ToolsService', () => {
|
|
|
330
358
|
const authRequest = createMockRequest({
|
|
331
359
|
path: '/optid-auth-tool'
|
|
332
360
|
});
|
|
333
|
-
const response = await Service_1.toolsService.processRequest(authRequest);
|
|
361
|
+
const response = await Service_1.toolsService.processRequest(authRequest, mockReadyCheck);
|
|
334
362
|
expect(response.status).toBe(200);
|
|
335
363
|
});
|
|
336
364
|
});
|
|
@@ -341,7 +369,7 @@ describe('ToolsService', () => {
|
|
|
341
369
|
bodyJSON: null,
|
|
342
370
|
body: null
|
|
343
371
|
});
|
|
344
|
-
const response = await Service_1.toolsService.processRequest(requestWithNullBody);
|
|
372
|
+
const response = await Service_1.toolsService.processRequest(requestWithNullBody, mockReadyCheck);
|
|
345
373
|
expect(response.status).toBe(200);
|
|
346
374
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, null, undefined);
|
|
347
375
|
});
|
|
@@ -351,7 +379,7 @@ describe('ToolsService', () => {
|
|
|
351
379
|
bodyJSON: undefined,
|
|
352
380
|
body: undefined
|
|
353
381
|
});
|
|
354
|
-
const response = await Service_1.toolsService.processRequest(requestWithUndefinedBody);
|
|
382
|
+
const response = await Service_1.toolsService.processRequest(requestWithUndefinedBody, mockReadyCheck);
|
|
355
383
|
expect(response.status).toBe(200);
|
|
356
384
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, undefined, undefined);
|
|
357
385
|
});
|
|
@@ -368,7 +396,7 @@ describe('ToolsService', () => {
|
|
|
368
396
|
auth: authData
|
|
369
397
|
})
|
|
370
398
|
});
|
|
371
|
-
const response = await Service_1.toolsService.processRequest(requestWithAuth);
|
|
399
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuth, mockReadyCheck);
|
|
372
400
|
expect(response.status).toBe(200);
|
|
373
401
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
374
402
|
{ param1: 'test-value' }, authData);
|
|
@@ -384,7 +412,7 @@ describe('ToolsService', () => {
|
|
|
384
412
|
parameters: { param1: 'test-value' }
|
|
385
413
|
})
|
|
386
414
|
});
|
|
387
|
-
const response = await Service_1.toolsService.processRequest(requestWithoutAuth);
|
|
415
|
+
const response = await Service_1.toolsService.processRequest(requestWithoutAuth, mockReadyCheck);
|
|
388
416
|
expect(response.status).toBe(200);
|
|
389
417
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
390
418
|
{ param1: 'test-value' }, undefined);
|
|
@@ -399,7 +427,7 @@ describe('ToolsService', () => {
|
|
|
399
427
|
},
|
|
400
428
|
body: ''
|
|
401
429
|
});
|
|
402
|
-
const response = await Service_1.toolsService.processRequest(requestWithAuthButNoBody);
|
|
430
|
+
const response = await Service_1.toolsService.processRequest(requestWithAuthButNoBody, mockReadyCheck);
|
|
403
431
|
expect(response.status).toBe(200);
|
|
404
432
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, // functionContext
|
|
405
433
|
{ param1: 'test-value' }, authData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.test.js","sourceRoot":"","sources":["../../src/service/Service.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Service.test.js","sourceRoot":"","sources":["../../src/service/Service.test.ts"],"names":[],"mappings":";;AAAA,uCAA4D;AAC5D,4CAAuH;AACvH,2DAAwD;AACxD,+CAA2C;AAE3C,4CAA4C;AAC5C,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE;QACN,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;KACjB;IACD,QAAQ,EAAE;QACkB;QAA1B,YAA0B,OAAY;YAAZ,YAAO,GAAP,OAAO,CAAK;QAAG,CAAC;KAC3C;IACD,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACxD,MAAM;QACN,IAAI;QACJ,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,IAAI,UAAU,EAAE;KAChC,CAAC,CAAC;CACJ,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,QAAuB,CAAC;IAC5B,IAAI,eAAqC,CAAC;IAC1C,IAAI,cAA2D,CAAC;IAEhE,UAAU,CAAC,GAAG,EAAE;QACd,+DAA+D;QAC9D,sBAAoB,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3C,sBAAoB,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAE/C,kBAAkB;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,mCAAmC;QACnC,cAAc,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAEnD,2BAA2B;QAC3B,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAE3E,kCAAkC;QAClC,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAE/F,mBAAmB;QACnB,QAAQ,GAAG,IAAI,cAAI,CACjB,UAAU,EACV,uBAAuB,EACvB,CAAC,IAAI,kBAAS,CAAC,QAAQ,EAAE,sBAAa,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,EACvE,YAAY,EACZ,eAAe,CAChB,CAAC;QAEF,0BAA0B;QAC1B,eAAe,GAAG,IAAI,qBAAW,CAC/B,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,CAAC,YAAiB,EAAE,EAAO,EAAE;QACrD,+CAA+C;QAC/C,MAAM,gBAAgB,GAAG,CAAC,aAAkB,EAAE,EAAE,EAAE;YAChD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;YAClD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;YAC9D,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,gBAAgB,EAAE;YAC3B,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,kBAAkB;SAChC,CAAC;QAEF,OAAO;YACL,GAAG,WAAW;YACd,GAAG,SAAS;YACZ,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC;SAC7C,CAAC;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAClC,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAErF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAC5C,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE7C,qCAAqC;gBACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAoC,CAAC;gBACnE,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAE/C,yCAAyC;gBACzC,MAAM,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACrD,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC;oBACjC,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,WAAW,EAAE,MAAM;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;gBAChF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAErF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;gBAE7C,qCAAqC;gBACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAoC,CAAC;gBACnE,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;gBACjF,sBAAsB;gBACtB,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,8CAA8C;gBAC9C,MAAM,gBAAgB,GAAG,CAAC,IAAI,wBAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3E,sBAAY,CAAC,YAAY,CACvB,aAAa,EACb,kBAAkB,EAClB,IAAI,CAAC,EAAE,EAAE,EACT,EAAE,EACF,cAAc,EACd,gBAAgB,CACjB,CAAC;gBAEF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;gBAErF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAElC,qCAAqC;gBACrC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAoC,CAAC;gBACnE,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;gBACjD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAE/C,+BAA+B;gBAC/B,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxF,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;gBAEzF,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;oBAC5B,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,WAAW,EAAE,QAAQ,CAAC,WAAW;oBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjE,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,WAAW,EAAE,MAAM;iBACpB,CAAC,CAAC;gBAEH,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC;oBAC7B,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,kBAAkB;oBAC/B,UAAU,EAAE,EAAE;oBACd,QAAQ,EAAE,cAAc;oBACxB,WAAW,EAAE,MAAM;oBACnB,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;iBACjE,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC/B,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;gBACtE,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBAErF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;gBACxE,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;gBAEtF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,MAAM,YAAY,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAC3D,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAEzF,MAAM,MAAM,CAAC,sBAAY,CAAC,cAAc,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;oBAC1E,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACxC,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,UAAU,CAAC,GAAG,EAAE;gBACd,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEhF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;gBAC/E,sCAAsC;gBACtC,MAAM,wBAAwB,GAAG;oBAC/B,YAAY,EAAE,YAAY;oBAC1B,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE;iBACtB,CAAC;gBAEF,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,wBAAwB,CAAC,CAAC;gBAE1G,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,wBAAwB,EAAE,sCAAsC;gBAChE,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;gBACtF,gDAAgD;gBAChD,MAAM,gBAAiB,SAAQ,2BAAY;oBAClC,UAAU;wBACf,OAAO,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACtC,CAAC;oBAEM,cAAc;wBACnB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;oBAC3B,CAAC;iBACF;gBAED,yCAAyC;gBACzC,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC9D,MAAM,wBAAwB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAEnE,oFAAoF;gBACpF,MAAM,0BAA0B,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAC9D,eAAoB,EACpB,MAAW,EACX,SAAc,EACd,EAAE;oBACF,oFAAoF;oBACpF,IAAI,eAAe,IAAI,eAAe,YAAY,gBAAgB,EAAE,CAAC;wBACnE,OAAO,OAAO,CAAC,OAAO,CAAC;4BACrB,OAAO,EAAE,IAAI;4BACb,WAAW,EAAE,eAAe,CAAC,cAAc,EAAE,EAAE,sCAAsC;4BACrF,gBAAgB,EAAE,eAAe,CAAC,UAAU,EAAE;4BAC9C,cAAc,EAAE,MAAM;yBACvB,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;gBACjF,CAAC,CAAC,CAAC;gBAEH,0CAA0C;gBAC1C,sBAAY,CAAC,YAAY,CACvB,0BAA0B,EAC1B,8CAA8C,EAC9C,0BAA0B,EAC1B,EAAE,EACF,2BAA2B,CAC5B,CAAC;gBAEF,MAAM,WAAW,GAAG,iBAAiB,CAAC;oBACpC,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;iBAC7B,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,EAAE,wBAAwB,CAAC,CAAC;gBAE1G,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC9D,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBACzE,MAAM,CAAE,QAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1E,MAAM,CAAC,0BAA0B,CAAC,CAAC,oBAAoB,CACrD,wBAAwB,EAAE,+CAA+C;gBACzE,EAAE,MAAM,EAAE,MAAM,EAAE,EAClB,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,MAAM,QAAQ,GAAG,IAAI,uBAAc,CACjC,QAAQ,EACR,IAAI,kCAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAClF,CAAC;gBAEF,MAAM,eAAe,GAAG,iBAAiB,CAAC;oBACxC,QAAQ,EAAE;wBACR,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBACpC,IAAI,EAAE,QAAQ;qBACf;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBACpC,IAAI,EAAE,QAAQ;qBACf,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;gBAEpF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,QAAQ,CACT,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;gBACrE,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;oBAC9C,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;oBAClC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;iBAC/C,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;gBAE1F,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;gBACzE,MAAM,YAAY,GAAG,uBAAuB,CAAC;gBAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAE7E,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEhF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,gBAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,qBAAqB,QAAQ,CAAC,IAAI,GAAG,EACrC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAClB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;gBACtF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;gBAExD,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;gBACxC,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEhF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,UAAU,CAAC,GAAG,EAAE;gBACd,sBAAY,CAAC,mBAAmB,CAC9B,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,OAAO,EACvB,eAAe,CAAC,QAAQ,CACzB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;gBACjE,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;oBAC5C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;iBACzD,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAEvF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;YACvG,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;gBAC3E,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;oBAClC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;iBAC/C,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAEvF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;YACvG,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;gBAC9E,MAAM,QAAQ,GAAG,IAAI,uBAAc,CACjC,QAAQ,EACR,IAAI,kCAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAClF,CAAC;gBAEF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBAC9B,IAAI,EAAE,QAAQ;qBACf;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBAC9B,IAAI,EAAE,QAAQ;qBACf,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAEvF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAClD,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,QAAQ,CACT,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2EAA2E,EAAE,KAAK,IAAI,EAAE;gBACzF,MAAM,QAAQ,GAAG,IAAI,uBAAc,CACjC,QAAQ,EACR,IAAI,kCAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAClF,CAAC;gBAEF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE;wBACR,MAAM,EAAE,YAAY;wBACpB,IAAI,EAAE,QAAQ;qBACf;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,YAAY;wBACpB,IAAI,EAAE,QAAQ;qBACf,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAEvF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAClD,SAAS,EAAE,kBAAkB;gBAC7B;oBACE,MAAM,EAAE,YAAY;oBACpB,IAAI,EAAE,QAAQ;iBACf,EACD,QAAQ,CACT,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;gBAChF,MAAM,YAAY,GAAG,8BAA8B,CAAC;gBACpD,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAEpF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;iBAC7C,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAEvF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,gBAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CACvC,qBAAqB,eAAe,CAAC,IAAI,GAAG,EAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAClB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;YAC3B,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;gBAC/E,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACxE,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBAEnF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;gBAChE,MAAM,gBAAgB,GAAG;oBACvB,IAAI,wBAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC;iBAChD,CAAC;gBAEF,sBAAY,CAAC,YAAY,CACvB,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,kBAAkB,EAClB,gBAAgB,CACjB,CAAC;gBAEF,MAAM,WAAW,GAAG,iBAAiB,CAAC;oBACpC,IAAI,EAAE,kBAAkB;iBACzB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAEhF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;gBACxD,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;oBAC5C,QAAQ,EAAE,IAAI;oBACd,IAAI,EAAE,IAAI;iBACX,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;gBAExF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5E,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;gBAC7D,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;oBACjD,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;gBAE7F,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACjF,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;gBACvE,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,MAAM,QAAQ,GAAG,IAAI,uBAAc,CACjC,QAAQ,EACR,IAAI,kCAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAClF,CAAC;gBAEF,MAAM,eAAe,GAAG,iBAAiB,CAAC;oBACxC,QAAQ,EAAE;wBACR,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBACpC,IAAI,EAAE,QAAQ;qBACf;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBACpC,IAAI,EAAE,QAAQ;qBACf,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;gBAEpF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,QAAQ,CACT,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;gBAC1D,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;oBAC3C,QAAQ,EAAE;wBACR,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBACpC,mBAAmB;qBACpB;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;qBACrC,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;gBAEvF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,SAAS,CACV,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;gBACtF,sBAAY,CAAC,YAAY,CACvB,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,WAAW,EACpB,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,UAAU,EACnB,QAAQ,CAAC,QAAQ,CAClB,CAAC;gBAEF,MAAM,QAAQ,GAAG,IAAI,uBAAc,CACjC,QAAQ,EACR,IAAI,kCAAyB,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAClF,CAAC;gBAEF,MAAM,wBAAwB,GAAG,iBAAiB,CAAC;oBACjD,QAAQ,EAAE;wBACR,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE;wBACpC,IAAI,EAAE,QAAQ;qBACf;oBACD,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;gBAEH,MAAM,QAAQ,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC;gBAE7F,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAC3C,SAAS,EAAE,kBAAkB;gBAC7B,EAAE,MAAM,EAAE,YAAY,EAAE,EACxB,QAAQ,CACT,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -95,7 +95,7 @@ describe('ToolFunction', () => {
|
|
|
95
95
|
// Assert
|
|
96
96
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
97
97
|
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(bearerToken);
|
|
98
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
98
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
99
99
|
expect(result).toBe(mockResponse);
|
|
100
100
|
});
|
|
101
101
|
|
|
@@ -129,7 +129,7 @@ describe('ToolFunction', () => {
|
|
|
129
129
|
// Assert
|
|
130
130
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
131
131
|
expect(toolFunction.getMockValidateBearerToken()).toHaveBeenCalledWith(complexToken);
|
|
132
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
132
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
133
133
|
expect(result).toBe(mockResponse);
|
|
134
134
|
});
|
|
135
135
|
|
|
@@ -189,7 +189,7 @@ describe('ToolFunction', () => {
|
|
|
189
189
|
// Assert
|
|
190
190
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
191
191
|
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
192
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
192
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
193
193
|
expect(result).toBe(mockResponse);
|
|
194
194
|
});
|
|
195
195
|
|
|
@@ -204,7 +204,7 @@ describe('ToolFunction', () => {
|
|
|
204
204
|
// Assert
|
|
205
205
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
206
206
|
expect(toolFunction.getMockValidateBearerToken()).not.toHaveBeenCalled();
|
|
207
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, toolFunction);
|
|
207
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), toolFunction);
|
|
208
208
|
expect(result).toBe(mockResponse);
|
|
209
209
|
});
|
|
210
210
|
|
|
@@ -232,7 +232,7 @@ describe('ToolFunction', () => {
|
|
|
232
232
|
|
|
233
233
|
// Assert - Default implementation should return true and allow request to proceed
|
|
234
234
|
expect(mockExtractBearerToken).toHaveBeenCalledWith(mockRequest.headers);
|
|
235
|
-
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, defaultToolFunction);
|
|
235
|
+
expect(mockProcessRequest).toHaveBeenCalledWith(mockRequest, expect.any(Function), defaultToolFunction);
|
|
236
236
|
expect(result).toBe(mockResponse);
|
|
237
237
|
});
|
|
238
238
|
});
|
|
@@ -7,6 +7,16 @@ import { toolsService } from '../service/Service';
|
|
|
7
7
|
*/
|
|
8
8
|
export abstract class ToolFunction extends Function {
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Override this method to implement any required credentials and/or other configuration
|
|
12
|
+
* exist and are valid. Reasonable caching should be utilized to prevent excessive requests to external resources.
|
|
13
|
+
* @async
|
|
14
|
+
* @returns true if the opal function is ready to use
|
|
15
|
+
*/
|
|
16
|
+
protected ready(): Promise<boolean> {
|
|
17
|
+
return Promise.resolve(true);
|
|
18
|
+
}
|
|
19
|
+
|
|
10
20
|
/**
|
|
11
21
|
* Process the incoming request using the tools service
|
|
12
22
|
*
|
|
@@ -19,7 +29,7 @@ export abstract class ToolFunction extends Function {
|
|
|
19
29
|
}
|
|
20
30
|
|
|
21
31
|
// Pass 'this' as context so decorated methods can use the existing instance
|
|
22
|
-
return toolsService.processRequest(this.request, this);
|
|
32
|
+
return toolsService.processRequest(this.request, this.ready.bind(this), this);
|
|
23
33
|
}
|
|
24
34
|
|
|
25
35
|
/**
|
|
@@ -22,6 +22,7 @@ jest.mock('@zaiusinc/app-sdk', () => ({
|
|
|
22
22
|
describe('ToolsService', () => {
|
|
23
23
|
let mockTool: Tool<unknown>;
|
|
24
24
|
let mockInteraction: Interaction<unknown>;
|
|
25
|
+
let mockReadyCheck: jest.MockedFunction<() => Promise<boolean>>;
|
|
25
26
|
|
|
26
27
|
beforeEach(() => {
|
|
27
28
|
// Clear registered functions and interactions before each test
|
|
@@ -31,6 +32,9 @@ describe('ToolsService', () => {
|
|
|
31
32
|
// Reset all mocks
|
|
32
33
|
jest.clearAllMocks();
|
|
33
34
|
|
|
35
|
+
// Create mock ready check function
|
|
36
|
+
mockReadyCheck = jest.fn().mockResolvedValue(true);
|
|
37
|
+
|
|
34
38
|
// Create mock tool handler
|
|
35
39
|
const mockToolHandler = jest.fn().mockResolvedValue({ result: 'success' });
|
|
36
40
|
|
|
@@ -94,7 +98,7 @@ describe('ToolsService', () => {
|
|
|
94
98
|
);
|
|
95
99
|
|
|
96
100
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
97
|
-
const response = await toolsService.processRequest(discoveryRequest);
|
|
101
|
+
const response = await toolsService.processRequest(discoveryRequest, mockReadyCheck);
|
|
98
102
|
|
|
99
103
|
expect(response.status).toBe(200);
|
|
100
104
|
expect(response).toHaveProperty('bodyJSON');
|
|
@@ -119,7 +123,7 @@ describe('ToolsService', () => {
|
|
|
119
123
|
|
|
120
124
|
it('should return empty functions array when no tools are registered', async () => {
|
|
121
125
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
122
|
-
const response = await toolsService.processRequest(discoveryRequest);
|
|
126
|
+
const response = await toolsService.processRequest(discoveryRequest, mockReadyCheck);
|
|
123
127
|
|
|
124
128
|
expect(response.status).toBe(200);
|
|
125
129
|
expect(response.bodyAsU8Array).toBeDefined();
|
|
@@ -153,7 +157,7 @@ describe('ToolsService', () => {
|
|
|
153
157
|
);
|
|
154
158
|
|
|
155
159
|
const discoveryRequest = createMockRequest({ path: '/discovery' });
|
|
156
|
-
const response = await toolsService.processRequest(discoveryRequest);
|
|
160
|
+
const response = await toolsService.processRequest(discoveryRequest, mockReadyCheck);
|
|
157
161
|
|
|
158
162
|
expect(response.status).toBe(200);
|
|
159
163
|
|
|
@@ -186,6 +190,37 @@ describe('ToolsService', () => {
|
|
|
186
190
|
});
|
|
187
191
|
});
|
|
188
192
|
|
|
193
|
+
describe('/ready endpoint', () => {
|
|
194
|
+
it('should return ready: true when readyCheck returns true', async () => {
|
|
195
|
+
const readyRequest = createMockRequest({ path: '/ready' });
|
|
196
|
+
const mockReadyCheckTrue = jest.fn().mockResolvedValue(true);
|
|
197
|
+
const response = await toolsService.processRequest(readyRequest, mockReadyCheckTrue);
|
|
198
|
+
|
|
199
|
+
expect(response.status).toBe(200);
|
|
200
|
+
expect(response.bodyJSON).toEqual({ ready: true });
|
|
201
|
+
expect(mockReadyCheckTrue).toHaveBeenCalledTimes(1);
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
it('should return ready: false when readyCheck returns false', async () => {
|
|
205
|
+
const readyRequest = createMockRequest({ path: '/ready' });
|
|
206
|
+
const mockReadyCheckFalse = jest.fn().mockResolvedValue(false);
|
|
207
|
+
const response = await toolsService.processRequest(readyRequest, mockReadyCheckFalse);
|
|
208
|
+
|
|
209
|
+
expect(response.status).toBe(200);
|
|
210
|
+
expect(response.bodyJSON).toEqual({ ready: false });
|
|
211
|
+
expect(mockReadyCheckFalse).toHaveBeenCalledTimes(1);
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
it('should handle readyCheck throwing an error', async () => {
|
|
215
|
+
const readyRequest = createMockRequest({ path: '/ready' });
|
|
216
|
+
const mockReadyCheckError = jest.fn().mockRejectedValue(new Error('Ready check failed'));
|
|
217
|
+
|
|
218
|
+
await expect(toolsService.processRequest(readyRequest, mockReadyCheckError)).
|
|
219
|
+
rejects.toThrow('Ready check failed');
|
|
220
|
+
expect(mockReadyCheckError).toHaveBeenCalledTimes(1);
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
|
|
189
224
|
describe('tool execution', () => {
|
|
190
225
|
beforeEach(() => {
|
|
191
226
|
toolsService.registerTool(
|
|
@@ -199,7 +234,7 @@ describe('ToolsService', () => {
|
|
|
199
234
|
|
|
200
235
|
it('should execute tool successfully with parameters', async () => {
|
|
201
236
|
const mockRequest = createMockRequest();
|
|
202
|
-
const response = await toolsService.processRequest(mockRequest);
|
|
237
|
+
const response = await toolsService.processRequest(mockRequest, mockReadyCheck);
|
|
203
238
|
|
|
204
239
|
expect(response.status).toBe(200);
|
|
205
240
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
@@ -217,7 +252,7 @@ describe('ToolsService', () => {
|
|
|
217
252
|
};
|
|
218
253
|
|
|
219
254
|
const mockRequest = createMockRequest();
|
|
220
|
-
const response = await toolsService.processRequest(mockRequest, mockToolFunctionInstance);
|
|
255
|
+
const response = await toolsService.processRequest(mockRequest, mockReadyCheck, mockToolFunctionInstance);
|
|
221
256
|
|
|
222
257
|
expect(response.status).toBe(200);
|
|
223
258
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
@@ -275,7 +310,7 @@ describe('ToolsService', () => {
|
|
|
275
310
|
bodyJSON: { action: 'test' }
|
|
276
311
|
});
|
|
277
312
|
|
|
278
|
-
const response = await toolsService.processRequest(testRequest, mockToolFunctionInstance);
|
|
313
|
+
const response = await toolsService.processRequest(testRequest, mockReadyCheck, mockToolFunctionInstance);
|
|
279
314
|
|
|
280
315
|
expect(response.status).toBe(200);
|
|
281
316
|
expect((response as any).data).toBeDefined();
|
|
@@ -307,7 +342,7 @@ describe('ToolsService', () => {
|
|
|
307
342
|
})
|
|
308
343
|
});
|
|
309
344
|
|
|
310
|
-
const response = await toolsService.processRequest(requestWithAuth);
|
|
345
|
+
const response = await toolsService.processRequest(requestWithAuth, mockReadyCheck);
|
|
311
346
|
|
|
312
347
|
expect(response.status).toBe(200);
|
|
313
348
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
@@ -323,7 +358,7 @@ describe('ToolsService', () => {
|
|
|
323
358
|
body: JSON.stringify({ param1: 'test-value' })
|
|
324
359
|
});
|
|
325
360
|
|
|
326
|
-
const response = await toolsService.processRequest(requestWithoutWrapper);
|
|
361
|
+
const response = await toolsService.processRequest(requestWithoutWrapper, mockReadyCheck);
|
|
327
362
|
|
|
328
363
|
expect(response.status).toBe(200);
|
|
329
364
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
@@ -338,7 +373,7 @@ describe('ToolsService', () => {
|
|
|
338
373
|
jest.mocked(mockTool.handler).mockRejectedValueOnce(new Error(errorMessage));
|
|
339
374
|
|
|
340
375
|
const mockRequest = createMockRequest();
|
|
341
|
-
const response = await toolsService.processRequest(mockRequest);
|
|
376
|
+
const response = await toolsService.processRequest(mockRequest, mockReadyCheck);
|
|
342
377
|
|
|
343
378
|
expect(response.status).toBe(500);
|
|
344
379
|
expect(logger.error).toHaveBeenCalledWith(
|
|
@@ -351,7 +386,7 @@ describe('ToolsService', () => {
|
|
|
351
386
|
jest.mocked(mockTool.handler).mockRejectedValueOnce({});
|
|
352
387
|
|
|
353
388
|
const mockRequest = createMockRequest();
|
|
354
|
-
const response = await toolsService.processRequest(mockRequest);
|
|
389
|
+
const response = await toolsService.processRequest(mockRequest, mockReadyCheck);
|
|
355
390
|
|
|
356
391
|
expect(response.status).toBe(500);
|
|
357
392
|
});
|
|
@@ -373,7 +408,7 @@ describe('ToolsService', () => {
|
|
|
373
408
|
body: JSON.stringify({ data: { param1: 'test-value' } })
|
|
374
409
|
});
|
|
375
410
|
|
|
376
|
-
const response = await toolsService.processRequest(interactionRequest);
|
|
411
|
+
const response = await toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
377
412
|
|
|
378
413
|
expect(response.status).toBe(200);
|
|
379
414
|
expect(mockInteraction.handler).toHaveBeenCalledWith(undefined, { param1: 'test-value' }, undefined);
|
|
@@ -386,7 +421,7 @@ describe('ToolsService', () => {
|
|
|
386
421
|
body: JSON.stringify({ param1: 'test-value' })
|
|
387
422
|
});
|
|
388
423
|
|
|
389
|
-
const response = await toolsService.processRequest(interactionRequest);
|
|
424
|
+
const response = await toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
390
425
|
|
|
391
426
|
expect(response.status).toBe(200);
|
|
392
427
|
expect(mockInteraction.handler).toHaveBeenCalledWith(undefined, { param1: 'test-value' }, undefined);
|
|
@@ -410,7 +445,7 @@ describe('ToolsService', () => {
|
|
|
410
445
|
})
|
|
411
446
|
});
|
|
412
447
|
|
|
413
|
-
const response = await toolsService.processRequest(interactionRequest);
|
|
448
|
+
const response = await toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
414
449
|
|
|
415
450
|
expect(response.status).toBe(200);
|
|
416
451
|
expect(mockInteraction.handler).toHaveBeenCalledWith(
|
|
@@ -438,7 +473,7 @@ describe('ToolsService', () => {
|
|
|
438
473
|
})
|
|
439
474
|
});
|
|
440
475
|
|
|
441
|
-
const response = await toolsService.processRequest(interactionRequest);
|
|
476
|
+
const response = await toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
442
477
|
|
|
443
478
|
expect(response.status).toBe(200);
|
|
444
479
|
expect(mockInteraction.handler).toHaveBeenCalledWith(
|
|
@@ -460,7 +495,7 @@ describe('ToolsService', () => {
|
|
|
460
495
|
bodyJSON: { data: { param1: 'test-value' } }
|
|
461
496
|
});
|
|
462
497
|
|
|
463
|
-
const response = await toolsService.processRequest(interactionRequest);
|
|
498
|
+
const response = await toolsService.processRequest(interactionRequest, mockReadyCheck);
|
|
464
499
|
|
|
465
500
|
expect(response.status).toBe(500);
|
|
466
501
|
expect(logger.error).toHaveBeenCalledWith(
|
|
@@ -473,7 +508,7 @@ describe('ToolsService', () => {
|
|
|
473
508
|
describe('error cases', () => {
|
|
474
509
|
it('should return 404 when no matching tool or interaction is found', async () => {
|
|
475
510
|
const unknownRequest = createMockRequest({ path: '/unknown-endpoint' });
|
|
476
|
-
const response = await toolsService.processRequest(unknownRequest);
|
|
511
|
+
const response = await toolsService.processRequest(unknownRequest, mockReadyCheck);
|
|
477
512
|
|
|
478
513
|
expect(response.status).toBe(404);
|
|
479
514
|
});
|
|
@@ -496,7 +531,7 @@ describe('ToolsService', () => {
|
|
|
496
531
|
path: '/optid-auth-tool'
|
|
497
532
|
});
|
|
498
533
|
|
|
499
|
-
const response = await toolsService.processRequest(authRequest);
|
|
534
|
+
const response = await toolsService.processRequest(authRequest, mockReadyCheck);
|
|
500
535
|
|
|
501
536
|
expect(response.status).toBe(200);
|
|
502
537
|
});
|
|
@@ -517,7 +552,7 @@ describe('ToolsService', () => {
|
|
|
517
552
|
body: null
|
|
518
553
|
});
|
|
519
554
|
|
|
520
|
-
const response = await toolsService.processRequest(requestWithNullBody);
|
|
555
|
+
const response = await toolsService.processRequest(requestWithNullBody, mockReadyCheck);
|
|
521
556
|
|
|
522
557
|
expect(response.status).toBe(200);
|
|
523
558
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, null, undefined);
|
|
@@ -537,7 +572,7 @@ describe('ToolsService', () => {
|
|
|
537
572
|
body: undefined
|
|
538
573
|
});
|
|
539
574
|
|
|
540
|
-
const response = await toolsService.processRequest(requestWithUndefinedBody);
|
|
575
|
+
const response = await toolsService.processRequest(requestWithUndefinedBody, mockReadyCheck);
|
|
541
576
|
|
|
542
577
|
expect(response.status).toBe(200);
|
|
543
578
|
expect(mockTool.handler).toHaveBeenCalledWith(undefined, undefined, undefined);
|
|
@@ -568,7 +603,7 @@ describe('ToolsService', () => {
|
|
|
568
603
|
})
|
|
569
604
|
});
|
|
570
605
|
|
|
571
|
-
const response = await toolsService.processRequest(requestWithAuth);
|
|
606
|
+
const response = await toolsService.processRequest(requestWithAuth, mockReadyCheck);
|
|
572
607
|
|
|
573
608
|
expect(response.status).toBe(200);
|
|
574
609
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
@@ -597,7 +632,7 @@ describe('ToolsService', () => {
|
|
|
597
632
|
})
|
|
598
633
|
});
|
|
599
634
|
|
|
600
|
-
const response = await toolsService.processRequest(requestWithoutAuth);
|
|
635
|
+
const response = await toolsService.processRequest(requestWithoutAuth, mockReadyCheck);
|
|
601
636
|
|
|
602
637
|
expect(response.status).toBe(200);
|
|
603
638
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
|
@@ -629,7 +664,7 @@ describe('ToolsService', () => {
|
|
|
629
664
|
body: ''
|
|
630
665
|
});
|
|
631
666
|
|
|
632
|
-
const response = await toolsService.processRequest(requestWithAuthButNoBody);
|
|
667
|
+
const response = await toolsService.processRequest(requestWithAuthButNoBody, mockReadyCheck);
|
|
633
668
|
|
|
634
669
|
expect(response.status).toBe(200);
|
|
635
670
|
expect(mockTool.handler).toHaveBeenCalledWith(
|
package/src/service/Service.ts
CHANGED
|
@@ -128,9 +128,14 @@ export class ToolsService {
|
|
|
128
128
|
this.interactions.set(endpoint, func);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
public async processRequest(req: App.Request,
|
|
131
|
+
public async processRequest(req: App.Request,
|
|
132
|
+
readyCheck: () => Promise<boolean>,
|
|
133
|
+
functionContext?: any): Promise<App.Response> {
|
|
132
134
|
if (req.path === '/discovery') {
|
|
133
135
|
return new App.Response(200, { functions: Array.from(this.functions.values()).map((f) => f.toJSON()) });
|
|
136
|
+
} else if (req.path === '/ready') {
|
|
137
|
+
const isReady = await readyCheck();
|
|
138
|
+
return new App.Response(200, { ready: isReady });
|
|
134
139
|
} else {
|
|
135
140
|
const func = this.functions.get(req.path);
|
|
136
141
|
if (func) {
|