@kanian77/choux 0.2.7 → 0.2.8

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.
Files changed (61) hide show
  1. package/README.md +62 -16
  2. package/dist/core/ChouxFacade.d.ts +5 -5
  3. package/dist/core/ChouxFacade.d.ts.map +1 -1
  4. package/dist/core/ChouxFacade.js +4 -4
  5. package/dist/core/ChouxFacade.js.map +1 -1
  6. package/dist/core/HookRegistry.d.ts +5 -5
  7. package/dist/core/HookRegistry.d.ts.map +1 -1
  8. package/dist/core/HookRegistry.js +11 -11
  9. package/dist/core/HookRegistry.js.map +1 -1
  10. package/dist/core/HookRegistry.spec.js +21 -21
  11. package/dist/core/HookRegistry.spec.js.map +1 -1
  12. package/dist/core/PluginManager.d.ts +1 -0
  13. package/dist/core/PluginManager.d.ts.map +1 -1
  14. package/dist/core/PluginManager.js +12 -5
  15. package/dist/core/PluginManager.js.map +1 -1
  16. package/dist/core/RuntimePluginLoader.d.ts +9 -0
  17. package/dist/core/RuntimePluginLoader.d.ts.map +1 -0
  18. package/dist/core/RuntimePluginLoader.js +53 -0
  19. package/dist/core/RuntimePluginLoader.js.map +1 -0
  20. package/dist/core/index.d.ts +2 -0
  21. package/dist/core/index.d.ts.map +1 -1
  22. package/dist/core/index.js +2 -0
  23. package/dist/core/index.js.map +1 -1
  24. package/dist/lib/functions/addHookMetadata.d.ts.map +1 -1
  25. package/dist/lib/functions/addHookMetadata.js +1 -0
  26. package/dist/lib/functions/addHookMetadata.js.map +1 -1
  27. package/dist/lib/functions/index.d.ts +0 -1
  28. package/dist/lib/functions/index.d.ts.map +1 -1
  29. package/dist/lib/functions/index.js +0 -1
  30. package/dist/lib/functions/index.js.map +1 -1
  31. package/dist/lib/functions/registerHookHandler.d.ts +1 -1
  32. package/dist/lib/functions/registerHookHandler.d.ts.map +1 -1
  33. package/dist/lib/functions/registerHookHandler.js +2 -2
  34. package/dist/lib/functions/registerHookHandler.js.map +1 -1
  35. package/dist/lib/functions/registerInstanceHooks.d.ts.map +1 -1
  36. package/dist/lib/functions/registerInstanceHooks.js +2 -2
  37. package/dist/lib/functions/registerInstanceHooks.js.map +1 -1
  38. package/dist/lib/functions/registerRequestHookHandler.d.ts +1 -1
  39. package/dist/lib/functions/registerRequestHookHandler.d.ts.map +1 -1
  40. package/dist/lib/functions/registerRequestHookHandler.js +2 -2
  41. package/dist/lib/functions/registerRequestHookHandler.js.map +1 -1
  42. package/dist/lib/functions/registerStaticHooks.d.ts.map +1 -1
  43. package/dist/lib/functions/registerStaticHooks.js +2 -2
  44. package/dist/lib/functions/registerStaticHooks.js.map +1 -1
  45. package/dist/lib/test-related/plugins/plugin-a/module.d.ts.map +1 -1
  46. package/dist/lib/test-related/plugins/plugin-a/module.js +1 -1
  47. package/dist/lib/test-related/plugins/plugin-a/module.js.map +1 -1
  48. package/dist/lib/test-related/plugins/plugin-b/module.d.ts.map +1 -1
  49. package/dist/lib/test-related/plugins/plugin-b/module.js +1 -1
  50. package/dist/lib/test-related/plugins/plugin-b/module.js.map +1 -1
  51. package/dist/lib/types/IHookMetadata.d.ts +1 -0
  52. package/dist/lib/types/IHookMetadata.d.ts.map +1 -1
  53. package/dist/lib/types/IHookRegistry.d.ts +14 -6
  54. package/dist/lib/types/IHookRegistry.d.ts.map +1 -1
  55. package/dist/lib/types/PluginModule.d.ts +1 -1
  56. package/dist/lib/types/PluginModule.d.ts.map +1 -1
  57. package/package.json +3 -2
  58. package/dist/lib/functions/registerHooksForInstance.d.ts +0 -2
  59. package/dist/lib/functions/registerHooksForInstance.d.ts.map +0 -1
  60. package/dist/lib/functions/registerHooksForInstance.js +0 -22
  61. package/dist/lib/functions/registerHooksForInstance.js.map +0 -1
package/README.md CHANGED
@@ -17,23 +17,37 @@ Plugins are implemented as `PluginModule` classes, which extend the base `Module
17
17
  ### Plugin Loading & Management
18
18
 
19
19
  - **PluginManager (`src/core/PluginManager.ts`)**: Manages the initialization, lifecycle, and shutdown of plugins. It provides methods to load individual plugins, get loaded plugin instances, and properly shutdown plugins.
20
- - **ChouxModule (`src/core/ChouxModule.ts`)**: The main entry point module that provides the core services (PluginManager and HookRegistry). Must be imported and bootstrapped in your application.
20
+ - **ChouxFacade (`src/core/ChouxFacade.ts`)**: A unified facade that combines PluginManager and HookRegistry functionality. This is the recommended way to interact with Choux as it provides a single interface for all plugin and hook operations.
21
+ - **ChouxModule (`src/core/ChouxModule.ts`)**: The main entry point module that provides the core services (PluginManager, HookRegistry, and ChouxFacade). Must be imported and bootstrapped in your application.
21
22
 
22
23
  ### Dependency Injection
23
24
 
24
- All plugins and core services use the DI system from `@kanian77/tject`. Tokens (see `src/core/tokens.ts`) are used to register and inject services, including plugin services and the hook registry.
25
+ All plugins and core services use the DI system from `@kanian77/tject`. Tokens (see `src/lib/types/tokens.ts`) are used to register and inject services. Core tokens are defined as Symbols:
26
+
27
+ - `PLUGIN_MANAGER_TOKEN`: For accessing the PluginManager
28
+ - `HOOK_REGISTRY_TOKEN`: For accessing the HookRegistry
29
+ - `CHOUX_FACADE_TOKEN`: For accessing the ChouxFacade (recommended)
25
30
 
26
31
  ### Hooks & Events
27
32
 
28
33
  - **HookRegistry (`src/core/HookRegistry.ts`)**: Central registry for registering, triggering, and managing hooks/events. Plugins can register handlers for lifecycle or custom hooks, and trigger hooks to communicate with other plugins.
29
- - **Lifecycle Hooks**: Standard hooks for plugin load/init/destroy and application start/shutdown (see `LIFECYCLE_HOOKS`).
34
+ - **Lifecycle Hooks**: Standard hooks for plugin load/init/destroy and application start/shutdown. Access them via the `LIFECYCLE_HOOKS` constant:
35
+ - `APPLICATION_START`: 'core:application-start'
36
+ - `BEFORE_PLUGIN_LOAD`: 'core:before-plugin-load'
37
+ - `AFTER_PLUGIN_LOAD`: 'core:after-plugin-load'
38
+ - `BEFORE_PLUGIN_INIT`: 'core:before-plugin-init'
39
+ - `AFTER_PLUGIN_INIT`: 'core:after-plugin-init'
40
+ - `BEFORE_PLUGIN_DESTROY`: 'core:before-plugin-destroy'
41
+ - `AFTER_PLUGIN_DESTROY`: 'core:after-plugin-destroy'
42
+ - `APPLICATION_SHUTDOWN`: 'core:application-shutdown'
30
43
  - **Custom Hooks**: Plugins can define and trigger their own hooks for extensibility.
31
44
 
32
45
  ### Decorators & Utilities
33
46
 
34
- - **Hook Decorators**: Two decorators work together to enable hook functionality:
47
+ - **Hook Decorators**: Three decorators work together to enable hook functionality:
35
48
  - `@EnableHooks`: Class-level decorator that must be applied to any class using hook decorators
36
- - `@Hook(hookName)`: Method decorator for registering hook handlers in classes
49
+ - `@Hook(hookName)`: Method decorator for registering standard hook handlers in classes
50
+ - `@RequestHook(hookName)`: Method decorator for registering request hooks that return values (only one handler per hook)
37
51
  - **Function Utilities (`src/lib/functions/`)**: Helper functions for hook registration and plugin management.
38
52
  - **Types (`src/lib/types/`)**: Shared interfaces and type definitions for plugins, hook registry, plugin manager, and metadata.
39
53
 
@@ -46,18 +60,22 @@ To use Choux in your application:
46
60
  1. Import and bootstrap the ChouxModule:
47
61
 
48
62
  ```typescript
49
- import { bootstrap } from '@kanian77/tject';
50
- import { ChouxModule } from '@choux/core';
63
+ import { bootstrap, inject } from '@kanian77/tject';
64
+ import {
65
+ ChouxModule,
66
+ CHOUX_FACADE_TOKEN,
67
+ type IChouxFacade,
68
+ } from '@kanian77/choux';
51
69
  import { YourPluginModule } from './plugins/your-plugin/module';
52
70
 
53
71
  // Bootstrap the core module
54
72
  bootstrap(ChouxModule);
55
73
 
56
- // Get plugin manager
57
- const pluginManager = inject<PluginManager>(PLUGIN_MANAGER_TOKEN);
74
+ // Get the Choux facade (recommended approach)
75
+ const choux = inject<IChouxFacade>(CHOUX_FACADE_TOKEN);
58
76
 
59
77
  // Initialize your plugins
60
- await pluginManager.initializePlugins([YourPluginModule]);
78
+ await choux.initializePlugins([YourPluginModule]);
61
79
  ```
62
80
 
63
81
  ### Creating a Plugin
@@ -65,10 +83,12 @@ await pluginManager.initializePlugins([YourPluginModule]);
65
83
  Create a new plugin by extending the Plugin class and defining it as a PluginModule:
66
84
 
67
85
  ```typescript
68
- import { Plugin, PluginModule, EnableHook, Hook } from '@kanian77/choux';
86
+ import { Plugin, PluginModule, EnableHooks, Hook } from '@kanian77/choux';
69
87
  import { Service } from '@kanian77/tject';
70
88
 
71
- export const YOUR_PLUGIN_TOKEN = 'YOUR_PLUGIN_TOKEN';
89
+ // Define a unique symbol token for your plugin
90
+ export const YOUR_PLUGIN_TOKEN = Symbol('YOUR_PLUGIN');
91
+
72
92
  @Service({ token: YOUR_PLUGIN_TOKEN })
73
93
  @EnableHooks
74
94
  class YourPlugin extends Plugin {
@@ -89,7 +109,6 @@ class YourPlugin extends Plugin {
89
109
  }
90
110
  }
91
111
 
92
- // Enable hook processing for the class
93
112
  export const YourPluginModule = new PluginModule({
94
113
  token: YOUR_PLUGIN_TOKEN,
95
114
  providers: [
@@ -115,12 +134,39 @@ const yourService = inject<IYourService>(YOUR_SERVICE_TOKEN);
115
134
  yourService.doSomething();
116
135
  ```
117
136
 
137
+ ### Using the ChouxFacade
138
+
139
+ The `ChouxFacade` provides a unified interface for both plugin management and hook operations:
140
+
141
+ ```typescript
142
+ import { inject } from '@kanian77/tject';
143
+ import { CHOUX_FACADE_TOKEN, type ChouxFacade } from '@kanian77/choux';
144
+
145
+ const choux = inject<ChouxFacade>(CHOUX_FACADE_TOKEN);
146
+
147
+ // Plugin management
148
+ await choux.initializePlugins([PluginModule1, PluginModule2]);
149
+ const loadedPlugin = choux.getPlugin('plugin-name'); // Returns { plugin: PluginInstance, metadata: PluginMetadata }
150
+ const allPlugins = choux.getAllPlugins();
151
+ await choux.shutdown();
152
+
153
+ // Hook operations - trigger events
154
+ await choux.trigger('custom:event', eventData);
155
+
156
+ // Hook operations - request values
157
+ const config = await choux.request<ConfigType>('config:get');
158
+
159
+ // Register hooks programmatically
160
+ choux.register('custom:event', target, handlerFunction);
161
+ choux.registerRequest('custom:query', target, queryFunction);
162
+ ```
163
+
118
164
  ## Directory Overview
119
165
 
120
- - `src/core/`: Core plugin system (Plugin, PluginManager, HookRegistry, tokens, ChouxModule)
121
- - `src/decorators/`: Hook decorator and registration utilities
166
+ - `src/core/`: Core plugin system (Plugin, PluginManager, HookRegistry, ChouxFacade, ChouxModule)
167
+ - `src/decorators/`: Hook decorators (@EnableHooks, @Hook, @RequestHook) and registration utilities
122
168
  - `src/lib/functions/`: Helper functions for hooks and plugins
123
- - `src/lib/types/`: Shared type definitions
169
+ - `src/lib/types/`: Shared type definitions and tokens
124
170
 
125
171
  ## License
126
172
 
@@ -1,4 +1,4 @@
1
- import { HookFn, LoadedPlugin, PluginModule, RequestHookFn } from '../lib/types';
1
+ import { HookFn, HookMapEntry, LoadedPlugin, PluginModule, RequestHookFn, RequestHookMapEntry } from '../lib/types';
2
2
  import { IChouxFacade } from './IChouxFacade';
3
3
  export declare class ChouxFacade implements IChouxFacade {
4
4
  private readonly pluginManager;
@@ -8,14 +8,14 @@ export declare class ChouxFacade implements IChouxFacade {
8
8
  shutdown(): Promise<void>;
9
9
  getPlugin(name: string): LoadedPlugin | undefined;
10
10
  getAllPlugins(): LoadedPlugin[];
11
- register(name: string, fn: HookFn): void;
11
+ register(name: string, target: any, fn: HookFn): void;
12
12
  trigger(name: string, ...args: any[]): Promise<void>;
13
13
  request<T = any>(name: string, ...args: any[]): Promise<T | undefined>;
14
- registerRequest(name: string, fn: RequestHookFn): void;
14
+ registerRequest(name: string, target: any, fn: RequestHookFn): void;
15
15
  unregister(name: string, fn?: HookFn): void;
16
16
  unregisterRequest(name: string): void;
17
- getHooks(name: string): HookFn[];
18
- getRequestHook(name: string): RequestHookFn | undefined;
17
+ getHooks(name: string): HookMapEntry[];
18
+ getRequestHook(name: string): RequestHookMapEntry | undefined;
19
19
  clear(): void;
20
20
  }
21
21
  //# sourceMappingURL=ChouxFacade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChouxFacade.d.ts","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,MAAM,EAGN,YAAY,EAEZ,YAAY,EACZ,aAAa,EACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,WAAY,YAAW,YAAY;IAE9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAGxC,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAInE,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,aAAa,IAAI,YAAY,EAAE;IAK/B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAIlC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI5E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAItD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIvD,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"ChouxFacade.d.ts","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,MAAM,EACN,YAAY,EAGZ,YAAY,EAEZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBACa,WAAY,YAAW,YAAY;IAE9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiB;IAGxC,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAInE,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,aAAa,IAAI,YAAY,EAAE;IAK/B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAI/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAI5E,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAInE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAItC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI7D,KAAK,IAAI,IAAI;CAGd"}
@@ -82,8 +82,8 @@ let ChouxFacade = (() => {
82
82
  return this.pluginManager.getAllPlugins();
83
83
  }
84
84
  // IHookRegistry methods
85
- register(name, fn) {
86
- return this.hookRegistry.register(name, fn);
85
+ register(name, target, fn) {
86
+ return this.hookRegistry.register(name, target, fn);
87
87
  }
88
88
  trigger(name, ...args) {
89
89
  return __awaiter(this, void 0, void 0, function* () {
@@ -95,8 +95,8 @@ let ChouxFacade = (() => {
95
95
  return yield this.hookRegistry.request(name, ...args);
96
96
  });
97
97
  }
98
- registerRequest(name, fn) {
99
- this.hookRegistry.registerRequest(name, fn);
98
+ registerRequest(name, target, fn) {
99
+ this.hookRegistry.registerRequest(name, target, fn);
100
100
  }
101
101
  unregister(name, fn) {
102
102
  return this.hookRegistry.unregister(name, fn);
@@ -1 +1 @@
1
- {"version":3,"file":"ChouxFacade.js","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAKnB,oBAAoB,GAGrB,MAAM,cAAc,CAAC;IAIT,WAAW;4BADvB,OAAO,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;;;;;;;;;;;QAO7D,yBAAyB;QACnB,gBAAgB,CAAC,YAA0B;;gBAC/C,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACjE,CAAC;SAAA;QAEK,iBAAiB,CAAC,aAA6B;;gBACnD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACnE,CAAC;SAAA;QAEK,QAAQ;;gBACZ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC7C,CAAC;SAAA;QAED,SAAS,CAAC,IAAY;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,aAAa;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC5C,CAAC;QAED,wBAAwB;QACxB,QAAQ,CAAC,IAAY,EAAE,EAAU;YAC/B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;QAEK,OAAO,CAAC,IAAY,EAAE,GAAG,IAAW;;gBACxC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;SAAA;QAEK,OAAO,CAAU,IAAY,EAAE,GAAG,IAAW;;gBACjD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,CAAC;SAAA;QAED,eAAe,CAAC,IAAY,EAAE,EAAiB;YAC7C,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,UAAU,CAAC,IAAY,EAAE,EAAW;YAClC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,iBAAiB,CAAC,IAAY;YAC5B,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,cAAc,CAAC,IAAY;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;;YA5DgB;;;;;eAA+B;YAE/B;;;;;eAA6B;;;;;;;qCAH7C,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;oCAEvC,MAAM,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QADvC,yLAAiB,aAAa,6BAAb,aAAa,qGAAkB;QAEhD,sLAAiB,YAAY,6BAAZ,YAAY,mGAAiB;QAJhD,6KA+DC;;;QA/DY,uDAAW;;;;SAAX,WAAW"}
1
+ {"version":3,"file":"ChouxFacade.js","sourceRoot":"","sources":["../../src/core/ChouxFacade.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAMnB,oBAAoB,GAIrB,MAAM,cAAc,CAAC;IAIT,WAAW;4BADvB,OAAO,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;;;;;;;;;;;QAO7D,yBAAyB;QACnB,gBAAgB,CAAC,YAA0B;;gBAC/C,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YACjE,CAAC;SAAA;QAEK,iBAAiB,CAAC,aAA6B;;gBACnD,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACnE,CAAC;SAAA;QAEK,QAAQ;;gBACZ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC7C,CAAC;SAAA;QAED,SAAS,CAAC,IAAY;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,aAAa;YACX,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QAC5C,CAAC;QAED,wBAAwB;QACxB,QAAQ,CAAC,IAAY,EAAE,MAAW,EAAE,EAAU;YAC5C,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QAEK,OAAO,CAAC,IAAY,EAAE,GAAG,IAAW;;gBACxC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YACxD,CAAC;SAAA;QAEK,OAAO,CAAU,IAAY,EAAE,GAAG,IAAW;;gBACjD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAI,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YAC3D,CAAC;SAAA;QAED,eAAe,CAAC,IAAY,EAAE,MAAW,EAAE,EAAiB;YAC1D,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,UAAU,CAAC,IAAY,EAAE,EAAW;YAClC,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,iBAAiB,CAAC,IAAY;YAC5B,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,IAAY;YACnB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAED,cAAc,CAAC,IAAY;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC;QAED,KAAK;YACH,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;;YA5DgB;;;;;eAA+B;YAE/B;;;;;eAA6B;;;;;;;qCAH7C,MAAM,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;oCAEvC,MAAM,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;QADvC,yLAAiB,aAAa,6BAAb,aAAa,qGAAkB;QAEhD,sLAAiB,YAAY,6BAAZ,YAAY,mGAAiB;QAJhD,6KA+DC;;;QA/DY,uDAAW;;;;SAAX,WAAW"}
@@ -1,4 +1,4 @@
1
- import type { HookFn, IHookRegistry, RequestHookFn } from '../lib/types';
1
+ import type { HookFn, HookMapEntry, IHookRegistry, RequestHookFn, RequestHookMapEntry } from '../lib/types';
2
2
  /**
3
3
  * Registry for application hooks.
4
4
  */
@@ -10,13 +10,13 @@ export declare class HookRegistry implements IHookRegistry {
10
10
  * @param name The name of the hook to register the function for.
11
11
  * @param fn The hook handler function.
12
12
  */
13
- register(name: string, fn: HookFn): void;
13
+ register(name: string, target: any, fn: HookFn): void;
14
14
  /**
15
15
  * Register a hook handler.
16
16
  * @param name The name of the hook to register the function for.
17
17
  * @param fn The hook handler function.
18
18
  */
19
- registerRequest(name: string, fn: RequestHookFn): void;
19
+ registerRequest(name: string, target: any, fn: RequestHookFn): void;
20
20
  /**
21
21
  * Trigger a hook, calling all registered handlers.
22
22
  * @param name The name of the hook to trigger.
@@ -48,13 +48,13 @@ export declare class HookRegistry implements IHookRegistry {
48
48
  * @param name The name of the hook to retrieve handlers for.
49
49
  * @returns An array of hook handler functions.
50
50
  */
51
- getHooks(name: string): HookFn[];
51
+ getHooks(name: string): HookMapEntry[];
52
52
  /**
53
53
  * Get registered request handler for a specific request hook.
54
54
  * @param name The name of the hook to retrieve a handler for.
55
55
  * @returns A hook handler function or undefined.
56
56
  */
57
- getRequestHook(name: string): RequestHookFn | undefined;
57
+ getRequestHook(name: string): RequestHookMapEntry | undefined;
58
58
  /**
59
59
  * Clear all registered hooks.
60
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"HookRegistry.d.ts","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EAEN,aAAa,EACb,aAAa,EAEd,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxC;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAQtD;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkBzB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAW3C;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAIhC;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIvD;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAGD,eAAO,MAAM,eAAe;;;;;;;;;CASlB,CAAC"}
1
+ {"version":3,"file":"HookRegistry.d.ts","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EAEN,YAAY,EACZ,aAAa,EACb,aAAa,EAEb,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,qBACa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAKrD;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI;IAQnE;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D;;;;OAIG;IACU,OAAO,CAAC,CAAC,GAAG,GAAG,EAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAmBzB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAW3C;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAItC;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAI7D;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAGD,eAAO,MAAM,eAAe;;;;;;;;;CASlB,CAAC"}
@@ -75,21 +75,21 @@ let HookRegistry = (() => {
75
75
  * @param name The name of the hook to register the function for.
76
76
  * @param fn The hook handler function.
77
77
  */
78
- register(name, fn) {
78
+ register(name, target, fn) {
79
79
  const list = this.hooks.get(name) || [];
80
- this.hooks.set(name, [...list, fn]);
80
+ this.hooks.set(name, [...list, { target, fn }]);
81
81
  }
82
82
  /**
83
83
  * Register a hook handler.
84
84
  * @param name The name of the hook to register the function for.
85
85
  * @param fn The hook handler function.
86
86
  */
87
- registerRequest(name, fn) {
87
+ registerRequest(name, target, fn) {
88
88
  const handler = this.requestHooks.get(name) || undefined;
89
89
  if (this.requestHooks.has(name)) {
90
90
  console.warn('You are possibly overwritting a request hook.');
91
91
  }
92
- this.requestHooks.set(name, fn);
92
+ this.requestHooks.set(name, { target, fn });
93
93
  }
94
94
  /**
95
95
  * Trigger a hook, calling all registered handlers.
@@ -98,9 +98,9 @@ let HookRegistry = (() => {
98
98
  */
99
99
  trigger(name, ...args) {
100
100
  return __awaiter(this, void 0, void 0, function* () {
101
- const fns = this.hooks.get(name) || [];
102
- for (const fn of fns) {
103
- yield fn(...args);
101
+ const entries = this.hooks.get(name) || [];
102
+ for (const entry of entries) {
103
+ yield entry.fn.call(entry.target, ...args);
104
104
  }
105
105
  });
106
106
  }
@@ -111,14 +111,14 @@ let HookRegistry = (() => {
111
111
  */
112
112
  request(name, ...args) {
113
113
  return __awaiter(this, void 0, void 0, function* () {
114
- const handler = this.getRequestHook(name);
115
- if (!handler) {
114
+ const entry = this.getRequestHook(name);
115
+ if (!entry) {
116
116
  console.warn(`No handler registered for requested hook: ${name}`);
117
117
  return undefined;
118
118
  }
119
119
  // Execute the first handler and return its value
120
120
  try {
121
- const result = yield handler(...args);
121
+ const result = yield entry.fn.call(entry.target, ...args);
122
122
  return result;
123
123
  }
124
124
  catch (error) {
@@ -139,7 +139,7 @@ let HookRegistry = (() => {
139
139
  return;
140
140
  }
141
141
  const list = this.hooks.get(name) || [];
142
- const filtered = list.filter((registeredFn) => registeredFn !== fn);
142
+ const filtered = list.filter((entry) => entry.fn !== fn);
143
143
  this.hooks.set(name, filtered);
144
144
  }
145
145
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"HookRegistry.js","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HookRegistry.js","sourceRoot":"","sources":["../../src/core/HookRegistry.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ describe('HookRegistry', () => {
19
19
  const fn = () => {
20
20
  called = true;
21
21
  };
22
- registry.register('test:hook', fn);
22
+ registry.register('test:hook', {}, fn);
23
23
  yield registry.trigger('test:hook');
24
24
  expect(called).toBe(true);
25
25
  }));
@@ -30,7 +30,7 @@ describe('HookRegistry', () => {
30
30
  called = true;
31
31
  expect(payload).toEqual({ test: 'data' });
32
32
  };
33
- registry.register('test:hook', fn);
33
+ registry.register('test:hook', {}, fn);
34
34
  yield registry.trigger('test:hook', payload);
35
35
  expect(called).toBe(true);
36
36
  }));
@@ -39,7 +39,7 @@ describe('HookRegistry', () => {
39
39
  const fn = () => {
40
40
  called = true;
41
41
  };
42
- registry.register('test:hook', fn);
42
+ registry.register('test:hook', {}, fn);
43
43
  registry.unregister('test:hook', fn);
44
44
  yield registry.trigger('test:hook');
45
45
  expect(called).toBe(false);
@@ -49,7 +49,7 @@ describe('HookRegistry', () => {
49
49
  const fn = () => {
50
50
  called = true;
51
51
  };
52
- registry.register('test:hook', fn);
52
+ registry.register('test:hook', {}, fn);
53
53
  registry.unregister('test:hook');
54
54
  yield registry.trigger('test:hook');
55
55
  expect(called).toBe(false);
@@ -57,16 +57,16 @@ describe('HookRegistry', () => {
57
57
  it('getHooks returns all registered handlers', () => {
58
58
  const fn1 = () => { };
59
59
  const fn2 = () => { };
60
- registry.register('test:hook', fn1);
61
- registry.register('test:hook', fn2);
60
+ registry.register('test:hook', {}, fn1);
61
+ registry.register('test:hook', {}, fn2);
62
62
  const hooks = registry.getHooks('test:hook');
63
63
  expect(hooks.length).toBe(2);
64
- expect(hooks).toContain(fn1);
65
- expect(hooks).toContain(fn2);
64
+ expect(hooks.map((hook) => hook.fn)).toContain(fn1);
65
+ expect(hooks.map((hook) => hook.fn)).toContain(fn2);
66
66
  });
67
67
  it('clear removes all hooks', () => {
68
68
  const fn = () => { };
69
- registry.register('test:hook', fn);
69
+ registry.register('test:hook', {}, fn);
70
70
  registry.clear();
71
71
  expect(registry.getHooks('test:hook').length).toBe(0);
72
72
  });
@@ -78,8 +78,8 @@ describe('HookRegistry', () => {
78
78
  const fn2 = () => __awaiter(void 0, void 0, void 0, function* () {
79
79
  result += 'b';
80
80
  });
81
- registry.register('test:hook', fn1);
82
- registry.register('test:hook', fn2);
81
+ registry.register('test:hook', {}, fn1);
82
+ registry.register('test:hook', {}, fn2);
83
83
  yield registry.trigger('test:hook');
84
84
  expect(result).toBe('ab');
85
85
  }));
@@ -87,7 +87,7 @@ describe('HookRegistry', () => {
87
87
  describe('HookRegistry - Request/Response', () => {
88
88
  it('registers and executes a request hook', () => __awaiter(void 0, void 0, void 0, function* () {
89
89
  const fn = () => 'test data';
90
- registry.registerRequest('req:hook', fn);
90
+ registry.registerRequest('req:hook', {}, fn);
91
91
  const result = yield registry.request('req:hook', 'testProvider');
92
92
  expect(result).toBe('test data');
93
93
  }));
@@ -97,19 +97,19 @@ describe('HookRegistry', () => {
97
97
  expect(p).toEqual(payload);
98
98
  return 'got payload';
99
99
  };
100
- registry.registerRequest('req:hook', fn);
100
+ registry.registerRequest('req:hook', {}, fn);
101
101
  const result = yield registry.request('req:hook', payload);
102
102
  expect(result).toBe('got payload');
103
103
  }));
104
104
  it('returns undefined if hook name does not match', () => __awaiter(void 0, void 0, void 0, function* () {
105
105
  const fn = () => 'test data';
106
- registry.registerRequest('req:hook', fn);
106
+ registry.registerRequest('req:hook', {}, fn);
107
107
  const result = yield registry.request('req:wrong-hook', 'testProvider');
108
108
  expect(result).toBeUndefined();
109
109
  }));
110
110
  it('unregisters a specific request handler', () => __awaiter(void 0, void 0, void 0, function* () {
111
111
  const fn = () => 'test data';
112
- registry.registerRequest('req:hook', fn);
112
+ registry.registerRequest('req:hook', {}, fn);
113
113
  // Ensure it's there
114
114
  const result1 = yield registry.request('req:hook', 'testProvider');
115
115
  expect(result1).toBe('test data');
@@ -121,8 +121,8 @@ describe('HookRegistry', () => {
121
121
  it('unregisters all request handlers for a hook name if no fn provided', () => __awaiter(void 0, void 0, void 0, function* () {
122
122
  const fn1 = () => 'data 1';
123
123
  const fn2 = () => 'data 2';
124
- registry.registerRequest('req:hook', fn1);
125
- registry.registerRequest('req:hook', fn2);
124
+ registry.registerRequest('req:hook', {}, fn1);
125
+ registry.registerRequest('req:hook', {}, fn2);
126
126
  // Unregister all for 'req:hook'
127
127
  registry.unregisterRequest('req:hook');
128
128
  const result1 = yield registry.request('req:hook');
@@ -132,9 +132,9 @@ describe('HookRegistry', () => {
132
132
  }));
133
133
  it('getRequestHook returns the correct handler', () => {
134
134
  const fn = () => { };
135
- registry.registerRequest('req:hook', fn);
135
+ registry.registerRequest('req:hook', {}, fn);
136
136
  const hook = registry.getRequestHook('req:hook');
137
- expect(hook).toBe(fn);
137
+ expect(hook === null || hook === void 0 ? void 0 : hook.fn).toBe(fn);
138
138
  });
139
139
  });
140
140
  // --- Updated Clear Test ---
@@ -142,8 +142,8 @@ describe('HookRegistry', () => {
142
142
  // Register one of each
143
143
  const fn = () => { };
144
144
  const reqFn = () => { };
145
- registry.register('test:hook', fn);
146
- registry.registerRequest('req:hook', reqFn);
145
+ registry.register('test:hook', {}, fn);
146
+ registry.registerRequest('req:hook', {}, reqFn);
147
147
  // Clear all
148
148
  registry.clear();
149
149
  // Check both are gone
@@ -1 +1 @@
1
- {"version":3,"file":"HookRegistry.spec.js","sourceRoot":"","sources":["../../src/core/HookRegistry.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HookRegistry.spec.js","sourceRoot":"","sources":["../../src/core/HookRegistry.spec.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,QAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAS,EAAE;QAC7C,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,GAAW,GAAG,EAAE;YACtB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAS,EAAE;QAC1D,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACjC,MAAM,EAAE,GAAW,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,GAAW,GAAG,EAAE;YACtB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,GAAW,GAAG,EAAE;YACtB,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACjC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,GAAG,GAAW,GAAG,EAAE,GAAE,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAW,GAAG,EAAE,GAAE,CAAC,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,GAAW,GAAG,EAAE,GAAE,CAAC,CAAC;QAC5B,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAG,EAAE,CAAC,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAS,EAAE;QAC3D,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,GAAG,GAAW,GAAS,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC,CAAA,CAAC;QACF,MAAM,GAAG,GAAW,GAAS,EAAE;YAC7B,MAAM,IAAI,GAAG,CAAC;QAChB,CAAC,CAAA,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAA,CAAC,CAAC;IAEH,0CAA0C;IAE1C,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,EAAE,CAAC,uCAAuC,EAAE,GAAS,EAAE;YACrD,MAAM,EAAE,GAAkB,GAAG,EAAE,CAAC,WAAW,CAAC;YAC5C,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAS,EAAE;YAClE,MAAM,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAkB,CAAC,CAAC,EAAE,EAAE;gBAC9B,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,OAAO,aAAa,CAAC;YACvB,CAAC,CAAC;YACF,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAS,EAAE;YAC7D,MAAM,EAAE,GAAkB,GAAG,EAAE,CAAC,WAAW,CAAC;YAC5C,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC;QACjC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;YACtD,MAAM,EAAE,GAAkB,GAAG,EAAE,CAAC,WAAW,CAAC;YAC5C,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAE7C,oBAAoB;YACpB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAElC,sBAAsB;YACtB,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;QAClC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,GAAS,EAAE;YAClF,MAAM,GAAG,GAAkB,GAAG,EAAE,CAAC,QAAQ,CAAC;YAC1C,MAAM,GAAG,GAAkB,GAAG,EAAE,CAAC,QAAQ,CAAC;YAC1C,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAC9C,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YAE9C,gCAAgC;YAChC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEnD,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;QAClC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,EAAE,GAAkB,GAAG,EAAE,GAAE,CAAC,CAAC;YACnC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAE7B,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,uBAAuB;QACvB,MAAM,EAAE,GAAW,GAAG,EAAE,GAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAkB,GAAG,EAAE,GAAE,CAAC,CAAC;QACtC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAEhD,YAAY;QACZ,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEjB,sBAAsB;QACtB,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -7,6 +7,7 @@ export declare class PluginManager implements IPluginManager {
7
7
  initializePlugin(pluginModule: PluginModule): Promise<LoadedPlugin>;
8
8
  initializePlugins(pluginModules: PluginModule[]): Promise<void>;
9
9
  loadPluginModule(pluginModule: PluginModule): Promise<LoadedPlugin>;
10
+ loadRuntimePlugin(pluginModule: PluginModule): Promise<void>;
10
11
  private initializeLoadedPlugin;
11
12
  shutdown(): Promise<void>;
12
13
  unloadPlugin(pluginName: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAKzD,qBACa,aAAc,YAAW,cAAc;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,aAAa,CAAwC;;IAIvD,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAOnE,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YA8B3D,sBAAsB;IAY9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAazB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,aAAa,IAAI,YAAY,EAAE;IAI/B,IAAI,YAAY,IAAI,aAAa,CAEhC;CACF"}
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAMzD,qBACa,aAAc,YAAW,cAAc;IAElD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiB;IAC5C,OAAO,CAAC,aAAa,CAAwC;;IAIvD,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAOnE,iBAAiB,CAAC,aAAa,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/D,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAsCnE,iBAAiB,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAYpD,sBAAsB;IAmB9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAazB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIjD,aAAa,IAAI,YAAY,EAAE;IAI/B,IAAI,YAAY,IAAI,aAAa,CAEhC;CACF"}
@@ -91,9 +91,9 @@ let PluginManager = (() => {
91
91
  }
92
92
  loadPluginModule(pluginModule) {
93
93
  return __awaiter(this, void 0, void 0, function* () {
94
- const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
94
+ const hookRegistry = inject(HOOK_REGISTRY_TOKEN, true, pluginModule.scope);
95
95
  bootstrap(pluginModule);
96
- const pluginInstance = inject(pluginModule.token);
96
+ const pluginInstance = inject(pluginModule.token, true, pluginModule.scope);
97
97
  yield hookRegistry.trigger(LIFECYCLE_HOOKS.BEFORE_PLUGIN_LOAD, pluginInstance.metadata);
98
98
  if (!pluginInstance.metadata) {
99
99
  throw new Error(`Plugin ${pluginInstance} must have metadata property`);
@@ -108,13 +108,20 @@ let PluginManager = (() => {
108
108
  };
109
109
  this.loadedPlugins.set(pluginInstance.metadata.name, loadedPlugin);
110
110
  yield hookRegistry.trigger(LIFECYCLE_HOOKS.AFTER_PLUGIN_LOAD, loadedPlugin);
111
- yield this.initializeLoadedPlugin(loadedPlugin);
111
+ yield this.initializeLoadedPlugin(loadedPlugin, pluginModule.scope);
112
112
  return loadedPlugin;
113
113
  });
114
114
  }
115
- initializeLoadedPlugin(loaded) {
115
+ loadRuntimePlugin(pluginModule) {
116
116
  return __awaiter(this, void 0, void 0, function* () {
117
- const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
117
+ console.log(`[PluginManager] Hot-loading plugin: ${pluginModule.token.toString()}`);
118
+ const loadedPlugin = yield this.loadPluginModule(pluginModule);
119
+ console.log(`[PluginManager] Successfully hot-loaded: ${loadedPlugin.metadata.name}`);
120
+ });
121
+ }
122
+ initializeLoadedPlugin(loaded, scope) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const hookRegistry = inject(HOOK_REGISTRY_TOKEN, true, scope);
118
125
  yield hookRegistry.trigger(LIFECYCLE_HOOKS.BEFORE_PLUGIN_INIT, loaded);
119
126
  // Call plugin's onInit lifecycle method
120
127
  if (loaded.plugin.onInit) {
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/core/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { PluginModule } from '../lib/types/PluginModule';
2
+ export declare class RuntimePluginLoader {
3
+ /**
4
+ * Attempts to load a plugin from an arbitrary file system path.
5
+ * @param absolutePath The full path to the plugin folder
6
+ */
7
+ loadFromPath(absolutePath: string): Promise<PluginModule>;
8
+ }
9
+ //# sourceMappingURL=RuntimePluginLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimePluginLoader.d.ts","sourceRoot":"","sources":["../../src/core/RuntimePluginLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,qBAAa,mBAAmB;IAC9B;;;OAGG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CA2ChE"}
@@ -0,0 +1,53 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import fs from 'node:fs/promises';
11
+ import path from 'node:path';
12
+ import { PluginModule } from '../lib/types/PluginModule';
13
+ export class RuntimePluginLoader {
14
+ /**
15
+ * Attempts to load a plugin from an arbitrary file system path.
16
+ * @param absolutePath The full path to the plugin folder
17
+ */
18
+ loadFromPath(absolutePath) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ // 1. Validate the path exists
21
+ try {
22
+ yield fs.access(absolutePath);
23
+ }
24
+ catch (_a) {
25
+ throw new Error(`Plugin path does not exist: ${absolutePath}`);
26
+ }
27
+ // 2. Resolve entry point based on environment
28
+ let entryPointName = 'index.js';
29
+ if (process.env.ENV === 'dev') {
30
+ entryPointName = 'index.ts';
31
+ }
32
+ const entryPoint = path.join(absolutePath, entryPointName);
33
+ try {
34
+ yield fs.access(entryPoint);
35
+ }
36
+ catch (_b) {
37
+ throw new Error(`Could not find ${entryPointName} in ${absolutePath}. (Env: ${process.env.ENV})`);
38
+ }
39
+ // 3. Dynamic Import
40
+ // We use dynamic import which handles both CJS and ESM
41
+ console.log(`[RuntimeLoader] Importing plugin from: ${entryPoint}`);
42
+ const rawModule = yield import(entryPoint);
43
+ // 4. Extract PluginModule
44
+ // Support both default export and named export 'module' or 'PluginModule'
45
+ const pluginModule = rawModule.default || rawModule.module || rawModule.PluginModule;
46
+ if (!pluginModule || !(pluginModule instanceof PluginModule)) {
47
+ throw new Error(`Module at ${absolutePath} does not export a valid PluginModule.`);
48
+ }
49
+ return pluginModule;
50
+ });
51
+ }
52
+ }
53
+ //# sourceMappingURL=RuntimePluginLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuntimePluginLoader.js","sourceRoot":"","sources":["../../src/core/RuntimePluginLoader.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,OAAO,mBAAmB;IAC9B;;;OAGG;IACG,YAAY,CAAC,YAAoB;;YACrC,8BAA8B;YAC9B,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YAAC,WAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,8CAA8C;YAC9C,IAAI,cAAc,GAAG,UAAU,CAAC;YAChC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;gBAC9B,cAAc,GAAG,UAAU,CAAC;YAC9B,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YAE3D,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;YAAC,WAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CACb,kBAAkB,cAAc,OAAO,YAAY,WAAW,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CACjF,CAAC;YACJ,CAAC;YAED,oBAAoB;YACpB,uDAAuD;YACvD,OAAO,CAAC,GAAG,CAAC,0CAA0C,UAAU,EAAE,CAAC,CAAC;YAEpE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAE3C,0BAA0B;YAC1B,0EAA0E;YAC1E,MAAM,YAAY,GAChB,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC;YAElE,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,YAAY,YAAY,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CACb,aAAa,YAAY,wCAAwC,CAClE,CAAC;YACJ,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;CACF"}
@@ -3,4 +3,6 @@ export * from './PluginManager';
3
3
  export * from './HookRegistry';
4
4
  export * from './ChouxModule';
5
5
  export * from './ChouxFacade';
6
+ export * from './IChouxFacade';
7
+ export * from './RuntimePluginLoader';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -3,4 +3,6 @@ export * from './PluginManager';
3
3
  export * from './HookRegistry';
4
4
  export * from './ChouxModule';
5
5
  export * from './ChouxFacade';
6
+ export * from './IChouxFacade';
7
+ export * from './RuntimePluginLoader';
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"addHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,QA0B1B"}
1
+ {"version":3,"file":"addHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,QAAQ,GAAE,OAAe,QA2B1B"}
@@ -16,6 +16,7 @@ export function addHookMetadata(ctor, hookName, methodName, isRequest, isStatic
16
16
  if (!exists) {
17
17
  metadata.push({
18
18
  hookName,
19
+ target: ctor,
19
20
  methodName,
20
21
  isStatic,
21
22
  isRequest,
@@ -1 +1 @@
1
- {"version":3,"file":"addHookMetadata.js","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAS,EACT,QAAgB,EAChB,UAAkB,EAClB,SAAkB,EAClB,WAAoB,KAAK;IAEzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAoB,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE1D,qBAAqB;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,UAAU,KAAK,UAAU;QAC3B,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,KAAK,SAAS,CAC5B,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"addHookMetadata.js","sourceRoot":"","sources":["../../../src/lib/functions/addHookMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAS,EACT,QAAgB,EAChB,UAAkB,EAClB,SAAkB,EAClB,WAAoB,KAAK;IAEzB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAoB,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE1D,qBAAqB;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAC1B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,UAAU,KAAK,UAAU;QAC3B,CAAC,CAAC,QAAQ,KAAK,QAAQ;QACvB,CAAC,CAAC,SAAS,KAAK,SAAS,CAC5B,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,QAAQ,CAAC,IAAI,CAAC;YACZ,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,UAAU;YACV,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
@@ -1,4 +1,3 @@
1
- export * from './registerHooksForInstance';
2
1
  export * from './registerStaticHooks';
3
2
  export * from './registerHookHandler';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,4 +1,3 @@
1
- export * from './registerHooksForInstance';
2
1
  export * from './registerStaticHooks';
3
2
  export * from './registerHookHandler';
4
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const registerHookHandler: (hookName: string, handler: (...args: any[]) => void | Promise<void>) => void;
1
+ export declare const registerHookHandler: (hookName: string, instance: any, handler: (...args: any[]) => void | Promise<void>) => void;
2
2
  //# sourceMappingURL=registerHookHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,aACpB,MAAM,WACP,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAIlD,CAAC"}
1
+ {"version":3,"file":"registerHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB,aACpB,MAAM,YACN,GAAG,WACJ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAIlD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { inject } from '@kanian77/tject';
2
2
  import { HOOK_REGISTRY_TOKEN } from '../types/tokens';
3
- export const registerHookHandler = (hookName, handler) => {
3
+ export const registerHookHandler = (hookName, instance, handler) => {
4
4
  const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
5
- hookRegistry.register(hookName, handler);
5
+ hookRegistry.register(hookName, instance, handler);
6
6
  };
7
7
  //# sourceMappingURL=registerHookHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAgB,EAChB,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC,CAAC"}
1
+ {"version":3,"file":"registerHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,QAAgB,EAChB,QAAa,EACb,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerInstanceHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,aAAc,GAAG,KAAG,IA0CrD,CAAC"}
1
+ {"version":3,"file":"registerInstanceHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB,aAAc,GAAG,KAAG,IA2CrD,CAAC"}
@@ -15,10 +15,10 @@ export const registerInstanceHooks = (instance) => {
15
15
  const originalMethod = method.__original || method;
16
16
  // Bind to the instance
17
17
  if (!isRequest) {
18
- registerHookHandler(hookName, originalMethod.bind(instance));
18
+ registerHookHandler(hookName, instance, originalMethod);
19
19
  }
20
20
  else {
21
- registerRequestHookHandler(hookName, originalMethod.bind(instance));
21
+ registerRequestHookHandler(hookName, instance, originalMethod);
22
22
  }
23
23
  }
24
24
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"registerInstanceHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAa,EAAQ,EAAE;IAC3D,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAC3D,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EACT,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,GACV,IAAI,YAAY,EAAE,CAAC;YAClB,sCAAsC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,+BAA+B;gBAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEpC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,uBAAuB;oBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAC/D,CAAC;yBAAM,CAAC;wBAEN,0BAA0B,CACxB,QAAQ,EACR,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC9B,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,0BAA0B,UAAU,8BAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAC/F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,yCAAyC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,EACrE,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"registerInstanceHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerInstanceHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAa,EAAQ,EAAE;IAC3D,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAC3D,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EACT,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,GACV,IAAI,YAAY,EAAE,CAAC;YAClB,sCAAsC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,+BAA+B;gBAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAEpC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,uBAAuB;oBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;oBAC1D,CAAC;yBAAM,CAAC;wBAEN,0BAA0B,CACxB,QAAQ,EACR,QAAQ,EACR,cAAc,CACf,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,0BAA0B,UAAU,8BAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAC/F,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,yCAAyC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,EACrE,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const registerRequestHookHandler: (hookName: string, handler: (...args: any[]) => void | Promise<void>) => void;
1
+ export declare const registerRequestHookHandler: (hookName: string, target: any, handler: (...args: any[]) => void | Promise<void>) => void;
2
2
  //# sourceMappingURL=registerRequestHookHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerRequestHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,aAC3B,MAAM,WACP,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAIlD,CAAC"}
1
+ {"version":3,"file":"registerRequestHookHandler.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,aAC3B,MAAM,UACR,GAAG,WACF,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,SAIlD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { inject } from '@kanian77/tject';
2
2
  import { HOOK_REGISTRY_TOKEN } from '../types/tokens';
3
- export const registerRequestHookHandler = (hookName, handler) => {
3
+ export const registerRequestHookHandler = (hookName, target, handler) => {
4
4
  const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
5
- hookRegistry.registerRequest(hookName, handler);
5
+ hookRegistry.registerRequest(hookName, target, handler);
6
6
  };
7
7
  //# sourceMappingURL=registerRequestHookHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registerRequestHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAAgB,EAChB,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC"}
1
+ {"version":3,"file":"registerRequestHookHandler.js","sourceRoot":"","sources":["../../../src/lib/functions/registerRequestHookHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,QAAgB,EAChB,MAAW,EACX,OAAiD,EACjD,EAAE;IACF,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;IAChE,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerStaticHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,gBAAiB,GAAG,KAAG,IA0CtD,CAAC"}
1
+ {"version":3,"file":"registerStaticHooks.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,mBAAmB,gBAAiB,GAAG,KAAG,IA2CtD,CAAC"}
@@ -17,10 +17,10 @@ export const registerStaticHooks = (constructor) => {
17
17
  if (typeof method === 'function') {
18
18
  const originalMethod = method.__original || method;
19
19
  if (!isRequest) {
20
- registerHookHandler(hookName, originalMethod.bind(constructor));
20
+ registerHookHandler(hookName, constructor, originalMethod);
21
21
  }
22
22
  else {
23
- registerRequestHookHandler(hookName, originalMethod.bind(constructor));
23
+ registerRequestHookHandler(hookName, constructor, originalMethod);
24
24
  }
25
25
  }
26
26
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"registerStaticHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8EAA8E;AAC9E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAgB,EAAQ,EAAE;IAC5D,IAAI,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAClD,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,YAAY,EAAE,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEvC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oBAClE,CAAC;yBAAM,CAAC;wBACN,0BAA0B,CACxB,QAAQ,EACR,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CACjC,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,wBAAwB,UAAU,wBAAwB,WAAW,CAAC,IAAI,GAAG,CAC9E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,uBAAuB,EAAE;YAC1D,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,uCAAuC,WAAW,CAAC,IAAI,GAAG,EAC1D,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"registerStaticHooks.js","sourceRoot":"","sources":["../../../src/lib/functions/registerStaticHooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE1E,8EAA8E;AAC9E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,WAAgB,EAAQ,EAAE;IAC5D,IAAI,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,mBAAmB;QACnB,MAAM,YAAY,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC;YAClD,EAAE,CAAoB,CAAC;QAEzB,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,YAAY,EAAE,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;gBAEvC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;oBACnD,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,0BAA0B,CACxB,QAAQ,EACR,WAAW,EACX,cAAc,CACf,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,wBAAwB,UAAU,wBAAwB,WAAW,CAAC,IAAI,GAAG,CAC9E,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,uBAAuB,EAAE;YAC1D,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,uCAAuC,WAAW,CAAC,IAAI,GAAG,EAC1D,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAM3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;YAOjB,iBAAiB;CAIhC;AAED,eAAO,MAAM,aAAa,cAcxB,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAM3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;YAQjB,iBAAiB;CAIhC;AAED,eAAO,MAAM,aAAa,cAcxB,CAAC"}
@@ -118,7 +118,7 @@ let PluginA = (() => {
118
118
  }
119
119
  registerAdditionalHooks() {
120
120
  const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
121
- hookRegistry.register('dynamic:custom-hook', this.handleDynamicHook.bind(this));
121
+ hookRegistry.register('dynamic:custom-hook', this, this.handleDynamicHook);
122
122
  }
123
123
  handleDynamicHook(data) {
124
124
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,uBAAuB,EAEvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;;4BAC9C,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAClC,WAAW;;;;sBACyB,MAAM;;;;;oCAAd,SAAQ,WAAM;QAQzC,YAAoB,eAAgC;YAClD,KAAK,EAAE,CAAC;YADE;;;;wBARO,mDAAO,EAQN,eAAe;eAAiB;YAP3C;;;;uBAAW;oBAClB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,EAAE,EAAE,qCAAqC;iBACxD;eAAC;QAIF,CAAC;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,gDAAgD;gBAChD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,CAAC;SAAA;QAEc,SAAS;;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAED,kEAAkE;QAEpD,kBAAkB,CAAC,IAAS;;gBACxC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;SAAA;QAGa,kBAAkB;;gBAC9B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;SAAA;QAGa,kBAAkB,CAAC,UAAkB;;gBACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;SAAA;QAEO,uBAAuB;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;YAChE,YAAY,CAAC,QAAQ,CACnB,qBAAqB,EACrB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAClC,CAAC;QACJ,CAAC;QACa,iBAAiB,CAAC,IAAS;;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;SAAA;;;;;;0CAzBA,IAAI,CAAC,sBAAsB,CAAC;0CAK5B,IAAI,CAAC,wBAAwB,CAAC;0CAK9B,IAAI,CAAC,yBAAyB,CAAC;QAThC,+MAAc,kBAAkB,6DAE/B;QAGD,+MAAc,kBAAkB,6DAE/B;QAGD,+MAAc,kBAAkB,6DAE/B;QAzCH,6KAsDC;;;QAtDoB,uDAAO;;;;AAA5B,uBAsDC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC;IAC5C,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE;QACT;YACE,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,OAAO,EAAE;QACP;YACE,MAAM,EAAE,qBAAqB;YAC7B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;SAC/D;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-a/module.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAU3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;YAQjB,iBAAiB;CAGhC;AAED,eAAO,MAAM,aAAa,cAcxB,CAAC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAEL,eAAe,EAEhB,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAG/C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,MAAM;IAQ7B,OAAO,CAAC,eAAe;IAPnC,QAAQ,CAAC,QAAQ;;;;;MAKf;gBAEkB,eAAe,EAAE,eAAe;IAIrC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;YAU3B,kBAAkB;YAKlB,kBAAkB;YAKlB,kBAAkB;IAIhC,OAAO,CAAC,uBAAuB;YASjB,iBAAiB;CAGhC;AAED,eAAO,MAAM,aAAa,cAcxB,CAAC"}
@@ -121,7 +121,7 @@ let PluginB = (() => {
121
121
  }
122
122
  registerAdditionalHooks() {
123
123
  const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
124
- hookRegistry.register('dynamic:custom-hook', this.handleDynamicHook.bind(this));
124
+ hookRegistry.register('dynamic:custom-hook', this, this.handleDynamicHook);
125
125
  }
126
126
  handleDynamicHook(data) {
127
127
  return __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../src/lib/test-related/plugins/plugin-b/module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,uBAAuB,EAEvB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;;4BAC9C,OAAO,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAClC,WAAW;;;;sBACyB,MAAM;;;;;oCAAd,SAAQ,WAAM;QAQzC,YAAoB,eAAgC;YAClD,KAAK,EAAE,CAAC;YADE;;;;wBARO,mDAAO,EAQN,eAAe;eAAiB;YAP3C;;;;uBAAW;oBAClB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,mBAAmB;oBAChC,YAAY,EAAE,EAAE,EAAE,qCAAqC;iBACxD;eAAC;QAIF,CAAC;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAEc,MAAM;;gBACnB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAEpC,gDAAgD;gBAChD,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,CAAC;SAAA;QAEc,SAAS;;gBACtB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACpC,CAAC;SAAA;QAED,mDAAmD;QACnD,yDAAyD;QACzD,IAAI;QAEJ,kEAAkE;QAEpD,kBAAkB,CAAC,IAAS;;gBACxC,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;SAAA;QAGa,kBAAkB;;gBAC9B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACvE,CAAC;SAAA;QAGa,kBAAkB,CAAC,UAAkB;;gBACjD,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;YAC9D,CAAC;SAAA;QAEO,uBAAuB;YAC7B,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;YAChE,YAAY,CAAC,QAAQ,CACnB,qBAAqB,EACrB,IAAI,EACJ,IAAI,CAAC,iBAAiB,CACvB,CAAC;QACJ,CAAC;QAEa,iBAAiB,CAAC,IAAS;;gBACvC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;YAC9C,CAAC;SAAA;;;;;;0CA1BA,IAAI,CAAC,sBAAsB,CAAC;0CAK5B,IAAI,CAAC,wBAAwB,CAAC;0CAK9B,IAAI,CAAC,yBAAyB,CAAC;QAThC,+MAAc,kBAAkB,6DAE/B;QAGD,+MAAc,kBAAkB,6DAE/B;QAGD,+MAAc,kBAAkB,6DAE/B;QA7CH,6KA2DC;;;QA3DoB,uDAAO;;;;AAA5B,uBA2DC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,YAAY,CAAC;IAC5C,KAAK,EAAE,cAAc;IACrB,SAAS,EAAE;QACT;YACE,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,OAAO;SAClB;KACF;IACD,OAAO,EAAE;QACP;YACE,MAAM,EAAE,qBAAqB;YAC7B,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;SAC/D;KACF;CACF,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export interface IHookMetadata {
2
2
  hookName: string;
3
3
  isRequest?: boolean;
4
+ target: any;
4
5
  methodName: string;
5
6
  isStatic: boolean;
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"IHookMetadata.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookMetadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -1,16 +1,24 @@
1
1
  export type HookFn = (...args: any[]) => void | Promise<void>;
2
2
  export type RequestHookFn<T = any> = (...args: any[]) => Promise<T> | T;
3
- export type HookMap = Map<string, HookFn[]>;
4
- export type RequestHookMap = Map<string, RequestHookFn>;
3
+ export type HookMapEntry = {
4
+ target: any;
5
+ fn: HookFn;
6
+ };
7
+ export type RequestHookMapEntry = {
8
+ target: any;
9
+ fn: RequestHookFn;
10
+ };
11
+ export type HookMap = Map<string, HookMapEntry[]>;
12
+ export type RequestHookMap = Map<string, RequestHookMapEntry>;
5
13
  export interface IHookRegistry {
6
- register(name: string, fn: HookFn): void;
7
- registerRequest(name: string, fn: RequestHookFn): void;
14
+ register(name: string, target: any, fn: HookFn): void;
15
+ registerRequest(name: string, target: any, fn: RequestHookFn): void;
8
16
  trigger(name: string, ...args: any[]): Promise<void>;
9
17
  request<T = any>(name: string, ...args: any[]): Promise<T | undefined> | T | undefined;
10
18
  unregister(name: string, fn?: HookFn): void;
11
19
  unregisterRequest(name?: string): void;
12
- getHooks(name: string): HookFn[];
13
- getRequestHook(name: string): RequestHookFn | undefined;
20
+ getHooks(name: string): HookMapEntry[];
21
+ getRequestHook(name: string): RequestHookMapEntry | undefined;
14
22
  clear(): void;
15
23
  }
16
24
  //# sourceMappingURL=IHookRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IHookRegistry.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAExE,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACxD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAG,EAAE,EAAE,aAAa,GAAG,IAAI,CAAC;IACxD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IACxD,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"IHookRegistry.d.ts","sourceRoot":"","sources":["../../../src/lib/types/IHookRegistry.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9D,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AACvD,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,EAAE,EAAE,aAAa,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAClD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAC9D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,GAAG,IAAI,CAAC;IACpE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,CAAC,GAAG,GAAG,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAC1C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACvC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC9D,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -1,7 +1,7 @@
1
1
  import { Module, ModuleOptions } from '@kanian77/tject';
2
2
  import { Token } from '@kanian77/tject/dist/types/Token';
3
3
  export interface PluginModuleOptions extends ModuleOptions {
4
- token: string;
4
+ token: Token;
5
5
  }
6
6
  export declare class PluginModule extends Module {
7
7
  token: Token;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginModule.d.ts","sourceRoot":"","sources":["../../../src/lib/types/PluginModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,MAAM,CAAC;CACf;AACD,qBAAa,YAAa,SAAQ,MAAM;IACtC,KAAK,EAAE,KAAK,CAAM;gBACN,OAAO,EAAE,mBAAmB;CAIzC"}
1
+ {"version":3,"file":"PluginModule.d.ts","sourceRoot":"","sources":["../../../src/lib/types/PluginModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAEzD,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,KAAK,CAAC;CACd;AACD,qBAAa,YAAa,SAAQ,MAAM;IACtC,KAAK,EAAE,KAAK,CAAM;gBACN,OAAO,EAAE,mBAAmB;CAIzC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kanian77/choux",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "A simple plugin framework for TypeScript.",
5
5
  "author": {
6
6
  "name": "Patrick Assoa Adou",
@@ -25,7 +25,8 @@
25
25
  "build": "tsc --build --verbose",
26
26
  "dev": "tsc --build --verbose --watch",
27
27
  "clean": "rm -rf dist && rm -rf tsconfig.tsbuildinfo",
28
- "prepublishOnly": "bun run clean && bun run build"
28
+ "prepare": "bun run clean && bun run build",
29
+ "release": "bun run prepare && npm publish --userconfig .npmrc --access public"
29
30
  },
30
31
  "devDependencies": {
31
32
  "@types/bun": "latest",
@@ -1,2 +0,0 @@
1
- export declare function registerHooksForInstance(instance: any): void;
2
- //# sourceMappingURL=registerHooksForInstance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerHooksForInstance.d.ts","sourceRoot":"","sources":["../../../src/lib/functions/registerHooksForInstance.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAuB5D"}
@@ -1,22 +0,0 @@
1
- import { inject } from '@kanian77/tject';
2
- import { HOOK_METADATA_KEY, HOOK_REGISTRY_TOKEN } from '../types/tokens';
3
- export function registerHooksForInstance(instance) {
4
- const constructor = instance.constructor;
5
- const hookMetadata = constructor[HOOK_METADATA_KEY] || [];
6
- if (hookMetadata.length === 0) {
7
- return;
8
- }
9
- try {
10
- const hookRegistry = inject(HOOK_REGISTRY_TOKEN);
11
- for (const { hookName, methodName } of hookMetadata) {
12
- const method = instance[methodName];
13
- if (typeof method === 'function') {
14
- hookRegistry.register(hookName, method.bind(instance));
15
- }
16
- }
17
- }
18
- catch (error) {
19
- console.warn('Failed to register hooks - HookRegistry may not be available yet:', error);
20
- }
21
- }
22
- //# sourceMappingURL=registerHooksForInstance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerHooksForInstance.js","sourceRoot":"","sources":["../../../src/lib/functions/registerHooksForInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,UAAU,wBAAwB,CAAC,QAAa;IACpD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACzC,MAAM,YAAY,GAAoB,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAE3E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,CAAgB,mBAAmB,CAAC,CAAC;QAEhE,KAAK,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,YAAY,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;gBACjC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,mEAAmE,EACnE,KAAK,CACN,CAAC;IACJ,CAAC;AACH,CAAC"}