bun_plugins 1.2.5 → 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.
@@ -6,6 +6,7 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
6
6
  private availablePlugins;
7
7
  private configs;
8
8
  private pluginApis;
9
+ private pluginFilePaths;
9
10
  private resources;
10
11
  private dependencyManager;
11
12
  hooksManager: HooksManager;
@@ -22,10 +23,21 @@ export declare class PluginManager extends EventEmitter implements IPluginManage
22
23
  getWorkerFactory(): (url: string | URL, options?: WorkerOptions) => Worker;
23
24
  register(plugin: IPlugin): Promise<void>;
24
25
  registerIsolated(pluginPath: string, pluginName: string): Promise<void>;
25
- unregister(pluginName: string): Promise<void>;
26
+ unregister(pluginName: string, clean?: boolean): Promise<void>;
26
27
  getPlugin(name: string): IPlugin | undefined;
28
+ /**
29
+ * @param pluginName - Plugin name
30
+ * @returns The absolute path of the plugin file, or undefined if not found
31
+ */
32
+ getPluginPath(pluginName: string): string | undefined;
33
+ /**
34
+ * Get all plugin paths
35
+ * @returns Map with plugin names as keys and their paths as values
36
+ */
37
+ getAllPluginPaths(): Map<string, string>;
27
38
  getApi<T = any>(name: string): T | undefined;
28
39
  getPluginConfig(name: string): Record<string, any>;
40
+ setPluginConfig(name: string, config: Record<string, any>): Record<string, any>;
29
41
  listPlugins(): string[];
30
42
  registerApi(pluginName: string, api: any): void;
31
43
  getPluginApi(pluginName: string): any | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export class PluginManager extends EventEmitter {
18
18
  availablePlugins = new Map();
19
19
  configs = new Map();
20
20
  pluginApis = new Map();
21
+ pluginFilePaths = new Map();
21
22
  // Modules
22
23
  resources;
23
24
  dependencyManager;
@@ -63,8 +64,8 @@ export class PluginManager extends EventEmitter {
63
64
  }
64
65
  }
65
66
  logger.getLogger("PluginManager").info(`Loading plugin: ${plugin.name} v${plugin.version}`);
66
- // 1. Prepare Storage
67
- const storage = new JsonPluginStorage(this.storageRoot, plugin.name);
67
+ // 1. Prepare Storage (singleton)
68
+ const storage = JsonPluginStorage.getInstance(this.storageRoot, plugin.name);
68
69
  // 2. Load & Validate Configuration
69
70
  let config = plugin.defaultConfig || {};
70
71
  if (plugin.configSchema) {
@@ -157,7 +158,7 @@ export class PluginManager extends EventEmitter {
157
158
  worker.terminate();
158
159
  return reject(new Error(`Invalid plugin name: ${pluginName}. Name cannot contain path traversal characters.`));
159
160
  }
160
- const storage = new JsonPluginStorage(this.storageRoot, pluginName);
161
+ const storage = JsonPluginStorage.getInstance(this.storageRoot, pluginName);
161
162
  const pendingHooks = new Map();
162
163
  // Initialize resources
163
164
  const res = this.resources.init(pluginName);
@@ -338,6 +339,8 @@ export class PluginManager extends EventEmitter {
338
339
  },
339
340
  };
340
341
  this.plugins.set(metadata.name, proxyPlugin);
342
+ // Registrar el path del archivo del plugin aislado
343
+ this.pluginFilePaths.set(metadata.name, pluginPath);
341
344
  // Register API if provided in metadata
342
345
  if (metadata.api) {
343
346
  this.registerApi(metadata.name, metadata.api);
@@ -369,7 +372,7 @@ export class PluginManager extends EventEmitter {
369
372
  });
370
373
  });
371
374
  }
372
- async unregister(pluginName) {
375
+ async unregister(pluginName, clean = false) {
373
376
  const plugin = this.plugins.get(pluginName);
374
377
  if (!plugin)
375
378
  return;
@@ -389,12 +392,29 @@ export class PluginManager extends EventEmitter {
389
392
  this.resources.cleanup(pluginName, this);
390
393
  this.hooksManager.cleanup(pluginName);
391
394
  this.unregisterApi(pluginName);
395
+ if (clean) {
396
+ this.pluginFilePaths.delete(pluginName);
397
+ }
392
398
  logger.getLogger("PluginManager").info(`Plugin ${pluginName} unloaded.`);
393
399
  }
394
400
  }
395
401
  getPlugin(name) {
396
402
  return this.plugins.get(name);
397
403
  }
404
+ /**
405
+ * @param pluginName - Plugin name
406
+ * @returns The absolute path of the plugin file, or undefined if not found
407
+ */
408
+ getPluginPath(pluginName) {
409
+ return this.pluginFilePaths.get(pluginName);
410
+ }
411
+ /**
412
+ * Get all plugin paths
413
+ * @returns Map with plugin names as keys and their paths as values
414
+ */
415
+ getAllPluginPaths() {
416
+ return new Map(this.pluginFilePaths);
417
+ }
398
418
  getApi(name) {
399
419
  // Get the registered API
400
420
  return this.getPluginApi(name);
@@ -402,18 +422,22 @@ export class PluginManager extends EventEmitter {
402
422
  getPluginConfig(name) {
403
423
  return this.configs.get(name) || {};
404
424
  }
425
+ setPluginConfig(name, config) {
426
+ this.configs.set(name, config);
427
+ return this.configs.get(name) || {};
428
+ }
405
429
  listPlugins() {
406
430
  return Array.from(this.plugins.keys());
407
431
  }
408
- // Método para registrar manualmente la API de un plugin
432
+ // register plugin API
409
433
  registerApi(pluginName, api) {
410
434
  this.pluginApis.set(pluginName, api);
411
435
  }
412
- // Método para obtener la API de un plugin
436
+ // get plugin API
413
437
  getPluginApi(pluginName) {
414
438
  return this.pluginApis.get(pluginName);
415
439
  }
416
- // Método para limpiar la API de un plugin al desregistrarlo
440
+ // unregister plugin API
417
441
  unregisterApi(pluginName) {
418
442
  this.pluginApis.delete(pluginName);
419
443
  }
@@ -445,6 +469,8 @@ export class PluginManager extends EventEmitter {
445
469
  }
446
470
  const entries = await readdir(directoryPath, { withFileTypes: true });
447
471
  this.availablePlugins.clear();
472
+ // Clear the file paths when reloading the directory
473
+ this.pluginFilePaths.clear();
448
474
  for (const entry of entries) {
449
475
  let fullPath = null;
450
476
  if (entry.isDirectory()) {
@@ -475,6 +501,9 @@ export class PluginManager extends EventEmitter {
475
501
  const validation = validatePlugin(ExportedItem);
476
502
  if (validation.valid) {
477
503
  this.availablePlugins.set(validation.plugin.name, validation.plugin);
504
+ // Registrar la ubicación del archivo del plugin
505
+ this.pluginFilePaths.set(validation.plugin.name, fullPath);
506
+ logger.getLogger("PluginManager").info(`[PluginManager] Plugin file path registered: ${validation.plugin.name} -> ${fullPath}`);
478
507
  }
479
508
  else {
480
509
  const errorMsg = validation.error;
@@ -584,7 +613,7 @@ export class PluginManager extends EventEmitter {
584
613
  // If the new version has onReload, call it
585
614
  if (newPlugin && newPlugin.onReload) {
586
615
  // We need a context for onReload as well
587
- const storage = new JsonPluginStorage(this.storageRoot, name);
616
+ const storage = JsonPluginStorage.getInstance(this.storageRoot, name);
588
617
  const context = createPluginContext(this, newPlugin, this.resources, storage);
589
618
  try {
590
619
  await newPlugin.onReload(context);
@@ -1 +1 @@
1
- {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,45 @@
1
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
+ */
2
6
  export declare class JsonPluginStorage implements IPluginStorage {
7
+ private static instances;
3
8
  private filePath;
4
9
  private data;
5
10
  private lastModified;
6
- constructor(basePath: string, pluginName: string);
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();
7
43
  private ensureLoaded;
8
44
  private save;
9
45
  get<T>(key: string, defaultValue?: T): Promise<T | undefined>;
@@ -11,5 +47,29 @@ export declare class JsonPluginStorage implements IPluginStorage {
11
47
  delete(key: string): Promise<void>;
12
48
  clear(): Promise<void>;
13
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;
14
74
  }
15
75
  //# sourceMappingURL=JsonPluginStorage.d.ts.map
@@ -1 +1 @@
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"}
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"}
@@ -1,10 +1,84 @@
1
1
  import { join, dirname } from "node:path";
2
2
  import { mkdir } from "node:fs/promises";
3
+ import { watch, existsSync } from "node:fs";
3
4
  import { logger } from "../logger";
5
+ /**
6
+ * JsonPluginStorage con soporte singleton para evitar múltiples instancias del mismo plugin.
7
+ * Usa un Map estático para almacenar las instancias por nombre de plugin y basePath.
8
+ */
4
9
  export class JsonPluginStorage {
10
+ static instances = new Map();
5
11
  filePath;
6
12
  data = null;
7
13
  lastModified = 0;
14
+ watcher = null;
15
+ watchDebounceTimer = null;
16
+ onDataChangeCallbacks = [];
17
+ /**
18
+ * Obtiene una instancia singleton de JsonPluginStorage.
19
+ * Si la instancia ya existe para el plugin dado, la reutiliza.
20
+ * @param basePath Ruta base del storage
21
+ * @param pluginName Nombre del plugin
22
+ * @returns Instancia de JsonPluginStorage
23
+ */
24
+ static getInstance(basePath, pluginName) {
25
+ const key = `${basePath}:${pluginName}`;
26
+ if (!JsonPluginStorage.instances.has(key)) {
27
+ const instance = new JsonPluginStorage(basePath, pluginName);
28
+ JsonPluginStorage.instances.set(key, instance);
29
+ if (logger) {
30
+ logger.getLogger("JsonPluginStorage").debug(`Created new storage instance for ${pluginName}`);
31
+ }
32
+ }
33
+ return JsonPluginStorage.instances.get(key);
34
+ }
35
+ /**
36
+ * Obtiene todas las instancias registradas.
37
+ */
38
+ static getAllInstances() {
39
+ return new Map(JsonPluginStorage.instances);
40
+ }
41
+ /**
42
+ * Obtiene una instancia específica por nombre de plugin.
43
+ * @param pluginName Nombre del plugin
44
+ * @returns Instancia o undefined si no existe
45
+ */
46
+ static getInstanceByName(pluginName) {
47
+ for (const [key, instance] of JsonPluginStorage.instances) {
48
+ if (key.endsWith(`:${pluginName}`)) {
49
+ return instance;
50
+ }
51
+ }
52
+ return undefined;
53
+ }
54
+ /**
55
+ * Elimina una instancia específica.
56
+ * @param basePath Ruta base del storage
57
+ * @param pluginName Nombre del plugin
58
+ */
59
+ static removeInstance(basePath, pluginName) {
60
+ const key = `${basePath}:${pluginName}`;
61
+ const instance = JsonPluginStorage.instances.get(key);
62
+ if (instance) {
63
+ instance.stopWatching(); // Limpiar watcher al eliminar
64
+ JsonPluginStorage.instances.delete(key);
65
+ if (logger) {
66
+ logger.getLogger("JsonPluginStorage").debug(`Removed storage instance for ${pluginName}`);
67
+ }
68
+ }
69
+ }
70
+ /**
71
+ * Limpia todas las instancias (útil para testing).
72
+ */
73
+ static clearAllInstances() {
74
+ for (const [key, instance] of JsonPluginStorage.instances) {
75
+ instance.stopWatching();
76
+ }
77
+ JsonPluginStorage.instances.clear();
78
+ if (!logger)
79
+ return;
80
+ logger.getLogger("JsonPluginStorage").debug(`Cleared all storage instances`);
81
+ }
8
82
  constructor(basePath, pluginName) {
9
83
  this.filePath = join(basePath, "plugins", pluginName, "storage.json");
10
84
  }
@@ -71,5 +145,96 @@ export class JsonPluginStorage {
71
145
  async reload() {
72
146
  await this.ensureLoaded(true);
73
147
  }
148
+ /**
149
+ * init watch for storage file changes
150
+ * When the file changes externally, the data will be reloaded automatically.
151
+ * @param debounceMs Time to wait in ms before reloading (default: 100ms)
152
+ */
153
+ startWatching(debounceMs = 100) {
154
+ if (this.watcher) {
155
+ logger.getLogger("JsonPluginStorage").warn(`Already watching ${this.filePath}`);
156
+ return;
157
+ }
158
+ const dir = dirname(this.filePath);
159
+ if (!existsSync(dir)) {
160
+ logger.getLogger("JsonPluginStorage").warn(`Cannot watch non-existent directory: ${dir}`);
161
+ return;
162
+ }
163
+ try {
164
+ this.watcher = watch(dir, { persistent: false }, async (eventType, filename) => {
165
+ if (filename && filename.endsWith('.json')) {
166
+ // Debounce para evitar múltiples recargas rápidas
167
+ if (this.watchDebounceTimer) {
168
+ clearTimeout(this.watchDebounceTimer);
169
+ }
170
+ this.watchDebounceTimer = setTimeout(async () => {
171
+ try {
172
+ const oldData = this.data ? { ...this.data } : null;
173
+ await this.ensureLoaded(true);
174
+ // Notificar a los suscriptores si los datos cambiaron
175
+ if (oldData && this.data && JSON.stringify(oldData) !== JSON.stringify(this.data)) {
176
+ this.notifyDataChange(this.data);
177
+ logger.getLogger("JsonPluginStorage").info(`Storage auto-reloaded for ${this.filePath}`);
178
+ }
179
+ }
180
+ catch (e) {
181
+ logger.getLogger("JsonPluginStorage").error(`Error auto-reloading storage:`, e);
182
+ }
183
+ }, debounceMs);
184
+ }
185
+ });
186
+ logger.getLogger("JsonPluginStorage").info(`Started watching ${this.filePath}`);
187
+ }
188
+ catch (e) {
189
+ logger.getLogger("JsonPluginStorage").error(`Failed to start watching ${this.filePath}:`, e);
190
+ }
191
+ }
192
+ /**
193
+ * stop watching for storage file changes
194
+ */
195
+ stopWatching() {
196
+ if (this.watchDebounceTimer) {
197
+ clearTimeout(this.watchDebounceTimer);
198
+ this.watchDebounceTimer = null;
199
+ }
200
+ if (this.watcher) {
201
+ this.watcher.close();
202
+ this.watcher = null;
203
+ logger.getLogger("JsonPluginStorage").info(`Stopped watching ${this.filePath}`);
204
+ }
205
+ }
206
+ /**
207
+ * register a callback that will be called when the storage data changes.
208
+ * @param callback function to call when the data changes
209
+ * @returns function to cancel the subscription
210
+ */
211
+ onDataChange(callback) {
212
+ this.onDataChangeCallbacks.push(callback);
213
+ return () => {
214
+ const index = this.onDataChangeCallbacks.indexOf(callback);
215
+ if (index > -1) {
216
+ this.onDataChangeCallbacks.splice(index, 1);
217
+ }
218
+ };
219
+ }
220
+ /**
221
+ * notify all subscribers about data changes.
222
+ */
223
+ notifyDataChange(data) {
224
+ for (const callback of this.onDataChangeCallbacks) {
225
+ try {
226
+ callback(data);
227
+ }
228
+ catch (e) {
229
+ logger.getLogger("JsonPluginStorage").error(`Error in data change callback:`, e);
230
+ }
231
+ }
232
+ }
233
+ /**
234
+ * check if the storage is being watched.
235
+ */
236
+ isWatching() {
237
+ return this.watcher !== null;
238
+ }
74
239
  }
75
240
  //# sourceMappingURL=JsonPluginStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonPluginStorage.js","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonPluginStorage.js","sourceRoot":"","sources":["../../../src/storage/JsonPluginStorage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bun_plugins",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "description": "A powerful and secure plugin system for Bun applications",
5
5
  "author": "memelser <nglmercer@gmail.com>",
6
6
  "repository": {