bun_plugins 1.2.6 → 1.2.7
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/LICENSE +9 -0
- package/README.md +127 -3
- package/dist/examples/action-registry-declarative.d.ts +14 -0
- package/dist/examples/action-registry-declarative.d.ts.map +1 -0
- package/dist/examples/action-registry-declarative.js +130 -0
- package/dist/examples/action-registry-declarative.js.map +1 -0
- package/dist/examples/action-registry-example.d.ts +31 -0
- package/dist/examples/action-registry-example.d.ts.map +1 -0
- package/dist/examples/action-registry-example.js +84 -0
- package/dist/examples/action-registry-example.js.map +1 -0
- package/dist/examples/index-declarative.d.ts +32 -0
- package/dist/examples/index-declarative.d.ts.map +1 -0
- package/dist/examples/index-declarative.js +206 -0
- package/dist/examples/index-declarative.js.map +1 -0
- package/dist/examples/logger-declarative.d.ts +109 -0
- package/dist/examples/logger-declarative.d.ts.map +1 -0
- package/dist/examples/logger-declarative.js +330 -0
- package/dist/examples/logger-declarative.js.map +1 -0
- package/dist/examples/logger-simple.d.ts +8 -0
- package/dist/examples/logger-simple.d.ts.map +1 -0
- package/dist/examples/logger-simple.js +165 -0
- package/dist/examples/logger-simple.js.map +1 -0
- package/dist/examples/server-declarative.d.ts +46 -0
- package/dist/examples/server-declarative.d.ts.map +1 -0
- package/dist/examples/server-declarative.js +205 -0
- package/dist/examples/server-declarative.js.map +1 -0
- package/dist/examples/shared/action-registry.d.ts +45 -0
- package/dist/examples/shared/action-registry.d.ts.map +1 -0
- package/dist/examples/shared/action-registry.js +65 -0
- package/dist/examples/shared/action-registry.js.map +1 -0
- package/dist/examples/shared/plugin-builder.d.ts +41 -0
- package/dist/examples/shared/plugin-builder.d.ts.map +1 -0
- package/dist/examples/shared/plugin-builder.js +85 -0
- package/dist/examples/shared/plugin-builder.js.map +1 -0
- package/dist/examples/storage-declarative.d.ts +13 -0
- package/dist/examples/storage-declarative.d.ts.map +1 -0
- package/dist/examples/storage-declarative.js +203 -0
- package/dist/examples/storage-declarative.js.map +1 -0
- package/dist/plugins/ActionRegistryPlugin.d.ts +14 -0
- package/dist/plugins/ActionRegistryPlugin.d.ts.map +1 -0
- package/dist/plugins/ActionRegistryPlugin.js +52 -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 +24 -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 +30 -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/TypedExamplePlugin.d.ts +10 -0
- package/dist/plugins/TypedExamplePlugin.d.ts.map +1 -0
- package/dist/plugins/TypedExamplePlugin.js +61 -0
- package/dist/plugins/TypedExamplePlugin.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} +33 -10
- package/dist/src/PluginManager.d.ts.map +1 -0
- package/dist/{PluginManager.js → src/PluginManager.js} +245 -193
- package/dist/src/PluginManager.js.map +1 -0
- package/dist/{index.d.ts → src/index.d.ts} +2 -1
- 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/{managers → src/managers}/ContextFactory.d.ts +1 -1
- package/dist/src/managers/ContextFactory.d.ts.map +1 -0
- package/dist/{managers → src/managers}/ContextFactory.js +51 -26
- 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 +7 -5
- 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 +3 -3
- package/dist/src/managers/ResourceManager.js.map +1 -0
- package/dist/src/storage/JsonPluginStorage.d.ts +75 -0
- package/dist/src/storage/JsonPluginStorage.d.ts.map +1 -0
- package/dist/src/storage/JsonPluginStorage.js +240 -0
- package/dist/src/storage/JsonPluginStorage.js.map +1 -0
- package/dist/src/types/plugin-registry-base.d.ts +80 -0
- package/dist/src/types/plugin-registry-base.d.ts.map +1 -0
- package/dist/src/types/plugin-registry-base.js +6 -0
- package/dist/src/types/plugin-registry-base.js.map +1 -0
- package/dist/{types.d.ts → src/types.d.ts} +60 -19
- package/dist/src/types.d.ts.map +1 -0
- package/dist/{types.js → src/types.js} +6 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/errorParser.d.ts.map +1 -0
- package/dist/{utils → src/utils}/errorParser.js +2 -5
- package/dist/src/utils/errorParser.js.map +1 -0
- package/dist/src/utils/pluginValidator.d.ts +17 -0
- package/dist/src/utils/pluginValidator.d.ts.map +1 -0
- package/dist/{utils → src/utils}/pluginValidator.js +11 -14
- 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 +38 -13
- package/dist/src/worker/WorkerRunner.js.map +1 -0
- package/package.json +9 -6
- 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 +0 -14
- package/dist/storage/JsonPluginStorage.d.ts.map +0 -1
- package/dist/storage/JsonPluginStorage.js +0 -63
- 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 +0 -93
- 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}/DependencyManager.d.ts +0 -0
- /package/dist/{managers → src/managers}/ResourceManager.d.ts +0 -0
- /package/dist/{utils → src/utils}/errorParser.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
|
@@ -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":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExamplePlugin.d.ts","sourceRoot":"","sources":["../../plugins/ExamplePlugin.ts"],"names":[],"mappings":";AAIA,wBAyBG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { definePlugin } from "../src";
|
|
2
|
+
// Con la nueva solución de tipos extensibles, los tipos están disponibles directamente
|
|
3
|
+
// desde bun_plugins/plugin-registry-base y pueden ser extendidos por usuarios
|
|
4
|
+
export default definePlugin({
|
|
5
|
+
name: "edge",
|
|
6
|
+
version: "1.0.0",
|
|
7
|
+
async onLoad(context) {
|
|
8
|
+
// getPlugin ahora es asíncrono y tiene type safety
|
|
9
|
+
const mathPlugin = await context.getPlugin('math-plugin');
|
|
10
|
+
if (!mathPlugin) {
|
|
11
|
+
context.log.error("Math plugin not found");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// ✅ Type safety automático - TypeScript conoce los métodos disponibles
|
|
15
|
+
const result = mathPlugin.add(1, 2);
|
|
16
|
+
context.log.info(`Math result: ${result}`);
|
|
17
|
+
const multiplyResult = mathPlugin.multiply(3, 4);
|
|
18
|
+
context.log.info(`Multiplication result: ${multiplyResult}`);
|
|
19
|
+
// mathPlugin ya es la API del plugin, no es necesario llamar a getApi()
|
|
20
|
+
context.log.info(`Math API version: ${mathPlugin.version}`);
|
|
21
|
+
},
|
|
22
|
+
onUnload() { }
|
|
23
|
+
});
|
|
24
|
+
//# 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;AACtC,uFAAuF;AACvF,8EAA8E;AAE9E,eAAe,YAAY,CAAC;IACxB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,OAAO;IAEhB,KAAK,CAAC,MAAM,CAAC,OAAO;QAChB,mDAAmD;QACnD,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;QAED,uEAAuE;QACvE,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAC;QAE3C,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,cAAc,EAAE,CAAC,CAAC;QAE7D,wEAAwE;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,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;IAWtC,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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Plugin } from "../src";
|
|
2
|
+
export class MathPlugin extends Plugin {
|
|
3
|
+
name = "math-plugin";
|
|
4
|
+
version = "0.5.0";
|
|
5
|
+
onLoad(context) {
|
|
6
|
+
context.log.info("Math capabilities ready");
|
|
7
|
+
// Registrar la API de este plugin para que otros plugins puedan acceder
|
|
8
|
+
context.registerApi({
|
|
9
|
+
add: this.add.bind(this),
|
|
10
|
+
multiply: this.multiply.bind(this)
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
// Custom method exposed by this plugin
|
|
14
|
+
add(a, b) {
|
|
15
|
+
return a + b;
|
|
16
|
+
}
|
|
17
|
+
multiply(a, b) {
|
|
18
|
+
return a * b;
|
|
19
|
+
}
|
|
20
|
+
// Exponer la API compartida
|
|
21
|
+
getApi() {
|
|
22
|
+
return {
|
|
23
|
+
add: this.add.bind(this),
|
|
24
|
+
multiply: this.multiply.bind(this)
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Exportar una instancia por defecto
|
|
29
|
+
export default new MathPlugin();
|
|
30
|
+
//# sourceMappingURL=MathPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MathPlugin.js","sourceRoot":"","sources":["../../plugins/MathPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAC;AAQ/C,MAAM,OAAO,UAAW,SAAQ,MAAM;IACpC,IAAI,GAAG,aAAa,CAAC;IACrB,OAAO,GAAG,OAAO,CAAC;IAET,MAAM,CAAC,OAAsB;QACpC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAE5C,wEAAwE;QACxE,OAAO,CAAC,WAAW,CAAC;YAClB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,GAAG,CAAC,CAAS,EAAE,CAAS;QACtB,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC3B,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,4BAA4B;IAC5B,MAAM;QACJ,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;SACnC,CAAC;IACJ,CAAC;CAGF;AAED,qCAAqC;AACrC,eAAe,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyJSPlugin.d.ts","sourceRoot":"","sources":["../../plugins/MyJSPlugin.js"],"names":[],"mappings":"AACA;IACE,aAAsB;IACtB,gBAAkB;IAElB,2BAEC;IAED,iBAEC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// plugins/MyJSPlugin.js
|
|
2
|
+
export class MyJSPlugin {
|
|
3
|
+
name = "my-js-plugin";
|
|
4
|
+
version = "1.0.0";
|
|
5
|
+
onLoad(context) {
|
|
6
|
+
context.log.info("JS plugin loaded");
|
|
7
|
+
}
|
|
8
|
+
onUnload() {
|
|
9
|
+
// Cleanup is handled by the plugin manager
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=MyJSPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyJSPlugin.js","sourceRoot":"","sources":["../../plugins/MyJSPlugin.js"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,MAAM,OAAO,UAAU;IACrB,IAAI,GAAG,cAAc,CAAC;IACtB,OAAO,GAAG,OAAO,CAAC;IAElB,MAAM,CAAC,OAAO;QACZ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,2CAA2C;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ejemplo de plugin que usa el sistema de tipos para tener autocompletado
|
|
3
|
+
* al acceder a otros plugins.
|
|
4
|
+
*
|
|
5
|
+
* Este plugin demuestra cómo usar context.getPlugin() con type safety
|
|
6
|
+
* gracias al archivo plugins/types.d.ts que extiende PluginFactory.
|
|
7
|
+
*/
|
|
8
|
+
declare const _default: import("bun_plugins").IPlugin;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=TypedExamplePlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedExamplePlugin.d.ts","sourceRoot":"","sources":["../../plugins/TypedExamplePlugin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;AAIH,wBAoEG"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ejemplo de plugin que usa el sistema de tipos para tener autocompletado
|
|
3
|
+
* al acceder a otros plugins.
|
|
4
|
+
*
|
|
5
|
+
* Este plugin demuestra cómo usar context.getPlugin() con type safety
|
|
6
|
+
* gracias al archivo plugins/types.d.ts que extiende PluginFactory.
|
|
7
|
+
*/
|
|
8
|
+
import { definePlugin } from "../src";
|
|
9
|
+
export default definePlugin({
|
|
10
|
+
name: "typed-example",
|
|
11
|
+
version: "1.0.0",
|
|
12
|
+
description: "Ejemplo de plugin con type safety",
|
|
13
|
+
async onLoad(context) {
|
|
14
|
+
context.log.info("Typed example plugin loading...");
|
|
15
|
+
// ✅ TypeScript conoce el tipo exacto de MathPluginApi
|
|
16
|
+
const mathPlugin = await context.getPlugin('math-plugin');
|
|
17
|
+
if (!mathPlugin) {
|
|
18
|
+
context.log.error("Math plugin not found");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
// ✅ Autocompletado completo y type safety
|
|
22
|
+
const sum = mathPlugin.add(10, 20);
|
|
23
|
+
context.log.info(`Sum: ${sum}`); // Sum: 30
|
|
24
|
+
const product = mathPlugin.multiply(5, 6);
|
|
25
|
+
context.log.info(`Product: ${product}`); // Product: 30
|
|
26
|
+
const difference = mathPlugin.subtract(100, 25);
|
|
27
|
+
context.log.info(`Difference: ${difference}`); // Difference: 75
|
|
28
|
+
const quotient = mathPlugin.divide(100, 4);
|
|
29
|
+
context.log.info(`Quotient: ${quotient}`); // Quotient: 25
|
|
30
|
+
// ✅ Puedes acceder a otros plugins también
|
|
31
|
+
const textPlugin = await context.getPlugin('text-plugin');
|
|
32
|
+
if (textPlugin) {
|
|
33
|
+
const upper = textPlugin.toUpperCase('hello world');
|
|
34
|
+
context.log.info(`Uppercase: ${upper}`); // Uppercase: HELLO WORLD
|
|
35
|
+
const lower = textPlugin.toLowerCase('HELLO WORLD');
|
|
36
|
+
context.log.info(`Lowercase: ${lower}`); // Lowercase: hello world
|
|
37
|
+
const reversed = textPlugin.reverse('hello');
|
|
38
|
+
context.log.info(`Reversed: ${reversed}`); // Reversed: olleh
|
|
39
|
+
}
|
|
40
|
+
// ✅ TypeScript mostrará error si intentas usar un método que no existe
|
|
41
|
+
// mathPlugin.nonExistentMethod(); // ❌ Error: Property 'nonExistentMethod' does not exist
|
|
42
|
+
// ✅ También puedes usar el plugin de action registry
|
|
43
|
+
const actionRegistry = await context.getPlugin('action-registry');
|
|
44
|
+
if (actionRegistry) {
|
|
45
|
+
// Registrar una acción personalizada
|
|
46
|
+
actionRegistry.registerAction('custom-math', (a, b) => {
|
|
47
|
+
return a * b + a + b;
|
|
48
|
+
});
|
|
49
|
+
// Listar todas las acciones disponibles
|
|
50
|
+
const actions = actionRegistry.listActions();
|
|
51
|
+
context.log.info(`Available actions: ${actions.join(', ')}`);
|
|
52
|
+
// Ejecutar la acción personalizada
|
|
53
|
+
const result = actionRegistry.executeAction('custom-math', 5, 3);
|
|
54
|
+
context.log.info(`Custom math result: ${result}`); // Custom math result: 23
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
onUnload() {
|
|
58
|
+
// Cleanup si es necesario
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=TypedExamplePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypedExamplePlugin.js","sourceRoot":"","sources":["../../plugins/TypedExamplePlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IPlugin, PluginContext } from "../../src";
|
|
2
|
+
export declare class ArkTypePlugin implements IPlugin {
|
|
3
|
+
name: string;
|
|
4
|
+
version: string;
|
|
5
|
+
onLoad(context: PluginContext): Promise<void>;
|
|
6
|
+
onUnload(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugins/arktype/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGxD,qBAAa,aAAc,YAAW,OAAO;IACzC,IAAI,SAAoB;IACxB,OAAO,SAAW;IAEZ,MAAM,CAAC,OAAO,EAAE,aAAa;IAqB7B,QAAQ;CAGjB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type } from "arktype";
|
|
2
|
+
export class ArkTypePlugin {
|
|
3
|
+
name = "arktype-plugin";
|
|
4
|
+
version = "1.0.0";
|
|
5
|
+
async onLoad(context) {
|
|
6
|
+
context.log.info("ArkTypePlugin loading...");
|
|
7
|
+
// Define a schema using ArkType
|
|
8
|
+
const user = type({
|
|
9
|
+
id: "number",
|
|
10
|
+
name: "string",
|
|
11
|
+
age: "number"
|
|
12
|
+
});
|
|
13
|
+
const testData = {
|
|
14
|
+
id: 1,
|
|
15
|
+
name: "John Doe",
|
|
16
|
+
age: 30
|
|
17
|
+
};
|
|
18
|
+
const result = user(testData);
|
|
19
|
+
context.log.info("result", result);
|
|
20
|
+
}
|
|
21
|
+
async onUnload() {
|
|
22
|
+
console.log("ArkTypePlugin unloading...");
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../plugins/arktype/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,OAAO,aAAa;IACtB,IAAI,GAAG,gBAAgB,CAAC;IACxB,OAAO,GAAG,OAAO,CAAC;IAElB,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE7C,gCAAgC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC;YACd,EAAE,EAAE,QAAQ;YACZ,IAAI,EAAE,QAAQ;YACd,GAAG,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG;YACb,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,UAAU;YAChB,GAAG,EAAE,EAAE;SACV,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;CACJ"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { IPlugin, PluginContext, PluginBuilder, PluginPermission } from "./types";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for Plugins to extend.
|
|
5
|
+
* Provides default implementations for optional methods.
|
|
6
|
+
*/
|
|
7
|
+
export declare abstract class Plugin implements IPlugin {
|
|
8
|
+
abstract name: string;
|
|
9
|
+
abstract version: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
author?: string;
|
|
12
|
+
dependencies?: Record<string, string>;
|
|
13
|
+
permissions?: PluginPermission[];
|
|
14
|
+
allowedDomains?: string[];
|
|
15
|
+
configSchema?: z.ZodSchema;
|
|
16
|
+
defaultConfig?: Record<string, any>;
|
|
17
|
+
onLoad(context: PluginContext): Promise<void> | void;
|
|
18
|
+
onUnload(): Promise<void> | void;
|
|
19
|
+
onStarted(): Promise<void> | void;
|
|
20
|
+
onReload(context: PluginContext): Promise<void> | void;
|
|
21
|
+
setup(build: PluginBuilder): void | Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Helper function to define a plugin object with type inference.
|
|
25
|
+
* Useful for functional-style plugin definitions.
|
|
26
|
+
*/
|
|
27
|
+
export declare function definePlugin(plugin: IPlugin): IPlugin;
|
|
28
|
+
//# sourceMappingURL=Plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,8BAAsB,MAAO,YAAW,OAAO;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIhC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIjC,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAItD,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAErD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for Plugins to extend.
|
|
3
|
+
* Provides default implementations for optional methods.
|
|
4
|
+
*/
|
|
5
|
+
export class Plugin {
|
|
6
|
+
description;
|
|
7
|
+
author;
|
|
8
|
+
dependencies;
|
|
9
|
+
permissions;
|
|
10
|
+
allowedDomains;
|
|
11
|
+
configSchema;
|
|
12
|
+
defaultConfig;
|
|
13
|
+
onLoad(context) {
|
|
14
|
+
// Default no-op
|
|
15
|
+
}
|
|
16
|
+
onUnload() {
|
|
17
|
+
// Default no-op
|
|
18
|
+
}
|
|
19
|
+
onStarted() {
|
|
20
|
+
// Default no-op
|
|
21
|
+
}
|
|
22
|
+
onReload(context) {
|
|
23
|
+
// Default no-op defined but not enforced by interface strictly if optional
|
|
24
|
+
}
|
|
25
|
+
setup(build) {
|
|
26
|
+
// Default no-op
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Helper function to define a plugin object with type inference.
|
|
31
|
+
* Useful for functional-style plugin definitions.
|
|
32
|
+
*/
|
|
33
|
+
export function definePlugin(plugin) {
|
|
34
|
+
return plugin;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=Plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,OAAgB,MAAM;IAIxB,WAAW,CAAU;IACrB,MAAM,CAAU;IAChB,YAAY,CAA0B;IACtC,WAAW,CAAsB;IACjC,cAAc,CAAY;IAC1B,YAAY,CAAe;IAC3B,aAAa,CAAuB;IAEpC,MAAM,CAAC,OAAsB;QACzB,gBAAgB;IACpB,CAAC;IAED,QAAQ;QACJ,gBAAgB;IACpB,CAAC;IAED,SAAS;QACL,gBAAgB;IACpB,CAAC;IAED,QAAQ,CAAC,OAAsB;QAC3B,2EAA2E;IAC/E,CAAC;IAED,KAAK,CAAC,KAAoB;QACtB,gBAAgB;IACpB,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAe;IACxC,OAAO,MAAM,CAAC;AAClB,CAAC"}
|