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.
Files changed (177) hide show
  1. package/README.md +3 -127
  2. package/dist/{src/PluginManager.d.ts → PluginManager.d.ts} +9 -20
  3. package/dist/PluginManager.d.ts.map +1 -0
  4. package/dist/{src/PluginManager.js → PluginManager.js} +189 -212
  5. package/dist/PluginManager.js.map +1 -0
  6. package/dist/{src/index.d.ts → index.d.ts} +1 -2
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/{src/index.js → index.js} +0 -2
  9. package/dist/index.js.map +1 -0
  10. package/dist/{src/managers → managers}/ContextFactory.d.ts +1 -1
  11. package/dist/managers/ContextFactory.d.ts.map +1 -0
  12. package/dist/{src/managers → managers}/ContextFactory.js +26 -51
  13. package/dist/managers/ContextFactory.js.map +1 -0
  14. package/dist/managers/DependencyManager.d.ts.map +1 -0
  15. package/dist/{src/managers → managers}/DependencyManager.js +5 -7
  16. package/dist/managers/DependencyManager.js.map +1 -0
  17. package/dist/{src/managers → managers}/HooksManager.d.ts +1 -4
  18. package/dist/managers/HooksManager.d.ts.map +1 -0
  19. package/dist/{src/managers → managers}/HooksManager.js +8 -36
  20. package/dist/managers/HooksManager.js.map +1 -0
  21. package/dist/managers/ResourceManager.d.ts.map +1 -0
  22. package/dist/{src/managers → managers}/ResourceManager.js +3 -3
  23. package/dist/managers/ResourceManager.js.map +1 -0
  24. package/dist/{src/storage → storage}/JsonPluginStorage.d.ts +1 -2
  25. package/dist/storage/JsonPluginStorage.d.ts.map +1 -0
  26. package/dist/storage/JsonPluginStorage.js +63 -0
  27. package/dist/storage/JsonPluginStorage.js.map +1 -0
  28. package/dist/{src/types.d.ts → types.d.ts} +19 -60
  29. package/dist/types.d.ts.map +1 -0
  30. package/dist/{src/types.js → types.js} +0 -6
  31. package/dist/types.js.map +1 -0
  32. package/dist/utils/errorParser.d.ts.map +1 -0
  33. package/dist/{src/utils → utils}/errorParser.js +5 -2
  34. package/dist/utils/errorParser.js.map +1 -0
  35. package/dist/utils/pluginValidator.d.ts +93 -0
  36. package/dist/utils/pluginValidator.d.ts.map +1 -0
  37. package/dist/{src/utils → utils}/pluginValidator.js +14 -11
  38. package/dist/utils/pluginValidator.js.map +1 -0
  39. package/dist/utils/security.d.ts.map +1 -0
  40. package/dist/utils/security.js.map +1 -0
  41. package/dist/worker/WorkerRunner.d.ts.map +1 -0
  42. package/dist/{src/worker → worker}/WorkerRunner.js +13 -38
  43. package/dist/worker/WorkerRunner.js.map +1 -0
  44. package/package.json +6 -9
  45. package/LICENSE +0 -9
  46. package/dist/examples/action-registry-declarative.d.ts +0 -14
  47. package/dist/examples/action-registry-declarative.d.ts.map +0 -1
  48. package/dist/examples/action-registry-declarative.js +0 -130
  49. package/dist/examples/action-registry-declarative.js.map +0 -1
  50. package/dist/examples/action-registry-example.d.ts +0 -31
  51. package/dist/examples/action-registry-example.d.ts.map +0 -1
  52. package/dist/examples/action-registry-example.js +0 -84
  53. package/dist/examples/action-registry-example.js.map +0 -1
  54. package/dist/examples/index-declarative.d.ts +0 -32
  55. package/dist/examples/index-declarative.d.ts.map +0 -1
  56. package/dist/examples/index-declarative.js +0 -206
  57. package/dist/examples/index-declarative.js.map +0 -1
  58. package/dist/examples/logger-declarative.d.ts +0 -109
  59. package/dist/examples/logger-declarative.d.ts.map +0 -1
  60. package/dist/examples/logger-declarative.js +0 -330
  61. package/dist/examples/logger-declarative.js.map +0 -1
  62. package/dist/examples/logger-simple.d.ts +0 -8
  63. package/dist/examples/logger-simple.d.ts.map +0 -1
  64. package/dist/examples/logger-simple.js +0 -165
  65. package/dist/examples/logger-simple.js.map +0 -1
  66. package/dist/examples/server-declarative.d.ts +0 -46
  67. package/dist/examples/server-declarative.d.ts.map +0 -1
  68. package/dist/examples/server-declarative.js +0 -205
  69. package/dist/examples/server-declarative.js.map +0 -1
  70. package/dist/examples/shared/action-registry.d.ts +0 -45
  71. package/dist/examples/shared/action-registry.d.ts.map +0 -1
  72. package/dist/examples/shared/action-registry.js +0 -65
  73. package/dist/examples/shared/action-registry.js.map +0 -1
  74. package/dist/examples/shared/plugin-builder.d.ts +0 -41
  75. package/dist/examples/shared/plugin-builder.d.ts.map +0 -1
  76. package/dist/examples/shared/plugin-builder.js +0 -85
  77. package/dist/examples/shared/plugin-builder.js.map +0 -1
  78. package/dist/examples/storage-declarative.d.ts +0 -13
  79. package/dist/examples/storage-declarative.d.ts.map +0 -1
  80. package/dist/examples/storage-declarative.js +0 -203
  81. package/dist/examples/storage-declarative.js.map +0 -1
  82. package/dist/plugins/ActionRegistryPlugin.d.ts +0 -14
  83. package/dist/plugins/ActionRegistryPlugin.d.ts.map +0 -1
  84. package/dist/plugins/ActionRegistryPlugin.js +0 -52
  85. package/dist/plugins/ActionRegistryPlugin.js.map +0 -1
  86. package/dist/plugins/DynamicJSActionsPlugin.d.ts +0 -21
  87. package/dist/plugins/DynamicJSActionsPlugin.d.ts.map +0 -1
  88. package/dist/plugins/DynamicJSActionsPlugin.js +0 -57
  89. package/dist/plugins/DynamicJSActionsPlugin.js.map +0 -1
  90. package/dist/plugins/DynamicMathActionsPlugin.d.ts +0 -22
  91. package/dist/plugins/DynamicMathActionsPlugin.d.ts.map +0 -1
  92. package/dist/plugins/DynamicMathActionsPlugin.js +0 -64
  93. package/dist/plugins/DynamicMathActionsPlugin.js.map +0 -1
  94. package/dist/plugins/DynamicTextActionsPlugin.d.ts +0 -22
  95. package/dist/plugins/DynamicTextActionsPlugin.d.ts.map +0 -1
  96. package/dist/plugins/DynamicTextActionsPlugin.js +0 -58
  97. package/dist/plugins/DynamicTextActionsPlugin.js.map +0 -1
  98. package/dist/plugins/DynamicUtilityActionsPlugin.d.ts +0 -22
  99. package/dist/plugins/DynamicUtilityActionsPlugin.d.ts.map +0 -1
  100. package/dist/plugins/DynamicUtilityActionsPlugin.js +0 -75
  101. package/dist/plugins/DynamicUtilityActionsPlugin.js.map +0 -1
  102. package/dist/plugins/ExamplePlugin.d.ts +0 -3
  103. package/dist/plugins/ExamplePlugin.d.ts.map +0 -1
  104. package/dist/plugins/ExamplePlugin.js +0 -24
  105. package/dist/plugins/ExamplePlugin.js.map +0 -1
  106. package/dist/plugins/LifecycleDemoPlugin.d.ts +0 -20
  107. package/dist/plugins/LifecycleDemoPlugin.d.ts.map +0 -1
  108. package/dist/plugins/LifecycleDemoPlugin.js +0 -34
  109. package/dist/plugins/LifecycleDemoPlugin.js.map +0 -1
  110. package/dist/plugins/MathPlugin.d.ts +0 -16
  111. package/dist/plugins/MathPlugin.d.ts.map +0 -1
  112. package/dist/plugins/MathPlugin.js +0 -30
  113. package/dist/plugins/MathPlugin.js.map +0 -1
  114. package/dist/plugins/MyJSPlugin.d.ts +0 -7
  115. package/dist/plugins/MyJSPlugin.d.ts.map +0 -1
  116. package/dist/plugins/MyJSPlugin.js +0 -12
  117. package/dist/plugins/MyJSPlugin.js.map +0 -1
  118. package/dist/plugins/TypedExamplePlugin.d.ts +0 -10
  119. package/dist/plugins/TypedExamplePlugin.d.ts.map +0 -1
  120. package/dist/plugins/TypedExamplePlugin.js +0 -61
  121. package/dist/plugins/TypedExamplePlugin.js.map +0 -1
  122. package/dist/plugins/arktype/index.d.ts +0 -8
  123. package/dist/plugins/arktype/index.d.ts.map +0 -1
  124. package/dist/plugins/arktype/index.js +0 -25
  125. package/dist/plugins/arktype/index.js.map +0 -1
  126. package/dist/src/Plugin.d.ts +0 -28
  127. package/dist/src/Plugin.d.ts.map +0 -1
  128. package/dist/src/Plugin.js +0 -36
  129. package/dist/src/Plugin.js.map +0 -1
  130. package/dist/src/PluginManager.d.ts.map +0 -1
  131. package/dist/src/PluginManager.js.map +0 -1
  132. package/dist/src/index.d.ts.map +0 -1
  133. package/dist/src/index.js.map +0 -1
  134. package/dist/src/logger/LoggerAdapter.d.ts +0 -77
  135. package/dist/src/logger/LoggerAdapter.d.ts.map +0 -1
  136. package/dist/src/logger/LoggerAdapter.js +0 -242
  137. package/dist/src/logger/LoggerAdapter.js.map +0 -1
  138. package/dist/src/logger/LoggerFactory.d.ts +0 -73
  139. package/dist/src/logger/LoggerFactory.d.ts.map +0 -1
  140. package/dist/src/logger/LoggerFactory.js +0 -99
  141. package/dist/src/logger/LoggerFactory.js.map +0 -1
  142. package/dist/src/logger/index.d.ts +0 -3
  143. package/dist/src/logger/index.d.ts.map +0 -1
  144. package/dist/src/logger/index.js +0 -3
  145. package/dist/src/logger/index.js.map +0 -1
  146. package/dist/src/managers/ContextFactory.d.ts.map +0 -1
  147. package/dist/src/managers/ContextFactory.js.map +0 -1
  148. package/dist/src/managers/DependencyManager.d.ts.map +0 -1
  149. package/dist/src/managers/DependencyManager.js.map +0 -1
  150. package/dist/src/managers/HooksManager.d.ts.map +0 -1
  151. package/dist/src/managers/HooksManager.js.map +0 -1
  152. package/dist/src/managers/ResourceManager.d.ts.map +0 -1
  153. package/dist/src/managers/ResourceManager.js.map +0 -1
  154. package/dist/src/storage/JsonPluginStorage.d.ts.map +0 -1
  155. package/dist/src/storage/JsonPluginStorage.js +0 -75
  156. package/dist/src/storage/JsonPluginStorage.js.map +0 -1
  157. package/dist/src/types/plugin-registry-base.d.ts +0 -80
  158. package/dist/src/types/plugin-registry-base.d.ts.map +0 -1
  159. package/dist/src/types/plugin-registry-base.js +0 -6
  160. package/dist/src/types/plugin-registry-base.js.map +0 -1
  161. package/dist/src/types.d.ts.map +0 -1
  162. package/dist/src/types.js.map +0 -1
  163. package/dist/src/utils/errorParser.d.ts.map +0 -1
  164. package/dist/src/utils/errorParser.js.map +0 -1
  165. package/dist/src/utils/pluginValidator.d.ts +0 -17
  166. package/dist/src/utils/pluginValidator.d.ts.map +0 -1
  167. package/dist/src/utils/pluginValidator.js.map +0 -1
  168. package/dist/src/utils/security.d.ts.map +0 -1
  169. package/dist/src/utils/security.js.map +0 -1
  170. package/dist/src/worker/WorkerRunner.d.ts.map +0 -1
  171. package/dist/src/worker/WorkerRunner.js.map +0 -1
  172. /package/dist/{src/managers → managers}/DependencyManager.d.ts +0 -0
  173. /package/dist/{src/managers → managers}/ResourceManager.d.ts +0 -0
  174. /package/dist/{src/utils → utils}/errorParser.d.ts +0 -0
  175. /package/dist/{src/utils → utils}/security.d.ts +0 -0
  176. /package/dist/{src/utils → utils}/security.js +0 -0
  177. /package/dist/{src/worker → worker}/WorkerRunner.d.ts +0 -0
@@ -1,205 +0,0 @@
1
- /**
2
- * Declarative Server Example
3
- *
4
- * A clean, declarative approach to building a plugin-powered server
5
- * with minimal boilerplate and maximum clarity.
6
- */
7
- import { serve } from "bun";
8
- import { PluginManager } from "../src/PluginManager";
9
- // Declarative route definitions
10
- const routes = [
11
- {
12
- method: 'GET',
13
- path: '/health',
14
- handler: 'health_check',
15
- description: 'Health check endpoint'
16
- },
17
- {
18
- method: 'POST',
19
- path: '/plugins',
20
- handler: 'list_plugins',
21
- description: 'List all loaded plugins'
22
- },
23
- {
24
- method: 'POST',
25
- path: '/plugins/register',
26
- handler: 'register_plugin',
27
- description: 'Register a new plugin'
28
- },
29
- {
30
- method: 'POST',
31
- path: '/plugins/unregister',
32
- handler: 'unregister_plugin',
33
- description: 'Unregister a plugin'
34
- },
35
- {
36
- method: 'GET',
37
- path: '/actions',
38
- handler: 'list_actions',
39
- description: 'List available actions'
40
- },
41
- {
42
- method: 'POST',
43
- path: '/actions/execute',
44
- handler: 'execute_action',
45
- description: 'Execute a specific action'
46
- }
47
- ];
48
- // Declarative server plugin
49
- const createServerPlugin = () => ({
50
- name: "declarative-server",
51
- version: "1.0.0",
52
- description: "Server plugin with declarative route handling",
53
- async onLoad(context) {
54
- const { log } = context;
55
- log.info("Server plugin loaded");
56
- // Register server actions
57
- const actions = {
58
- health_check: async () => ({ status: 'healthy', timestamp: new Date().toISOString() }),
59
- list_plugins: async () => context.manager.listPlugins(),
60
- register_plugin: async (data) => {
61
- // Plugin registration logic
62
- return { success: true, plugin: data.name };
63
- },
64
- unregister_plugin: async (data) => {
65
- // Plugin unregistration logic
66
- return { success: true, plugin: data.name };
67
- },
68
- list_actions: async () => {
69
- const registry = context.manager.getPluginApi('action-registry');
70
- return registry ? registry.list() : [];
71
- },
72
- execute_action: async (data) => {
73
- const registry = context.manager.getPluginApi('action-registry');
74
- if (!registry)
75
- throw new Error('Action registry not found');
76
- return registry.execute(data.action, ...data.args);
77
- }
78
- };
79
- // Make actions available
80
- context.serverActions = actions;
81
- log.info("Server actions registered");
82
- },
83
- async onUnload() {
84
- console.log("Server plugin unloaded");
85
- }
86
- });
87
- // Declarative server factory
88
- const createDeclarativeServer = (config) => {
89
- const pluginManager = new PluginManager();
90
- return {
91
- pluginManager,
92
- async start() {
93
- // Register server plugin
94
- await pluginManager.register(createServerPlugin());
95
- // Create and start server
96
- const server = serve({
97
- port: config.port,
98
- hostname: config.host,
99
- async fetch(req) {
100
- const url = new URL(req.url);
101
- const route = config.routes.find(r => r.method === req.method && r.path === url.pathname);
102
- if (!route) {
103
- return new Response(JSON.stringify({ error: 'Not found' }), {
104
- status: 404,
105
- headers: { 'Content-Type': 'application/json' }
106
- });
107
- }
108
- try {
109
- const serverPlugin = pluginManager.getPlugin('declarative-server');
110
- if (!serverPlugin || !serverPlugin.serverActions) {
111
- throw new Error('Server plugin not available');
112
- }
113
- const actions = serverPlugin.serverActions;
114
- const handler = actions[route.handler];
115
- if (!handler) {
116
- throw new Error(`Handler ${route.handler} not found`);
117
- }
118
- let data = {};
119
- if (req.method !== 'GET') {
120
- data = await req.json().catch(() => ({}));
121
- }
122
- const result = await handler(data);
123
- return new Response(JSON.stringify(result), {
124
- status: 200,
125
- headers: { 'Content-Type': 'application/json' }
126
- });
127
- }
128
- catch (error) {
129
- return new Response(JSON.stringify({
130
- error: error.message
131
- }), {
132
- status: 500,
133
- headers: { 'Content-Type': 'application/json' }
134
- });
135
- }
136
- }
137
- });
138
- console.log(`🚀 Server running on http://${config.host}:${config.port}`);
139
- console.log('Available endpoints:');
140
- config.routes.forEach(route => {
141
- console.log(` ${route.method} ${route.path} - ${route.description}`);
142
- });
143
- return server;
144
- }
145
- };
146
- };
147
- // Action registry plugin for the server
148
- const createActionRegistryPlugin = () => ({
149
- name: "action-registry",
150
- version: "1.0.0",
151
- description: "Action registry for server operations",
152
- async onLoad(context) {
153
- const { ActionRegistry } = await import("./shared/action-registry");
154
- const registry = new ActionRegistry();
155
- // Register some example actions
156
- registry.register({
157
- name: 'greet',
158
- handler: (name) => `Hello, Hello, ${name}!`
159
- });
160
- registry.register({
161
- name: 'calculate',
162
- handler: (a, b, op) => {
163
- switch (op) {
164
- case 'add': return a + b;
165
- case 'subtract': return a - b;
166
- case 'multiply': return a * b;
167
- case 'divide': return b !== 0 ? a / b : 'Error: Division by zero';
168
- default: return 'Error: Unknown operation';
169
- }
170
- }
171
- });
172
- // Register the registry as the shared API
173
- context.registerApi(registry);
174
- },
175
- async onUnload() {
176
- console.log("Action registry plugin unloaded");
177
- },
178
- });
179
- // Main demonstration
180
- const demonstrateDeclarativeServer = async () => {
181
- const config = {
182
- port: 3000,
183
- host: 'localhost',
184
- routes: routes,
185
- middleware: []
186
- };
187
- const server = createDeclarativeServer(config);
188
- // Register action registry
189
- await server.pluginManager.register(createActionRegistryPlugin());
190
- // Start server
191
- const instance = await server.start();
192
- console.log("\n🎯 Example requests:");
193
- console.log(" curl http://localhost:3000/health");
194
- console.log(" curl -X POST http://localhost:3000/actions/execute -H 'Content-Type: application/json' -d '{\"action\":\"greet\",\"args\":[\"World\"]}'");
195
- console.log(" curl -X POST http://localhost:3000/actions/execute -H 'Content-Type: application/json' -d '{\"action\":\"calculate\",\"args\":[10,5,\"add\"]}'");
196
- console.log("\nPress Ctrl+C to stop the server");
197
- return instance;
198
- };
199
- // Export for use
200
- export { createDeclarativeServer, createServerPlugin, createActionRegistryPlugin, routes, demonstrateDeclarativeServer };
201
- // Run if called directly
202
- if (import.meta.main) {
203
- demonstrateDeclarativeServer().catch(console.error);
204
- }
205
- //# sourceMappingURL=server-declarative.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server-declarative.js","sourceRoot":"","sources":["../../examples/server-declarative.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- /**
2
- * Shared Action Registry - Declarative approach
3
- * Eliminates code duplication across examples
4
- */
5
- export type ActionHandler = (...args: any[]) => any;
6
- export interface ActionDefinition {
7
- name: string;
8
- handler: ActionHandler;
9
- description?: string;
10
- }
11
- export declare class ActionRegistry {
12
- protected handlers: Map<string, ActionHandler>;
13
- register(def: ActionDefinition): void;
14
- execute(name: string, ...args: any[]): any;
15
- list(): string[];
16
- has(name: string): boolean;
17
- clear(): void;
18
- }
19
- export declare const createActionRegistry: () => ActionRegistry;
20
- export declare const defineActions: (category: string, actions: ActionDefinition[]) => {
21
- category: string;
22
- actions: ActionDefinition[];
23
- register: (registry: ActionRegistry) => void;
24
- };
25
- export declare const mathActions: {
26
- category: string;
27
- actions: ActionDefinition[];
28
- register: (registry: ActionRegistry) => void;
29
- };
30
- export declare const textActions: {
31
- category: string;
32
- actions: ActionDefinition[];
33
- register: (registry: ActionRegistry) => void;
34
- };
35
- export declare const utilityActions: {
36
- category: string;
37
- actions: ActionDefinition[];
38
- register: (registry: ActionRegistry) => void;
39
- };
40
- export declare const validationActions: {
41
- category: string;
42
- actions: ActionDefinition[];
43
- register: (registry: ActionRegistry) => void;
44
- };
45
- //# sourceMappingURL=action-registry.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../../examples/shared/action-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,cAAc;IACzB,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IAE3D,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAIrC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG;IAQ1C,IAAI,IAAI,MAAM,EAAE;IAIhB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,KAAK,IAAI,IAAI;CAGd;AAGD,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AAE/D,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,SAAS,gBAAgB,EAAE;;;yBAIlD,cAAc;CAItC,CAAC;AAGF,eAAO,MAAM,WAAW;;;yBAPC,cAAc;CAYrC,CAAC;AAEH,eAAO,MAAM,WAAW;;;yBAdC,cAAc;CAmBrC,CAAC;AAEH,eAAO,MAAM,cAAc;;;yBArBF,cAAc;CA4BrC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;yBA9BL,cAAc;CAmCrC,CAAC"}
@@ -1,65 +0,0 @@
1
- /**
2
- * Shared Action Registry - Declarative approach
3
- * Eliminates code duplication across examples
4
- */
5
- export class ActionRegistry {
6
- handlers = new Map();
7
- register(def) {
8
- this.handlers.set(def.name, def.handler);
9
- }
10
- execute(name, ...args) {
11
- const handler = this.handlers.get(name);
12
- if (!handler) {
13
- throw new Error(`Action not found: ${name}`);
14
- }
15
- return handler(...args);
16
- }
17
- list() {
18
- return Array.from(this.handlers.keys());
19
- }
20
- has(name) {
21
- return this.handlers.has(name);
22
- }
23
- clear() {
24
- this.handlers.clear();
25
- }
26
- }
27
- // Declarative action definitions
28
- export const createActionRegistry = () => new ActionRegistry();
29
- export const defineActions = (category, actions) => {
30
- return {
31
- category,
32
- actions,
33
- register: (registry) => {
34
- actions.forEach(action => registry.register(action));
35
- }
36
- };
37
- };
38
- // Common action categories
39
- export const mathActions = defineActions('math', [
40
- { name: 'sum', handler: (a, b) => a + b },
41
- { name: 'multiply', handler: (a, b) => a * b },
42
- { name: 'power', handler: (base, exp) => Math.pow(base, exp) },
43
- { name: 'sqrt', handler: (n) => Math.sqrt(n) }
44
- ]);
45
- export const textActions = defineActions('text', [
46
- { name: 'uppercase', handler: (text) => text.toUpperCase() },
47
- { name: 'lowercase', handler: (text) => text.toLowerCase() },
48
- { name: 'reverse', handler: (text) => text.split('').reverse().join('') },
49
- { name: 'capitalize', handler: (text) => text.charAt(0).toUpperCase() + text.slice(1).toLowerCase() }
50
- ]);
51
- export const utilityActions = defineActions('utility', [
52
- { name: 'random', handler: (min, max) => Math.floor(Math.random() * (max - min + 1)) + min },
53
- { name: 'timestamp', handler: () => Date.now() },
54
- { name: 'delay', handler: async (ms) => {
55
- await new Promise(resolve => setTimeout(resolve, ms));
56
- return `Delayed ${ms}ms`;
57
- } }
58
- ]);
59
- export const validationActions = defineActions('validation', [
60
- { name: 'isEmail', handler: (email) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email) },
61
- { name: 'isNumber', handler: (value) => !isNaN(parseFloat(value)) && isFinite(value) },
62
- { name: 'minLength', handler: (text, min) => text.length >= min },
63
- { name: 'maxLength', handler: (text, max) => text.length <= max }
64
- ]);
65
- //# sourceMappingURL=action-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"action-registry.js","sourceRoot":"","sources":["../../../examples/shared/action-registry.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * Declarative Plugin Builder
3
- * Provides a functional approach to create plugins without boilerplate
4
- */
5
- import type { IPlugin, PluginContext } from "../../src/types";
6
- export interface PluginDefinition {
7
- name: string;
8
- version: string;
9
- description?: string;
10
- author?: string;
11
- defaultConfig?: Record<string, any>;
12
- actions?: any[];
13
- onLoad?: (context: PluginContext) => void | Promise<void>;
14
- onUnload?: () => void | Promise<void>;
15
- sharedApi?: any;
16
- }
17
- export interface ActionPluginDefinition extends PluginDefinition {
18
- registryName: string;
19
- actionCategories?: any[];
20
- customActions?: any[];
21
- }
22
- export interface StoragePluginDefinition extends PluginDefinition {
23
- storageOperations?: StorageOperation[];
24
- }
25
- export interface StorageOperation {
26
- type: 'get' | 'set' | 'delete' | 'clear';
27
- key: string;
28
- value?: any;
29
- defaultValue?: any;
30
- description?: string;
31
- }
32
- export declare const createPlugin: (def: PluginDefinition) => IPlugin;
33
- export declare const createActionPlugin: (def: ActionPluginDefinition) => IPlugin;
34
- export declare const storageOps: {
35
- get: (key: string, defaultValue?: any) => StorageOperation;
36
- set: (key: string, value: any) => StorageOperation;
37
- delete: (key: string) => StorageOperation;
38
- clear: () => StorageOperation;
39
- };
40
- export declare const runDemo: (name: string, demoFn: () => Promise<void>) => Promise<void>;
41
- //# sourceMappingURL=plugin-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-builder.d.ts","sourceRoot":"","sources":["../../../examples/shared/plugin-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,GAAG,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,eAAO,MAAM,YAAY,GAAI,KAAK,gBAAgB,KAAG,OAsBnD,CAAC;AAGH,eAAO,MAAM,kBAAkB,GAAI,KAAK,sBAAsB,KAAG,OAkChE,CAAC;AAGF,eAAO,MAAM,UAAU;eACV,MAAM,iBAAiB,GAAG,KAAG,gBAAgB;eAG7C,MAAM,SAAS,GAAG,KAAG,gBAAgB;kBAGlC,MAAM,KAAG,gBAAgB;iBAG5B,gBAAgB;CAG5B,CAAC;AAGF,eAAO,MAAM,OAAO,GAAU,MAAM,MAAM,EAAE,QAAQ,MAAM,OAAO,CAAC,IAAI,CAAC,kBAQtE,CAAC"}
@@ -1,85 +0,0 @@
1
- /**
2
- * Declarative Plugin Builder
3
- * Provides a functional approach to create plugins without boilerplate
4
- */
5
- import { ActionRegistry } from "./action-registry";
6
- // Generic plugin builder
7
- export const createPlugin = (def) => ({
8
- name: def.name,
9
- version: def.version,
10
- description: def.description,
11
- author: def.author,
12
- defaultConfig: def.defaultConfig,
13
- async onLoad(context) {
14
- if (def.onLoad) {
15
- await def.onLoad(context);
16
- }
17
- // Register shared API if provided
18
- if (def.sharedApi) {
19
- context.registerApi(def.sharedApi);
20
- }
21
- },
22
- async onUnload() {
23
- if (def.onUnload) {
24
- await def.onUnload();
25
- }
26
- },
27
- });
28
- // Specialized builder for action registry plugins
29
- export const createActionPlugin = (def) => {
30
- const registry = new ActionRegistry();
31
- return createPlugin({
32
- ...def,
33
- onLoad: async (context) => {
34
- // Register with central registry
35
- const centralRegistry = await context.getPlugin(def.registryName);
36
- if (centralRegistry) {
37
- // Register action categories
38
- def.actionCategories?.forEach(category => category.register(centralRegistry));
39
- // Register custom actions
40
- def.customActions?.forEach(action => centralRegistry.register(action));
41
- context.log.info(`Registered ${def.actionCategories?.length || 0} action categories`);
42
- }
43
- // Call custom onLoad if provided
44
- if (def.onLoad) {
45
- await def.onLoad(context);
46
- }
47
- // Register shared API
48
- context.registerApi({
49
- name: def.name,
50
- version: def.version,
51
- actions: [
52
- ...(def.actionCategories?.flatMap(cat => cat.actions.map((a) => a.name)) || []),
53
- ...(def.customActions?.map(a => a.name) || [])
54
- ]
55
- });
56
- }
57
- });
58
- };
59
- // Storage operation helpers
60
- export const storageOps = {
61
- get: (key, defaultValue) => ({
62
- type: 'get', key, defaultValue, description: `Get ${key}`
63
- }),
64
- set: (key, value) => ({
65
- type: 'set', key, value, description: `Set ${key}`
66
- }),
67
- delete: (key) => ({
68
- type: 'delete', key, description: `Delete ${key}`
69
- }),
70
- clear: () => ({
71
- type: 'clear', key: '*', description: 'Clear all storage'
72
- })
73
- };
74
- // Demo runner utility
75
- export const runDemo = async (name, demoFn) => {
76
- console.log(`\n🚀 ${name}\n`);
77
- try {
78
- await demoFn();
79
- console.log(`\n✅ ${name} completed\n`);
80
- }
81
- catch (error) {
82
- console.error(`\n❌ ${name} failed:`, error);
83
- }
84
- };
85
- //# sourceMappingURL=plugin-builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin-builder.js","sourceRoot":"","sources":["../../../examples/shared/plugin-builder.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Declarative Storage Example
3
- *
4
- * This example demonstrates a clean, declarative approach to building
5
- * plugins with storage using shared utilities.
6
- */
7
- declare const createCounterPlugin: () => import("bun_plugins").IPlugin;
8
- declare const createUserPlugin: () => import("bun_plugins").IPlugin;
9
- declare const createAnalyticsPlugin: () => import("bun_plugins").IPlugin;
10
- declare const createCrudPlugin: () => import("bun_plugins").IPlugin;
11
- declare const demonstrateDeclarativeStorage: () => Promise<void>;
12
- export { createCounterPlugin, createUserPlugin, createAnalyticsPlugin, createCrudPlugin, demonstrateDeclarativeStorage };
13
- //# sourceMappingURL=storage-declarative.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage-declarative.d.ts","sourceRoot":"","sources":["../../examples/storage-declarative.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqCH,QAAA,MAAM,mBAAmB,qCA0BvB,CAAC;AAGH,QAAA,MAAM,gBAAgB,qCAkCpB,CAAC;AAGH,QAAA,MAAM,qBAAqB,qCAsCzB,CAAC;AAGH,QAAA,MAAM,gBAAgB,qCA2EpB,CAAC;AAGH,QAAA,MAAM,6BAA6B,qBAelC,CAAC;AAGF,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,6BAA6B,EAC9B,CAAC"}