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
|
@@ -1,44 +1,61 @@
|
|
|
1
|
-
import {} from "../
|
|
2
|
-
import {
|
|
3
|
-
export function createPluginContext(manager, plugin, resources, storage
|
|
1
|
+
import { checkNetworkPermission, checkPermission as checkGeneralPermission, } from "../utils/security";
|
|
2
|
+
import { logger } from "../logger";
|
|
3
|
+
export function createPluginContext(manager, plugin, resources, storage) {
|
|
4
4
|
// We get the resource container directly.
|
|
5
5
|
const pluginResources = resources.get(plugin.name);
|
|
6
6
|
if (!pluginResources)
|
|
7
7
|
throw new Error("Resources not initialized for plugin");
|
|
8
8
|
const checkPermission = (perm, url) => {
|
|
9
|
-
if (perm ===
|
|
9
|
+
if (perm === "network" && url) {
|
|
10
10
|
checkNetworkPermission(plugin.name, plugin.permissions, plugin.allowedDomains, url);
|
|
11
11
|
}
|
|
12
|
-
else if (perm ===
|
|
12
|
+
else if (perm === "filesystem" || perm === "env") {
|
|
13
13
|
checkGeneralPermission(plugin.name, plugin.permissions, perm);
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
16
|
return {
|
|
17
17
|
manager: manager,
|
|
18
18
|
storage,
|
|
19
|
-
config
|
|
19
|
+
get config() {
|
|
20
|
+
return manager.getPluginConfig(plugin.name);
|
|
21
|
+
},
|
|
20
22
|
// Legacy support
|
|
21
23
|
emit: (event, payload) => manager.emit(event, payload),
|
|
22
24
|
on: (event, callback) => {
|
|
23
25
|
manager.on(event, callback);
|
|
24
|
-
pluginResources.eventListeners.push({
|
|
26
|
+
pluginResources.eventListeners.push({
|
|
27
|
+
event: event,
|
|
28
|
+
listener: callback,
|
|
29
|
+
});
|
|
25
30
|
},
|
|
26
31
|
events: {
|
|
27
32
|
emit: (event, payload) => manager.emit(event, payload),
|
|
28
33
|
on: (event, callback) => {
|
|
29
34
|
manager.on(event, callback);
|
|
30
|
-
pluginResources.eventListeners.push({
|
|
31
|
-
|
|
35
|
+
pluginResources.eventListeners.push({
|
|
36
|
+
event: event,
|
|
37
|
+
listener: callback,
|
|
38
|
+
});
|
|
39
|
+
},
|
|
32
40
|
},
|
|
33
|
-
getPlugin: (name) => {
|
|
41
|
+
getPlugin: async (name) => {
|
|
34
42
|
const p = manager.getPlugin(name);
|
|
35
|
-
|
|
43
|
+
if (!p)
|
|
44
|
+
return undefined;
|
|
45
|
+
// Try to get the registered API first
|
|
46
|
+
const api = manager.getPluginApi(name);
|
|
47
|
+
if (api)
|
|
48
|
+
return api;
|
|
49
|
+
// Fallback to the plugin itself
|
|
50
|
+
// Note: This is an intentional type assertion. When no API is registered,
|
|
51
|
+
// we return the plugin instance itself. Users should register APIs via
|
|
52
|
+
// context.registerApi() for proper type safety.
|
|
53
|
+
return p;
|
|
36
54
|
},
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
warn: (msg, ...args) => console.warn(`[${plugin.name}] warn: ${msg}`, ...args),
|
|
40
|
-
error: (msg, ...args) => console.error(`[${plugin.name}] error: ${msg}`, ...args),
|
|
55
|
+
registerApi: (api) => {
|
|
56
|
+
manager.registerApi(plugin.name, api);
|
|
41
57
|
},
|
|
58
|
+
log: logger.getLogger(plugin.name),
|
|
42
59
|
createWorker: (url, options) => {
|
|
43
60
|
// Use the manager's worker factory to allow proper mocking in tests
|
|
44
61
|
const workerFactory = manager.getWorkerFactory();
|
|
@@ -64,19 +81,19 @@ export function createPluginContext(manager, plugin, resources, storage, config)
|
|
|
64
81
|
}
|
|
65
82
|
});
|
|
66
83
|
w.addEventListener?.("error", (err) => {
|
|
67
|
-
|
|
84
|
+
logger.getLogger(plugin.name).error(`Worker error:`, err.message);
|
|
68
85
|
});
|
|
69
86
|
resources.get(plugin.name)?.workers.push(w);
|
|
70
87
|
return w;
|
|
71
88
|
},
|
|
72
89
|
setTimeout: (callback, delay, ...args) => {
|
|
73
90
|
const id = setTimeout(callback, delay, ...args);
|
|
74
|
-
resources.get(plugin.name)?.timers.push({ id, type:
|
|
91
|
+
resources.get(plugin.name)?.timers.push({ id, type: "timeout" });
|
|
75
92
|
return id;
|
|
76
93
|
},
|
|
77
94
|
setInterval: (callback, delay, ...args) => {
|
|
78
95
|
const id = setInterval(callback, delay, ...args);
|
|
79
|
-
resources.get(plugin.name)?.timers.push({ id, type:
|
|
96
|
+
resources.get(plugin.name)?.timers.push({ id, type: "interval" });
|
|
80
97
|
return id;
|
|
81
98
|
},
|
|
82
99
|
clearTimeout: (id) => {
|
|
@@ -88,22 +105,30 @@ export function createPluginContext(manager, plugin, resources, storage, config)
|
|
|
88
105
|
},
|
|
89
106
|
network: {
|
|
90
107
|
fetch: (input, init) => {
|
|
91
|
-
const urlStr = typeof input ===
|
|
92
|
-
|
|
108
|
+
const urlStr = typeof input === "string"
|
|
109
|
+
? input
|
|
110
|
+
: input instanceof URL
|
|
111
|
+
? input.toString()
|
|
112
|
+
: input.url;
|
|
113
|
+
checkPermission("network", urlStr);
|
|
93
114
|
return fetch(input, init);
|
|
94
|
-
}
|
|
115
|
+
},
|
|
95
116
|
},
|
|
96
117
|
file: (path) => {
|
|
97
|
-
checkPermission(
|
|
118
|
+
checkPermission("filesystem");
|
|
98
119
|
return Bun.file(path);
|
|
99
120
|
},
|
|
100
121
|
get env() {
|
|
101
|
-
checkPermission(
|
|
122
|
+
checkPermission("env");
|
|
102
123
|
return new Proxy(process.env, {
|
|
103
|
-
get(target, prop) {
|
|
104
|
-
|
|
124
|
+
get(target, prop) {
|
|
125
|
+
return Reflect.get(target, prop);
|
|
126
|
+
},
|
|
127
|
+
set() {
|
|
128
|
+
throw new Error("Plugins cannot modify environment variables.");
|
|
129
|
+
},
|
|
105
130
|
});
|
|
106
|
-
}
|
|
131
|
+
},
|
|
107
132
|
};
|
|
108
133
|
}
|
|
109
134
|
//# sourceMappingURL=ContextFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextFactory.js","sourceRoot":"","sources":["../../../src/managers/ContextFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyManager.d.ts","sourceRoot":"","sources":["../../../src/managers/DependencyManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC,qBAAa,iBAAiB;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE;IAkF/C,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAcnF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import semver from "semver";
|
|
1
|
+
import * as semver from "semver";
|
|
2
|
+
import { logger } from "../logger";
|
|
2
3
|
export class DependencyManager {
|
|
3
4
|
/**
|
|
4
5
|
* Topologically sort plugins based on dependencies.
|
|
@@ -34,6 +35,7 @@ export class DependencyManager {
|
|
|
34
35
|
// For pure topological sort of a batch, we just sort the batch.
|
|
35
36
|
// If A depends on B, and B is not in batch, we assume B is effectively "root" relative to this batch
|
|
36
37
|
// (i.e., we don't add an edge to it within this graph).
|
|
38
|
+
logger.getLogger("DependencyManager").warn(`Plugin ${p.name} depends on missing plugin: ${depName}`);
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
}
|
|
@@ -41,12 +43,12 @@ export class DependencyManager {
|
|
|
41
43
|
// Output logic: Dependency -> Dependent
|
|
42
44
|
// Using Kahn's algorithm or similar.
|
|
43
45
|
const inDegree = new Map();
|
|
44
|
-
for (const name of pluginMap.keys())
|
|
46
|
+
for (const name of Array.from(pluginMap.keys()))
|
|
45
47
|
inDegree.set(name, 0);
|
|
46
48
|
const adj = new Map();
|
|
47
|
-
for (const name of pluginMap.keys())
|
|
49
|
+
for (const name of Array.from(pluginMap.keys()))
|
|
48
50
|
adj.set(name, []);
|
|
49
|
-
for (const [pName, deps] of g.entries()) {
|
|
51
|
+
for (const [pName, deps] of Array.from(g.entries())) {
|
|
50
52
|
for (const depName of deps) {
|
|
51
53
|
// depName -> pName
|
|
52
54
|
if (adj.has(depName)) {
|
|
@@ -56,7 +58,7 @@ export class DependencyManager {
|
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
const queue = [];
|
|
59
|
-
for (const [name, deg] of inDegree.entries()) {
|
|
61
|
+
for (const [name, deg] of Array.from(inDegree.entries())) {
|
|
60
62
|
if (deg === 0)
|
|
61
63
|
queue.push(name);
|
|
62
64
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DependencyManager.js","sourceRoot":"","sources":["../../../src/managers/DependencyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,13 @@ import type { BunPlugin } from "bun";
|
|
|
3
3
|
export declare class HooksManager {
|
|
4
4
|
private onResolveHooks;
|
|
5
5
|
private onLoadHooks;
|
|
6
|
+
private onStartHooks;
|
|
6
7
|
registerOnResolve(filter: RegExp, callback: OnResolveCallback, pluginName: string, order?: HookOrder): void;
|
|
7
8
|
registerOnLoad(filter: RegExp, callback: OnLoadCallback, pluginName: string, order?: HookOrder): void;
|
|
9
|
+
registerOnStart(callback: () => void | Promise<void>, pluginName: string): void;
|
|
8
10
|
getHookCount(type: HookType): number;
|
|
9
11
|
cleanup(pluginName: string): void;
|
|
12
|
+
runOnStart(): Promise<void>;
|
|
10
13
|
runOnResolve(args: OnResolveArgs): Promise<{
|
|
11
14
|
path: string;
|
|
12
15
|
namespace?: string;
|
|
@@ -15,7 +18,7 @@ export declare class HooksManager {
|
|
|
15
18
|
contents?: string;
|
|
16
19
|
loader?: string;
|
|
17
20
|
} | null>;
|
|
18
|
-
getBuilder(pluginName: string): PluginBuilder;
|
|
21
|
+
getBuilder(pluginName: string, config: Record<string, any>): PluginBuilder;
|
|
19
22
|
toBunPlugin(): BunPlugin;
|
|
20
23
|
}
|
|
21
24
|
//# sourceMappingURL=HooksManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HooksManager.d.ts","sourceRoot":"","sources":["../../../src/managers/HooksManager.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EAEf,KAAK,aAAa,EAClB,SAAS,EACT,QAAQ,EACX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,SAAS,EAAU,MAAM,KAAK,CAAC;AAG7C,qBAAa,YAAY;IACrB,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,YAAY,CAAsE;IAE1F,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS;IAMpG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS;IAI9F,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM;IAIxE,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM;IAOpC,OAAO,CAAC,UAAU,EAAE,MAAM;IAMpB,UAAU;IAUV,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAmBvF,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAgCzF,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,aAAa;IA+B1E,WAAW,IAAI,SAAS;CAsB3B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { HookOrder, HookType } from "../types";
|
|
2
|
+
import { logger } from "../logger";
|
|
2
3
|
export class HooksManager {
|
|
3
4
|
onResolveHooks = [];
|
|
4
5
|
onLoadHooks = [];
|
|
6
|
+
onStartHooks = [];
|
|
5
7
|
registerOnResolve(filter, callback, pluginName, order) {
|
|
6
8
|
// Performance wrapper could be applied here or by caller.
|
|
7
9
|
// For simplicity, we store as is.
|
|
@@ -10,12 +12,32 @@ export class HooksManager {
|
|
|
10
12
|
registerOnLoad(filter, callback, pluginName, order) {
|
|
11
13
|
this.onLoadHooks.push({ filter, callback, pluginName, order });
|
|
12
14
|
}
|
|
15
|
+
registerOnStart(callback, pluginName) {
|
|
16
|
+
this.onStartHooks.push({ callback, pluginName });
|
|
17
|
+
}
|
|
13
18
|
getHookCount(type) {
|
|
14
|
-
|
|
19
|
+
if (type === HookType.ON_RESOLVE)
|
|
20
|
+
return this.onResolveHooks.length;
|
|
21
|
+
if (type === HookType.ON_LOAD)
|
|
22
|
+
return this.onLoadHooks.length;
|
|
23
|
+
if (type === HookType.ON_START)
|
|
24
|
+
return this.onStartHooks.length;
|
|
25
|
+
return 0;
|
|
15
26
|
}
|
|
16
27
|
cleanup(pluginName) {
|
|
17
28
|
this.onResolveHooks = this.onResolveHooks.filter(h => h.pluginName !== pluginName);
|
|
18
29
|
this.onLoadHooks = this.onLoadHooks.filter(h => h.pluginName !== pluginName);
|
|
30
|
+
this.onStartHooks = this.onStartHooks.filter(h => h.pluginName !== pluginName);
|
|
31
|
+
}
|
|
32
|
+
async runOnStart() {
|
|
33
|
+
for (const hook of this.onStartHooks) {
|
|
34
|
+
try {
|
|
35
|
+
await hook.callback();
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
logger.getLogger("HooksManager").error(`Error in onStart hook from ${hook.pluginName}:`, e);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
19
41
|
}
|
|
20
42
|
async runOnResolve(args) {
|
|
21
43
|
const sortedHooks = [...this.onResolveHooks].sort((a, b) => {
|
|
@@ -30,7 +52,7 @@ export class HooksManager {
|
|
|
30
52
|
return result;
|
|
31
53
|
}
|
|
32
54
|
catch (e) {
|
|
33
|
-
|
|
55
|
+
logger.getLogger("HooksManager").error(`Error in onResolve hook from ${hook.pluginName}:`, e);
|
|
34
56
|
}
|
|
35
57
|
}
|
|
36
58
|
}
|
|
@@ -60,32 +82,38 @@ export class HooksManager {
|
|
|
60
82
|
}
|
|
61
83
|
}
|
|
62
84
|
catch (e) {
|
|
63
|
-
|
|
85
|
+
logger.getLogger("HooksManager").error(`Error in onLoad hook from ${hook.pluginName}:`, e);
|
|
64
86
|
}
|
|
65
87
|
}
|
|
66
88
|
}
|
|
67
89
|
return currentResult;
|
|
68
90
|
}
|
|
69
|
-
getBuilder(pluginName) {
|
|
91
|
+
getBuilder(pluginName, config) {
|
|
70
92
|
return {
|
|
71
|
-
|
|
93
|
+
config,
|
|
94
|
+
onStart: (callback) => {
|
|
95
|
+
this.registerOnStart(callback, pluginName);
|
|
96
|
+
},
|
|
97
|
+
onResolve: (filterOrConfig, callback, options) => {
|
|
98
|
+
const filter = filterOrConfig instanceof RegExp ? filterOrConfig : filterOrConfig.filter;
|
|
72
99
|
const perfCallback = async (args) => {
|
|
73
100
|
const start = performance.now();
|
|
74
101
|
const res = await callback(args);
|
|
75
102
|
const dur = performance.now() - start;
|
|
76
103
|
if (dur > 100)
|
|
77
|
-
|
|
104
|
+
logger.getLogger("HooksManager").warn(`[Performance] ${pluginName} onResolve took ${dur.toFixed(2)}ms`);
|
|
78
105
|
return res;
|
|
79
106
|
};
|
|
80
107
|
this.registerOnResolve(filter, perfCallback, pluginName, options?.order);
|
|
81
108
|
},
|
|
82
|
-
onLoad: (
|
|
109
|
+
onLoad: (filterOrConfig, callback, options) => {
|
|
110
|
+
const filter = filterOrConfig instanceof RegExp ? filterOrConfig : filterOrConfig.filter;
|
|
83
111
|
const perfCallback = async (args) => {
|
|
84
112
|
const start = performance.now();
|
|
85
113
|
const res = await callback(args);
|
|
86
114
|
const dur = performance.now() - start;
|
|
87
115
|
if (dur > 100)
|
|
88
|
-
|
|
116
|
+
logger.getLogger("HooksManager").warn(`[Performance] ${pluginName} onLoad took ${dur.toFixed(2)}ms`);
|
|
89
117
|
return res;
|
|
90
118
|
};
|
|
91
119
|
this.registerOnLoad(filter, perfCallback, pluginName, options?.order);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HooksManager.js","sourceRoot":"","sources":["../../../src/managers/HooksManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceManager.d.ts","sourceRoot":"","sources":["../../../src/managers/ResourceManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,qBAAa,eAAe;IACxB,OAAO,CAAC,SAAS,CAA0C;IAE3D,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc;IAMxC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAInD,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE;QAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE;IAoB/E,eAAe;;;;;;CAkBlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {} from "../
|
|
1
|
+
import { logger } from "../logger";
|
|
2
2
|
export class ResourceManager {
|
|
3
3
|
resources = new Map();
|
|
4
4
|
init(pluginName) {
|
|
@@ -13,7 +13,7 @@ export class ResourceManager {
|
|
|
13
13
|
const res = this.resources.get(pluginName);
|
|
14
14
|
if (res) {
|
|
15
15
|
for (const worker of res.workers) {
|
|
16
|
-
|
|
16
|
+
logger.getLogger("ResourceManager").info(`Terminating worker for plugin ${pluginName}`);
|
|
17
17
|
worker.terminate();
|
|
18
18
|
}
|
|
19
19
|
for (const timer of res.timers) {
|
|
@@ -34,7 +34,7 @@ export class ResourceManager {
|
|
|
34
34
|
let totalWorkers = 0;
|
|
35
35
|
let totalTimers = 0;
|
|
36
36
|
let totalListeners = 0;
|
|
37
|
-
for (const res of this.resources.values()) {
|
|
37
|
+
for (const res of Array.from(this.resources.values())) {
|
|
38
38
|
totalWorkers += res.workers.length;
|
|
39
39
|
totalTimers += res.timers.length;
|
|
40
40
|
totalListeners += res.eventListeners.length;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceManager.js","sourceRoot":"","sources":["../../../src/managers/ResourceManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,MAAM,OAAO,eAAe;IAChB,SAAS,GAAgC,IAAI,GAAG,EAAE,CAAC;IAE3D,IAAI,CAAC,UAAkB;QACnB,MAAM,GAAG,GAAmB,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QAC5E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC;IACf,CAAC;IAED,GAAG,CAAC,UAAkB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,CAAC,UAAkB,EAAE,YAAmD;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE,CAAC;YACN,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;gBACxF,MAAM,CAAC,SAAS,EAAE,CAAC;YACvB,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;oBAAE,YAAY,CAAC,KAAK,CAAC,EAAY,CAAC,CAAC;gBAC/D,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU;oBAAE,aAAa,CAAC,KAAK,CAAC,EAAY,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACf,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;oBACxC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;YACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtC,CAAC;IACL,CAAC;IAED,eAAe;QACX,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACpD,YAAY,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YACnC,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YACjC,cAAc,IAAI,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC;QAChD,CAAC;QAED,OAAO;YACH,YAAY;YACZ,WAAW;YACX,cAAc;YACd,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;SACnC,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { IPluginStorage } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* JsonPluginStorage con soporte singleton para evitar múltiples instancias del mismo plugin.
|
|
4
|
+
* Usa un Map estático para almacenar las instancias por nombre de plugin y basePath.
|
|
5
|
+
*/
|
|
6
|
+
export declare class JsonPluginStorage implements IPluginStorage {
|
|
7
|
+
private static instances;
|
|
8
|
+
private filePath;
|
|
9
|
+
private data;
|
|
10
|
+
private lastModified;
|
|
11
|
+
private watcher;
|
|
12
|
+
private watchDebounceTimer;
|
|
13
|
+
private onDataChangeCallbacks;
|
|
14
|
+
/**
|
|
15
|
+
* Obtiene una instancia singleton de JsonPluginStorage.
|
|
16
|
+
* Si la instancia ya existe para el plugin dado, la reutiliza.
|
|
17
|
+
* @param basePath Ruta base del storage
|
|
18
|
+
* @param pluginName Nombre del plugin
|
|
19
|
+
* @returns Instancia de JsonPluginStorage
|
|
20
|
+
*/
|
|
21
|
+
static getInstance(basePath: string, pluginName: string): JsonPluginStorage;
|
|
22
|
+
/**
|
|
23
|
+
* Obtiene todas las instancias registradas.
|
|
24
|
+
*/
|
|
25
|
+
static getAllInstances(): Map<string, JsonPluginStorage>;
|
|
26
|
+
/**
|
|
27
|
+
* Obtiene una instancia específica por nombre de plugin.
|
|
28
|
+
* @param pluginName Nombre del plugin
|
|
29
|
+
* @returns Instancia o undefined si no existe
|
|
30
|
+
*/
|
|
31
|
+
static getInstanceByName(pluginName: string): JsonPluginStorage | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* Elimina una instancia específica.
|
|
34
|
+
* @param basePath Ruta base del storage
|
|
35
|
+
* @param pluginName Nombre del plugin
|
|
36
|
+
*/
|
|
37
|
+
static removeInstance(basePath: string, pluginName: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Limpia todas las instancias (útil para testing).
|
|
40
|
+
*/
|
|
41
|
+
static clearAllInstances(): void;
|
|
42
|
+
private constructor();
|
|
43
|
+
private ensureLoaded;
|
|
44
|
+
private save;
|
|
45
|
+
get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
|
|
46
|
+
set<T>(key: string, value: T): Promise<void>;
|
|
47
|
+
delete(key: string): Promise<void>;
|
|
48
|
+
clear(): Promise<void>;
|
|
49
|
+
reload(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* init watch for storage file changes
|
|
52
|
+
* When the file changes externally, the data will be reloaded automatically.
|
|
53
|
+
* @param debounceMs Time to wait in ms before reloading (default: 100ms)
|
|
54
|
+
*/
|
|
55
|
+
startWatching(debounceMs?: number): void;
|
|
56
|
+
/**
|
|
57
|
+
* stop watching for storage file changes
|
|
58
|
+
*/
|
|
59
|
+
stopWatching(): void;
|
|
60
|
+
/**
|
|
61
|
+
* register a callback that will be called when the storage data changes.
|
|
62
|
+
* @param callback function to call when the data changes
|
|
63
|
+
* @returns function to cancel the subscription
|
|
64
|
+
*/
|
|
65
|
+
onDataChange(callback: (data: Record<string, any>) => void): () => void;
|
|
66
|
+
/**
|
|
67
|
+
* notify all subscribers about data changes.
|
|
68
|
+
*/
|
|
69
|
+
private notifyDataChange;
|
|
70
|
+
/**
|
|
71
|
+
* check if the storage is being watched.
|
|
72
|
+
*/
|
|
73
|
+
isWatching(): boolean;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=JsonPluginStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonPluginStorage.d.ts","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA6C;IAErE,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,kBAAkB,CAA8C;IACxE,OAAO,CAAC,qBAAqB,CAAkD;IAE/E;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAc3E;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAIxD;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAS3E;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAYjE;;OAEG;IACH,MAAM,CAAC,iBAAiB,IAAI,IAAI;IAShC,OAAO;YAIO,YAAY;YA0BZ,IAAI;IAeZ,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAK7D,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAI7B;;;;OAIG;IACH,aAAa,CAAC,UAAU,GAAE,MAAY,GAAG,IAAI;IA2C7C;;OAEG;IACH,YAAY,IAAI,IAAI;IAapB;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAWvE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,UAAU,IAAI,OAAO;CAGtB"}
|