@optimizely-opal/opal-tool-ocp-sdk 0.0.0-beta.2 → 0.0.0-dev.2

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 CHANGED
@@ -34,6 +34,11 @@ Create a tool function class by extending `ToolFunction` and registering your to
34
34
  import { ToolFunction, tool, interaction, ParameterType, InteractionResult, OptiIdAuthData } from '@optimizely-opal/opal-tool-ocp-sdk';
35
35
 
36
36
  export class MyToolFunction extends ToolFunction {
37
+ // Implement required bearer token validation method
38
+ validateBearerToken(token: string): boolean {
39
+ const expectedToken = process.env.OPAL_TOOL_TOKEN;
40
+ return token === expectedToken;
41
+ }
37
42
 
38
43
  // Register a simple tool without authentication
39
44
  @tool({
@@ -176,18 +181,16 @@ The SDK automatically extracts Bearer tokens from the `authorization` header for
176
181
  **Token Validation:**
177
182
  - Bearer tokens are extracted from the `authorization: Bearer <token>` header
178
183
  - Empty strings and `undefined` tokens are treated as missing (no validation performed)
179
- - **Optionally override** the `validateBearerToken(token: string): boolean` method to implement custom validation logic
180
- - The default implementation returns `true` (accepts all tokens) - override if you need custom authorization
181
- - If validation fails, returns HTTP 403 Forbidden before reaching your handler methods
184
+ - Implement the abstract `validateBearerToken(token: string): boolean` method to define your validation logic
182
185
 
183
186
  ```typescript
184
187
  export class MyToolFunction extends ToolFunction {
185
- // Optional: Override this method to implement custom bearer token validation
186
- protected validateBearerToken(token: string): boolean {
187
- // If you don't need bearer token validation, don't override this method
188
- // The default implementation returns true
188
+ // Implement the required bearer token validation method
189
+ validateBearerToken(token: string): boolean {
190
+ // If you don't need bearer token validation, simply return true
191
+ // return true;
189
192
 
190
- // For custom validation, compare against expected token
193
+ // For actual validation, compare against expected token
191
194
  const expectedToken = process.env.OPAL_TOOL_TOKEN;
192
195
  return token === expectedToken;
193
196
  }
@@ -219,8 +222,7 @@ export class MyToolFunction extends ToolFunction {
219
222
  - Set by users when registering tools in Opal
220
223
  - Used to authorize tool requests from Opal instances
221
224
  - Validates that requests are coming from trusted Opal sources
222
- - **Optionally override** the `validateBearerToken(token: string): boolean` method for custom authorization
223
- - Default implementation accepts all tokens - override for security
225
+ - Requires implementing the abstract `validateBearerToken(token: string): boolean` method
224
226
  - If validation fails, returns HTTP 403 Forbidden before reaching your handler methods
225
227
 
226
228
 
@@ -278,11 +280,11 @@ Abstract base class for OCP functions:
278
280
  ```typescript
279
281
  export abstract class ToolFunction extends Function {
280
282
  public async perform(): Promise<Response>;
281
- protected validateBearerToken(token: string): boolean;
283
+ protected abstract validateBearerToken(token: string): boolean;
282
284
  }
283
285
  ```
284
286
 
285
- Extend this class and implement your OCP function. The `perform` method automatically routes requests to registered tools and handles bearer token validation. **You can optionally override the `validateBearerToken` method** to define custom bearer token authorization for your tools.
287
+ Extend this class and implement your OCP function. The `perform` method automatically routes requests to registered tools and handles bearer token validation. You must implement the `validateBearerToken` method to define how bearer tokens should be validated for your tools.
286
288
 
287
289
  ### Models
288
290
 
@@ -387,8 +389,12 @@ yarn lint
387
389
  import { ToolFunction, tool, interaction, ParameterType, OptiIdAuthData, InteractionResult } from '@optimizely-opal/opal-ocp-sdk';
388
390
 
389
391
  export class AuthenticatedFunction extends ToolFunction {
390
- // Optional: Override this method for custom bearer token validation
391
- protected validateBearerToken(token: string): boolean {
392
+ // Implement required bearer token validation
393
+ validateBearerToken(token: string): boolean {
394
+ // If you don't need bearer token validation, simply return true
395
+ // return true;
396
+
397
+ // For actual validation, compare against expected token
392
398
  const expectedToken = process.env.OPAL_TOOL_TOKEN;
393
399
  return token === expectedToken;
394
400
  }
@@ -554,8 +560,8 @@ import * from './tools';
554
560
 
555
561
  export class MyToolFunction extends ToolFunction {
556
562
 
557
- // Optional: Override this method for custom bearer token validation
558
- protected validateBearerToken(token: string): boolean {
563
+ // Implement required bearer token validation method
564
+ validateBearerToken(token: string): boolean {
559
565
  const expectedToken = process.env.OPAL_TOOL_TOKEN;
560
566
  return token === expectedToken;
561
567
  }
@@ -36,11 +36,13 @@ export interface InteractionConfig {
36
36
  /**
37
37
  * Decorator for registering tool functions
38
38
  * Immediately registers the tool with the global ToolsService
39
+ * The handler will have access to 'this' context when called
39
40
  */
40
- export declare function tool(config: ToolConfig): (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) => void;
41
+ export declare function tool(config: ToolConfig): (target: any, _propertyKey: string, descriptor: PropertyDescriptor) => void;
41
42
  /**
42
43
  * Decorator for registering interaction functions
43
44
  * Immediately registers the interaction with the global ToolsService
45
+ * The handler will have access to 'this' context when called
44
46
  */
45
- export declare function interaction(config: InteractionConfig): (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) => void;
47
+ export declare function interaction(config: InteractionConfig): (target: any, _propertyKey: string, descriptor: PropertyDescriptor) => void;
46
48
  //# sourceMappingURL=Decorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/Decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG5E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,UAAU,IACrB,SAAS,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,UAqBnF;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,IACnC,SAAS,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,UAQnF"}
1
+ {"version":3,"file":"Decorator.d.ts","sourceRoot":"","sources":["../../src/decorator/Decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG5E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,MAAM,EAAE,UAAU,IACrB,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,UA8BlF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,IACnC,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,UAiBlF"}
@@ -7,25 +7,41 @@ const Service_1 = require("../service/Service");
7
7
  /**
8
8
  * Decorator for registering tool functions
9
9
  * Immediately registers the tool with the global ToolsService
10
+ * The handler will have access to 'this' context when called
10
11
  */
11
12
  function tool(config) {
12
- return function (_target, _propertyKey, descriptor) {
13
+ return function (target, _propertyKey, descriptor) {
13
14
  // Convert parameter configs to Parameter instances
14
15
  const parameters = (config.parameters || []).map((p) => new Models_1.Parameter(p.name, p.type, p.description, p.required));
15
16
  // Convert auth requirement configs to AuthRequirement instances
16
17
  const authRequirements = (config.authRequirements || []).map((a) => new Models_1.AuthRequirement(a.provider, a.scopeBundle, a.required));
18
+ const originalMethod = descriptor.value;
19
+ const boundHandler = function (params, authData) {
20
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
21
+ const instance = new target.constructor();
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
23
+ return originalMethod.call(instance, params, authData);
24
+ };
17
25
  // Immediately register with global ToolsService
18
- Service_1.toolsService.registerTool(config.name, config.description, descriptor.value, parameters, config.endpoint, authRequirements);
26
+ Service_1.toolsService.registerTool(config.name, config.description, boundHandler, parameters, config.endpoint, authRequirements);
19
27
  };
20
28
  }
21
29
  /**
22
30
  * Decorator for registering interaction functions
23
31
  * Immediately registers the interaction with the global ToolsService
32
+ * The handler will have access to 'this' context when called
24
33
  */
25
34
  function interaction(config) {
26
- return function (_target, _propertyKey, descriptor) {
35
+ return function (target, _propertyKey, descriptor) {
36
+ const originalMethod = descriptor.value;
37
+ const boundHandler = function (data, authData) {
38
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
39
+ const instance = new target.constructor();
40
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
41
+ return originalMethod.call(instance, data, authData);
42
+ };
27
43
  // Immediately register with global ToolsService
28
- Service_1.toolsService.registerInteraction(config.name, descriptor.value, config.endpoint);
44
+ Service_1.toolsService.registerInteraction(config.name, boundHandler, config.endpoint);
29
45
  };
30
46
  }
31
47
  //# sourceMappingURL=Decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decorator.js","sourceRoot":"","sources":["../../src/decorator/Decorator.ts"],"names":[],"mappings":";;AA6CA,oBAsBC;AAMD,kCASC;AAlFD,4CAA4E;AAC5E,gDAAkD;AAwClD;;;GAGG;AACH,SAAgB,IAAI,CAAC,MAAkB;IACrC,OAAO,UAAS,OAAY,EAAE,YAAoB,EAAE,UAA8B;QAChF,mDAAmD;QACnD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,IAAI,kBAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CACzD,CAAC;QAEF,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE,IAAI,wBAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAC3D,CAAC;QAEF,gDAAgD;QAChD,sBAAY,CAAC,YAAY,CACvB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,UAAU,CAAC,KAAK,EAChB,UAAU,EACV,MAAM,CAAC,QAAQ,EACf,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,MAAyB;IACnD,OAAO,UAAS,OAAY,EAAE,YAAoB,EAAE,UAA8B;QAChF,gDAAgD;QAChD,sBAAY,CAAC,mBAAmB,CAC9B,MAAM,CAAC,IAAI,EACX,UAAU,CAAC,KAAK,EAChB,MAAM,CAAC,QAAQ,CAChB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"Decorator.js","sourceRoot":"","sources":["../../src/decorator/Decorator.ts"],"names":[],"mappings":";;AA8CA,oBA+BC;AAOD,kCAkBC;AAtGD,4CAA4E;AAC5E,gDAAkD;AAwClD;;;;GAIG;AACH,SAAgB,IAAI,CAAC,MAAkB;IACrC,OAAO,UAAS,MAAW,EAAE,YAAoB,EAAE,UAA8B;QAC/E,mDAAmD;QACnD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACrD,IAAI,kBAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CACzD,CAAC;QAEF,gEAAgE;QAChE,MAAM,gBAAgB,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjE,IAAI,wBAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAC3D,CAAC;QAEF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,MAAM,YAAY,GAAG,UAAS,MAAW,EAAE,QAAa;YACtD,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1C,6DAA6D;YAC7D,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC,CAAC;QAEF,gDAAgD;QAChD,sBAAY,CAAC,YAAY,CACvB,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,WAAW,EAClB,YAAY,EACZ,UAAU,EACV,MAAM,CAAC,QAAQ,EACf,gBAAgB,CACjB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,MAAyB;IACnD,OAAO,UAAS,MAAW,EAAE,YAAoB,EAAE,UAA8B;QAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,MAAM,YAAY,GAAG,UAAS,IAAS,EAAE,QAAc;YACrD,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC1C,6DAA6D;YAC7D,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,gDAAgD;QAChD,sBAAY,CAAC,mBAAmB,CAC9B,MAAM,CAAC,IAAI,EACX,YAAY,EACZ,MAAM,CAAC,QAAQ,CAChB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -414,5 +414,59 @@ describe('Decorators', () => {
414
414
  );
415
415
  });
416
416
  });
417
+ describe('handler instance context', () => {
418
+ it('should allow tool handler to call class methods', async () => {
419
+ class TestClass {
420
+ getValue() {
421
+ return 'class-method-called';
422
+ }
423
+ async instanceMethodTest(_params) {
424
+ return { result: this.getValue() };
425
+ }
426
+ }
427
+ __decorate([
428
+ (0, Decorator_1.tool)({
429
+ name: 'instanceMethodTest',
430
+ description: 'Test calling class methods',
431
+ parameters: [],
432
+ endpoint: '/instance-method-test'
433
+ })
434
+ ], TestClass.prototype, "instanceMethodTest", null);
435
+ // Get the registered handler
436
+ const mockedRegisterTool = jest.mocked(Service_1.toolsService.registerTool);
437
+ const registerToolCall = mockedRegisterTool.mock.calls.find((call) => call[0] === 'instanceMethodTest');
438
+ const registeredHandler = registerToolCall[2];
439
+ // Call the handler
440
+ const result = await registeredHandler({}, {});
441
+ // Should be able to call class methods through 'this'
442
+ expect(result.result).toBe('class-method-called');
443
+ expect(TestClass).toBeDefined();
444
+ });
445
+ it('should allow interaction handler to call class methods', async () => {
446
+ class TestClass {
447
+ processData() {
448
+ return 'interaction-processed';
449
+ }
450
+ async instanceInteractionTest(_data) {
451
+ return { message: this.processData() };
452
+ }
453
+ }
454
+ __decorate([
455
+ (0, Decorator_1.interaction)({
456
+ name: 'instanceInteractionTest',
457
+ endpoint: '/instance-interaction-test'
458
+ })
459
+ ], TestClass.prototype, "instanceInteractionTest", null);
460
+ // Get the registered handler
461
+ const mockedRegisterInteraction = jest.mocked(Service_1.toolsService.registerInteraction);
462
+ const registerInteractionCall = mockedRegisterInteraction.mock.calls.find((call) => call[0] === 'instanceInteractionTest');
463
+ const registeredHandler = registerInteractionCall[1];
464
+ // Call the handler
465
+ const result = await registeredHandler({});
466
+ // Should be able to call class methods through 'this'
467
+ expect(result.message).toBe('interaction-processed');
468
+ expect(TestClass).toBeDefined();
469
+ });
470
+ });
417
471
  });
418
472
  //# sourceMappingURL=Decorator.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decorator.test.js","sourceRoot":"","sources":["../../src/decorator/Decorator.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Decorator.test.js","sourceRoot":"","sources":["../../src/decorator/Decorator.test.ts"],"names":[],"mappings":"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"}
@@ -10,15 +10,6 @@ export declare abstract class ToolFunction extends Function {
10
10
  * @returns Response as the HTTP response
11
11
  */
12
12
  perform(): Promise<Response>;
13
- /**
14
- * Validates the bearer token for authorization.
15
- *
16
- * This method provides a default implementation that accepts all tokens.
17
- * Subclasses can override this method to implement custom bearer token validation logic.
18
- *
19
- * @param _bearerToken - The bearer token extracted from the Authorization header
20
- * @returns true if the token is valid and the request should proceed, false to return 403 Forbidden
21
- */
22
- protected validateBearerToken(_bearerToken: string): boolean;
13
+ protected abstract validateBearerToken(bearerToken: string): boolean;
23
14
  }
24
15
  //# sourceMappingURL=ToolFunction.d.ts.map
@@ -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;IASzC;;;;;;;;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;;;;OAIG;IACU,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;IASzC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CACrE"}
@@ -20,18 +20,6 @@ class ToolFunction extends app_sdk_1.Function {
20
20
  }
21
21
  return Service_1.toolsService.processRequest(this.request);
22
22
  }
23
- /**
24
- * Validates the bearer token for authorization.
25
- *
26
- * This method provides a default implementation that accepts all tokens.
27
- * Subclasses can override this method to implement custom bearer token validation logic.
28
- *
29
- * @param _bearerToken - The bearer token extracted from the Authorization header
30
- * @returns true if the token is valid and the request should proceed, false to return 403 Forbidden
31
- */
32
- validateBearerToken(_bearerToken) {
33
- return true;
34
- }
35
23
  }
36
24
  exports.ToolFunction = ToolFunction;
37
25
  //# sourceMappingURL=ToolFunction.js.map
@@ -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,OAAO,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;OAQG;IACO,mBAAmB,CAAC,YAAoB;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA5BD,oCA4BC"}
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,OAAO,sBAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CAGF;AAjBD,oCAiBC"}
@@ -34,10 +34,10 @@ class TestToolFunction extends ToolFunction_1.ToolFunction {
34
34
  super(request || {}); // Pass the request parameter properly
35
35
  // Set the request directly without defaulting to empty object
36
36
  this.request = request;
37
- // Create a mock implementation to override the default method
37
+ // Create a mock implementation of the abstract method
38
38
  this.mockValidateBearerToken = jest.fn().mockReturnValue(true);
39
39
  }
40
- // Override the concrete method with mock implementation for testing
40
+ // Implement the abstract method
41
41
  validateBearerToken(bearerToken) {
42
42
  return this.mockValidateBearerToken(bearerToken);
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,gDAAkD;AAClD,+CAA6C;AAE7C,wBAAwB;AACxB,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,YAAY,EAAE;QACZ,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE;QACzB,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;KAC9B;CACF,CAAC,CAAC,CAAC;AAEJ,gEAAgE;AAChE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,QAAQ,EAAE;QACE,OAAO,CAAM;QACvB,YAAmB,KAAc;YAC/B,wDAAwD;YACxD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;KACF;IACD,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACjD,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,+CAA+C;AAC/C,MAAM,gBAAiB,SAAQ,2BAAY;IACjC,uBAAuB,CAAkD;IAEjF,YAAmB,OAAa;QAC9B,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,sCAAsC;QAC5D,8DAA8D;QAC7D,IAAY,CAAC,OAAO,GAAG,OAAO,CAAC;QAEhC,8DAA8D;QAC9D,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED,oEAAoE;IAC1D,mBAAmB,CAAC,WAAmB;QAC/C,OAAO,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,iDAAiD;IAC1C,UAAU;QACf,OAAQ,IAAY,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,0BAA0B;QAC/B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,WAAgB,CAAC;IACrB,IAAI,YAAsB,CAAC;IAC3B,IAAI,YAA8B,CAAC;IACnC,IAAI,kBAA2E,CAAC;IAChF,IAAI,sBAAmF,CAAC;IAExF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,wBAAwB;QACxB,WAAW,GAAG;YACZ,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,OAAO;SACd,CAAC;QACF,YAAY,GAAG,EAAc,CAAC;QAE9B,kBAAkB;QAClB,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAY,CAAC,cAAc,CAAC,CAAC;QAC9D,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAY,CAAC,kBAAkB,CAAC,CAAC;QAEtE,uBAAuB;QACvB,YAAY,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,UAAU;YACV,MAAM,WAAW,GAAG,iBAAiB,CAAC;YACtC,sBAAsB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACpD,YAAY,CAAC,0BAA0B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnD,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,SAAS;YACT,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpF,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;YAC9E,UAAU;YACV,MAAM,WAAW,GAAG,mBAAmB,CAAC;YACxC,sBAAsB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACpD,YAAY,CAAC,0BAA0B,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEjE,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,SAAS;YACT,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpF,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,kBAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,8EAA8E;YAC9E,MAAM,YAAY,GAAG,uFAAuF;gBAC1G,wEAAwE,CAAC;YAC3E,sBAAsB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACrD,YAAY,CAAC,0BAA0B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnD,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,SAAS;YACT,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACrF,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACvE,UAAU;YACV,MAAM,WAAW,GAAG,iBAAiB,CAAC;YACtC,sBAAsB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACpD,YAAY,CAAC,0BAA0B,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAChE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,eAAe;YACf,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YAC/E,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpF,MAAM,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,UAAU;YACV,MAAM,WAAW,GAAG,YAAY,CAAC;YACjC,sBAAsB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACpD,YAAY,CAAC,0BAA0B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnD,MAAM;YACN,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE7B,SAAS;YACT,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC3E,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,UAAU;YACV,MAAM,WAAW,GAAG,YAAY,CAAC;YACjC,sBAAsB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACpD,YAAY,CAAC,0BAA0B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAChE,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnD,MAAM;YACN,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE7B,SAAS;YACT,MAAM,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,UAAU;YACV,sBAAsB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAClD,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnD,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,SAAS;YACT,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACzE,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YACxE,UAAU;YACV,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC3C,kBAAkB,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAEnD,MAAM;YACN,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;YAE5C,SAAS;YACT,MAAM,CAAC,sBAAsB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACzE,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;YAC3C,SAAS;YACT,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,2BAAY,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,SAAS;YACT,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ToolFunction.test.js","sourceRoot":"","sources":["../../src/function/ToolFunction.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optimizely-opal/opal-tool-ocp-sdk",
3
- "version": "0.0.0-beta.2",
3
+ "version": "0.0.0-dev.2",
4
4
  "description": "OCP SDK for Opal tool",
5
5
  "scripts": {
6
6
  "build": "yarn tsc",
@@ -519,5 +519,67 @@ describe('Decorators', () => {
519
519
  );
520
520
  });
521
521
  });
522
+
523
+ describe('handler instance context', () => {
524
+ it('should allow tool handler to call class methods', async () => {
525
+ class TestClass {
526
+ private getValue() {
527
+ return 'class-method-called';
528
+ }
529
+
530
+ @tool({
531
+ name: 'instanceMethodTest',
532
+ description: 'Test calling class methods',
533
+ parameters: [],
534
+ endpoint: '/instance-method-test'
535
+ })
536
+ public async instanceMethodTest(_params: any) {
537
+ return { result: this.getValue() };
538
+ }
539
+ }
540
+
541
+ // Get the registered handler
542
+ const mockedRegisterTool = jest.mocked(toolsService.registerTool);
543
+ const registerToolCall = mockedRegisterTool.mock.calls.find((call) => call[0] === 'instanceMethodTest');
544
+ const registeredHandler = registerToolCall![2];
545
+
546
+ // Call the handler
547
+ const result = await registeredHandler({}, {});
548
+
549
+ // Should be able to call class methods through 'this'
550
+ expect((result as any).result).toBe('class-method-called');
551
+ expect(TestClass).toBeDefined();
552
+ });
553
+
554
+ it('should allow interaction handler to call class methods', async () => {
555
+ class TestClass {
556
+ private processData() {
557
+ return 'interaction-processed';
558
+ }
559
+
560
+ @interaction({
561
+ name: 'instanceInteractionTest',
562
+ endpoint: '/instance-interaction-test'
563
+ })
564
+ public async instanceInteractionTest(_data: any) {
565
+ return { message: this.processData() };
566
+ }
567
+ }
568
+
569
+ // Get the registered handler
570
+ const mockedRegisterInteraction = jest.mocked(toolsService.registerInteraction);
571
+ const registerInteractionCall = mockedRegisterInteraction.mock.calls.find(
572
+ (call) => call[0] === 'instanceInteractionTest'
573
+ );
574
+ const registeredHandler = registerInteractionCall![1];
575
+
576
+ // Call the handler
577
+ const result = await registeredHandler({});
578
+
579
+ // Should be able to call class methods through 'this'
580
+ expect((result as any).message).toBe('interaction-processed');
581
+ expect(TestClass).toBeDefined();
582
+ });
583
+ });
522
584
  });
523
585
 
@@ -42,9 +42,10 @@ export interface InteractionConfig {
42
42
  /**
43
43
  * Decorator for registering tool functions
44
44
  * Immediately registers the tool with the global ToolsService
45
+ * The handler will have access to 'this' context when called
45
46
  */
46
47
  export function tool(config: ToolConfig) {
47
- return function(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
48
+ return function(target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
48
49
  // Convert parameter configs to Parameter instances
49
50
  const parameters = (config.parameters || []).map((p) =>
50
51
  new Parameter(p.name, p.type, p.description, p.required)
@@ -55,11 +56,20 @@ export function tool(config: ToolConfig) {
55
56
  new AuthRequirement(a.provider, a.scopeBundle, a.required)
56
57
  );
57
58
 
59
+ const originalMethod = descriptor.value;
60
+
61
+ const boundHandler = function(params: any, authData: any) {
62
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
63
+ const instance = new target.constructor();
64
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
65
+ return originalMethod.call(instance, params, authData);
66
+ };
67
+
58
68
  // Immediately register with global ToolsService
59
69
  toolsService.registerTool(
60
70
  config.name,
61
71
  config.description,
62
- descriptor.value,
72
+ boundHandler,
63
73
  parameters,
64
74
  config.endpoint,
65
75
  authRequirements
@@ -70,13 +80,23 @@ export function tool(config: ToolConfig) {
70
80
  /**
71
81
  * Decorator for registering interaction functions
72
82
  * Immediately registers the interaction with the global ToolsService
83
+ * The handler will have access to 'this' context when called
73
84
  */
74
85
  export function interaction(config: InteractionConfig) {
75
- return function(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
86
+ return function(target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
87
+ const originalMethod = descriptor.value;
88
+
89
+ const boundHandler = function(data: any, authData?: any) {
90
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
91
+ const instance = new target.constructor();
92
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
93
+ return originalMethod.call(instance, data, authData);
94
+ };
95
+
76
96
  // Immediately register with global ToolsService
77
97
  toolsService.registerInteraction(
78
98
  config.name,
79
- descriptor.value,
99
+ boundHandler,
80
100
  config.endpoint
81
101
  );
82
102
  };
@@ -37,11 +37,11 @@ class TestToolFunction extends ToolFunction {
37
37
  // Set the request directly without defaulting to empty object
38
38
  (this as any).request = request;
39
39
 
40
- // Create a mock implementation to override the default method
40
+ // Create a mock implementation of the abstract method
41
41
  this.mockValidateBearerToken = jest.fn().mockReturnValue(true);
42
42
  }
43
43
 
44
- // Override the concrete method with mock implementation for testing
44
+ // Implement the abstract method
45
45
  protected validateBearerToken(bearerToken: string): boolean {
46
46
  return this.mockValidateBearerToken(bearerToken);
47
47
  }
@@ -21,16 +21,5 @@ export abstract class ToolFunction extends Function {
21
21
  return toolsService.processRequest(this.request);
22
22
  }
23
23
 
24
- /**
25
- * Validates the bearer token for authorization.
26
- *
27
- * This method provides a default implementation that accepts all tokens.
28
- * Subclasses can override this method to implement custom bearer token validation logic.
29
- *
30
- * @param _bearerToken - The bearer token extracted from the Authorization header
31
- * @returns true if the token is valid and the request should proceed, false to return 403 Forbidden
32
- */
33
- protected validateBearerToken(_bearerToken: string): boolean {
34
- return true;
35
- }
24
+ protected abstract validateBearerToken(bearerToken: string): boolean;
36
25
  }