bun_plugins 1.2.6 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/LICENSE +9 -0
  2. package/README.md +127 -3
  3. package/dist/examples/action-registry-declarative.d.ts +14 -0
  4. package/dist/examples/action-registry-declarative.d.ts.map +1 -0
  5. package/dist/examples/action-registry-declarative.js +130 -0
  6. package/dist/examples/action-registry-declarative.js.map +1 -0
  7. package/dist/examples/action-registry-example.d.ts +31 -0
  8. package/dist/examples/action-registry-example.d.ts.map +1 -0
  9. package/dist/examples/action-registry-example.js +84 -0
  10. package/dist/examples/action-registry-example.js.map +1 -0
  11. package/dist/examples/index-declarative.d.ts +32 -0
  12. package/dist/examples/index-declarative.d.ts.map +1 -0
  13. package/dist/examples/index-declarative.js +206 -0
  14. package/dist/examples/index-declarative.js.map +1 -0
  15. package/dist/examples/logger-declarative.d.ts +109 -0
  16. package/dist/examples/logger-declarative.d.ts.map +1 -0
  17. package/dist/examples/logger-declarative.js +330 -0
  18. package/dist/examples/logger-declarative.js.map +1 -0
  19. package/dist/examples/logger-simple.d.ts +8 -0
  20. package/dist/examples/logger-simple.d.ts.map +1 -0
  21. package/dist/examples/logger-simple.js +165 -0
  22. package/dist/examples/logger-simple.js.map +1 -0
  23. package/dist/examples/server-declarative.d.ts +46 -0
  24. package/dist/examples/server-declarative.d.ts.map +1 -0
  25. package/dist/examples/server-declarative.js +205 -0
  26. package/dist/examples/server-declarative.js.map +1 -0
  27. package/dist/examples/shared/action-registry.d.ts +45 -0
  28. package/dist/examples/shared/action-registry.d.ts.map +1 -0
  29. package/dist/examples/shared/action-registry.js +65 -0
  30. package/dist/examples/shared/action-registry.js.map +1 -0
  31. package/dist/examples/shared/plugin-builder.d.ts +41 -0
  32. package/dist/examples/shared/plugin-builder.d.ts.map +1 -0
  33. package/dist/examples/shared/plugin-builder.js +85 -0
  34. package/dist/examples/shared/plugin-builder.js.map +1 -0
  35. package/dist/examples/storage-declarative.d.ts +13 -0
  36. package/dist/examples/storage-declarative.d.ts.map +1 -0
  37. package/dist/examples/storage-declarative.js +203 -0
  38. package/dist/examples/storage-declarative.js.map +1 -0
  39. package/dist/plugins/ActionRegistryPlugin.d.ts +14 -0
  40. package/dist/plugins/ActionRegistryPlugin.d.ts.map +1 -0
  41. package/dist/plugins/ActionRegistryPlugin.js +52 -0
  42. package/dist/plugins/ActionRegistryPlugin.js.map +1 -0
  43. package/dist/plugins/DynamicJSActionsPlugin.d.ts +21 -0
  44. package/dist/plugins/DynamicJSActionsPlugin.d.ts.map +1 -0
  45. package/dist/plugins/DynamicJSActionsPlugin.js +57 -0
  46. package/dist/plugins/DynamicJSActionsPlugin.js.map +1 -0
  47. package/dist/plugins/DynamicMathActionsPlugin.d.ts +22 -0
  48. package/dist/plugins/DynamicMathActionsPlugin.d.ts.map +1 -0
  49. package/dist/plugins/DynamicMathActionsPlugin.js +64 -0
  50. package/dist/plugins/DynamicMathActionsPlugin.js.map +1 -0
  51. package/dist/plugins/DynamicTextActionsPlugin.d.ts +22 -0
  52. package/dist/plugins/DynamicTextActionsPlugin.d.ts.map +1 -0
  53. package/dist/plugins/DynamicTextActionsPlugin.js +58 -0
  54. package/dist/plugins/DynamicTextActionsPlugin.js.map +1 -0
  55. package/dist/plugins/DynamicUtilityActionsPlugin.d.ts +22 -0
  56. package/dist/plugins/DynamicUtilityActionsPlugin.d.ts.map +1 -0
  57. package/dist/plugins/DynamicUtilityActionsPlugin.js +75 -0
  58. package/dist/plugins/DynamicUtilityActionsPlugin.js.map +1 -0
  59. package/dist/plugins/ExamplePlugin.d.ts +3 -0
  60. package/dist/plugins/ExamplePlugin.d.ts.map +1 -0
  61. package/dist/plugins/ExamplePlugin.js +24 -0
  62. package/dist/plugins/ExamplePlugin.js.map +1 -0
  63. package/dist/plugins/LifecycleDemoPlugin.d.ts +20 -0
  64. package/dist/plugins/LifecycleDemoPlugin.d.ts.map +1 -0
  65. package/dist/plugins/LifecycleDemoPlugin.js +34 -0
  66. package/dist/plugins/LifecycleDemoPlugin.js.map +1 -0
  67. package/dist/plugins/MathPlugin.d.ts +16 -0
  68. package/dist/plugins/MathPlugin.d.ts.map +1 -0
  69. package/dist/plugins/MathPlugin.js +30 -0
  70. package/dist/plugins/MathPlugin.js.map +1 -0
  71. package/dist/plugins/MyJSPlugin.d.ts +7 -0
  72. package/dist/plugins/MyJSPlugin.d.ts.map +1 -0
  73. package/dist/plugins/MyJSPlugin.js +12 -0
  74. package/dist/plugins/MyJSPlugin.js.map +1 -0
  75. package/dist/plugins/TypedExamplePlugin.d.ts +10 -0
  76. package/dist/plugins/TypedExamplePlugin.d.ts.map +1 -0
  77. package/dist/plugins/TypedExamplePlugin.js +61 -0
  78. package/dist/plugins/TypedExamplePlugin.js.map +1 -0
  79. package/dist/plugins/arktype/index.d.ts +8 -0
  80. package/dist/plugins/arktype/index.d.ts.map +1 -0
  81. package/dist/plugins/arktype/index.js +25 -0
  82. package/dist/plugins/arktype/index.js.map +1 -0
  83. package/dist/src/Plugin.d.ts +28 -0
  84. package/dist/src/Plugin.d.ts.map +1 -0
  85. package/dist/src/Plugin.js +36 -0
  86. package/dist/src/Plugin.js.map +1 -0
  87. package/dist/{PluginManager.d.ts → src/PluginManager.d.ts} +33 -10
  88. package/dist/src/PluginManager.d.ts.map +1 -0
  89. package/dist/{PluginManager.js → src/PluginManager.js} +245 -193
  90. package/dist/src/PluginManager.js.map +1 -0
  91. package/dist/{index.d.ts → src/index.d.ts} +2 -1
  92. package/dist/src/index.d.ts.map +1 -0
  93. package/dist/{index.js → src/index.js} +2 -0
  94. package/dist/src/index.js.map +1 -0
  95. package/dist/src/logger/LoggerAdapter.d.ts +77 -0
  96. package/dist/src/logger/LoggerAdapter.d.ts.map +1 -0
  97. package/dist/src/logger/LoggerAdapter.js +242 -0
  98. package/dist/src/logger/LoggerAdapter.js.map +1 -0
  99. package/dist/src/logger/LoggerFactory.d.ts +73 -0
  100. package/dist/src/logger/LoggerFactory.d.ts.map +1 -0
  101. package/dist/src/logger/LoggerFactory.js +99 -0
  102. package/dist/src/logger/LoggerFactory.js.map +1 -0
  103. package/dist/src/logger/index.d.ts +3 -0
  104. package/dist/src/logger/index.d.ts.map +1 -0
  105. package/dist/src/logger/index.js +3 -0
  106. package/dist/src/logger/index.js.map +1 -0
  107. package/dist/{managers → src/managers}/ContextFactory.d.ts +1 -1
  108. package/dist/src/managers/ContextFactory.d.ts.map +1 -0
  109. package/dist/{managers → src/managers}/ContextFactory.js +51 -26
  110. package/dist/src/managers/ContextFactory.js.map +1 -0
  111. package/dist/src/managers/DependencyManager.d.ts.map +1 -0
  112. package/dist/{managers → src/managers}/DependencyManager.js +7 -5
  113. package/dist/src/managers/DependencyManager.js.map +1 -0
  114. package/dist/{managers → src/managers}/HooksManager.d.ts +4 -1
  115. package/dist/src/managers/HooksManager.d.ts.map +1 -0
  116. package/dist/{managers → src/managers}/HooksManager.js +36 -8
  117. package/dist/src/managers/HooksManager.js.map +1 -0
  118. package/dist/src/managers/ResourceManager.d.ts.map +1 -0
  119. package/dist/{managers → src/managers}/ResourceManager.js +3 -3
  120. package/dist/src/managers/ResourceManager.js.map +1 -0
  121. package/dist/src/storage/JsonPluginStorage.d.ts +75 -0
  122. package/dist/src/storage/JsonPluginStorage.d.ts.map +1 -0
  123. package/dist/src/storage/JsonPluginStorage.js +240 -0
  124. package/dist/src/storage/JsonPluginStorage.js.map +1 -0
  125. package/dist/src/types/plugin-registry-base.d.ts +80 -0
  126. package/dist/src/types/plugin-registry-base.d.ts.map +1 -0
  127. package/dist/src/types/plugin-registry-base.js +6 -0
  128. package/dist/src/types/plugin-registry-base.js.map +1 -0
  129. package/dist/{types.d.ts → src/types.d.ts} +60 -19
  130. package/dist/src/types.d.ts.map +1 -0
  131. package/dist/{types.js → src/types.js} +6 -0
  132. package/dist/src/types.js.map +1 -0
  133. package/dist/src/utils/errorParser.d.ts.map +1 -0
  134. package/dist/{utils → src/utils}/errorParser.js +2 -5
  135. package/dist/src/utils/errorParser.js.map +1 -0
  136. package/dist/src/utils/pluginValidator.d.ts +17 -0
  137. package/dist/src/utils/pluginValidator.d.ts.map +1 -0
  138. package/dist/{utils → src/utils}/pluginValidator.js +11 -14
  139. package/dist/src/utils/pluginValidator.js.map +1 -0
  140. package/dist/src/utils/security.d.ts.map +1 -0
  141. package/dist/src/utils/security.js.map +1 -0
  142. package/dist/src/worker/WorkerRunner.d.ts.map +1 -0
  143. package/dist/{worker → src/worker}/WorkerRunner.js +38 -13
  144. package/dist/src/worker/WorkerRunner.js.map +1 -0
  145. package/package.json +9 -6
  146. package/dist/PluginManager.d.ts.map +0 -1
  147. package/dist/PluginManager.js.map +0 -1
  148. package/dist/index.d.ts.map +0 -1
  149. package/dist/index.js.map +0 -1
  150. package/dist/managers/ContextFactory.d.ts.map +0 -1
  151. package/dist/managers/ContextFactory.js.map +0 -1
  152. package/dist/managers/DependencyManager.d.ts.map +0 -1
  153. package/dist/managers/DependencyManager.js.map +0 -1
  154. package/dist/managers/HooksManager.d.ts.map +0 -1
  155. package/dist/managers/HooksManager.js.map +0 -1
  156. package/dist/managers/ResourceManager.d.ts.map +0 -1
  157. package/dist/managers/ResourceManager.js.map +0 -1
  158. package/dist/storage/JsonPluginStorage.d.ts +0 -14
  159. package/dist/storage/JsonPluginStorage.d.ts.map +0 -1
  160. package/dist/storage/JsonPluginStorage.js +0 -63
  161. package/dist/storage/JsonPluginStorage.js.map +0 -1
  162. package/dist/types.d.ts.map +0 -1
  163. package/dist/types.js.map +0 -1
  164. package/dist/utils/errorParser.d.ts.map +0 -1
  165. package/dist/utils/errorParser.js.map +0 -1
  166. package/dist/utils/pluginValidator.d.ts +0 -93
  167. package/dist/utils/pluginValidator.d.ts.map +0 -1
  168. package/dist/utils/pluginValidator.js.map +0 -1
  169. package/dist/utils/security.d.ts.map +0 -1
  170. package/dist/utils/security.js.map +0 -1
  171. package/dist/worker/WorkerRunner.d.ts.map +0 -1
  172. package/dist/worker/WorkerRunner.js.map +0 -1
  173. /package/dist/{managers → src/managers}/DependencyManager.d.ts +0 -0
  174. /package/dist/{managers → src/managers}/ResourceManager.d.ts +0 -0
  175. /package/dist/{utils → src/utils}/errorParser.d.ts +0 -0
  176. /package/dist/{utils → src/utils}/security.d.ts +0 -0
  177. /package/dist/{utils → src/utils}/security.js +0 -0
  178. /package/dist/{worker → src/worker}/WorkerRunner.d.ts +0 -0
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Declarative Examples Index
3
+ *
4
+ * This file serves as the main entry point for all declarative examples,
5
+ * providing a clean overview and easy access to different use cases.
6
+ */
7
+ import { runDemo } from "./shared/plugin-builder";
8
+ // Import all declarative examples
9
+ import { demonstrateDeclarativeActionRegistry } from "./action-registry-declarative";
10
+ import { demonstrateDeclarativeStorage } from "./storage-declarative";
11
+ import { demonstrateDeclarativeLogging } from "./logger-declarative";
12
+ import { demonstrateDeclarativeServer } from "./server-declarative";
13
+ // Example catalog with descriptions
14
+ const exampleCatalog = [
15
+ {
16
+ id: 'action-registry',
17
+ name: 'Action Registry',
18
+ description: 'Declarative plugin system with action registration and execution',
19
+ file: 'action-registry-declarative.ts',
20
+ demo: demonstrateDeclarativeActionRegistry,
21
+ features: [
22
+ 'Declarative action definitions',
23
+ 'Plugin-based architecture',
24
+ 'Dynamic action registration',
25
+ 'Error handling',
26
+ 'Plugin discovery'
27
+ ]
28
+ },
29
+ {
30
+ id: 'storage',
31
+ name: 'Storage System',
32
+ description: 'Clean storage operations with declarative configuration',
33
+ file: 'storage-declarative.ts',
34
+ demo: demonstrateDeclarativeStorage,
35
+ features: [
36
+ 'Declarative storage operations',
37
+ 'CRUD operations',
38
+ 'Configuration management',
39
+ 'Data validation',
40
+ 'Plugin isolation support'
41
+ ]
42
+ },
43
+ {
44
+ id: 'logging',
45
+ name: 'Logging System',
46
+ description: 'Flexible logging with multiple adapters and configurations',
47
+ file: 'logger-declarative.ts',
48
+ demo: demonstrateDeclarativeLogging,
49
+ features: [
50
+ 'Multiple logger adapters',
51
+ 'Hierarchical logging',
52
+ 'Structured logging',
53
+ 'Performance monitoring',
54
+ 'Plugin-specific loggers'
55
+ ]
56
+ },
57
+ {
58
+ id: 'server',
59
+ name: 'HTTP Server',
60
+ description: 'Plugin-powered HTTP server with declarative routing',
61
+ file: 'server-declarative.ts',
62
+ demo: demonstrateDeclarativeServer,
63
+ features: [
64
+ 'Declarative route definitions',
65
+ 'Plugin-based handlers',
66
+ 'Error handling',
67
+ 'JSON API',
68
+ 'Action execution'
69
+ ]
70
+ }
71
+ ];
72
+ // Main menu system
73
+ const showMainMenu = () => {
74
+ console.log("\n🎯 Declarative Plugin System Examples");
75
+ console.log("=====================================\n");
76
+ exampleCatalog.forEach((example, index) => {
77
+ console.log(`${index + 1}. ${example.name}`);
78
+ console.log(` ${example.description}`);
79
+ console.log(` File: ${example.file}`);
80
+ console.log(` Features: ${example.features.join(', ')}`);
81
+ console.log();
82
+ });
83
+ console.log("0. Run all examples");
84
+ console.log("q. Quit");
85
+ console.log();
86
+ };
87
+ // Run specific example
88
+ const runExample = async (index) => {
89
+ const example = exampleCatalog[index];
90
+ if (!example) {
91
+ console.log("❌ Invalid example number");
92
+ return;
93
+ }
94
+ // Wrap server demo to return void
95
+ const wrappedDemo = async () => {
96
+ if (example.id === 'server') {
97
+ await example.demo();
98
+ console.log("\n🌐 Server is running. Press Ctrl+C to stop.");
99
+ }
100
+ else {
101
+ await example.demo();
102
+ }
103
+ };
104
+ await runDemo(`${example.name} Example`, wrappedDemo);
105
+ };
106
+ // Run all examples (excluding server which blocks)
107
+ const runAllExamples = async () => {
108
+ console.log("\n🚀 Running all declarative examples...\n");
109
+ for (const example of exampleCatalog) {
110
+ if (example.id === 'server') {
111
+ console.log(`⏭️ Skipping ${example.name} (server blocks execution)`);
112
+ continue;
113
+ }
114
+ // Wrap demo to ensure it returns void
115
+ const wrappedDemo = async () => {
116
+ await example.demo();
117
+ };
118
+ await runDemo(example.name, wrappedDemo);
119
+ }
120
+ console.log("\n✅ All examples completed!");
121
+ };
122
+ // Interactive menu
123
+ const interactiveMenu = async () => {
124
+ const readline = await import('readline');
125
+ const rl = readline.createInterface({
126
+ input: process.stdin,
127
+ output: process.stdout
128
+ });
129
+ const askQuestion = (question) => {
130
+ return new Promise(resolve => {
131
+ rl.question(question, resolve);
132
+ });
133
+ };
134
+ while (true) {
135
+ showMainMenu();
136
+ const answer = await askQuestion("Select an example (number) or 'q' to quit: ");
137
+ if (answer.toLowerCase() === 'q') {
138
+ break;
139
+ }
140
+ if (answer === '0') {
141
+ await runAllExamples();
142
+ continue;
143
+ }
144
+ const index = parseInt(answer) - 1;
145
+ if (!isNaN(index)) {
146
+ await runExample(index);
147
+ }
148
+ else {
149
+ console.log("❌ Invalid input");
150
+ }
151
+ const continueAnswer = await askQuestion("\nPress Enter to continue or 'q' to quit: ");
152
+ if (continueAnswer.toLowerCase() === 'q') {
153
+ break;
154
+ }
155
+ }
156
+ rl.close();
157
+ };
158
+ // Quick run function
159
+ const quickRun = async (exampleId) => {
160
+ const example = exampleCatalog.find(e => e.id === exampleId);
161
+ if (!example) {
162
+ console.log(`❌ Example '${exampleId}' not found`);
163
+ console.log("Available examples:", exampleCatalog.map(e => e.id).join(', '));
164
+ return;
165
+ }
166
+ // Wrap server demo to return void
167
+ const wrappedDemo = async () => {
168
+ if (example.id === 'server') {
169
+ await example.demo();
170
+ console.log("\n🌐 Server is running. Press Ctrl+C to stop.");
171
+ }
172
+ else {
173
+ await example.demo();
174
+ }
175
+ };
176
+ await runDemo(example.name, wrappedDemo);
177
+ };
178
+ // Export everything
179
+ export { exampleCatalog, showMainMenu, runExample, runAllExamples, interactiveMenu, quickRun,
180
+ // Individual demos
181
+ demonstrateDeclarativeActionRegistry, demonstrateDeclarativeStorage, demonstrateDeclarativeLogging, demonstrateDeclarativeServer };
182
+ // Run if called directly
183
+ if (import.meta.main) {
184
+ const args = process.argv.slice(2);
185
+ if (args.length === 0) {
186
+ // Interactive mode
187
+ interactiveMenu().catch(console.error);
188
+ }
189
+ else if (args[0] === '--all') {
190
+ // Run all examples
191
+ runAllExamples().catch(console.error);
192
+ }
193
+ else if (args[0] === '--example' && args[1]) {
194
+ // Run specific example
195
+ quickRun(args[1]).catch(console.error);
196
+ }
197
+ else {
198
+ console.log("\n🎯 Declarative Plugin System Examples");
199
+ console.log("Usage:");
200
+ console.log(" bun run examples/index-declarative.ts # Interactive menu");
201
+ console.log(" bun run examples/index-declarative.ts --all # Run all examples");
202
+ console.log(" bun run examples/index-declarative.ts --example <id> # Run specific example");
203
+ console.log("\nAvailable examples:", exampleCatalog.map(e => e.id).join(', '));
204
+ }
205
+ }
206
+ //# sourceMappingURL=index-declarative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-declarative.js","sourceRoot":"","sources":["../../examples/index-declarative.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Declarative Logger Example
3
+ *
4
+ * This example demonstrates a clean, declarative approach to configuring
5
+ * and using different logging adapters.
6
+ */
7
+ interface LoggerConfig {
8
+ type: 'console' | 'colorful' | 'pino' | 'noop';
9
+ context?: string;
10
+ level?: string;
11
+ format?: 'simple' | 'json' | 'colored';
12
+ useColors?: boolean;
13
+ timestampFormat?: 'none' | 'iso' | 'time';
14
+ showEmoji?: boolean;
15
+ levelColors?: Record<string, string>;
16
+ contextColor?: string;
17
+ }
18
+ declare const createLogger: (config: LoggerConfig) => import("bun_plugins").Logger;
19
+ declare const loggerScenarios: ({
20
+ name: string;
21
+ config: {
22
+ type: "console";
23
+ context: string;
24
+ timestampFormat?: undefined;
25
+ showEmoji?: undefined;
26
+ levelColors?: undefined;
27
+ contextColor?: undefined;
28
+ };
29
+ demo: (log: any) => void;
30
+ } | {
31
+ name: string;
32
+ config: {
33
+ type: "colorful";
34
+ context: string;
35
+ timestampFormat: "time";
36
+ showEmoji: boolean;
37
+ levelColors?: undefined;
38
+ contextColor?: undefined;
39
+ };
40
+ demo: (log: any) => void;
41
+ } | {
42
+ name: string;
43
+ config: {
44
+ type: "colorful";
45
+ levelColors: {
46
+ info: string;
47
+ warn: string;
48
+ error: string;
49
+ debug: string;
50
+ };
51
+ contextColor: string;
52
+ showEmoji: boolean;
53
+ context?: undefined;
54
+ timestampFormat?: undefined;
55
+ };
56
+ demo: (log: any) => void;
57
+ } | {
58
+ name: string;
59
+ config: {
60
+ type: "pino";
61
+ context?: undefined;
62
+ timestampFormat?: undefined;
63
+ showEmoji?: undefined;
64
+ levelColors?: undefined;
65
+ contextColor?: undefined;
66
+ };
67
+ demo: (log: any) => void;
68
+ } | {
69
+ name: string;
70
+ config: {
71
+ type: "noop";
72
+ context?: undefined;
73
+ timestampFormat?: undefined;
74
+ showEmoji?: undefined;
75
+ levelColors?: undefined;
76
+ contextColor?: undefined;
77
+ };
78
+ demo: (log: any) => void;
79
+ })[];
80
+ declare const pluginLoggerConfigs: {
81
+ 'database-plugin': {
82
+ type: "colorful";
83
+ context: string;
84
+ timestampFormat: "time";
85
+ showEmoji: boolean;
86
+ levelColors: {
87
+ info: string;
88
+ warn: string;
89
+ error: string;
90
+ };
91
+ };
92
+ 'api-plugin': {
93
+ type: "colorful";
94
+ context: string;
95
+ showEmoji: boolean;
96
+ };
97
+ 'cache-plugin': {
98
+ type: "noop";
99
+ };
100
+ 'auth-plugin': {
101
+ type: "colorful";
102
+ context: string;
103
+ contextColor: string;
104
+ showEmoji: boolean;
105
+ };
106
+ };
107
+ declare const demonstrateDeclarativeLogging: () => Promise<void>;
108
+ export { createLogger, loggerScenarios, pluginLoggerConfigs, demonstrateDeclarativeLogging };
109
+ //# sourceMappingURL=logger-declarative.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-declarative.d.ts","sourceRoot":"","sources":["../../examples/logger-declarative.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,UAAU,YAAY;IACpB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,QAAA,MAAM,YAAY,GAAI,QAAQ,YAAY,iCAiDzC,CAAC;AAGF,QAAA,MAAM,eAAe;;;;;;;;;;gBAIL,GAAG;;;;;;;;;;;gBAcH,GAAG;;;;;;;;;;;;;;;;gBAoBH,GAAG;;;;;;;;;;;gBASH,GAAG;;;;;;;;;;;gBASH,GAAG;IAMlB,CAAC;AAGF,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBxB,CAAC;AA8KF,QAAA,MAAM,6BAA6B,qBAsClC,CAAC;AAGF,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC9B,CAAC"}
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Declarative Logger Example
3
+ *
4
+ * This example demonstrates a clean, declarative approach to configuring
5
+ * and using different logging adapters.
6
+ */
7
+ import { logger, ConsoleLogger, NoopLogger, SimpleLoggerAdapter, ColorfulConsoleLogger } from "../src";
8
+ // Declarative logger factory
9
+ const createLogger = (config) => {
10
+ switch (config.type) {
11
+ case 'console':
12
+ const consoleLogger = new ConsoleLogger({
13
+ useColors: config.useColors ?? false,
14
+ timestampFormat: config.timestampFormat ?? 'none'
15
+ });
16
+ if (config.context) {
17
+ return new SimpleLoggerAdapter(consoleLogger, config.context);
18
+ }
19
+ return consoleLogger;
20
+ case 'colorful':
21
+ const colorfulLogger = new ColorfulConsoleLogger({
22
+ useColors: config.useColors ?? true,
23
+ timestampFormat: config.timestampFormat ?? 'none',
24
+ levelColors: config.levelColors,
25
+ contextColor: config.contextColor,
26
+ showEmoji: config.showEmoji ?? true
27
+ });
28
+ if (config.context) {
29
+ return colorfulLogger.child(config.context);
30
+ }
31
+ return colorfulLogger;
32
+ case 'pino':
33
+ // Simulated Pino logger for demonstration
34
+ const pinoLogger = {
35
+ info: (msg, ...args) => {
36
+ console.log(`[PINO] INFO: ${msg}`, ...args);
37
+ },
38
+ warn: (msg, ...args) => {
39
+ console.log(`[PINO] WARN: ${msg}`, ...args);
40
+ },
41
+ error: (msg, ...args) => {
42
+ console.log(`[PINO] ERROR: ${msg}`, ...args);
43
+ },
44
+ child: (context) => pinoLogger
45
+ };
46
+ return config.context ?
47
+ new SimpleLoggerAdapter(pinoLogger, config.context) :
48
+ pinoLogger;
49
+ case 'noop':
50
+ return new NoopLogger();
51
+ default:
52
+ throw new Error(`Unknown logger type: ${config.type}`);
53
+ }
54
+ };
55
+ // Logger scenarios
56
+ const loggerScenarios = [
57
+ {
58
+ name: "Basic Console Logger",
59
+ config: { type: 'console', context: 'MyApp' },
60
+ demo: (log) => {
61
+ log.info("Application started");
62
+ log.warn("Low memory warning");
63
+ log.error("Connection failed");
64
+ }
65
+ },
66
+ {
67
+ name: "Colorful Console Logger",
68
+ config: {
69
+ type: 'colorful',
70
+ context: 'ColorfulApp',
71
+ timestampFormat: 'time',
72
+ showEmoji: true
73
+ },
74
+ demo: (log) => {
75
+ log.info("System initialized with colors");
76
+ log.warn("Performance degradation detected");
77
+ log.error("Critical system failure");
78
+ log.debug("Debug information available");
79
+ }
80
+ },
81
+ {
82
+ name: "Custom Color Theme Logger",
83
+ config: {
84
+ type: 'colorful',
85
+ levelColors: {
86
+ info: '#00FF00', // Bright green
87
+ warn: '#FFA500', // Orange
88
+ error: '#FF1493', // Deep pink
89
+ debug: '#00CED1' // Dark turquoise
90
+ },
91
+ contextColor: '#FFD700', // Gold
92
+ showEmoji: true
93
+ },
94
+ demo: (log) => {
95
+ log.info("Custom themed info message");
96
+ log.warn("Custom themed warning");
97
+ log.error("Custom themed error");
98
+ }
99
+ },
100
+ {
101
+ name: "Pino-style Logger",
102
+ config: { type: 'pino' },
103
+ demo: (log) => {
104
+ log.info({ userId: 123 }, "User logged in");
105
+ log.warn({ memory: '85%' }, "High memory usage");
106
+ log.error({ error: 'ECONNREFUSED' }, "Database connection failed");
107
+ }
108
+ },
109
+ {
110
+ name: "No-op Logger (disabled)",
111
+ config: { type: 'noop' },
112
+ demo: (log) => {
113
+ log.info("This won't be shown");
114
+ log.error("Neither will this");
115
+ console.log("But this console.log will still appear");
116
+ }
117
+ }
118
+ ];
119
+ // Plugin-specific logger configuration
120
+ const pluginLoggerConfigs = {
121
+ 'database-plugin': {
122
+ type: 'colorful',
123
+ context: 'Database',
124
+ timestampFormat: 'time',
125
+ showEmoji: true,
126
+ levelColors: {
127
+ info: '#4ECDC4',
128
+ warn: '#FFA07A',
129
+ error: '#FF6B6B'
130
+ }
131
+ },
132
+ 'api-plugin': {
133
+ type: 'colorful',
134
+ context: 'API',
135
+ showEmoji: true
136
+ },
137
+ 'cache-plugin': { type: 'noop' }, // Disable cache logging
138
+ 'auth-plugin': {
139
+ type: 'colorful',
140
+ context: 'Auth',
141
+ contextColor: '#FF69B4',
142
+ showEmoji: true
143
+ }
144
+ };
145
+ // Declarative plugin logger setup
146
+ const setupPluginLoggers = () => {
147
+ Object.entries(pluginLoggerConfigs).forEach(([pluginName, config]) => {
148
+ const log = createLogger(config);
149
+ logger.setPluginLogger(pluginName, log);
150
+ console.log(`✅ Configured logger for ${pluginName}`);
151
+ });
152
+ };
153
+ // Hierarchical logger demonstration
154
+ const demonstrateHierarchicalLoggers = () => {
155
+ console.log("\n🏗️ Hierarchical Loggers:");
156
+ // Parent logger
157
+ const parentLogger = createLogger({ type: 'console', context: 'Parent' });
158
+ logger.setDefaultLogger(parentLogger);
159
+ parentLogger.info("Message from parent logger");
160
+ // Child logger (using factory method)
161
+ const childLogger = logger.createLogger('Child');
162
+ childLogger.info("Message from child logger");
163
+ // Grandchild logger
164
+ const grandchildLogger = childLogger.child?.('Grandchild') || childLogger;
165
+ grandchildLogger.info("Message from grandchild logger");
166
+ };
167
+ // Color palette demonstration
168
+ const demonstrateColorPalette = () => {
169
+ console.log("\n🎨 Bun.color Palette Demo:");
170
+ const colors = [
171
+ { name: 'CSS Colors', colors: ['red', 'green', 'blue', 'yellow', 'magenta', 'cyan'] },
172
+ { name: 'Hex Colors', colors: ['#FF6B6B', '#4ECDC4', '#45B7D1', '#FFA07A', '#98D8C8'] },
173
+ { name: 'RGB/HSL', colors: ['rgb(255, 99, 71)', 'hsl(120, 50%, 50%)'] }
174
+ ];
175
+ colors.forEach(category => {
176
+ console.log(`\n${category.name}:`);
177
+ category.colors.forEach(color => {
178
+ const ansiColor = Bun.color(color, 'ansi');
179
+ if (ansiColor) {
180
+ console.log(`${ansiColor}This text is ${color}${Bun.color('reset', 'ansi')}`);
181
+ }
182
+ });
183
+ });
184
+ };
185
+ // Structured logging demonstration
186
+ const demonstrateStructuredLogging = () => {
187
+ console.log("\n📊 Structured Logging:");
188
+ const structuredLogger = createLogger({
189
+ type: 'colorful',
190
+ context: 'Structured',
191
+ timestampFormat: 'iso',
192
+ showEmoji: true
193
+ });
194
+ // Log with metadata
195
+ structuredLogger.info("User completed purchase", {
196
+ event: 'user_action',
197
+ userId: 456,
198
+ action: 'purchase',
199
+ amount: 99.99,
200
+ timestamp: new Date().toISOString()
201
+ });
202
+ // Log with error context
203
+ structuredLogger.error("Input validation failed", {
204
+ error: 'ValidationError',
205
+ field: 'email',
206
+ value: 'invalid-email',
207
+ userId: 789
208
+ });
209
+ };
210
+ // Performance logging demonstration
211
+ const demonstratePerformanceLogging = () => {
212
+ console.log("\n⚡ Performance Logging:");
213
+ const perfLogger = createLogger({
214
+ type: 'colorful',
215
+ context: 'Performance',
216
+ timestampFormat: 'time',
217
+ showEmoji: true,
218
+ levelColors: {
219
+ info: '#00FF7F', // Spring green
220
+ warn: '#FFD700', // Gold
221
+ error: '#FF4500' // Orange red
222
+ }
223
+ });
224
+ // Simulate some operations with timing
225
+ const operations = [
226
+ { name: 'database_query', duration: 150 },
227
+ { name: 'api_call', duration: 300 },
228
+ { name: 'file_processing', duration: 75 }
229
+ ];
230
+ operations.forEach(op => {
231
+ perfLogger.info(`Operation ${op.name} completed`, {
232
+ operation: op.name,
233
+ duration: op.duration,
234
+ status: op.duration < 200 ? 'fast' : 'slow',
235
+ timestamp: new Date().toISOString()
236
+ });
237
+ });
238
+ };
239
+ // Advanced color configuration demonstration
240
+ const demonstrateAdvancedColors = () => {
241
+ console.log("\n🔬 Advanced Color Configuration:");
242
+ // Create loggers with different color schemes
243
+ const neonLogger = createLogger({
244
+ type: 'colorful',
245
+ context: 'Neon',
246
+ levelColors: {
247
+ info: '#00FFFF', // Cyan
248
+ warn: '#FF00FF', // Magenta
249
+ error: '#FFFF00', // Yellow
250
+ debug: '#00FF00' // Lime
251
+ },
252
+ contextColor: '#FF1493', // Deep pink
253
+ showEmoji: true
254
+ });
255
+ const pastelLogger = createLogger({
256
+ type: 'colorful',
257
+ context: 'Pastel',
258
+ levelColors: {
259
+ info: '#B19CD9', // Light purple
260
+ warn: '#FFB6C1', // Light pink
261
+ error: '#FFA07A', // Light salmon
262
+ debug: '#87CEEB' // Sky blue
263
+ },
264
+ contextColor: '#DDA0DD', // Plum
265
+ showEmoji: false
266
+ });
267
+ const darkThemeLogger = createLogger({
268
+ type: 'colorful',
269
+ context: 'DarkTheme',
270
+ levelColors: {
271
+ info: '#00FF00', // Green
272
+ warn: '#FFA500', // Orange
273
+ error: '#FF0000', // Red
274
+ debug: '#808080' // Gray
275
+ },
276
+ contextColor: '#FFFFFF', // White
277
+ showEmoji: true
278
+ });
279
+ // Test each themed logger
280
+ const loggers = [
281
+ { name: 'Neon Theme', logger: neonLogger },
282
+ { name: 'Pastel Theme', logger: pastelLogger },
283
+ { name: 'Dark Theme', logger: darkThemeLogger }
284
+ ];
285
+ loggers.forEach(({ name, logger: log }) => {
286
+ console.log(`\n${name}:`);
287
+ log.info("Information message");
288
+ log.warn("Warning message");
289
+ log.error("Error message");
290
+ log.debug?.("Debug message");
291
+ });
292
+ };
293
+ // Main demonstration
294
+ const demonstrateDeclarativeLogging = async () => {
295
+ console.log("🚀 Enhanced Declarative Logger Demo\n");
296
+ // Scenario 1: Different logger types
297
+ console.log("=== Logger Types ===");
298
+ for (const scenario of loggerScenarios) {
299
+ console.log(`\n${scenario.name}:`);
300
+ const log = createLogger(scenario.config);
301
+ scenario.demo(log);
302
+ }
303
+ // Scenario 2: Plugin-specific loggers
304
+ console.log("\n=== Plugin-specific Loggers ===");
305
+ setupPluginLoggers();
306
+ // Test plugin loggers
307
+ const plugins = ['database-plugin', 'api-plugin', 'cache-plugin', 'auth-plugin'];
308
+ plugins.forEach(pluginName => {
309
+ const log = logger.getLogger(pluginName);
310
+ log.info(`Test message from ${pluginName}`);
311
+ });
312
+ // Scenario 3: Hierarchical loggers
313
+ demonstrateHierarchicalLoggers();
314
+ // Scenario 4: Color palette
315
+ demonstrateColorPalette();
316
+ // Scenario 5: Structured logging
317
+ demonstrateStructuredLogging();
318
+ // Scenario 6: Performance logging
319
+ demonstratePerformanceLogging();
320
+ // Scenario 7: Advanced colors
321
+ demonstrateAdvancedColors();
322
+ console.log("\n✅ Enhanced declarative logger demo completed!");
323
+ };
324
+ // Export for use
325
+ export { createLogger, loggerScenarios, pluginLoggerConfigs, demonstrateDeclarativeLogging };
326
+ // Run if called directly
327
+ if (import.meta.main) {
328
+ demonstrateDeclarativeLogging().catch(console.error);
329
+ }
330
+ //# sourceMappingURL=logger-declarative.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger-declarative.js","sourceRoot":"","sources":["../../examples/logger-declarative.ts"],"names":[],"mappings":"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"}