bun_plugins 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -127
- package/dist/{src/PluginManager.d.ts → PluginManager.d.ts} +9 -20
- package/dist/PluginManager.d.ts.map +1 -0
- package/dist/{src/PluginManager.js → PluginManager.js} +189 -212
- package/dist/PluginManager.js.map +1 -0
- package/dist/{src/index.d.ts → index.d.ts} +1 -2
- package/dist/index.d.ts.map +1 -0
- package/dist/{src/index.js → index.js} +0 -2
- package/dist/index.js.map +1 -0
- package/dist/{src/managers → managers}/ContextFactory.d.ts +1 -1
- package/dist/managers/ContextFactory.d.ts.map +1 -0
- package/dist/{src/managers → managers}/ContextFactory.js +26 -51
- package/dist/managers/ContextFactory.js.map +1 -0
- package/dist/managers/DependencyManager.d.ts.map +1 -0
- package/dist/{src/managers → managers}/DependencyManager.js +5 -7
- package/dist/managers/DependencyManager.js.map +1 -0
- package/dist/{src/managers → managers}/HooksManager.d.ts +1 -4
- package/dist/managers/HooksManager.d.ts.map +1 -0
- package/dist/{src/managers → managers}/HooksManager.js +8 -36
- package/dist/managers/HooksManager.js.map +1 -0
- package/dist/managers/ResourceManager.d.ts.map +1 -0
- package/dist/{src/managers → managers}/ResourceManager.js +3 -3
- package/dist/managers/ResourceManager.js.map +1 -0
- package/dist/{src/storage → storage}/JsonPluginStorage.d.ts +1 -2
- package/dist/storage/JsonPluginStorage.d.ts.map +1 -0
- package/dist/storage/JsonPluginStorage.js +63 -0
- package/dist/storage/JsonPluginStorage.js.map +1 -0
- package/dist/{src/types.d.ts → types.d.ts} +19 -60
- package/dist/types.d.ts.map +1 -0
- package/dist/{src/types.js → types.js} +0 -6
- package/dist/types.js.map +1 -0
- package/dist/utils/errorParser.d.ts.map +1 -0
- package/dist/{src/utils → utils}/errorParser.js +5 -2
- package/dist/utils/errorParser.js.map +1 -0
- package/dist/utils/pluginValidator.d.ts +93 -0
- package/dist/utils/pluginValidator.d.ts.map +1 -0
- package/dist/{src/utils → utils}/pluginValidator.js +14 -11
- package/dist/utils/pluginValidator.js.map +1 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/worker/WorkerRunner.d.ts.map +1 -0
- package/dist/{src/worker → worker}/WorkerRunner.js +13 -38
- package/dist/worker/WorkerRunner.js.map +1 -0
- package/package.json +6 -9
- package/LICENSE +0 -9
- package/dist/examples/action-registry-declarative.d.ts +0 -14
- package/dist/examples/action-registry-declarative.d.ts.map +0 -1
- package/dist/examples/action-registry-declarative.js +0 -130
- package/dist/examples/action-registry-declarative.js.map +0 -1
- package/dist/examples/action-registry-example.d.ts +0 -31
- package/dist/examples/action-registry-example.d.ts.map +0 -1
- package/dist/examples/action-registry-example.js +0 -84
- package/dist/examples/action-registry-example.js.map +0 -1
- package/dist/examples/index-declarative.d.ts +0 -32
- package/dist/examples/index-declarative.d.ts.map +0 -1
- package/dist/examples/index-declarative.js +0 -206
- package/dist/examples/index-declarative.js.map +0 -1
- package/dist/examples/logger-declarative.d.ts +0 -109
- package/dist/examples/logger-declarative.d.ts.map +0 -1
- package/dist/examples/logger-declarative.js +0 -330
- package/dist/examples/logger-declarative.js.map +0 -1
- package/dist/examples/logger-simple.d.ts +0 -8
- package/dist/examples/logger-simple.d.ts.map +0 -1
- package/dist/examples/logger-simple.js +0 -165
- package/dist/examples/logger-simple.js.map +0 -1
- package/dist/examples/server-declarative.d.ts +0 -46
- package/dist/examples/server-declarative.d.ts.map +0 -1
- package/dist/examples/server-declarative.js +0 -205
- package/dist/examples/server-declarative.js.map +0 -1
- package/dist/examples/shared/action-registry.d.ts +0 -45
- package/dist/examples/shared/action-registry.d.ts.map +0 -1
- package/dist/examples/shared/action-registry.js +0 -65
- package/dist/examples/shared/action-registry.js.map +0 -1
- package/dist/examples/shared/plugin-builder.d.ts +0 -41
- package/dist/examples/shared/plugin-builder.d.ts.map +0 -1
- package/dist/examples/shared/plugin-builder.js +0 -85
- package/dist/examples/shared/plugin-builder.js.map +0 -1
- package/dist/examples/storage-declarative.d.ts +0 -13
- package/dist/examples/storage-declarative.d.ts.map +0 -1
- package/dist/examples/storage-declarative.js +0 -203
- package/dist/examples/storage-declarative.js.map +0 -1
- package/dist/plugins/ActionRegistryPlugin.d.ts +0 -14
- package/dist/plugins/ActionRegistryPlugin.d.ts.map +0 -1
- package/dist/plugins/ActionRegistryPlugin.js +0 -52
- package/dist/plugins/ActionRegistryPlugin.js.map +0 -1
- package/dist/plugins/DynamicJSActionsPlugin.d.ts +0 -21
- package/dist/plugins/DynamicJSActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicJSActionsPlugin.js +0 -57
- package/dist/plugins/DynamicJSActionsPlugin.js.map +0 -1
- package/dist/plugins/DynamicMathActionsPlugin.d.ts +0 -22
- package/dist/plugins/DynamicMathActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicMathActionsPlugin.js +0 -64
- package/dist/plugins/DynamicMathActionsPlugin.js.map +0 -1
- package/dist/plugins/DynamicTextActionsPlugin.d.ts +0 -22
- package/dist/plugins/DynamicTextActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicTextActionsPlugin.js +0 -58
- package/dist/plugins/DynamicTextActionsPlugin.js.map +0 -1
- package/dist/plugins/DynamicUtilityActionsPlugin.d.ts +0 -22
- package/dist/plugins/DynamicUtilityActionsPlugin.d.ts.map +0 -1
- package/dist/plugins/DynamicUtilityActionsPlugin.js +0 -75
- package/dist/plugins/DynamicUtilityActionsPlugin.js.map +0 -1
- package/dist/plugins/ExamplePlugin.d.ts +0 -3
- package/dist/plugins/ExamplePlugin.d.ts.map +0 -1
- package/dist/plugins/ExamplePlugin.js +0 -24
- package/dist/plugins/ExamplePlugin.js.map +0 -1
- package/dist/plugins/LifecycleDemoPlugin.d.ts +0 -20
- package/dist/plugins/LifecycleDemoPlugin.d.ts.map +0 -1
- package/dist/plugins/LifecycleDemoPlugin.js +0 -34
- package/dist/plugins/LifecycleDemoPlugin.js.map +0 -1
- package/dist/plugins/MathPlugin.d.ts +0 -16
- package/dist/plugins/MathPlugin.d.ts.map +0 -1
- package/dist/plugins/MathPlugin.js +0 -30
- package/dist/plugins/MathPlugin.js.map +0 -1
- package/dist/plugins/MyJSPlugin.d.ts +0 -7
- package/dist/plugins/MyJSPlugin.d.ts.map +0 -1
- package/dist/plugins/MyJSPlugin.js +0 -12
- package/dist/plugins/MyJSPlugin.js.map +0 -1
- package/dist/plugins/TypedExamplePlugin.d.ts +0 -10
- package/dist/plugins/TypedExamplePlugin.d.ts.map +0 -1
- package/dist/plugins/TypedExamplePlugin.js +0 -61
- package/dist/plugins/TypedExamplePlugin.js.map +0 -1
- package/dist/plugins/arktype/index.d.ts +0 -8
- package/dist/plugins/arktype/index.d.ts.map +0 -1
- package/dist/plugins/arktype/index.js +0 -25
- package/dist/plugins/arktype/index.js.map +0 -1
- package/dist/src/Plugin.d.ts +0 -28
- package/dist/src/Plugin.d.ts.map +0 -1
- package/dist/src/Plugin.js +0 -36
- package/dist/src/Plugin.js.map +0 -1
- package/dist/src/PluginManager.d.ts.map +0 -1
- package/dist/src/PluginManager.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/logger/LoggerAdapter.d.ts +0 -77
- package/dist/src/logger/LoggerAdapter.d.ts.map +0 -1
- package/dist/src/logger/LoggerAdapter.js +0 -242
- package/dist/src/logger/LoggerAdapter.js.map +0 -1
- package/dist/src/logger/LoggerFactory.d.ts +0 -73
- package/dist/src/logger/LoggerFactory.d.ts.map +0 -1
- package/dist/src/logger/LoggerFactory.js +0 -99
- package/dist/src/logger/LoggerFactory.js.map +0 -1
- package/dist/src/logger/index.d.ts +0 -3
- package/dist/src/logger/index.d.ts.map +0 -1
- package/dist/src/logger/index.js +0 -3
- package/dist/src/logger/index.js.map +0 -1
- package/dist/src/managers/ContextFactory.d.ts.map +0 -1
- package/dist/src/managers/ContextFactory.js.map +0 -1
- package/dist/src/managers/DependencyManager.d.ts.map +0 -1
- package/dist/src/managers/DependencyManager.js.map +0 -1
- package/dist/src/managers/HooksManager.d.ts.map +0 -1
- package/dist/src/managers/HooksManager.js.map +0 -1
- package/dist/src/managers/ResourceManager.d.ts.map +0 -1
- package/dist/src/managers/ResourceManager.js.map +0 -1
- package/dist/src/storage/JsonPluginStorage.d.ts.map +0 -1
- package/dist/src/storage/JsonPluginStorage.js +0 -75
- package/dist/src/storage/JsonPluginStorage.js.map +0 -1
- package/dist/src/types/plugin-registry-base.d.ts +0 -80
- package/dist/src/types/plugin-registry-base.d.ts.map +0 -1
- package/dist/src/types/plugin-registry-base.js +0 -6
- package/dist/src/types/plugin-registry-base.js.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js.map +0 -1
- package/dist/src/utils/errorParser.d.ts.map +0 -1
- package/dist/src/utils/errorParser.js.map +0 -1
- package/dist/src/utils/pluginValidator.d.ts +0 -17
- package/dist/src/utils/pluginValidator.d.ts.map +0 -1
- package/dist/src/utils/pluginValidator.js.map +0 -1
- package/dist/src/utils/security.d.ts.map +0 -1
- package/dist/src/utils/security.js.map +0 -1
- package/dist/src/worker/WorkerRunner.d.ts.map +0 -1
- package/dist/src/worker/WorkerRunner.js.map +0 -1
- /package/dist/{src/managers → managers}/DependencyManager.d.ts +0 -0
- /package/dist/{src/managers → managers}/ResourceManager.d.ts +0 -0
- /package/dist/{src/utils → utils}/errorParser.d.ts +0 -0
- /package/dist/{src/utils → utils}/security.d.ts +0 -0
- /package/dist/{src/utils → utils}/security.js +0 -0
- /package/dist/{src/worker → worker}/WorkerRunner.d.ts +0 -0
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export { z };
|
|
3
|
-
export * from "./types/plugin-registry-base";
|
|
4
|
-
export type PluginNames = string;
|
|
5
|
-
export type PluginApiType<T extends string> = any;
|
|
6
2
|
export declare enum WorkerMessageType {
|
|
7
3
|
RPC_CALL = "RPC_CALL",
|
|
8
4
|
HOOK_CALL = "HOOK_CALL",
|
|
@@ -29,17 +25,13 @@ export declare enum RPCMethod {
|
|
|
29
25
|
EventsOn = "events:on",
|
|
30
26
|
HooksRegister = "hooks:register",
|
|
31
27
|
ManagerGetPlugin = "manager:getPlugin",
|
|
32
|
-
ManagerRegisterApi = "manager:registerApi",
|
|
33
28
|
Log = "log",
|
|
34
29
|
NetworkFetch = "network:fetch",
|
|
35
|
-
PermissionCheck = "perm:check"
|
|
36
|
-
ConfigGet = "config:get",
|
|
37
|
-
StorageReload = "storage:reload"
|
|
30
|
+
PermissionCheck = "perm:check"
|
|
38
31
|
}
|
|
39
32
|
export declare enum HookType {
|
|
40
33
|
ON_RESOLVE = "onResolve",
|
|
41
|
-
ON_LOAD = "onLoad"
|
|
42
|
-
ON_START = "onStart"
|
|
34
|
+
ON_LOAD = "onLoad"
|
|
43
35
|
}
|
|
44
36
|
export declare enum HookOrder {
|
|
45
37
|
PRE = "pre",
|
|
@@ -49,7 +41,7 @@ export interface PluginResource {
|
|
|
49
41
|
workers: Worker[];
|
|
50
42
|
timers: {
|
|
51
43
|
id: number | Timer;
|
|
52
|
-
type:
|
|
44
|
+
type: 'timeout' | 'interval';
|
|
53
45
|
}[];
|
|
54
46
|
eventListeners: {
|
|
55
47
|
event: string;
|
|
@@ -63,13 +55,13 @@ export interface HookRegistry<T> {
|
|
|
63
55
|
order?: HookOrder;
|
|
64
56
|
}
|
|
65
57
|
export interface AppEvents {
|
|
66
|
-
log: {
|
|
58
|
+
"log": {
|
|
67
59
|
level: "info" | "error" | "warn";
|
|
68
60
|
message: string;
|
|
69
61
|
};
|
|
70
|
-
"
|
|
71
|
-
|
|
72
|
-
|
|
62
|
+
"cmd:input": {
|
|
63
|
+
command: string;
|
|
64
|
+
args: string[];
|
|
73
65
|
};
|
|
74
66
|
[key: string]: any;
|
|
75
67
|
}
|
|
@@ -79,41 +71,11 @@ export interface IPluginStorage {
|
|
|
79
71
|
set<T>(key: string, value: T): Promise<void>;
|
|
80
72
|
delete(key: string): Promise<void>;
|
|
81
73
|
clear(): Promise<void>;
|
|
82
|
-
reload(): Promise<void>;
|
|
83
74
|
}
|
|
84
75
|
export interface Logger {
|
|
85
76
|
info(msg: string, ...args: any[]): void;
|
|
86
77
|
warn(msg: string, ...args: any[]): void;
|
|
87
78
|
error(msg: string, ...args: any[]): void;
|
|
88
|
-
debug?(msg: string, ...args: any[]): void;
|
|
89
|
-
child?(context: string): Logger;
|
|
90
|
-
}
|
|
91
|
-
export interface IPluginManager {
|
|
92
|
-
register(plugin: IPlugin): Promise<void>;
|
|
93
|
-
registerIsolated(pluginPath: string, pluginName: string): Promise<void>;
|
|
94
|
-
unregister(pluginName: string): Promise<void>;
|
|
95
|
-
getPlugin(name: string): IPlugin | undefined;
|
|
96
|
-
listPlugins(): string[];
|
|
97
|
-
loadPluginsFromDirectory(directoryPath?: string): Promise<void>;
|
|
98
|
-
disablePlugin(name: string): Promise<void>;
|
|
99
|
-
enablePlugin(name: string): Promise<void>;
|
|
100
|
-
reloadPlugin(name: string): Promise<void>;
|
|
101
|
-
runOnResolve(args: OnResolveArgs): Promise<any>;
|
|
102
|
-
runOnLoad(args: OnLoadArgs): Promise<any>;
|
|
103
|
-
toBunPlugin(): any;
|
|
104
|
-
enableHotReload(pluginDir: string): void;
|
|
105
|
-
getWorkerFactory(): (url: string | URL, options?: BunWorkerOptions) => Worker;
|
|
106
|
-
getMetrics(): any;
|
|
107
|
-
getPluginStatus(): Record<string, any>;
|
|
108
|
-
registerApi(pluginName: string, api: any): void;
|
|
109
|
-
getPluginApi(pluginName: string): any | undefined;
|
|
110
|
-
use(plugin: IPlugin): Promise<void>;
|
|
111
|
-
plugin(plugin: IPlugin): Promise<void>;
|
|
112
|
-
remove(pluginName: string): Promise<void>;
|
|
113
|
-
emit<K extends keyof AppEvents>(eventName: K, payload: AppEvents[K]): boolean;
|
|
114
|
-
on<K extends keyof AppEvents>(eventName: K & string, listener: (payload: AppEvents[K]) => void): this;
|
|
115
|
-
once<K extends keyof AppEvents>(eventName: K & string, listener: (payload: AppEvents[K]) => void): this;
|
|
116
|
-
off<K extends keyof AppEvents>(eventName: K & string, listener: (payload: AppEvents[K]) => void): this;
|
|
117
79
|
}
|
|
118
80
|
export interface PluginContext {
|
|
119
81
|
emit<K extends keyof AppEvents>(event: K, payload: AppEvents[K]): void;
|
|
@@ -124,9 +86,8 @@ export interface PluginContext {
|
|
|
124
86
|
};
|
|
125
87
|
storage: IPluginStorage;
|
|
126
88
|
config: Record<string, any>;
|
|
127
|
-
manager:
|
|
128
|
-
getPlugin
|
|
129
|
-
registerApi(api: any): void;
|
|
89
|
+
manager: any;
|
|
90
|
+
getPlugin(name: string): unknown | undefined;
|
|
130
91
|
log: Logger;
|
|
131
92
|
createWorker(url: string | URL, options?: BunWorkerOptions): BunWorker;
|
|
132
93
|
network: {
|
|
@@ -155,7 +116,13 @@ export declare class AccessDeniedError extends Error {
|
|
|
155
116
|
export declare const BasicPluginSchema: z.ZodObject<{
|
|
156
117
|
name: z.ZodString;
|
|
157
118
|
version: z.ZodString;
|
|
158
|
-
}, z.
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
name: string;
|
|
121
|
+
version: string;
|
|
122
|
+
}, {
|
|
123
|
+
name: string;
|
|
124
|
+
version: string;
|
|
125
|
+
}>;
|
|
159
126
|
export interface IPlugin {
|
|
160
127
|
name: string;
|
|
161
128
|
version: string;
|
|
@@ -172,7 +139,7 @@ export interface IPlugin {
|
|
|
172
139
|
onLoad(context: PluginContext): Promise<void> | void;
|
|
173
140
|
onStarted?: () => Promise<void> | void;
|
|
174
141
|
onUnload(): Promise<void> | void;
|
|
175
|
-
|
|
142
|
+
getSharedApi?: () => unknown;
|
|
176
143
|
setup?: (build: PluginBuilder) => void | Promise<void>;
|
|
177
144
|
}
|
|
178
145
|
export type OnResolveArgs = {
|
|
@@ -196,19 +163,11 @@ export type OnLoadResult = {
|
|
|
196
163
|
} | undefined | null;
|
|
197
164
|
export type OnLoadCallback = (args: OnLoadArgs) => OnLoadResult | Promise<OnLoadResult>;
|
|
198
165
|
export interface PluginBuilder {
|
|
199
|
-
|
|
200
|
-
onResolve(filter: RegExp | {
|
|
201
|
-
filter: RegExp;
|
|
202
|
-
namespace?: string;
|
|
203
|
-
}, callback: OnResolveCallback, options?: {
|
|
166
|
+
onResolve(filter: RegExp, callback: OnResolveCallback, options?: {
|
|
204
167
|
order?: HookOrder;
|
|
205
168
|
}): void;
|
|
206
|
-
onLoad(filter: RegExp
|
|
207
|
-
filter: RegExp;
|
|
208
|
-
namespace?: string;
|
|
209
|
-
}, callback: OnLoadCallback, options?: {
|
|
169
|
+
onLoad(filter: RegExp, callback: OnLoadCallback, options?: {
|
|
210
170
|
order?: HookOrder;
|
|
211
171
|
}): void;
|
|
212
|
-
config: Record<string, any>;
|
|
213
172
|
}
|
|
214
173
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
export { z };
|
|
3
|
-
export * from "./types/plugin-registry-base";
|
|
4
2
|
export var WorkerMessageType;
|
|
5
3
|
(function (WorkerMessageType) {
|
|
6
4
|
WorkerMessageType["RPC_CALL"] = "RPC_CALL";
|
|
@@ -30,18 +28,14 @@ export var RPCMethod;
|
|
|
30
28
|
RPCMethod["EventsOn"] = "events:on";
|
|
31
29
|
RPCMethod["HooksRegister"] = "hooks:register";
|
|
32
30
|
RPCMethod["ManagerGetPlugin"] = "manager:getPlugin";
|
|
33
|
-
RPCMethod["ManagerRegisterApi"] = "manager:registerApi";
|
|
34
31
|
RPCMethod["Log"] = "log";
|
|
35
32
|
RPCMethod["NetworkFetch"] = "network:fetch";
|
|
36
33
|
RPCMethod["PermissionCheck"] = "perm:check";
|
|
37
|
-
RPCMethod["ConfigGet"] = "config:get";
|
|
38
|
-
RPCMethod["StorageReload"] = "storage:reload";
|
|
39
34
|
})(RPCMethod || (RPCMethod = {}));
|
|
40
35
|
export var HookType;
|
|
41
36
|
(function (HookType) {
|
|
42
37
|
HookType["ON_RESOLVE"] = "onResolve";
|
|
43
38
|
HookType["ON_LOAD"] = "onLoad";
|
|
44
|
-
HookType["ON_START"] = "onStart";
|
|
45
39
|
})(HookType || (HookType = {}));
|
|
46
40
|
export var HookOrder;
|
|
47
41
|
(function (HookOrder) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAN,IAAY,iBAWX;AAXD,WAAY,iBAAiB;IACzB,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,gDAA2B,CAAA;IAC3B,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,0CAAqB,CAAA;IACrB,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;AACrB,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,QAW5B;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,uCAAmB,CAAA;IACnB,6CAAyB,CAAA;IACzB,+BAAW,CAAA;AACf,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,SAYX;AAZD,WAAY,SAAS;IACjB,uCAA0B,CAAA;IAC1B,uCAA0B,CAAA;IAC1B,6CAAgC,CAAA;IAChC,2CAA8B,CAAA;IAC9B,uCAA0B,CAAA;IAC1B,mCAAsB,CAAA;IACtB,6CAAgC,CAAA;IAChC,mDAAsC,CAAA;IACtC,wBAAW,CAAA;IACX,2CAA8B,CAAA;IAC9B,2CAA8B,CAAA;AAClC,CAAC,EAZW,SAAS,KAAT,SAAS,QAYpB;AAED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,oCAAwB,CAAA;IACxB,8BAAkB,CAAA;AACtB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,wBAAW,CAAA;IACX,0BAAa,CAAA;AACjB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AA0FD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YAAY,UAAkB,EAAE,UAAkB;QAC9C,KAAK,CAAC,WAAW,UAAU,sBAAsB,UAAU,iCAAiC,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACpC,CAAC;CACJ;AAED,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorParser.d.ts","sourceRoot":"","sources":["../../src/utils/errorParser.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAuBlE;AACD,eAAe,WAAW,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export function errorParser(error, prefix) {
|
|
2
2
|
let parsedError;
|
|
3
|
-
// Parse the error
|
|
3
|
+
// Parse the error - always create a new Error to avoid readonly issues
|
|
4
4
|
if (error instanceof Error) {
|
|
5
|
-
|
|
5
|
+
// Create a new Error to avoid modifying potentially frozen Zod errors
|
|
6
|
+
parsedError = new Error(error.message);
|
|
7
|
+
parsedError.name = error.name;
|
|
8
|
+
parsedError.stack = error.stack;
|
|
6
9
|
}
|
|
7
10
|
else if (typeof error === "string") {
|
|
8
11
|
parsedError = new Error(error);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorParser.js","sourceRoot":"","sources":["../../src/utils/errorParser.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,MAAe;IACzD,IAAI,WAAkB,CAAC;IAEvB,uEAAuE;IACvE,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,sEAAsE;QACtE,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC9B,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACpE,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,CAAE,KAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,CAAC,OAAO,GAAG,GAAG,MAAM,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AACD,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { IPlugin } from "../types";
|
|
3
|
+
export declare const PluginSchema: z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
version: z.ZodDefault<z.ZodString>;
|
|
6
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7
|
+
author: z.ZodOptional<z.ZodString>;
|
|
8
|
+
configSchema: z.ZodOptional<z.ZodAny>;
|
|
9
|
+
defaultConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
10
|
+
dependencies: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
11
|
+
permissions: z.ZodOptional<z.ZodArray<z.ZodEnum<["network", "filesystem", "env"]>, "many">>;
|
|
12
|
+
allowedDomains: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
13
|
+
engines: z.ZodOptional<z.ZodObject<{
|
|
14
|
+
host: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
host?: string | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
host?: string | undefined;
|
|
19
|
+
}>>;
|
|
20
|
+
onLoad: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
|
|
21
|
+
onStarted: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
|
|
22
|
+
onUnload: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
|
|
23
|
+
getSharedApi: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
|
|
24
|
+
setup: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
onLoad: (...args: unknown[]) => unknown;
|
|
27
|
+
name: string;
|
|
28
|
+
version: string;
|
|
29
|
+
description?: string | undefined;
|
|
30
|
+
author?: string | undefined;
|
|
31
|
+
configSchema?: any;
|
|
32
|
+
defaultConfig?: Record<string, any> | undefined;
|
|
33
|
+
dependencies?: Record<string, string> | undefined;
|
|
34
|
+
permissions?: ("network" | "filesystem" | "env")[] | undefined;
|
|
35
|
+
allowedDomains?: string[] | undefined;
|
|
36
|
+
engines?: {
|
|
37
|
+
host?: string | undefined;
|
|
38
|
+
} | undefined;
|
|
39
|
+
onStarted?: ((...args: unknown[]) => unknown) | undefined;
|
|
40
|
+
onUnload?: ((...args: unknown[]) => unknown) | undefined;
|
|
41
|
+
getSharedApi?: ((...args: unknown[]) => unknown) | undefined;
|
|
42
|
+
setup?: ((...args: unknown[]) => unknown) | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
onLoad: (...args: unknown[]) => unknown;
|
|
45
|
+
name: string;
|
|
46
|
+
version?: string | undefined;
|
|
47
|
+
description?: string | undefined;
|
|
48
|
+
author?: string | undefined;
|
|
49
|
+
configSchema?: any;
|
|
50
|
+
defaultConfig?: Record<string, any> | undefined;
|
|
51
|
+
dependencies?: Record<string, string> | undefined;
|
|
52
|
+
permissions?: ("network" | "filesystem" | "env")[] | undefined;
|
|
53
|
+
allowedDomains?: string[] | undefined;
|
|
54
|
+
engines?: {
|
|
55
|
+
host?: string | undefined;
|
|
56
|
+
} | undefined;
|
|
57
|
+
onStarted?: ((...args: unknown[]) => unknown) | undefined;
|
|
58
|
+
onUnload?: ((...args: unknown[]) => unknown) | undefined;
|
|
59
|
+
getSharedApi?: ((...args: unknown[]) => unknown) | undefined;
|
|
60
|
+
setup?: ((...args: unknown[]) => unknown) | undefined;
|
|
61
|
+
}>;
|
|
62
|
+
export declare const StrictPluginSchema: z.ZodObject<{
|
|
63
|
+
name: z.ZodString;
|
|
64
|
+
version: z.ZodString;
|
|
65
|
+
onLoad: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
|
|
66
|
+
onUnload: z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>;
|
|
67
|
+
}, "strip", z.ZodTypeAny, {
|
|
68
|
+
onLoad: (...args: unknown[]) => unknown;
|
|
69
|
+
name: string;
|
|
70
|
+
version: string;
|
|
71
|
+
onUnload: (...args: unknown[]) => unknown;
|
|
72
|
+
}, {
|
|
73
|
+
onLoad: (...args: unknown[]) => unknown;
|
|
74
|
+
name: string;
|
|
75
|
+
version: string;
|
|
76
|
+
onUnload: (...args: unknown[]) => unknown;
|
|
77
|
+
}>;
|
|
78
|
+
export type ValidationResult = {
|
|
79
|
+
valid: true;
|
|
80
|
+
plugin: IPlugin;
|
|
81
|
+
} | {
|
|
82
|
+
valid: false;
|
|
83
|
+
error: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Validates if an unknown object is a valid plugin.
|
|
87
|
+
* Handles:
|
|
88
|
+
* 1. Class instances (Standard)
|
|
89
|
+
* 2. Plain objects
|
|
90
|
+
* 3. Class Constructors (instantiates them) // TODO if we want to move that logic here
|
|
91
|
+
*/
|
|
92
|
+
export declare function validatePlugin(candidate: unknown): ValidationResult;
|
|
93
|
+
//# sourceMappingURL=pluginValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginValidator.d.ts","sourceRoot":"","sources":["../../src/utils/pluginValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsBvB,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,gBAAgB,CAqBnE"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { errorParser } from "../utils/errorParser";
|
|
3
|
-
|
|
4
|
-
const pluginSchemaDefinition = z.object({
|
|
3
|
+
export const PluginSchema = z.object({
|
|
5
4
|
name: z.string().min(1, "Plugin name is required"),
|
|
6
5
|
version: z.string().min(1, "Plugin version is required").default("1.0.0"),
|
|
7
6
|
description: z.string().optional(),
|
|
@@ -17,8 +16,16 @@ const pluginSchemaDefinition = z.object({
|
|
|
17
16
|
onLoad: z.function(),
|
|
18
17
|
onStarted: z.function().optional(),
|
|
19
18
|
onUnload: z.function().optional(),
|
|
19
|
+
getSharedApi: z.function().optional(),
|
|
20
20
|
setup: z.function().optional(),
|
|
21
21
|
});
|
|
22
|
+
// We can have a stricter schema for the full IPlugin
|
|
23
|
+
export const StrictPluginSchema = z.object({
|
|
24
|
+
name: z.string(),
|
|
25
|
+
version: z.string(),
|
|
26
|
+
onLoad: z.function(),
|
|
27
|
+
onUnload: z.function(),
|
|
28
|
+
});
|
|
22
29
|
/**
|
|
23
30
|
* Validates if an unknown object is a valid plugin.
|
|
24
31
|
* Handles:
|
|
@@ -50,21 +57,17 @@ export function validatePlugin(candidate) {
|
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
59
|
function validatePluginInstance(obj) {
|
|
53
|
-
const result =
|
|
60
|
+
const result = PluginSchema.safeParse(obj);
|
|
54
61
|
if (!result.success) {
|
|
55
62
|
return {
|
|
56
63
|
valid: false,
|
|
57
64
|
error: result.error.issues.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ')
|
|
58
65
|
};
|
|
59
66
|
}
|
|
60
|
-
//
|
|
61
|
-
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
// Apply defaults/formatting from Zod if needed (optional)
|
|
65
|
-
if (!plugin.version && result.data.version)
|
|
66
|
-
plugin.version = result.data.version;
|
|
67
|
-
// Shim onUnload if missing
|
|
67
|
+
// Cast to IPlugin (fill in missing optional methods if needed)
|
|
68
|
+
const plugin = result.data;
|
|
69
|
+
// Shim onUnload if missing (since we made it optional in schema but it is required in IPlugin interface usually,
|
|
70
|
+
// though we can be lenient)
|
|
68
71
|
if (!plugin.onUnload) {
|
|
69
72
|
plugin.onUnload = () => { };
|
|
70
73
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginValidator.js","sourceRoot":"","sources":["../../src/utils/pluginValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,cAAc,EAAE,MAAM,EAAE,GAAG,SAAS,EACpC,MAAM,EAAE,MAAM,GACf,IAAI,CAuBN;AAED,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,IAAI,EAAE,YAAY,GAAG,KAAK,GAC3B,IAAI,CAIN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAClC,UAAkB,EAClB,WAAiC,EACjC,cAAoC,EACpC,MAAc;IAEd,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,kCAAkC,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACD,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,8CAA8C;YAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,iBAAiB,UAAU,IAAI,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAC3C,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,CACzD,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,0CAA0C,UAAU,IAAI,CAAC,CAAC;QAC/G,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC3B,UAAkB,EAClB,WAAiC,EACjC,IAA0B;IAE1B,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,UAAU,eAAe,IAAI,eAAe,CAAC,CAAC;IAC3F,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerRunner.d.ts","sourceRoot":"","sources":["../../src/worker/WorkerRunner.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { parentPort, workerData } from "worker_threads";
|
|
2
|
-
import { WorkerMessageType, RPCMethod, HookType } from "../types";
|
|
2
|
+
import { WorkerMessageType, PluginPermission, RPCMethod, HookType } from "../types";
|
|
3
3
|
import { errorParser } from "../utils/errorParser";
|
|
4
|
-
import { logger } from "../logger";
|
|
5
4
|
// This is the "Shell" that runs inside the Worker.
|
|
6
5
|
// It receives the plugin path, loads it, and executes onLoad.
|
|
7
6
|
// It creates a proxy Context that talks back to the main thread via postMessage.
|
|
@@ -11,7 +10,6 @@ const { pluginPath, pluginName } = workerData;
|
|
|
11
10
|
// Map to store callbacks for hooks and events
|
|
12
11
|
const hookCallbacks = new Map();
|
|
13
12
|
const localEventListeners = new Map();
|
|
14
|
-
let currentConfig = {};
|
|
15
13
|
// Simple RPC Helper
|
|
16
14
|
function rpc(method, ...args) {
|
|
17
15
|
return new Promise((resolve, reject) => {
|
|
@@ -60,26 +58,26 @@ async function run() {
|
|
|
60
58
|
}
|
|
61
59
|
catch (e) {
|
|
62
60
|
const error = errorParser(e, `Error in event listener for ${event}`);
|
|
63
|
-
|
|
61
|
+
console.error(`[Worker:${pluginName}] Error in event listener for ${event}:`, error.message);
|
|
64
62
|
}
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
}
|
|
68
66
|
else if (msg.type === WorkerMessageType.UNLOAD) {
|
|
69
|
-
|
|
67
|
+
console.log(`[Worker:${pluginName}] Received UNLOAD signal.`);
|
|
70
68
|
if (plugin && plugin.onUnload) {
|
|
71
69
|
try {
|
|
72
70
|
await plugin.onUnload();
|
|
73
71
|
}
|
|
74
72
|
catch (e) {
|
|
75
|
-
|
|
73
|
+
console.error(`[Worker:${pluginName}] Error during onUnload:`, e);
|
|
76
74
|
}
|
|
77
75
|
}
|
|
78
76
|
process.exit(0);
|
|
79
77
|
}
|
|
80
78
|
});
|
|
81
79
|
try {
|
|
82
|
-
|
|
80
|
+
console.log(`[Worker:${pluginName}] Loading plugin from ${pluginPath}...`);
|
|
83
81
|
// Dynamic Import of the Plugin
|
|
84
82
|
const module = await import(pluginPath);
|
|
85
83
|
// Find the plugin object (default export or named export compliant with IPlugin)
|
|
@@ -116,8 +114,6 @@ async function run() {
|
|
|
116
114
|
if (!plugin) {
|
|
117
115
|
throw new Error(`[Worker:${pluginName}] No valid plugin found in ${pluginPath}. Ensure you export an instance or class that implements IPlugin.`);
|
|
118
116
|
}
|
|
119
|
-
// Fetch actual config from host
|
|
120
|
-
currentConfig = await rpc(RPCMethod.ConfigGet) || plugin.defaultConfig || {};
|
|
121
117
|
// Send Manifest immediately after load for security context initialization in host
|
|
122
118
|
parentPort.postMessage({
|
|
123
119
|
type: WorkerMessageType.MANIFEST,
|
|
@@ -132,23 +128,13 @@ async function run() {
|
|
|
132
128
|
});
|
|
133
129
|
// Create Proxy Context
|
|
134
130
|
const contextProxy = {
|
|
135
|
-
manager: {},
|
|
136
|
-
|
|
137
|
-
// In worker mode, API registration is handled via RPC to main thread
|
|
138
|
-
// This is a placeholder - actual implementation would need to communicate with host
|
|
139
|
-
rpc(RPCMethod.ManagerRegisterApi, api);
|
|
140
|
-
},
|
|
141
|
-
get config() {
|
|
142
|
-
// Return a proxy that can potentially be async or just fetch once and update?
|
|
143
|
-
// For now, since config needs to be sync, we keep a local copy and update it.
|
|
144
|
-
return currentConfig;
|
|
145
|
-
},
|
|
131
|
+
manager: {}, // Manager is not accessible remotely directly
|
|
132
|
+
config: plugin.defaultConfig || {}, // Initial config (todo: fetch actual valid config)
|
|
146
133
|
storage: {
|
|
147
134
|
get: (key) => rpc(RPCMethod.StorageGet, key),
|
|
148
135
|
set: (key, val) => rpc(RPCMethod.StorageSet, key, val),
|
|
149
136
|
delete: (key) => rpc(RPCMethod.StorageDelete, key),
|
|
150
|
-
clear: () => rpc(RPCMethod.StorageClear)
|
|
151
|
-
reload: () => rpc(RPCMethod.StorageReload)
|
|
137
|
+
clear: () => rpc(RPCMethod.StorageClear)
|
|
152
138
|
},
|
|
153
139
|
emit: (event, payload) => rpc(RPCMethod.EventsEmit, event, payload),
|
|
154
140
|
on: (event, cb) => {
|
|
@@ -205,20 +191,10 @@ async function run() {
|
|
|
205
191
|
// Run setup (Hooks)
|
|
206
192
|
if (plugin.setup) {
|
|
207
193
|
const builderVal = {
|
|
208
|
-
|
|
209
|
-
onStart: (callback) => {
|
|
210
|
-
const hookId = Math.random().toString(36).substring(7);
|
|
211
|
-
hookCallbacks.set(hookId, callback);
|
|
212
|
-
rpc(RPCMethod.HooksRegister, HookType.ON_START, {
|
|
213
|
-
filter: /.*/.source,
|
|
214
|
-
pluginName,
|
|
215
|
-
id: hookId
|
|
216
|
-
});
|
|
217
|
-
},
|
|
218
|
-
onResolve: (filterOrConfig, callback, options) => {
|
|
219
|
-
const filter = filterOrConfig instanceof RegExp ? filterOrConfig : filterOrConfig.filter;
|
|
194
|
+
onResolve: (filter, callback, options) => {
|
|
220
195
|
const hookId = Math.random().toString(36).substring(7);
|
|
221
196
|
hookCallbacks.set(hookId, callback);
|
|
197
|
+
// We need to pass the filter source string
|
|
222
198
|
rpc(RPCMethod.HooksRegister, HookType.ON_RESOLVE, {
|
|
223
199
|
filter: filter.source,
|
|
224
200
|
pluginName,
|
|
@@ -226,8 +202,7 @@ async function run() {
|
|
|
226
202
|
options
|
|
227
203
|
});
|
|
228
204
|
},
|
|
229
|
-
onLoad: (
|
|
230
|
-
const filter = filterOrConfig instanceof RegExp ? filterOrConfig : filterOrConfig.filter;
|
|
205
|
+
onLoad: (filter, callback, options) => {
|
|
231
206
|
const hookId = Math.random().toString(36).substring(7);
|
|
232
207
|
hookCallbacks.set(hookId, callback);
|
|
233
208
|
rpc(RPCMethod.HooksRegister, HookType.ON_LOAD, {
|
|
@@ -263,7 +238,7 @@ async function run() {
|
|
|
263
238
|
await plugin.onStarted();
|
|
264
239
|
}
|
|
265
240
|
catch (e) {
|
|
266
|
-
|
|
241
|
+
console.error(`[Worker:${pluginName}] Error in onStarted:`, e);
|
|
267
242
|
}
|
|
268
243
|
}
|
|
269
244
|
}
|
|
@@ -271,7 +246,7 @@ async function run() {
|
|
|
271
246
|
}
|
|
272
247
|
catch (e) {
|
|
273
248
|
const error = errorParser(e, `[Worker:${pluginName}] Error:`);
|
|
274
|
-
|
|
249
|
+
console.error(error.message);
|
|
275
250
|
parentPort.postMessage({ type: WorkerMessageType.LOAD_ERROR, error: error.message });
|
|
276
251
|
}
|
|
277
252
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkerRunner.js","sourceRoot":"","sources":["../../src/worker/WorkerRunner.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.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"description": "A powerful and secure plugin system for Bun applications",
|
|
5
5
|
"author": "memelser <nglmercer@gmail.com>",
|
|
6
6
|
"repository": {
|
|
@@ -20,15 +20,12 @@
|
|
|
20
20
|
],
|
|
21
21
|
"exports": {
|
|
22
22
|
".": {
|
|
23
|
-
"import": "./dist/
|
|
24
|
-
"types": "./dist/
|
|
25
|
-
},
|
|
26
|
-
"./src/types/plugin-registry-base": {
|
|
27
|
-
"types": "./dist/src/types/plugin-registry-base.d.ts"
|
|
23
|
+
"import": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts"
|
|
28
25
|
}
|
|
29
26
|
},
|
|
30
27
|
"scripts": {
|
|
31
|
-
"build": "
|
|
28
|
+
"build": "rm -rf dist && tsc",
|
|
32
29
|
"test": "bun test ./tests",
|
|
33
30
|
"typecheck": "bun tsc --noEmit",
|
|
34
31
|
"prepublishOnly": "bun run build"
|
|
@@ -36,11 +33,11 @@
|
|
|
36
33
|
"devDependencies": {
|
|
37
34
|
"@types/bun": "latest",
|
|
38
35
|
"@types/semver": "^7.7.1",
|
|
36
|
+
"bun_plugins": "^1.0.4",
|
|
39
37
|
"typescript": "^5.0.0"
|
|
40
38
|
},
|
|
41
39
|
"dependencies": {
|
|
42
|
-
"arktype": "^2.1.0",
|
|
43
40
|
"semver": "^7.7.3",
|
|
44
|
-
"zod": "^
|
|
41
|
+
"zod": "^3.23.0"
|
|
45
42
|
}
|
|
46
43
|
}
|
package/LICENSE
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
-
|
|
7
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
-
|
|
9
|
-
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Declarative Action Registry Example
|
|
3
|
-
*
|
|
4
|
-
* This example demonstrates a clean, declarative approach to building
|
|
5
|
-
* plugins with action registries using shared utilities.
|
|
6
|
-
*/
|
|
7
|
-
declare const createRegistryPlugin: () => import("bun_plugins").IPlugin;
|
|
8
|
-
declare const createMathPlugin: () => import("bun_plugins").IPlugin;
|
|
9
|
-
declare const createTextPlugin: () => import("bun_plugins").IPlugin;
|
|
10
|
-
declare const createUtilityPlugin: () => import("bun_plugins").IPlugin;
|
|
11
|
-
declare const demonstrateDeclarativeActionRegistry: () => Promise<void>;
|
|
12
|
-
declare const demonstrateDynamicLoading: () => Promise<void>;
|
|
13
|
-
export { createRegistryPlugin, createMathPlugin, createTextPlugin, createUtilityPlugin, demonstrateDeclarativeActionRegistry, demonstrateDynamicLoading };
|
|
14
|
-
//# sourceMappingURL=action-registry-declarative.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"action-registry-declarative.d.ts","sourceRoot":"","sources":["../../examples/action-registry-declarative.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,QAAA,MAAM,oBAAoB,qCAUxB,CAAC;AAGH,QAAA,MAAM,gBAAgB,qCAMpB,CAAC;AAEH,QAAA,MAAM,gBAAgB,qCAMpB,CAAC;AAEH,QAAA,MAAM,mBAAmB,qCAMvB,CAAC;AA4CH,QAAA,MAAM,oCAAoC,qBA2CzC,CAAC;AAGF,QAAA,MAAM,yBAAyB,qBAS9B,CAAC;AAGF,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oCAAoC,EACpC,yBAAyB,EAC1B,CAAC"}
|