bun_plugins 1.1.2 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/plugins/ActionRegistryPlugin.d.ts +23 -0
- package/dist/plugins/ActionRegistryPlugin.d.ts.map +1 -0
- package/dist/plugins/ActionRegistryPlugin.js +56 -0
- package/dist/plugins/ActionRegistryPlugin.js.map +1 -0
- package/dist/plugins/DynamicJSActionsPlugin.d.ts +21 -0
- package/dist/plugins/DynamicJSActionsPlugin.d.ts.map +1 -0
- package/dist/plugins/DynamicJSActionsPlugin.js +57 -0
- package/dist/plugins/DynamicJSActionsPlugin.js.map +1 -0
- package/dist/plugins/DynamicMathActionsPlugin.d.ts +22 -0
- package/dist/plugins/DynamicMathActionsPlugin.d.ts.map +1 -0
- package/dist/plugins/DynamicMathActionsPlugin.js +64 -0
- package/dist/plugins/DynamicMathActionsPlugin.js.map +1 -0
- package/dist/plugins/DynamicTextActionsPlugin.d.ts +22 -0
- package/dist/plugins/DynamicTextActionsPlugin.d.ts.map +1 -0
- package/dist/plugins/DynamicTextActionsPlugin.js +58 -0
- package/dist/plugins/DynamicTextActionsPlugin.js.map +1 -0
- package/dist/plugins/DynamicUtilityActionsPlugin.d.ts +22 -0
- package/dist/plugins/DynamicUtilityActionsPlugin.d.ts.map +1 -0
- package/dist/plugins/DynamicUtilityActionsPlugin.js +75 -0
- package/dist/plugins/DynamicUtilityActionsPlugin.js.map +1 -0
- package/dist/plugins/ExamplePlugin.d.ts +3 -0
- package/dist/plugins/ExamplePlugin.d.ts.map +1 -0
- package/dist/plugins/ExamplePlugin.js +41 -0
- package/dist/plugins/ExamplePlugin.js.map +1 -0
- package/dist/plugins/LifecycleDemoPlugin.d.ts +20 -0
- package/dist/plugins/LifecycleDemoPlugin.d.ts.map +1 -0
- package/dist/plugins/LifecycleDemoPlugin.js +34 -0
- package/dist/plugins/LifecycleDemoPlugin.js.map +1 -0
- package/dist/plugins/MathPlugin.d.ts +16 -0
- package/dist/plugins/MathPlugin.d.ts.map +1 -0
- package/dist/plugins/MathPlugin.js +25 -0
- package/dist/plugins/MathPlugin.js.map +1 -0
- package/dist/plugins/MyJSPlugin.d.ts +7 -0
- package/dist/plugins/MyJSPlugin.d.ts.map +1 -0
- package/dist/plugins/MyJSPlugin.js +12 -0
- package/dist/plugins/MyJSPlugin.js.map +1 -0
- package/dist/plugins/arktype/index.d.ts +8 -0
- package/dist/plugins/arktype/index.d.ts.map +1 -0
- package/dist/plugins/arktype/index.js +25 -0
- package/dist/plugins/arktype/index.js.map +1 -0
- package/dist/src/Plugin.d.ts +28 -0
- package/dist/src/Plugin.d.ts.map +1 -0
- package/dist/src/Plugin.js +36 -0
- package/dist/src/Plugin.js.map +1 -0
- package/dist/{PluginManager.d.ts → src/PluginManager.d.ts} +5 -0
- package/dist/src/PluginManager.d.ts.map +1 -0
- package/dist/{PluginManager.js → src/PluginManager.js} +104 -43
- package/dist/src/PluginManager.js.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +2 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/logger/LoggerAdapter.d.ts +77 -0
- package/dist/src/logger/LoggerAdapter.d.ts.map +1 -0
- package/dist/src/logger/LoggerAdapter.js +242 -0
- package/dist/src/logger/LoggerAdapter.js.map +1 -0
- package/dist/src/logger/LoggerFactory.d.ts +73 -0
- package/dist/src/logger/LoggerFactory.d.ts.map +1 -0
- package/dist/src/logger/LoggerFactory.js +99 -0
- package/dist/src/logger/LoggerFactory.js.map +1 -0
- package/dist/src/logger/index.d.ts +3 -0
- package/dist/src/logger/index.d.ts.map +1 -0
- package/dist/src/logger/index.js +3 -0
- package/dist/src/logger/index.js.map +1 -0
- package/dist/src/managers/ContextFactory.d.ts.map +1 -0
- package/dist/{managers → src/managers}/ContextFactory.js +51 -27
- package/dist/src/managers/ContextFactory.js.map +1 -0
- package/dist/src/managers/DependencyManager.d.ts.map +1 -0
- package/dist/{managers → src/managers}/DependencyManager.js +2 -1
- package/dist/src/managers/DependencyManager.js.map +1 -0
- package/dist/{managers → src/managers}/HooksManager.d.ts +4 -1
- package/dist/src/managers/HooksManager.d.ts.map +1 -0
- package/dist/{managers → src/managers}/HooksManager.js +36 -8
- package/dist/src/managers/HooksManager.js.map +1 -0
- package/dist/src/managers/ResourceManager.d.ts.map +1 -0
- package/dist/{managers → src/managers}/ResourceManager.js +2 -1
- package/dist/src/managers/ResourceManager.js.map +1 -0
- package/dist/src/storage/JsonPluginStorage.d.ts.map +1 -0
- package/dist/{storage → src/storage}/JsonPluginStorage.js +3 -2
- package/dist/src/storage/JsonPluginStorage.js.map +1 -0
- package/dist/src/types/arktype_converter.d.ts +19 -0
- package/dist/src/types/arktype_converter.d.ts.map +1 -0
- package/dist/src/types/arktype_converter.js +73 -0
- package/dist/src/types/arktype_converter.js.map +1 -0
- package/dist/src/types/generator.d.ts +8 -0
- package/dist/src/types/generator.d.ts.map +1 -0
- package/dist/src/types/generator.js +9 -0
- package/dist/src/types/generator.js.map +1 -0
- package/dist/src/types/interfaces.d.ts +55 -0
- package/dist/src/types/interfaces.d.ts.map +1 -0
- package/dist/src/types/interfaces.js +5 -0
- package/dist/src/types/interfaces.js.map +1 -0
- package/dist/src/types/plugin-registry.d.ts +21 -0
- package/dist/src/types/plugin-registry.d.ts.map +1 -0
- package/dist/src/types/plugin-registry.js +4 -0
- package/dist/src/types/plugin-registry.js.map +1 -0
- package/dist/src/types/plugin_generator.d.ts +56 -0
- package/dist/src/types/plugin_generator.d.ts.map +1 -0
- package/dist/src/types/plugin_generator.js +659 -0
- package/dist/src/types/plugin_generator.js.map +1 -0
- package/dist/{types.d.ts → src/types.d.ts} +29 -10
- package/dist/src/types.d.ts.map +1 -0
- package/dist/{types.js → src/types.js} +4 -1
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/errorParser.d.ts.map +1 -0
- package/dist/src/utils/errorParser.js.map +1 -0
- package/dist/src/utils/pluginValidator.d.ts.map +1 -0
- package/dist/{utils → src/utils}/pluginValidator.js +1 -1
- package/dist/src/utils/pluginValidator.js.map +1 -0
- package/dist/src/utils/security.d.ts.map +1 -0
- package/dist/src/utils/security.js.map +1 -0
- package/dist/src/worker/WorkerRunner.d.ts.map +1 -0
- package/dist/{worker → src/worker}/WorkerRunner.js +21 -9
- package/dist/src/worker/WorkerRunner.js.map +1 -0
- package/package.json +6 -4
- package/dist/PluginManager.d.ts.map +0 -1
- package/dist/PluginManager.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/managers/ContextFactory.d.ts.map +0 -1
- package/dist/managers/ContextFactory.js.map +0 -1
- package/dist/managers/DependencyManager.d.ts.map +0 -1
- package/dist/managers/DependencyManager.js.map +0 -1
- package/dist/managers/HooksManager.d.ts.map +0 -1
- package/dist/managers/HooksManager.js.map +0 -1
- package/dist/managers/ResourceManager.d.ts.map +0 -1
- package/dist/managers/ResourceManager.js.map +0 -1
- package/dist/storage/JsonPluginStorage.d.ts.map +0 -1
- package/dist/storage/JsonPluginStorage.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/errorParser.d.ts.map +0 -1
- package/dist/utils/errorParser.js.map +0 -1
- package/dist/utils/pluginValidator.d.ts.map +0 -1
- package/dist/utils/pluginValidator.js.map +0 -1
- package/dist/utils/security.d.ts.map +0 -1
- package/dist/utils/security.js.map +0 -1
- package/dist/worker/WorkerRunner.d.ts.map +0 -1
- package/dist/worker/WorkerRunner.js.map +0 -1
- /package/dist/{managers → src/managers}/ContextFactory.d.ts +0 -0
- /package/dist/{managers → src/managers}/DependencyManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/ResourceManager.d.ts +0 -0
- /package/dist/{storage → src/storage}/JsonPluginStorage.d.ts +0 -0
- /package/dist/{utils → src/utils}/errorParser.d.ts +0 -0
- /package/dist/{utils → src/utils}/errorParser.js +0 -0
- /package/dist/{utils → src/utils}/pluginValidator.d.ts +0 -0
- /package/dist/{utils → src/utils}/security.d.ts +0 -0
- /package/dist/{utils → src/utils}/security.js +0 -0
- /package/dist/{worker → src/worker}/WorkerRunner.d.ts +0 -0
package/README.md
CHANGED
|
@@ -163,7 +163,7 @@ Plugins can share APIs with each other safely:
|
|
|
163
163
|
// Plugin A: Exposes an API
|
|
164
164
|
export class ProviderPlugin implements IPlugin {
|
|
165
165
|
name = "db-provider";
|
|
166
|
-
|
|
166
|
+
getApi() {
|
|
167
167
|
return {
|
|
168
168
|
query: (q: string) => `Result for ${q}`,
|
|
169
169
|
};
|
|
@@ -174,7 +174,7 @@ export class ProviderPlugin implements IPlugin {
|
|
|
174
174
|
export class ConsumerPlugin implements IPlugin {
|
|
175
175
|
name = "app-logic";
|
|
176
176
|
async onLoad(context: PluginContext) {
|
|
177
|
-
const db = context.getPlugin("db-provider");
|
|
177
|
+
const db = await context.getPlugin("db-provider");
|
|
178
178
|
const result = db.query("SELECT *");
|
|
179
179
|
}
|
|
180
180
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin principal ActionRegistry para carga dinámica
|
|
3
|
+
* Este plugin proporciona el registro de acciones compartido
|
|
4
|
+
*/
|
|
5
|
+
import type { IPlugin, PluginContext } from "../src";
|
|
6
|
+
type EngineActionHandler = (...args: any[]) => any;
|
|
7
|
+
export declare class ActionRegistryPlugin implements IPlugin {
|
|
8
|
+
name: string;
|
|
9
|
+
version: string;
|
|
10
|
+
private actionRegistry;
|
|
11
|
+
constructor();
|
|
12
|
+
onLoad(context: PluginContext): void;
|
|
13
|
+
onUnload(): void;
|
|
14
|
+
getApi(): {
|
|
15
|
+
registerAction: (type: string, handler: EngineActionHandler) => void;
|
|
16
|
+
executeAction: (type: string, ...args: any[]) => any;
|
|
17
|
+
listActions: () => string[];
|
|
18
|
+
hasAction: (type: string) => boolean;
|
|
19
|
+
actions: string[];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=ActionRegistryPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRegistryPlugin.d.ts","sourceRoot":"","sources":["../../plugins/ActionRegistryPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGrD,KAAK,mBAAmB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAgCnD,qBAAa,oBAAqB,YAAW,OAAO;IAClD,IAAI,SAAqB;IACzB,OAAO,SAAW;IAClB,OAAO,CAAC,cAAc,CAAiB;;IASvC,MAAM,CAAC,OAAO,EAAE,aAAa;IAI7B,QAAQ;IAKR,MAAM;+BA9Ce,MAAM,WAAW,mBAAmB,KAAG,IAAI;8BAK5C,MAAM,WAAW,GAAG,EAAE,KAAG,GAAG;2BASjC,MAAM,EAAE;0BAKP,MAAM,KAAG,OAAO;;;CAoCjC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin principal ActionRegistry para carga dinámica
|
|
3
|
+
* Este plugin proporciona el registro de acciones compartido
|
|
4
|
+
*/
|
|
5
|
+
// Clase que maneja el registro de acciones
|
|
6
|
+
class ActionRegistry {
|
|
7
|
+
actionHandlers = new Map();
|
|
8
|
+
// Método para registrar acciones
|
|
9
|
+
registerAction(type, handler) {
|
|
10
|
+
this.actionHandlers.set(type, handler);
|
|
11
|
+
}
|
|
12
|
+
// Método para ejecutar acciones
|
|
13
|
+
executeAction(type, ...args) {
|
|
14
|
+
const handler = this.actionHandlers.get(type);
|
|
15
|
+
if (!handler) {
|
|
16
|
+
throw new Error(`Acción no encontrada: ${type}`);
|
|
17
|
+
}
|
|
18
|
+
return handler(...args);
|
|
19
|
+
}
|
|
20
|
+
// Método para listar acciones registradas
|
|
21
|
+
listActions() {
|
|
22
|
+
return Array.from(this.actionHandlers.keys());
|
|
23
|
+
}
|
|
24
|
+
// Método para verificar si una acción existe
|
|
25
|
+
hasAction(type) {
|
|
26
|
+
return this.actionHandlers.has(type);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Plugin principal que proporciona el ActionRegistry
|
|
30
|
+
export class ActionRegistryPlugin {
|
|
31
|
+
name = "action-registry";
|
|
32
|
+
version = "1.0.0";
|
|
33
|
+
actionRegistry;
|
|
34
|
+
constructor() {
|
|
35
|
+
this.actionRegistry = new ActionRegistry();
|
|
36
|
+
// Enlazar el método getApi para mantener el contexto correcto
|
|
37
|
+
this.getApi = this.getApi.bind(this);
|
|
38
|
+
}
|
|
39
|
+
onLoad(context) {
|
|
40
|
+
context.log.info("ActionRegistry initialized");
|
|
41
|
+
}
|
|
42
|
+
onUnload() {
|
|
43
|
+
// Cleanup is handled by the plugin manager
|
|
44
|
+
}
|
|
45
|
+
// Exponemos el ActionRegistry como API compartida
|
|
46
|
+
getApi() {
|
|
47
|
+
return {
|
|
48
|
+
registerAction: this.actionRegistry.registerAction.bind(this.actionRegistry),
|
|
49
|
+
executeAction: this.actionRegistry.executeAction.bind(this.actionRegistry),
|
|
50
|
+
listActions: this.actionRegistry.listActions.bind(this.actionRegistry),
|
|
51
|
+
hasAction: this.actionRegistry.hasAction.bind(this.actionRegistry),
|
|
52
|
+
actions: this.actionRegistry.listActions()
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=ActionRegistryPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionRegistryPlugin.js","sourceRoot":"","sources":["../../plugins/ActionRegistryPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,2CAA2C;AAC3C,MAAM,cAAc;IACR,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;IAEvE,iCAAiC;IACjC,cAAc,CAAC,IAAY,EAAE,OAA4B;QACvD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,gCAAgC;IAChC,aAAa,CAAC,IAAY,EAAE,GAAG,IAAW;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,0CAA0C;IAC1C,WAAW;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,6CAA6C;IAC7C,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAED,qDAAqD;AACrD,MAAM,OAAO,oBAAoB;IAC/B,IAAI,GAAG,iBAAiB,CAAC;IACzB,OAAO,GAAG,OAAO,CAAC;IACV,cAAc,CAAiB;IAEvC;QACE,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAE3C,8DAA8D;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ;QACN,2CAA2C;IAC7C,CAAC;IAED,kDAAkD;IAClD,MAAM;QACJ,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAC5E,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAC1E,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACtE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YAClE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;SAC3C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de JavaScript que registra acciones en ActionRegistry
|
|
3
|
+
* Se carga automáticamente y registra acciones usando loadPluginsFromDirectory
|
|
4
|
+
*/
|
|
5
|
+
export class DynamicJSActionsPlugin {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
dependencies: {
|
|
9
|
+
"action-registry": string;
|
|
10
|
+
};
|
|
11
|
+
onLoad(context: any): Promise<void>;
|
|
12
|
+
registerActions(context: any): Promise<void>;
|
|
13
|
+
onUnload(): void;
|
|
14
|
+
getApi(): {
|
|
15
|
+
name: string;
|
|
16
|
+
actions: string[];
|
|
17
|
+
type: string;
|
|
18
|
+
loaded: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=DynamicJSActionsPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicJSActionsPlugin.d.ts","sourceRoot":"","sources":["../../plugins/DynamicJSActionsPlugin.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;IAEI,aAAgC;IAChC,gBAAsB;IACtB;;MAEC;IAGH,oCAEC;IAED,6CA8BC;IAED,iBAEC;IAGD;;;;;MAOC;CACF"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de JavaScript que registra acciones en ActionRegistry
|
|
3
|
+
* Se carga automáticamente y registra acciones usando loadPluginsFromDirectory
|
|
4
|
+
*/
|
|
5
|
+
export class DynamicJSActionsPlugin {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.name = "dynamic-js-actions";
|
|
8
|
+
this.version = "1.0.0";
|
|
9
|
+
this.dependencies = {
|
|
10
|
+
"action-registry": "1.0.0"
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
async onLoad(context) {
|
|
14
|
+
await this.registerActions(context);
|
|
15
|
+
}
|
|
16
|
+
async registerActions(context) {
|
|
17
|
+
try {
|
|
18
|
+
// Obtener el ActionRegistry del contexto compartido
|
|
19
|
+
const actionRegistry = await context.getPlugin("action-registry");
|
|
20
|
+
if (actionRegistry) {
|
|
21
|
+
// Registrar acciones de JavaScript
|
|
22
|
+
actionRegistry.registerAction("js-greet", (name) => {
|
|
23
|
+
return `¡Hola ${name} desde JavaScript!`;
|
|
24
|
+
});
|
|
25
|
+
actionRegistry.registerAction("js-random-int", (min, max) => {
|
|
26
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
27
|
+
});
|
|
28
|
+
actionRegistry.registerAction("js-reverse-words", (text) => {
|
|
29
|
+
return text.split(' ').reverse().join(' ');
|
|
30
|
+
});
|
|
31
|
+
actionRegistry.registerAction("js-count-vowels", (text) => {
|
|
32
|
+
return (text.match(/[aeiouáéíóú]/gi) || []).length;
|
|
33
|
+
});
|
|
34
|
+
context.log.info("JavaScript actions registered");
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
context.log.error("ActionRegistry not available, actions will not be registered");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
context.log.error("Error registering JavaScript actions:", error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
onUnload() {
|
|
45
|
+
// Cleanup is handled by the plugin manager
|
|
46
|
+
}
|
|
47
|
+
// Informar qué acciones proporciona este plugin
|
|
48
|
+
getApi() {
|
|
49
|
+
return {
|
|
50
|
+
name: this.name,
|
|
51
|
+
actions: ["js-greet", "js-random-int", "js-reverse-words", "js-count-vowels"],
|
|
52
|
+
type: "javascript-actions",
|
|
53
|
+
loaded: "dynamically"
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=DynamicJSActionsPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicJSActionsPlugin.js","sourceRoot":"","sources":["../../plugins/DynamicJSActionsPlugin.js"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,sBAAsB;IACjC;QACE,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG;YAClB,iBAAiB,EAAE,OAAO;SAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAO;QAC3B,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAElE,IAAI,cAAc,EAAE,CAAC;gBACnB,mCAAmC;gBACnC,cAAc,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;oBACjD,OAAO,SAAS,IAAI,oBAAoB,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC1D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE;oBACxD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBACrD,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,QAAQ;QACN,2CAA2C;IAC7C,CAAC;IAED,gDAAgD;IAChD,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;YAC7E,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de acciones matemáticas
|
|
3
|
+
* Se carga automáticamente y registra acciones en ActionRegistry
|
|
4
|
+
*/
|
|
5
|
+
import { Plugin, PluginContext } from "../src";
|
|
6
|
+
export declare class MathPlugin2 extends Plugin {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
dependencies: {
|
|
10
|
+
"action-registry": string;
|
|
11
|
+
};
|
|
12
|
+
onLoad(context: PluginContext): Promise<void>;
|
|
13
|
+
private registerActions;
|
|
14
|
+
onUnload(): void;
|
|
15
|
+
getApi(): {
|
|
16
|
+
name: string;
|
|
17
|
+
actions: string[];
|
|
18
|
+
type: string;
|
|
19
|
+
loaded: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=DynamicMathActionsPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicMathActionsPlugin.d.ts","sourceRoot":"","sources":["../../plugins/DynamicMathActionsPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C,qBAAa,WAAY,SAAQ,MAAM;IACrC,IAAI,SAA0B;IAC9B,OAAO,SAAW;IAET,YAAY;;MAEnB;IAEa,MAAM,CAAC,OAAO,EAAE,aAAa;YAI9B,eAAe;IAsCpB,QAAQ;IAKjB,MAAM;;;;;;CAQP"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de acciones matemáticas
|
|
3
|
+
* Se carga automáticamente y registra acciones en ActionRegistry
|
|
4
|
+
*/
|
|
5
|
+
import { Plugin } from "../src";
|
|
6
|
+
export class MathPlugin2 extends Plugin {
|
|
7
|
+
name = "dynamic-math-actions";
|
|
8
|
+
version = "1.0.0";
|
|
9
|
+
dependencies = {
|
|
10
|
+
"action-registry": "1.0.0"
|
|
11
|
+
};
|
|
12
|
+
async onLoad(context) {
|
|
13
|
+
await this.registerActions(context);
|
|
14
|
+
}
|
|
15
|
+
async registerActions(context) {
|
|
16
|
+
try {
|
|
17
|
+
// Obtener el ActionRegistry del contexto compartido
|
|
18
|
+
const actionRegistry = await context.getPlugin("action-registry");
|
|
19
|
+
if (actionRegistry) {
|
|
20
|
+
// Registrar acciones matemáticas
|
|
21
|
+
actionRegistry.registerAction("sum", (a, b) => {
|
|
22
|
+
return a + b;
|
|
23
|
+
});
|
|
24
|
+
actionRegistry.registerAction("multiply", (a, b) => {
|
|
25
|
+
return a * b;
|
|
26
|
+
});
|
|
27
|
+
actionRegistry.registerAction("power", (base, exponent) => {
|
|
28
|
+
return Math.pow(base, exponent);
|
|
29
|
+
});
|
|
30
|
+
actionRegistry.registerAction("factorial", (n) => {
|
|
31
|
+
if (n < 0)
|
|
32
|
+
return NaN;
|
|
33
|
+
if (n === 0)
|
|
34
|
+
return 1;
|
|
35
|
+
let result = 1;
|
|
36
|
+
for (let i = 1; i <= n; i++) {
|
|
37
|
+
result *= i;
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
});
|
|
41
|
+
context.log.info("Math actions registered");
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
context.log.error("ActionRegistry not available, actions will not be registered");
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
context.log.error("Error registering math actions:", error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
onUnload() {
|
|
52
|
+
// Cleanup is handled by the plugin manager
|
|
53
|
+
}
|
|
54
|
+
// Informar qué acciones proporciona este plugin
|
|
55
|
+
getApi() {
|
|
56
|
+
return {
|
|
57
|
+
name: this.name,
|
|
58
|
+
actions: ["sum", "multiply", "power", "factorial"],
|
|
59
|
+
type: "math-actions",
|
|
60
|
+
loaded: "dynamically"
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=DynamicMathActionsPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicMathActionsPlugin.js","sourceRoot":"","sources":["../../plugins/DynamicMathActionsPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAE/C,MAAM,OAAO,WAAY,SAAQ,MAAM;IACrC,IAAI,GAAG,sBAAsB,CAAC;IAC9B,OAAO,GAAG,OAAO,CAAC;IAET,YAAY,GAAG;QACtB,iBAAiB,EAAE,OAAO;KAC3B,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAsB;QAClD,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAElE,IAAI,cAAc,EAAE,CAAC;gBACnB,iCAAiC;gBACjC,cAAc,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;oBAC5D,OAAO,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;oBACjE,OAAO,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE;oBACxE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,CAAS,EAAE,EAAE;oBACvD,IAAI,CAAC,GAAG,CAAC;wBAAE,OAAO,GAAG,CAAC;oBACtB,IAAI,CAAC,KAAK,CAAC;wBAAE,OAAO,CAAC,CAAC;oBACtB,IAAI,MAAM,GAAG,CAAC,CAAC;oBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC5B,MAAM,IAAI,CAAC,CAAC;oBACd,CAAC;oBACD,OAAO,MAAM,CAAC;gBAChB,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAEQ,QAAQ;QACf,2CAA2C;IAC7C,CAAC;IAED,gDAAgD;IAChD,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;YAClD,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de acciones de texto
|
|
3
|
+
* Se carga automáticamente y registra acciones en ActionRegistry
|
|
4
|
+
*/
|
|
5
|
+
import type { IPlugin, PluginContext } from "../src";
|
|
6
|
+
export declare class DynamicTextActionsPlugin implements IPlugin {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
dependencies: {
|
|
10
|
+
"action-registry": string;
|
|
11
|
+
};
|
|
12
|
+
onLoad(context: PluginContext): Promise<void>;
|
|
13
|
+
private registerActions;
|
|
14
|
+
onUnload(): void;
|
|
15
|
+
getApi(): {
|
|
16
|
+
name: string;
|
|
17
|
+
actions: string[];
|
|
18
|
+
type: string;
|
|
19
|
+
loaded: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=DynamicTextActionsPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicTextActionsPlugin.d.ts","sourceRoot":"","sources":["../../plugins/DynamicTextActionsPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAErD,qBAAa,wBAAyB,YAAW,OAAO;IACtD,IAAI,SAA0B;IAC9B,OAAO,SAAW;IAElB,YAAY;;MAEV;IAEI,MAAM,CAAC,OAAO,EAAE,aAAa;YAIrB,eAAe;IAoC7B,QAAQ;IAKR,MAAM;;;;;;CAQP"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de acciones de texto
|
|
3
|
+
* Se carga automáticamente y registra acciones en ActionRegistry
|
|
4
|
+
*/
|
|
5
|
+
export class DynamicTextActionsPlugin {
|
|
6
|
+
name = "dynamic-text-actions";
|
|
7
|
+
version = "1.0.0";
|
|
8
|
+
dependencies = {
|
|
9
|
+
"action-registry": "1.0.0"
|
|
10
|
+
};
|
|
11
|
+
async onLoad(context) {
|
|
12
|
+
await this.registerActions(context);
|
|
13
|
+
}
|
|
14
|
+
async registerActions(context) {
|
|
15
|
+
try {
|
|
16
|
+
// Obtener el ActionRegistry del contexto compartido
|
|
17
|
+
const actionRegistry = await context.getPlugin("action-registry");
|
|
18
|
+
if (actionRegistry) {
|
|
19
|
+
// Registrar acciones de texto
|
|
20
|
+
actionRegistry.registerAction("uppercase", (text) => {
|
|
21
|
+
return text.toUpperCase();
|
|
22
|
+
});
|
|
23
|
+
actionRegistry.registerAction("lowercase", (text) => {
|
|
24
|
+
return text.toLowerCase();
|
|
25
|
+
});
|
|
26
|
+
actionRegistry.registerAction("reverse", (text) => {
|
|
27
|
+
return text.split('').reverse().join('');
|
|
28
|
+
});
|
|
29
|
+
actionRegistry.registerAction("wordCount", (text) => {
|
|
30
|
+
return text.trim().split(/\s+/).filter(word => word.length > 0).length;
|
|
31
|
+
});
|
|
32
|
+
actionRegistry.registerAction("capitalizeWords", (text) => {
|
|
33
|
+
return text.replace(/\b\w/g, char => char.toUpperCase());
|
|
34
|
+
});
|
|
35
|
+
context.log.info("Text actions registered");
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
context.log.error("ActionRegistry not available, actions will not be registered");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
context.log.error("Error registering text actions:", error);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
onUnload() {
|
|
46
|
+
// Cleanup is handled by the plugin manager
|
|
47
|
+
}
|
|
48
|
+
// Informar qué acciones proporciona este plugin
|
|
49
|
+
getApi() {
|
|
50
|
+
return {
|
|
51
|
+
name: this.name,
|
|
52
|
+
actions: ["uppercase", "lowercase", "reverse", "wordCount", "capitalizeWords"],
|
|
53
|
+
type: "text-actions",
|
|
54
|
+
loaded: "dynamically"
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=DynamicTextActionsPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicTextActionsPlugin.js","sourceRoot":"","sources":["../../plugins/DynamicTextActionsPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,wBAAwB;IACnC,IAAI,GAAG,sBAAsB,CAAC;IAC9B,OAAO,GAAG,OAAO,CAAC;IAElB,YAAY,GAAG;QACb,iBAAiB,EAAE,OAAO;KAC3B,CAAC;IAEF,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAsB;QAClD,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAQ,CAAC;YAEzE,IAAI,cAAc,EAAE,CAAC;gBACnB,8BAA8B;gBAC9B,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE;oBAC1D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE;oBAC1D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,IAAY,EAAE,EAAE;oBACxD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE;oBAC1D,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzE,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE;oBAChE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,QAAQ;QACN,2CAA2C;IAC7C,CAAC;IAED,gDAAgD;IAChD,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC;YAC9E,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de acciones de utilidad
|
|
3
|
+
* Se carga automáticamente y registra acciones en ActionRegistry
|
|
4
|
+
*/
|
|
5
|
+
import type { IPlugin, PluginContext } from "../src";
|
|
6
|
+
export declare class DynamicUtilityActionsPlugin implements IPlugin {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
dependencies: {
|
|
10
|
+
"action-registry": string;
|
|
11
|
+
};
|
|
12
|
+
onLoad(context: PluginContext): Promise<void>;
|
|
13
|
+
private registerActions;
|
|
14
|
+
onUnload(): void;
|
|
15
|
+
getApi(): {
|
|
16
|
+
name: string;
|
|
17
|
+
actions: string[];
|
|
18
|
+
type: string;
|
|
19
|
+
loaded: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=DynamicUtilityActionsPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicUtilityActionsPlugin.d.ts","sourceRoot":"","sources":["../../plugins/DynamicUtilityActionsPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAErD,qBAAa,2BAA4B,YAAW,OAAO;IACzD,IAAI,SAA6B;IACjC,OAAO,SAAW;IAElB,YAAY;;MAEV;IAEI,MAAM,CAAC,OAAO,EAAE,aAAa;YAIrB,eAAe;IAsD7B,QAAQ;IAKR,MAAM;;;;;;CAQP"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin dinámico de acciones de utilidad
|
|
3
|
+
* Se carga automáticamente y registra acciones en ActionRegistry
|
|
4
|
+
*/
|
|
5
|
+
export class DynamicUtilityActionsPlugin {
|
|
6
|
+
name = "dynamic-utility-actions";
|
|
7
|
+
version = "1.0.0";
|
|
8
|
+
dependencies = {
|
|
9
|
+
"action-registry": "1.0.0"
|
|
10
|
+
};
|
|
11
|
+
async onLoad(context) {
|
|
12
|
+
await this.registerActions(context);
|
|
13
|
+
}
|
|
14
|
+
async registerActions(context) {
|
|
15
|
+
try {
|
|
16
|
+
// Obtener el ActionRegistry del contexto compartido
|
|
17
|
+
const actionRegistry = await context.getPlugin("action-registry");
|
|
18
|
+
if (actionRegistry) {
|
|
19
|
+
// Registrar acciones de utilidad
|
|
20
|
+
actionRegistry.registerAction("random", (min, max) => {
|
|
21
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
22
|
+
});
|
|
23
|
+
actionRegistry.registerAction("timestamp", () => {
|
|
24
|
+
return Date.now();
|
|
25
|
+
});
|
|
26
|
+
actionRegistry.registerAction("delay", async (ms) => {
|
|
27
|
+
await new Promise(resolve => setTimeout(resolve, ms));
|
|
28
|
+
return `Delayed ${ms}ms`;
|
|
29
|
+
});
|
|
30
|
+
actionRegistry.registerAction("uuid", () => {
|
|
31
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
32
|
+
const r = Math.random() * 16 | 0;
|
|
33
|
+
const v = c == 'x' ? r : (r & 0x3 | 0x8);
|
|
34
|
+
return v.toString(16);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
actionRegistry.registerAction("formatDate", (date, format) => {
|
|
38
|
+
const year = date.getFullYear();
|
|
39
|
+
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
40
|
+
const day = String(date.getDate()).padStart(2, '0');
|
|
41
|
+
const hours = String(date.getHours()).padStart(2, '0');
|
|
42
|
+
const minutes = String(date.getMinutes()).padStart(2, '0');
|
|
43
|
+
const seconds = String(date.getSeconds()).padStart(2, '0');
|
|
44
|
+
return format
|
|
45
|
+
.replace('YYYY', year.toString())
|
|
46
|
+
.replace('MM', month)
|
|
47
|
+
.replace('DD', day)
|
|
48
|
+
.replace('HH', hours)
|
|
49
|
+
.replace('mm', minutes)
|
|
50
|
+
.replace('ss', seconds);
|
|
51
|
+
});
|
|
52
|
+
context.log.info("Utility actions registered");
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
context.log.error("ActionRegistry not available, actions will not be registered");
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
context.log.error("Error registering utility actions:", error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
onUnload() {
|
|
63
|
+
// Cleanup is handled by the plugin manager
|
|
64
|
+
}
|
|
65
|
+
// Informar qué acciones proporciona este plugin
|
|
66
|
+
getApi() {
|
|
67
|
+
return {
|
|
68
|
+
name: this.name,
|
|
69
|
+
actions: ["random", "timestamp", "delay", "uuid", "formatDate"],
|
|
70
|
+
type: "utility-actions",
|
|
71
|
+
loaded: "dynamically"
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=DynamicUtilityActionsPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DynamicUtilityActionsPlugin.js","sourceRoot":"","sources":["../../plugins/DynamicUtilityActionsPlugin.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,2BAA2B;IACtC,IAAI,GAAG,yBAAyB,CAAC;IACjC,OAAO,GAAG,OAAO,CAAC;IAElB,YAAY,GAAG;QACb,iBAAiB,EAAE,OAAO;KAC3B,CAAC;IAEF,KAAK,CAAC,MAAM,CAAC,OAAsB;QACjC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAsB;QAClD,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAQ,CAAC;YAEzE,IAAI,cAAc,EAAE,CAAC;gBACnB,iCAAiC;gBACjC,cAAc,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;oBACnE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;gBAC3D,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,WAAW,EAAE,GAAG,EAAE;oBAC9C,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE;oBAC1D,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;oBACtD,OAAO,WAAW,EAAE,IAAI,CAAC;gBAC3B,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;oBACzC,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAS,CAAC;wBACvE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;wBACjC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;wBACzC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,cAAc,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAU,EAAE,MAAc,EAAE,EAAE;oBACzE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;oBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBAE3D,OAAO,MAAM;yBACV,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;yBAChC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;yBACpB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;yBAClB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;yBACpB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;yBACtB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACjD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,QAAQ;QACN,2CAA2C;IAC7C,CAAC;IAED,gDAAgD;IAChD,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC;YAC/D,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,aAAa;SACtB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExamplePlugin.d.ts","sourceRoot":"","sources":["../../plugins/ExamplePlugin.ts"],"names":[],"mappings":";AAKA,wBAwCG"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { definePlugin } from "../src";
|
|
2
|
+
// Los tipos están disponibles globalmente gracias a src/global.d.ts
|
|
3
|
+
// No necesitas importar MathPlugin - el tipado es automático
|
|
4
|
+
export default definePlugin({
|
|
5
|
+
name: "edge",
|
|
6
|
+
version: "1.0.0",
|
|
7
|
+
async onLoad(context) {
|
|
8
|
+
// getPlugin ahora es asíncrono
|
|
9
|
+
const mathPlugin = await context.getPlugin('math-plugin');
|
|
10
|
+
if (!mathPlugin) {
|
|
11
|
+
context.log.error("Math plugin not found");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Experimental automatic types
|
|
15
|
+
const result = mathPlugin.add(1, 2);
|
|
16
|
+
context.log.info(`Math result via API: ${result}`);
|
|
17
|
+
// recomendado
|
|
18
|
+
/* // Usar getApi() - más seguro y encapsulado
|
|
19
|
+
const mathApi = mathPlugin.getApi?.() as {
|
|
20
|
+
add(a: number, b: number): number;
|
|
21
|
+
multiply(a: number, b: number): number;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
if (mathApi) {
|
|
25
|
+
const mathResult = mathApi.add(1, 2);
|
|
26
|
+
context.log.info(`Math result via API: ${mathResult}`);
|
|
27
|
+
|
|
28
|
+
const multiplyResult = mathApi.multiply(3, 4);
|
|
29
|
+
context.log.info(`Multiplication result via API: ${multiplyResult}`);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Alternativa: cast directo al tipo del plugin (menos seguro pero funcional)
|
|
33
|
+
const mathPluginDirect = mathPlugin as MathPlugin;
|
|
34
|
+
if (mathPluginDirect) {
|
|
35
|
+
const addResult = mathPluginDirect.add(5, 6);
|
|
36
|
+
context.log.info(`Addition result direct: ${addResult}`);
|
|
37
|
+
} */
|
|
38
|
+
},
|
|
39
|
+
onUnload() { }
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=ExamplePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExamplePlugin.js","sourceRoot":"","sources":["../../plugins/ExamplePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,oEAAoE;AACpE,6DAA6D;AAE7D,eAAe,YAAY,CAAC;IACxB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAEhB,KAAK,CAAC,MAAM,CAAC,OAAO;QAChB,+BAA+B;QAC/B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC3C,OAAO;QACX,CAAC;QACD,+BAA+B;QAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;QAEnD,cAAc;QACtB;;;;;;;;;;;;;;;;;;;oBAmBY;IACR,CAAC;IAED,QAAQ,KAAI,CAAC;CAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Plugin, PluginContext } from "../src";
|
|
2
|
+
/**
|
|
3
|
+
* A demo plugin showcasing the new "onStart" hook and configuration.
|
|
4
|
+
*
|
|
5
|
+
* To disable the welcome message, configure:
|
|
6
|
+
* {
|
|
7
|
+
* "showWelcome": false
|
|
8
|
+
* }
|
|
9
|
+
*/
|
|
10
|
+
export declare class LifecycleDemoPlugin extends Plugin {
|
|
11
|
+
name: string;
|
|
12
|
+
version: string;
|
|
13
|
+
defaultConfig: {
|
|
14
|
+
showWelcome: boolean;
|
|
15
|
+
message: string;
|
|
16
|
+
};
|
|
17
|
+
onLoad(context: PluginContext): void;
|
|
18
|
+
setup(build: import("../src").PluginBuilder): void;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=LifecycleDemoPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleDemoPlugin.d.ts","sourceRoot":"","sources":["../../plugins/LifecycleDemoPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE/C;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,MAAM;IAC3C,IAAI,SAAoB;IACxB,OAAO,SAAW;IAGT,aAAa;;;MAGpB;IAEO,MAAM,CAAC,OAAO,EAAE,aAAa;IAI7B,KAAK,CAAC,KAAK,EAAE,OAAO,QAAQ,EAAE,aAAa;CAavD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Plugin } from "../src";
|
|
2
|
+
/**
|
|
3
|
+
* A demo plugin showcasing the new "onStart" hook and configuration.
|
|
4
|
+
*
|
|
5
|
+
* To disable the welcome message, configure:
|
|
6
|
+
* {
|
|
7
|
+
* "showWelcome": false
|
|
8
|
+
* }
|
|
9
|
+
*/
|
|
10
|
+
export class LifecycleDemoPlugin extends Plugin {
|
|
11
|
+
name = "lifecycle-demo";
|
|
12
|
+
version = "1.0.0";
|
|
13
|
+
// Default config
|
|
14
|
+
defaultConfig = {
|
|
15
|
+
showWelcome: true,
|
|
16
|
+
message: "Application Lifecycle Started!"
|
|
17
|
+
};
|
|
18
|
+
onLoad(context) {
|
|
19
|
+
context.log.info("LifecycleDemo plugin loaded");
|
|
20
|
+
}
|
|
21
|
+
setup(build) {
|
|
22
|
+
// Access config passed to setup
|
|
23
|
+
const config = build.config;
|
|
24
|
+
// Register the NEW onStart hook
|
|
25
|
+
build.onStart(() => {
|
|
26
|
+
if (config.showWelcome !== false) {
|
|
27
|
+
const message = config.message || this.defaultConfig.message;
|
|
28
|
+
// Example: Perform post-startup initialization logic here
|
|
29
|
+
// e.g., connect to DBs, start background jobs, etc.
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=LifecycleDemoPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LifecycleDemoPlugin.js","sourceRoot":"","sources":["../../plugins/LifecycleDemoPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAoB,SAAQ,MAAM;IAC3C,IAAI,GAAG,gBAAgB,CAAC;IACxB,OAAO,GAAG,OAAO,CAAC;IAElB,iBAAiB;IACR,aAAa,GAAG;QACrB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,gCAAgC;KAC5C,CAAC;IAEO,MAAM,CAAC,OAAsB;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IACpD,CAAC;IAEQ,KAAK,CAAC,KAAqC;QAChD,gCAAgC;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAE5B,gCAAgC;QAChC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;YACf,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;gBAC7D,0DAA0D;gBAC1D,oDAAoD;YACxD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Plugin, PluginContext } from "../src";
|
|
2
|
+
export interface MathPluginApi {
|
|
3
|
+
add(a: number, b: number): number;
|
|
4
|
+
multiply(a: number, b: number): number;
|
|
5
|
+
}
|
|
6
|
+
export declare class MathPlugin extends Plugin {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
onLoad(context: PluginContext): void;
|
|
10
|
+
add(a: number, b: number): number;
|
|
11
|
+
multiply(a: number, b: number): number;
|
|
12
|
+
getApi(): MathPluginApi;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: MathPlugin;
|
|
15
|
+
export default _default;
|
|
16
|
+
//# sourceMappingURL=MathPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathPlugin.d.ts","sourceRoot":"","sources":["../../plugins/MathPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED,qBAAa,UAAW,SAAQ,MAAM;IACpC,IAAI,SAAiB;IACrB,OAAO,SAAW;IAET,MAAM,CAAC,OAAO,EAAE,aAAa;IAKtC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAIjC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAKtC,MAAM,IAAI,aAAa;CAQxB;;AAGD,wBAAgC"}
|