bun_plugins 1.2.0 → 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.
Files changed (73) hide show
  1. package/package.json +5 -4
  2. package/dist/Plugin.d.ts +0 -28
  3. package/dist/Plugin.d.ts.map +0 -1
  4. package/dist/Plugin.js +0 -36
  5. package/dist/Plugin.js.map +0 -1
  6. package/dist/PluginManager.d.ts +0 -75
  7. package/dist/PluginManager.d.ts.map +0 -1
  8. package/dist/PluginManager.js +0 -670
  9. package/dist/PluginManager.js.map +0 -1
  10. package/dist/index.d.ts +0 -7
  11. package/dist/index.d.ts.map +0 -1
  12. package/dist/index.js +0 -7
  13. package/dist/index.js.map +0 -1
  14. package/dist/logger/LoggerAdapter.d.ts +0 -77
  15. package/dist/logger/LoggerAdapter.d.ts.map +0 -1
  16. package/dist/logger/LoggerAdapter.js +0 -244
  17. package/dist/logger/LoggerAdapter.js.map +0 -1
  18. package/dist/logger/LoggerFactory.d.ts +0 -73
  19. package/dist/logger/LoggerFactory.d.ts.map +0 -1
  20. package/dist/logger/LoggerFactory.js +0 -99
  21. package/dist/logger/LoggerFactory.js.map +0 -1
  22. package/dist/logger/index.d.ts +0 -3
  23. package/dist/logger/index.d.ts.map +0 -1
  24. package/dist/logger/index.js +0 -3
  25. package/dist/logger/index.js.map +0 -1
  26. package/dist/managers/ContextFactory.d.ts +0 -6
  27. package/dist/managers/ContextFactory.d.ts.map +0 -1
  28. package/dist/managers/ContextFactory.js +0 -112
  29. package/dist/managers/ContextFactory.js.map +0 -1
  30. package/dist/managers/DependencyManager.d.ts +0 -10
  31. package/dist/managers/DependencyManager.d.ts.map +0 -1
  32. package/dist/managers/DependencyManager.js +0 -96
  33. package/dist/managers/DependencyManager.js.map +0 -1
  34. package/dist/managers/HooksManager.d.ts +0 -24
  35. package/dist/managers/HooksManager.d.ts.map +0 -1
  36. package/dist/managers/HooksManager.js +0 -145
  37. package/dist/managers/HooksManager.js.map +0 -1
  38. package/dist/managers/ResourceManager.d.ts +0 -16
  39. package/dist/managers/ResourceManager.d.ts.map +0 -1
  40. package/dist/managers/ResourceManager.js +0 -50
  41. package/dist/managers/ResourceManager.js.map +0 -1
  42. package/dist/pluginRegistry.d.ts +0 -13
  43. package/dist/pluginRegistry.d.ts.map +0 -1
  44. package/dist/pluginRegistry.js +0 -11
  45. package/dist/pluginRegistry.js.map +0 -1
  46. package/dist/src/pluginRegistry.d.ts +0 -13
  47. package/dist/src/pluginRegistry.d.ts.map +0 -1
  48. package/dist/src/pluginRegistry.js +0 -11
  49. package/dist/src/pluginRegistry.js.map +0 -1
  50. package/dist/storage/JsonPluginStorage.d.ts +0 -15
  51. package/dist/storage/JsonPluginStorage.d.ts.map +0 -1
  52. package/dist/storage/JsonPluginStorage.js +0 -75
  53. package/dist/storage/JsonPluginStorage.js.map +0 -1
  54. package/dist/types.d.ts +0 -208
  55. package/dist/types.d.ts.map +0 -1
  56. package/dist/types.js +0 -59
  57. package/dist/types.js.map +0 -1
  58. package/dist/utils/errorParser.d.ts +0 -3
  59. package/dist/utils/errorParser.d.ts.map +0 -1
  60. package/dist/utils/errorParser.js +0 -23
  61. package/dist/utils/errorParser.js.map +0 -1
  62. package/dist/utils/pluginValidator.d.ts +0 -17
  63. package/dist/utils/pluginValidator.d.ts.map +0 -1
  64. package/dist/utils/pluginValidator.js +0 -74
  65. package/dist/utils/pluginValidator.js.map +0 -1
  66. package/dist/utils/security.d.ts +0 -3
  67. package/dist/utils/security.d.ts.map +0 -1
  68. package/dist/utils/security.js +0 -26
  69. package/dist/utils/security.js.map +0 -1
  70. package/dist/worker/WorkerRunner.d.ts +0 -2
  71. package/dist/worker/WorkerRunner.d.ts.map +0 -1
  72. package/dist/worker/WorkerRunner.js +0 -274
  73. package/dist/worker/WorkerRunner.js.map +0 -1
@@ -1,112 +0,0 @@
1
- import { checkNetworkPermission, checkPermission as checkGeneralPermission } from "../utils/security";
2
- import { logger } from "../logger";
3
- export function createPluginContext(manager, plugin, resources, storage) {
4
- // We get the resource container directly.
5
- const pluginResources = resources.get(plugin.name);
6
- if (!pluginResources)
7
- throw new Error("Resources not initialized for plugin");
8
- const checkPermission = (perm, url) => {
9
- if (perm === 'network' && url) {
10
- checkNetworkPermission(plugin.name, plugin.permissions, plugin.allowedDomains, url);
11
- }
12
- else if (perm === 'filesystem' || perm === 'env') {
13
- checkGeneralPermission(plugin.name, plugin.permissions, perm);
14
- }
15
- };
16
- return {
17
- manager: manager,
18
- storage,
19
- get config() { return manager.getPluginConfig(plugin.name); },
20
- // Legacy support
21
- emit: (event, payload) => manager.emit(event, payload),
22
- on: (event, callback) => {
23
- manager.on(event, callback);
24
- pluginResources.eventListeners.push({ event: event, listener: callback });
25
- },
26
- events: {
27
- emit: (event, payload) => manager.emit(event, payload),
28
- on: (event, callback) => {
29
- manager.on(event, callback);
30
- pluginResources.eventListeners.push({ event: event, listener: callback });
31
- }
32
- },
33
- getPlugin: ((name) => {
34
- const p = manager.getPlugin(name);
35
- if (!p)
36
- return undefined;
37
- // Si el plugin tiene getSharedApi, retornar la API compartida
38
- if (typeof p === 'object' && 'getSharedApi' in p && typeof p.getSharedApi === 'function') {
39
- return p.getSharedApi();
40
- }
41
- // Si es un plugin directo (no API compartida), retornar el plugin completo
42
- return p;
43
- }),
44
- log: logger.getLogger(plugin.name),
45
- createWorker: (url, options) => {
46
- // Use the manager's worker factory to allow proper mocking in tests
47
- const workerFactory = manager.getWorkerFactory();
48
- const w = workerFactory(url, options);
49
- // Auto-cleanup when worker closes
50
- w.addEventListener?.("close", () => {
51
- const res = resources.get(plugin.name);
52
- if (res) {
53
- const index = res.workers.indexOf(w);
54
- if (index > -1) {
55
- res.workers.splice(index, 1);
56
- }
57
- }
58
- });
59
- // Also listen for exit event (Bun specific)
60
- w.addEventListener?.("exit", () => {
61
- const res = resources.get(plugin.name);
62
- if (res) {
63
- const index = res.workers.indexOf(w);
64
- if (index > -1) {
65
- res.workers.splice(index, 1);
66
- }
67
- }
68
- });
69
- w.addEventListener?.("error", (err) => {
70
- logger.getLogger(plugin.name).error(`Worker error:`, err.message);
71
- });
72
- resources.get(plugin.name)?.workers.push(w);
73
- return w;
74
- },
75
- setTimeout: (callback, delay, ...args) => {
76
- const id = setTimeout(callback, delay, ...args);
77
- resources.get(plugin.name)?.timers.push({ id, type: 'timeout' });
78
- return id;
79
- },
80
- setInterval: (callback, delay, ...args) => {
81
- const id = setInterval(callback, delay, ...args);
82
- resources.get(plugin.name)?.timers.push({ id, type: 'interval' });
83
- return id;
84
- },
85
- clearTimeout: (id) => {
86
- clearTimeout(id);
87
- // Removing from list logic omitted for speed, cleanup handles remainder
88
- },
89
- clearInterval: (id) => {
90
- clearInterval(id);
91
- },
92
- network: {
93
- fetch: (input, init) => {
94
- const urlStr = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
95
- checkPermission('network', urlStr);
96
- return fetch(input, init);
97
- }
98
- },
99
- file: (path) => {
100
- checkPermission('filesystem');
101
- return Bun.file(path);
102
- },
103
- get env() {
104
- checkPermission('env');
105
- return new Proxy(process.env, {
106
- get(target, prop) { return Reflect.get(target, prop); },
107
- set() { throw new Error("Plugins cannot modify environment variables."); }
108
- });
109
- }
110
- };
111
- }
112
- //# sourceMappingURL=ContextFactory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContextFactory.js","sourceRoot":"","sources":["../../src/managers/ContextFactory.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { IPlugin } from "../types";
2
- export declare class DependencyManager {
3
- /**
4
- * Topologically sort plugins based on dependencies.
5
- * Throws if circular dependency detected.
6
- */
7
- resolveLoadOrder(plugins: IPlugin[]): IPlugin[];
8
- validateDependencies(plugin: IPlugin, loadedPlugins: Map<string, IPlugin>): void;
9
- }
10
- //# sourceMappingURL=DependencyManager.d.ts.map
@@ -1 +0,0 @@
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,96 +0,0 @@
1
- import * as semver from "semver";
2
- import { logger } from "../logger";
3
- export class DependencyManager {
4
- /**
5
- * Topologically sort plugins based on dependencies.
6
- * Throws if circular dependency detected.
7
- */
8
- resolveLoadOrder(plugins) {
9
- const g = new Map();
10
- const pluginMap = new Map();
11
- // Initialize graph
12
- for (const p of plugins) {
13
- pluginMap.set(p.name, p);
14
- g.set(p.name, []);
15
- }
16
- // Build edges
17
- for (const p of plugins) {
18
- if (p.dependencies) {
19
- for (const depName of Object.keys(p.dependencies)) {
20
- if (pluginMap.has(depName)) {
21
- g.get(p.name).push(depName);
22
- }
23
- else {
24
- // We skip missing dependencies here as strict validation might happen elsewhere,
25
- // or we throw if strictness is required during sort.
26
- // For this implementation, we throw if dependency is declared but not present in the set to sort.
27
- // However, commonly we might only be sorting a subset.
28
- // Let's assume strictness for the provided set.
29
- // Actually, looking at original code: it throws if not enabled or found.
30
- // We might want to allow sorting even if deps are external (already loaded).
31
- // But here we received `plugins` as "plugins to load".
32
- // Logic refactor: If dependent is not in list, maybe it is already loaded?
33
- // The original code checked `this.plugins.has(depName)` (already loaded).
34
- // We'll trust the caller to handle external checks or we need to pass `loadedPlugins` map.
35
- // For pure topological sort of a batch, we just sort the batch.
36
- // If A depends on B, and B is not in batch, we assume B is effectively "root" relative to this batch
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}`);
39
- }
40
- }
41
- }
42
- }
43
- // Output logic: Dependency -> Dependent
44
- // Using Kahn's algorithm or similar.
45
- const inDegree = new Map();
46
- for (const name of Array.from(pluginMap.keys()))
47
- inDegree.set(name, 0);
48
- const adj = new Map();
49
- for (const name of Array.from(pluginMap.keys()))
50
- adj.set(name, []);
51
- for (const [pName, deps] of Array.from(g.entries())) {
52
- for (const depName of deps) {
53
- // depName -> pName
54
- if (adj.has(depName)) {
55
- adj.get(depName).push(pName);
56
- inDegree.set(pName, (inDegree.get(pName) || 0) + 1);
57
- }
58
- }
59
- }
60
- const queue = [];
61
- for (const [name, deg] of Array.from(inDegree.entries())) {
62
- if (deg === 0)
63
- queue.push(name);
64
- }
65
- const sorted = [];
66
- while (queue.length > 0) {
67
- const u = queue.shift();
68
- sorted.push(pluginMap.get(u));
69
- for (const v of adj.get(u) || []) {
70
- inDegree.set(v, inDegree.get(v) - 1);
71
- if (inDegree.get(v) === 0) {
72
- queue.push(v);
73
- }
74
- }
75
- }
76
- if (sorted.length !== plugins.length) {
77
- throw new Error("Circular dependency detected in plugins.");
78
- }
79
- return sorted;
80
- }
81
- validateDependencies(plugin, loadedPlugins) {
82
- if (plugin.dependencies) {
83
- for (const [depName, requiredVersion] of Object.entries(plugin.dependencies)) {
84
- const depPlugin = loadedPlugins.get(depName);
85
- if (!depPlugin) {
86
- throw new Error(`Plugin ${plugin.name} requires missing dependency: ${depName} (${requiredVersion})`);
87
- }
88
- // Version check using semver
89
- if (!semver.satisfies(depPlugin.version, requiredVersion)) {
90
- throw new Error(`Plugin ${plugin.name} requires dependency ${depName} version ${requiredVersion}, but found ${depPlugin.version}`);
91
- }
92
- }
93
- }
94
- }
95
- }
96
- //# sourceMappingURL=DependencyManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DependencyManager.js","sourceRoot":"","sources":["../../src/managers/DependencyManager.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import { type OnResolveCallback, type OnLoadCallback, type OnResolveArgs, type OnLoadArgs, type PluginBuilder, HookOrder, HookType } from "../types";
2
- import type { BunPlugin } from "bun";
3
- export declare class HooksManager {
4
- private onResolveHooks;
5
- private onLoadHooks;
6
- private onStartHooks;
7
- registerOnResolve(filter: RegExp, callback: OnResolveCallback, pluginName: string, order?: HookOrder): void;
8
- registerOnLoad(filter: RegExp, callback: OnLoadCallback, pluginName: string, order?: HookOrder): void;
9
- registerOnStart(callback: () => void | Promise<void>, pluginName: string): void;
10
- getHookCount(type: HookType): number;
11
- cleanup(pluginName: string): void;
12
- runOnStart(): Promise<void>;
13
- runOnResolve(args: OnResolveArgs): Promise<{
14
- path: string;
15
- namespace?: string;
16
- } | null>;
17
- runOnLoad(args: OnLoadArgs): Promise<{
18
- contents?: string;
19
- loader?: string;
20
- } | null>;
21
- getBuilder(pluginName: string, config: Record<string, any>): PluginBuilder;
22
- toBunPlugin(): BunPlugin;
23
- }
24
- //# sourceMappingURL=HooksManager.d.ts.map
@@ -1 +0,0 @@
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,EAAE,MAAM,KAAK,CAAC;AAGrC,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,145 +0,0 @@
1
- import { HookOrder, HookType } from "../types";
2
- import { logger } from "../logger";
3
- export class HooksManager {
4
- onResolveHooks = [];
5
- onLoadHooks = [];
6
- onStartHooks = [];
7
- registerOnResolve(filter, callback, pluginName, order) {
8
- // Performance wrapper could be applied here or by caller.
9
- // For simplicity, we store as is.
10
- this.onResolveHooks.push({ filter, callback, pluginName, order });
11
- }
12
- registerOnLoad(filter, callback, pluginName, order) {
13
- this.onLoadHooks.push({ filter, callback, pluginName, order });
14
- }
15
- registerOnStart(callback, pluginName) {
16
- this.onStartHooks.push({ callback, pluginName });
17
- }
18
- getHookCount(type) {
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;
26
- }
27
- cleanup(pluginName) {
28
- this.onResolveHooks = this.onResolveHooks.filter(h => h.pluginName !== pluginName);
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
- }
41
- }
42
- async runOnResolve(args) {
43
- const sortedHooks = [...this.onResolveHooks].sort((a, b) => {
44
- const score = (o) => o === HookOrder.PRE ? -1 : o === HookOrder.POST ? 1 : 0;
45
- return score(a.order) - score(b.order);
46
- });
47
- for (const hook of sortedHooks) {
48
- if (hook.filter.test(args.path)) {
49
- try {
50
- const result = await hook.callback(args);
51
- if (result)
52
- return result;
53
- }
54
- catch (e) {
55
- logger.getLogger("HooksManager").error(`Error in onResolve hook from ${hook.pluginName}:`, e);
56
- }
57
- }
58
- }
59
- return null;
60
- }
61
- async runOnLoad(args) {
62
- const sortedHooks = [...this.onLoadHooks].sort((a, b) => {
63
- const score = (o) => o === HookOrder.PRE ? -1 : o === HookOrder.POST ? 1 : 0;
64
- return score(a.order) - score(b.order);
65
- });
66
- let currentResult = null;
67
- let pipelineContents = undefined;
68
- for (const hook of sortedHooks) {
69
- if (hook.filter.test(args.path)) {
70
- const hookArgs = { ...args, previousContents: pipelineContents };
71
- try {
72
- const result = await hook.callback(hookArgs);
73
- if (result) {
74
- if (result.contents !== undefined) {
75
- pipelineContents = result.contents;
76
- }
77
- currentResult = {
78
- ...(currentResult || {}),
79
- ...result,
80
- contents: pipelineContents
81
- };
82
- }
83
- }
84
- catch (e) {
85
- logger.getLogger("HooksManager").error(`Error in onLoad hook from ${hook.pluginName}:`, e);
86
- }
87
- }
88
- }
89
- return currentResult;
90
- }
91
- getBuilder(pluginName, config) {
92
- return {
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;
99
- const perfCallback = async (args) => {
100
- const start = performance.now();
101
- const res = await callback(args);
102
- const dur = performance.now() - start;
103
- if (dur > 100)
104
- logger.getLogger("HooksManager").warn(`[Performance] ${pluginName} onResolve took ${dur.toFixed(2)}ms`);
105
- return res;
106
- };
107
- this.registerOnResolve(filter, perfCallback, pluginName, options?.order);
108
- },
109
- onLoad: (filterOrConfig, callback, options) => {
110
- const filter = filterOrConfig instanceof RegExp ? filterOrConfig : filterOrConfig.filter;
111
- const perfCallback = async (args) => {
112
- const start = performance.now();
113
- const res = await callback(args);
114
- const dur = performance.now() - start;
115
- if (dur > 100)
116
- logger.getLogger("HooksManager").warn(`[Performance] ${pluginName} onLoad took ${dur.toFixed(2)}ms`);
117
- return res;
118
- };
119
- this.registerOnLoad(filter, perfCallback, pluginName, options?.order);
120
- }
121
- };
122
- }
123
- toBunPlugin() {
124
- return {
125
- name: "BunPluginManagerBridge",
126
- setup: (build) => {
127
- // Use a catch-all filter to allow dynamic hook registration
128
- build.onResolve({ filter: /.*/ }, async (args) => {
129
- return this.runOnResolve(args);
130
- });
131
- build.onLoad({ filter: /.*/ }, async (args) => {
132
- const res = await this.runOnLoad(args);
133
- if (res && res.contents !== undefined) {
134
- return {
135
- contents: res.contents,
136
- loader: res.loader
137
- };
138
- }
139
- return undefined;
140
- });
141
- }
142
- };
143
- }
144
- }
145
- //# sourceMappingURL=HooksManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HooksManager.js","sourceRoot":"","sources":["../../src/managers/HooksManager.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { type PluginResource } from "../types";
2
- export declare class ResourceManager {
3
- private resources;
4
- init(pluginName: string): PluginResource;
5
- get(pluginName: string): PluginResource | undefined;
6
- cleanup(pluginName: string, eventEmitter?: {
7
- off: (e: string, l: any) => void;
8
- }): void;
9
- getUsageSummary(): {
10
- totalWorkers: number;
11
- totalTimers: number;
12
- totalListeners: number;
13
- pluginCount: number;
14
- };
15
- }
16
- //# sourceMappingURL=ResourceManager.d.ts.map
@@ -1 +0,0 @@
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,50 +0,0 @@
1
- import { logger } from "../logger";
2
- export class ResourceManager {
3
- resources = new Map();
4
- init(pluginName) {
5
- const res = { workers: [], timers: [], eventListeners: [] };
6
- this.resources.set(pluginName, res);
7
- return res;
8
- }
9
- get(pluginName) {
10
- return this.resources.get(pluginName);
11
- }
12
- cleanup(pluginName, eventEmitter) {
13
- const res = this.resources.get(pluginName);
14
- if (res) {
15
- for (const worker of res.workers) {
16
- logger.getLogger("ResourceManager").info(`Terminating worker for plugin ${pluginName}`);
17
- worker.terminate();
18
- }
19
- for (const timer of res.timers) {
20
- if (timer.type === 'timeout')
21
- clearTimeout(timer.id);
22
- if (timer.type === 'interval')
23
- clearInterval(timer.id);
24
- }
25
- if (eventEmitter) {
26
- for (const listener of res.eventListeners) {
27
- eventEmitter.off(listener.event, listener.listener);
28
- }
29
- }
30
- this.resources.delete(pluginName);
31
- }
32
- }
33
- getUsageSummary() {
34
- let totalWorkers = 0;
35
- let totalTimers = 0;
36
- let totalListeners = 0;
37
- for (const res of Array.from(this.resources.values())) {
38
- totalWorkers += res.workers.length;
39
- totalTimers += res.timers.length;
40
- totalListeners += res.eventListeners.length;
41
- }
42
- return {
43
- totalWorkers,
44
- totalTimers,
45
- totalListeners,
46
- pluginCount: this.resources.size
47
- };
48
- }
49
- }
50
- //# sourceMappingURL=ResourceManager.js.map
@@ -1 +0,0 @@
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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Sistema de registro de tipos para plugins
3
- * Permite el tipado estático de plugins basado en sus nombres
4
- */
5
- export interface PluginWithSharedApi<T = any> {
6
- getSharedApi(): T;
7
- }
8
- export interface PluginTypeRegistry {
9
- }
10
- export type PluginTypeByName<TName extends keyof PluginTypeRegistry> = PluginTypeRegistry[TName] extends PluginWithSharedApi<infer T> ? T : never;
11
- export type KnownPluginNames = keyof PluginTypeRegistry;
12
- export declare function isKnownPlugin<TName extends string>(name: TName): name is TName & KnownPluginNames;
13
- //# sourceMappingURL=pluginRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginRegistry.d.ts","sourceRoot":"","sources":["../src/pluginRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,GAAG;IAC1C,YAAY,IAAI,CAAC,CAAC;CACnB;AAGD,MAAM,WAAW,kBAAkB;CAGlC;AAGD,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,kBAAkB,IACjE,kBAAkB,CAAC,KAAK,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAG7E,MAAM,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;AAGxD,wBAAgB,aAAa,CAAC,KAAK,SAAS,MAAM,EAChD,IAAI,EAAE,KAAK,GACV,IAAI,IAAI,KAAK,GAAG,gBAAgB,CAIlC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Sistema de registro de tipos para plugins
3
- * Permite el tipado estático de plugins basado en sus nombres
4
- */
5
- // Helper para verificar si un nombre de plugin es conocido
6
- export function isKnownPlugin(name) {
7
- // En tiempo de ejecución, esto siempre devuelve true
8
- // pero en tiempo de compilación ayuda con el tipado
9
- return true;
10
- }
11
- //# sourceMappingURL=pluginRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginRegistry.js","sourceRoot":"","sources":["../src/pluginRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,IAAW;IAEX,qDAAqD;IACrD,oDAAoD;IACpD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Sistema de registro de tipos para plugins
3
- * Permite el tipado estático de plugins basado en sus nombres
4
- */
5
- export interface PluginWithSharedApi<T = any> {
6
- getSharedApi(): T;
7
- }
8
- export interface PluginTypeRegistry {
9
- }
10
- export type PluginTypeByName<TName extends keyof PluginTypeRegistry> = PluginTypeRegistry[TName] extends PluginWithSharedApi<infer T> ? T : never;
11
- export type KnownPluginNames = keyof PluginTypeRegistry;
12
- export declare function isKnownPlugin<TName extends string>(name: TName): name is TName & KnownPluginNames;
13
- //# sourceMappingURL=pluginRegistry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginRegistry.d.ts","sourceRoot":"","sources":["../../src/pluginRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,GAAG;IAC1C,YAAY,IAAI,CAAC,CAAC;CACnB;AAGD,MAAM,WAAW,kBAAkB;CAGlC;AAGD,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,kBAAkB,IACjE,kBAAkB,CAAC,KAAK,CAAC,SAAS,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAG7E,MAAM,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC;AAGxD,wBAAgB,aAAa,CAAC,KAAK,SAAS,MAAM,EAChD,IAAI,EAAE,KAAK,GACV,IAAI,IAAI,KAAK,GAAG,gBAAgB,CAIlC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Sistema de registro de tipos para plugins
3
- * Permite el tipado estático de plugins basado en sus nombres
4
- */
5
- // Helper para verificar si un nombre de plugin es conocido
6
- export function isKnownPlugin(name) {
7
- // En tiempo de ejecución, esto siempre devuelve true
8
- // pero en tiempo de compilación ayuda con el tipado
9
- return true;
10
- }
11
- //# sourceMappingURL=pluginRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginRegistry.js","sourceRoot":"","sources":["../../src/pluginRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAC3B,IAAW;IAEX,qDAAqD;IACrD,oDAAoD;IACpD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,15 +0,0 @@
1
- import type { IPluginStorage } from "../types";
2
- export declare class JsonPluginStorage implements IPluginStorage {
3
- private filePath;
4
- private data;
5
- private lastModified;
6
- constructor(basePath: string, pluginName: string);
7
- private ensureLoaded;
8
- private save;
9
- get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
10
- set<T>(key: string, value: T): Promise<void>;
11
- delete(key: string): Promise<void>;
12
- clear(): Promise<void>;
13
- reload(): Promise<void>;
14
- }
15
- //# sourceMappingURL=JsonPluginStorage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonPluginStorage.d.ts","sourceRoot":"","sources":["../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,qBAAa,iBAAkB,YAAW,cAAc;IACtD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,YAAY,CAAa;gBAErB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;YAIlC,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;CAG9B"}