@bsb/base 9.0.0

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 (182) hide show
  1. package/LICENSE +665 -0
  2. package/LICENSE.commercial +32 -0
  3. package/README.md +263 -0
  4. package/bsb-plugin.json +62 -0
  5. package/lib/base/BSBConfig.d.ts +130 -0
  6. package/lib/base/BSBConfig.js +95 -0
  7. package/lib/base/BSBConfig.js.map +1 -0
  8. package/lib/base/BSBEvents.d.ts +207 -0
  9. package/lib/base/BSBEvents.js +101 -0
  10. package/lib/base/BSBEvents.js.map +1 -0
  11. package/lib/base/BSBObservable.d.ts +178 -0
  12. package/lib/base/BSBObservable.js +91 -0
  13. package/lib/base/BSBObservable.js.map +1 -0
  14. package/lib/base/BSBService.d.ts +277 -0
  15. package/lib/base/BSBService.js +366 -0
  16. package/lib/base/BSBService.js.map +1 -0
  17. package/lib/base/BSBServiceClient.d.ts +135 -0
  18. package/lib/base/BSBServiceClient.js +130 -0
  19. package/lib/base/BSBServiceClient.js.map +1 -0
  20. package/lib/base/EventValidator.d.ts +137 -0
  21. package/lib/base/EventValidator.js +210 -0
  22. package/lib/base/EventValidator.js.map +1 -0
  23. package/lib/base/ObservableBackend.d.ts +281 -0
  24. package/lib/base/ObservableBackend.js +515 -0
  25. package/lib/base/ObservableBackend.js.map +1 -0
  26. package/lib/base/PluginConfig.d.ts +196 -0
  27. package/lib/base/PluginConfig.js +96 -0
  28. package/lib/base/PluginConfig.js.map +1 -0
  29. package/lib/base/PluginEvents.d.ts +140 -0
  30. package/lib/base/PluginEvents.js +268 -0
  31. package/lib/base/PluginEvents.js.map +1 -0
  32. package/lib/base/PluginObservable.d.ts +196 -0
  33. package/lib/base/PluginObservable.js +250 -0
  34. package/lib/base/PluginObservable.js.map +1 -0
  35. package/lib/base/ResourceContext.d.ts +70 -0
  36. package/lib/base/ResourceContext.js +54 -0
  37. package/lib/base/ResourceContext.js.map +1 -0
  38. package/lib/base/base.d.ts +264 -0
  39. package/lib/base/base.js +182 -0
  40. package/lib/base/base.js.map +1 -0
  41. package/lib/base/errorMessages.d.ts +56 -0
  42. package/lib/base/errorMessages.js +70 -0
  43. package/lib/base/errorMessages.js.map +1 -0
  44. package/lib/base/factory.d.ts +58 -0
  45. package/lib/base/factory.js +167 -0
  46. package/lib/base/factory.js.map +1 -0
  47. package/lib/base/functions.d.ts +117 -0
  48. package/lib/base/functions.js +152 -0
  49. package/lib/base/functions.js.map +1 -0
  50. package/lib/base/index.d.ts +44 -0
  51. package/lib/base/index.js +64 -0
  52. package/lib/base/index.js.map +1 -0
  53. package/lib/base/logFormatter.d.ts +50 -0
  54. package/lib/base/logFormatter.js +105 -0
  55. package/lib/base/logFormatter.js.map +1 -0
  56. package/lib/base/tools.d.ts +316 -0
  57. package/lib/base/tools.js +666 -0
  58. package/lib/base/tools.js.map +1 -0
  59. package/lib/cli.d.ts +28 -0
  60. package/lib/cli.js +254 -0
  61. package/lib/cli.js.map +1 -0
  62. package/lib/dev.d.ts +27 -0
  63. package/lib/dev.js +200 -0
  64. package/lib/dev.js.map +1 -0
  65. package/lib/index.d.ts +32 -0
  66. package/lib/index.js +49 -0
  67. package/lib/index.js.map +1 -0
  68. package/lib/interfaces/events.d.ts +67 -0
  69. package/lib/interfaces/events.js +44 -0
  70. package/lib/interfaces/events.js.map +1 -0
  71. package/lib/interfaces/index.d.ts +38 -0
  72. package/lib/interfaces/index.js +59 -0
  73. package/lib/interfaces/index.js.map +1 -0
  74. package/lib/interfaces/logging.d.ts +106 -0
  75. package/lib/interfaces/logging.js +39 -0
  76. package/lib/interfaces/logging.js.map +1 -0
  77. package/lib/interfaces/metrics.d.ts +365 -0
  78. package/lib/interfaces/metrics.js +46 -0
  79. package/lib/interfaces/metrics.js.map +1 -0
  80. package/lib/interfaces/observable-types.d.ts +63 -0
  81. package/lib/interfaces/observable-types.js +49 -0
  82. package/lib/interfaces/observable-types.js.map +1 -0
  83. package/lib/interfaces/observable.d.ts +297 -0
  84. package/lib/interfaces/observable.js +29 -0
  85. package/lib/interfaces/observable.js.map +1 -0
  86. package/lib/interfaces/options.d.ts +164 -0
  87. package/lib/interfaces/options.js +56 -0
  88. package/lib/interfaces/options.js.map +1 -0
  89. package/lib/interfaces/plugins.d.ts +143 -0
  90. package/lib/interfaces/plugins.js +45 -0
  91. package/lib/interfaces/plugins.js.map +1 -0
  92. package/lib/interfaces/result.d.ts +129 -0
  93. package/lib/interfaces/result.js +162 -0
  94. package/lib/interfaces/result.js.map +1 -0
  95. package/lib/interfaces/schema-events.d.ts +378 -0
  96. package/lib/interfaces/schema-events.js +247 -0
  97. package/lib/interfaces/schema-events.js.map +1 -0
  98. package/lib/interfaces/schema-types.d.ts +407 -0
  99. package/lib/interfaces/schema-types.js +581 -0
  100. package/lib/interfaces/schema-types.js.map +1 -0
  101. package/lib/interfaces/service.d.ts +48 -0
  102. package/lib/interfaces/service.js +29 -0
  103. package/lib/interfaces/service.js.map +1 -0
  104. package/lib/interfaces/tools.d.ts +65 -0
  105. package/lib/interfaces/tools.js +50 -0
  106. package/lib/interfaces/tools.js.map +1 -0
  107. package/lib/plugins/config-default/index.d.ts +59 -0
  108. package/lib/plugins/config-default/index.js +197 -0
  109. package/lib/plugins/config-default/index.js.map +1 -0
  110. package/lib/plugins/config-default/interfaces.d.ts +92 -0
  111. package/lib/plugins/config-default/interfaces.js +36 -0
  112. package/lib/plugins/config-default/interfaces.js.map +1 -0
  113. package/lib/plugins/events-default/events/broadcast.d.ts +36 -0
  114. package/lib/plugins/events-default/events/broadcast.js +85 -0
  115. package/lib/plugins/events-default/events/broadcast.js.map +1 -0
  116. package/lib/plugins/events-default/events/emit.d.ts +38 -0
  117. package/lib/plugins/events-default/events/emit.js +104 -0
  118. package/lib/plugins/events-default/events/emit.js.map +1 -0
  119. package/lib/plugins/events-default/events/emitAndReturn.d.ts +36 -0
  120. package/lib/plugins/events-default/events/emitAndReturn.js +100 -0
  121. package/lib/plugins/events-default/events/emitAndReturn.js.map +1 -0
  122. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.d.ts +38 -0
  123. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js +134 -0
  124. package/lib/plugins/events-default/events/emitStreamAndReceiveStream.js.map +1 -0
  125. package/lib/plugins/events-default/events/index.d.ts +30 -0
  126. package/lib/plugins/events-default/events/index.js +38 -0
  127. package/lib/plugins/events-default/events/index.js.map +1 -0
  128. package/lib/plugins/events-default/index.d.ts +57 -0
  129. package/lib/plugins/events-default/index.js +86 -0
  130. package/lib/plugins/events-default/index.js.map +1 -0
  131. package/lib/plugins/observable-default/index.d.ts +43 -0
  132. package/lib/plugins/observable-default/index.js +151 -0
  133. package/lib/plugins/observable-default/index.js.map +1 -0
  134. package/lib/schemas/config-default.json +34 -0
  135. package/lib/schemas/config-default.plugin.json +36 -0
  136. package/lib/schemas/events-default.json +18 -0
  137. package/lib/schemas/events-default.plugin.json +17 -0
  138. package/lib/schemas/observable-default.json +33 -0
  139. package/lib/schemas/observable-default.plugin.json +24 -0
  140. package/lib/scripts/bsb-client-cli.d.ts +21 -0
  141. package/lib/scripts/bsb-client-cli.js +701 -0
  142. package/lib/scripts/bsb-client-cli.js.map +1 -0
  143. package/lib/scripts/bsb-plugin-cli.d.ts +15 -0
  144. package/lib/scripts/bsb-plugin-cli.js +547 -0
  145. package/lib/scripts/bsb-plugin-cli.js.map +1 -0
  146. package/lib/scripts/export-schemas.d.ts +17 -0
  147. package/lib/scripts/export-schemas.js +205 -0
  148. package/lib/scripts/export-schemas.js.map +1 -0
  149. package/lib/scripts/extract-schemas-from-source.d.ts +23 -0
  150. package/lib/scripts/extract-schemas-from-source.js +604 -0
  151. package/lib/scripts/extract-schemas-from-source.js.map +1 -0
  152. package/lib/scripts/generate-client-types.d.ts +22 -0
  153. package/lib/scripts/generate-client-types.js +537 -0
  154. package/lib/scripts/generate-client-types.js.map +1 -0
  155. package/lib/scripts/generate-plugin-json.d.ts +17 -0
  156. package/lib/scripts/generate-plugin-json.js +219 -0
  157. package/lib/scripts/generate-plugin-json.js.map +1 -0
  158. package/lib/serviceBase/config.d.ts +83 -0
  159. package/lib/serviceBase/config.js +236 -0
  160. package/lib/serviceBase/config.js.map +1 -0
  161. package/lib/serviceBase/events.d.ts +91 -0
  162. package/lib/serviceBase/events.js +519 -0
  163. package/lib/serviceBase/events.js.map +1 -0
  164. package/lib/serviceBase/index.d.ts +33 -0
  165. package/lib/serviceBase/index.js +50 -0
  166. package/lib/serviceBase/index.js.map +1 -0
  167. package/lib/serviceBase/observable.d.ts +249 -0
  168. package/lib/serviceBase/observable.js +551 -0
  169. package/lib/serviceBase/observable.js.map +1 -0
  170. package/lib/serviceBase/plugins.d.ts +48 -0
  171. package/lib/serviceBase/plugins.js +184 -0
  172. package/lib/serviceBase/plugins.js.map +1 -0
  173. package/lib/serviceBase/serviceBase.d.ts +228 -0
  174. package/lib/serviceBase/serviceBase.js +420 -0
  175. package/lib/serviceBase/serviceBase.js.map +1 -0
  176. package/lib/serviceBase/services.d.ts +63 -0
  177. package/lib/serviceBase/services.js +346 -0
  178. package/lib/serviceBase/services.js.map +1 -0
  179. package/lib/tests.d.ts +27 -0
  180. package/lib/tests.js +44 -0
  181. package/lib/tests.js.map +1 -0
  182. package/package.json +91 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsb-client-cli.js","sourceRoot":"","sources":["../../src/scripts/bsb-client-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * BSB Plugin CLI
4
+ *
5
+ * Unified build and development scripts for BSB plugins.
6
+ * Works across Windows, Linux, and macOS.
7
+ *
8
+ * Usage:
9
+ * bsb-plugin-cli build - Clean, compile, copy static files
10
+ * bsb-plugin-cli dev - Build and start in development mode
11
+ * bsb-plugin-cli start - Start the BSB service
12
+ * bsb-plugin-cli test - Run tests
13
+ * bsb-plugin-cli clean - Remove build artifacts
14
+ */
15
+ export {};
@@ -0,0 +1,547 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * BSB Plugin CLI
5
+ *
6
+ * Unified build and development scripts for BSB plugins.
7
+ * Works across Windows, Linux, and macOS.
8
+ *
9
+ * Usage:
10
+ * bsb-plugin-cli build - Clean, compile, copy static files
11
+ * bsb-plugin-cli dev - Build and start in development mode
12
+ * bsb-plugin-cli start - Start the BSB service
13
+ * bsb-plugin-cli test - Run tests
14
+ * bsb-plugin-cli clean - Remove build artifacts
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const fs = require("fs");
18
+ const path = require("path");
19
+ const child_process_1 = require("child_process");
20
+ // Colors for terminal output
21
+ const colors = {
22
+ reset: '\x1b[0m',
23
+ bright: '\x1b[1m',
24
+ red: '\x1b[31m',
25
+ green: '\x1b[32m',
26
+ yellow: '\x1b[33m',
27
+ blue: '\x1b[34m',
28
+ cyan: '\x1b[36m',
29
+ };
30
+ function log(message, color = 'reset') {
31
+ console.log(`${colors[color]}${message}${colors.reset}`);
32
+ }
33
+ function error(message) {
34
+ log(`ERROR: ${message}`, 'red');
35
+ process.exit(1);
36
+ }
37
+ function success(message) {
38
+ log(`[OK] ${message}`, 'green');
39
+ }
40
+ function info(message) {
41
+ log(`→ ${message}`, 'cyan');
42
+ }
43
+ // Get the current working directory (plugin root)
44
+ const CWD = process.cwd();
45
+ const COMMAND = process.argv[2];
46
+ // Detect plugin structure
47
+ function detectPluginStructure() {
48
+ const srcDir = path.join(CWD, 'src');
49
+ const pluginsDir = path.join(srcDir, 'plugins');
50
+ if (!fs.existsSync(pluginsDir)) {
51
+ error('No src/plugins directory found. Are you in a BSB plugin directory?');
52
+ }
53
+ const pluginDirs = fs.readdirSync(pluginsDir).filter((name) => {
54
+ const fullPath = path.join(pluginsDir, name);
55
+ return fs.statSync(fullPath).isDirectory();
56
+ });
57
+ if (pluginDirs.length === 0) {
58
+ error('No plugin directories found in src/plugins');
59
+ }
60
+ // Support multiple plugins in one package
61
+ const plugins = pluginDirs.map((pluginName) => {
62
+ return {
63
+ name: pluginName,
64
+ srcDir: path.join(pluginsDir, pluginName),
65
+ destDir: path.join(CWD, 'lib', 'plugins', pluginName),
66
+ };
67
+ });
68
+ return plugins;
69
+ }
70
+ // Execute command with error handling
71
+ function exec(command, description) {
72
+ try {
73
+ info(description);
74
+ (0, child_process_1.execSync)(command, { cwd: CWD, stdio: 'inherit' });
75
+ success(description);
76
+ }
77
+ catch (err) {
78
+ error(`Failed to ${description.toLowerCase()}`);
79
+ }
80
+ }
81
+ // Clean build artifacts
82
+ function clean() {
83
+ info('Cleaning build artifacts');
84
+ const libDir = path.join(CWD, 'lib');
85
+ if (fs.existsSync(libDir)) {
86
+ fs.rmSync(libDir, { recursive: true, force: true });
87
+ success('Cleaned lib directory');
88
+ }
89
+ else {
90
+ info('Nothing to clean');
91
+ }
92
+ }
93
+ // Recursively copy non-TypeScript files
94
+ function copyNonTypeScriptFiles(srcDir, destDir) {
95
+ let copiedCount = 0;
96
+ function walkDir(currentSrc, currentDest) {
97
+ if (!fs.existsSync(currentSrc)) {
98
+ return;
99
+ }
100
+ const entries = fs.readdirSync(currentSrc, { withFileTypes: true });
101
+ for (const entry of entries) {
102
+ const srcPath = path.join(currentSrc, entry.name);
103
+ const destPath = path.join(currentDest, entry.name);
104
+ if (entry.isDirectory()) {
105
+ // Recursively walk subdirectories
106
+ walkDir(srcPath, destPath);
107
+ }
108
+ else if (entry.isFile()) {
109
+ // Check if file is NOT .ts or .tsx
110
+ const ext = path.extname(entry.name).toLowerCase();
111
+ if (ext !== '.ts' && ext !== '.tsx') {
112
+ // Ensure destination directory exists
113
+ const destDirPath = path.dirname(destPath);
114
+ if (!fs.existsSync(destDirPath)) {
115
+ fs.mkdirSync(destDirPath, { recursive: true });
116
+ }
117
+ // Copy the file
118
+ fs.copyFileSync(srcPath, destPath);
119
+ copiedCount++;
120
+ }
121
+ }
122
+ }
123
+ }
124
+ walkDir(srcDir, destDir);
125
+ return copiedCount;
126
+ }
127
+ // Copy non-TypeScript assets for a plugin
128
+ function copyPluginAssets(plugin) {
129
+ info(`Copying non-TypeScript assets for ${plugin.name}`);
130
+ const copiedCount = copyNonTypeScriptFiles(plugin.srcDir, plugin.destDir);
131
+ if (copiedCount > 0) {
132
+ success(`Copied ${copiedCount} asset file(s) for ${plugin.name}`);
133
+ }
134
+ else {
135
+ info(`No asset files found for ${plugin.name}`);
136
+ }
137
+ }
138
+ // Extract schemas directly from TypeScript source (pre-compilation)
139
+ async function extractSchemasFromSource() {
140
+ try {
141
+ const runExtractorModule = async (scriptPath) => {
142
+ delete require.cache[require.resolve(scriptPath)];
143
+ const mod = require(scriptPath);
144
+ const run = mod.extractSchemasFromSource || mod.main || mod.default;
145
+ if (typeof run !== 'function') {
146
+ throw new Error(`Extractor entry function not found: ${scriptPath}`);
147
+ }
148
+ await run();
149
+ };
150
+ // Use the extraction script
151
+ const extractorPath = path.join(CWD, 'node_modules', '@bsb', 'base', 'lib', 'scripts', 'extract-schemas-from-source.js');
152
+ if (fs.existsSync(extractorPath)) {
153
+ info('Extracting schemas from TypeScript source');
154
+ await runExtractorModule(extractorPath);
155
+ success('Extracted schemas from TypeScript source');
156
+ }
157
+ else {
158
+ // Fallback: use local compiled version or ts-node
159
+ const localCompiledPath = path.join(__dirname, 'extract-schemas-from-source.js');
160
+ const localTsPath = path.join(__dirname, 'extract-schemas-from-source.ts');
161
+ if (fs.existsSync(localCompiledPath)) {
162
+ info('Extracting schemas from TypeScript source');
163
+ await runExtractorModule(localCompiledPath);
164
+ success('Extracted schemas from TypeScript source');
165
+ }
166
+ else if (fs.existsSync(localTsPath)) {
167
+ info('Extracting schemas from TypeScript source');
168
+ (0, child_process_1.execFileSync)(process.execPath, ['-r', 'ts-node/register', localTsPath], { cwd: CWD, stdio: ['pipe', 'pipe', 'inherit'] });
169
+ success('Extracted schemas from TypeScript source');
170
+ }
171
+ }
172
+ }
173
+ catch (err) {
174
+ const message = err instanceof Error ? err.message : String(err);
175
+ log(` Schema extraction failed: ${message}`, 'yellow');
176
+ }
177
+ }
178
+ // Copy schemas from src/.bsb/schemas/ to lib/schemas/ (post-compilation)
179
+ function copySchemasToLib() {
180
+ const srcSchemas = path.join(CWD, 'src', '.bsb', 'schemas');
181
+ const libSchemas = path.join(CWD, 'lib', 'schemas');
182
+ if (!fs.existsSync(srcSchemas)) {
183
+ return;
184
+ }
185
+ if (!fs.existsSync(libSchemas)) {
186
+ fs.mkdirSync(libSchemas, { recursive: true });
187
+ }
188
+ const files = fs.readdirSync(srcSchemas).filter(f => f.endsWith('.json'));
189
+ for (const file of files) {
190
+ fs.copyFileSync(path.join(srcSchemas, file), path.join(libSchemas, file));
191
+ }
192
+ if (files.length > 0) {
193
+ success(`Copied ${files.length} schema(s) to lib/schemas/`);
194
+ }
195
+ }
196
+ // Generate plugin metadata JSON
197
+ function generatePluginJson(plugin) {
198
+ try {
199
+ // Try to load the compiled plugin
200
+ const pluginPath = path.join(plugin.destDir, 'index.js');
201
+ if (!fs.existsSync(pluginPath)) {
202
+ return; // No index.js, skip
203
+ }
204
+ // Clear require cache to get fresh module
205
+ delete require.cache[require.resolve(pluginPath)];
206
+ const pluginModule = require(pluginPath);
207
+ // Check if plugin has Config with metadata
208
+ if (!pluginModule.Config || !pluginModule.Config.metadata) {
209
+ return; // No Config metadata, skip
210
+ }
211
+ info(`Generating plugin metadata for ${plugin.name}`);
212
+ const metadata = pluginModule.Config.metadata;
213
+ // Auto-detect category from plugin directory name
214
+ const category = plugin.name.startsWith('service-') ? 'service' :
215
+ plugin.name.startsWith('observable-') ? 'observable' :
216
+ plugin.name.startsWith('events-') ? 'events' :
217
+ plugin.name.startsWith('config-') ? 'config' : 'other';
218
+ // Create plugin metadata object - only include fields with actual values
219
+ const pluginMetadata = {
220
+ id: plugin.name,
221
+ name: metadata.name,
222
+ version: metadata.version || '1.0.0',
223
+ description: metadata.description || '',
224
+ category,
225
+ tags: metadata.tags || [],
226
+ documentation: metadata.documentation || [],
227
+ dependencies: [],
228
+ };
229
+ // Only include optional fields if they have real values
230
+ if (metadata.author)
231
+ pluginMetadata.author = metadata.author;
232
+ if (metadata.license)
233
+ pluginMetadata.license = metadata.license;
234
+ if (metadata.homepage)
235
+ pluginMetadata.homepage = metadata.homepage;
236
+ if (metadata.repository)
237
+ pluginMetadata.repository = metadata.repository;
238
+ if (metadata.image)
239
+ pluginMetadata.image = metadata.image;
240
+ // Read auto-detected dependencies and config schema from schema JSON
241
+ const schemaPath = path.join(CWD, 'src', '.bsb', 'schemas', `${plugin.name}.json`);
242
+ if (fs.existsSync(schemaPath)) {
243
+ try {
244
+ const schema = JSON.parse(fs.readFileSync(schemaPath, 'utf-8'));
245
+ if (Array.isArray(schema.dependencies) && schema.dependencies.length > 0) {
246
+ pluginMetadata.dependencies = schema.dependencies;
247
+ }
248
+ if (schema.configSchema && typeof schema.configSchema === 'object') {
249
+ pluginMetadata.configSchema = schema.configSchema;
250
+ }
251
+ }
252
+ catch {
253
+ // Non-fatal — schema may be malformed
254
+ }
255
+ }
256
+ // Create schemas directory
257
+ const schemasDir = path.join(CWD, 'lib', 'schemas');
258
+ if (!fs.existsSync(schemasDir)) {
259
+ fs.mkdirSync(schemasDir, { recursive: true });
260
+ }
261
+ // Write plugin metadata
262
+ const metadataFile = path.join(schemasDir, `${plugin.name}.plugin.json`);
263
+ fs.writeFileSync(metadataFile, JSON.stringify(pluginMetadata, null, 2), 'utf-8');
264
+ success(`Generated plugin metadata for ${plugin.name}`);
265
+ }
266
+ catch (err) {
267
+ // Silently skip if generation fails
268
+ }
269
+ }
270
+ // Generate virtual client TypeScript files from exported schemas
271
+ function generateVirtualClients() {
272
+ try {
273
+ const localSchemasDir = path.join(CWD, 'lib', 'schemas');
274
+ const remoteSchemasDir = path.join(CWD, 'src', '.bsb', 'schemas');
275
+ // Check if any schema source exists
276
+ const hasLocal = fs.existsSync(localSchemasDir) &&
277
+ fs.readdirSync(localSchemasDir).some(f => f.endsWith('.json') && !f.endsWith('.plugin.json'));
278
+ const hasRemote = fs.existsSync(remoteSchemasDir) &&
279
+ fs.readdirSync(remoteSchemasDir).some(f => f.endsWith('.json'));
280
+ if (!hasLocal && !hasRemote) {
281
+ return; // No schemas, skip
282
+ }
283
+ info('Generating virtual client types');
284
+ // Use the core generator from @bsb/base
285
+ const generatorPath = path.join(CWD, 'node_modules', '@bsb', 'base', 'lib', 'scripts', 'generate-client-types.js');
286
+ if (fs.existsSync(generatorPath)) {
287
+ (0, child_process_1.execSync)(`node "${generatorPath}"`, { cwd: CWD, stdio: 'pipe' });
288
+ success('Generated virtual client types');
289
+ }
290
+ else {
291
+ // Fallback: use local compiled version or ts-node
292
+ const localCompiledPath = path.join(__dirname, 'generate-client-types.js');
293
+ const localTsPath = path.join(__dirname, 'generate-client-types.ts');
294
+ if (fs.existsSync(localCompiledPath)) {
295
+ (0, child_process_1.execSync)(`node "${localCompiledPath}"`, { cwd: CWD, stdio: 'pipe' });
296
+ success('Generated virtual client types');
297
+ }
298
+ else if (fs.existsSync(localTsPath)) {
299
+ (0, child_process_1.execSync)(`node -r ts-node/register "${localTsPath}"`, { cwd: CWD, stdio: 'pipe' });
300
+ success('Generated virtual client types');
301
+ }
302
+ }
303
+ }
304
+ catch (err) {
305
+ // Silently skip if generation fails
306
+ }
307
+ }
308
+ // Sync schemas with parent @bsb/base project
309
+ function syncParentSchemas() {
310
+ try {
311
+ // Check if @bsb/base is installed (indicates this is a plugin project)
312
+ const bsbBasePath = path.join(CWD, 'node_modules', '@bsb', 'base');
313
+ if (!fs.existsSync(bsbBasePath)) {
314
+ return; // Not a plugin project, skip
315
+ }
316
+ // Resolve symlink to get actual path (important for monorepos)
317
+ const bsbBaseRealPath = fs.realpathSync(bsbBasePath);
318
+ // Check if BSB CLI exists
319
+ const bsbCliPath = path.join(bsbBaseRealPath, 'lib', 'cli.js');
320
+ if (!fs.existsSync(bsbCliPath)) {
321
+ return; // BSB CLI not found, skip
322
+ }
323
+ info('Syncing schemas with @bsb/base core plugins');
324
+ // Run client sync in the @bsb/base directory to export its schemas and regenerate types
325
+ (0, child_process_1.execSync)(`node "${bsbCliPath}" client sync`, { cwd: bsbBaseRealPath, stdio: 'pipe' });
326
+ success('Synced schemas with @bsb/base core plugins');
327
+ }
328
+ catch (err) {
329
+ // Silently skip if sync fails (parent might not have schemas)
330
+ }
331
+ }
332
+ // Generate root bsb-plugin.json as a registry-facing snippet
333
+ // This follows the hand-written schema format (id, name, basePath, image, description, tags, documentation, pluginPath, links)
334
+ // NOT a dump of the full per-plugin .plugin.json metadata
335
+ function generateRootPluginJson() {
336
+ const schemasDir = path.join(CWD, 'lib', 'schemas');
337
+ if (!fs.existsSync(schemasDir)) {
338
+ return;
339
+ }
340
+ const pluginJsonFiles = fs.readdirSync(schemasDir)
341
+ .filter((f) => f.endsWith('.plugin.json'));
342
+ if (pluginJsonFiles.length === 0) {
343
+ return;
344
+ }
345
+ info('Generating bsb-plugin.json');
346
+ // Read package.json for links
347
+ let packageJson = {};
348
+ const packageJsonPath = path.join(CWD, 'package.json');
349
+ if (fs.existsSync(packageJsonPath)) {
350
+ try {
351
+ packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
352
+ }
353
+ catch {
354
+ // Non-fatal
355
+ }
356
+ }
357
+ const plugins = [];
358
+ for (const file of pluginJsonFiles) {
359
+ try {
360
+ const meta = JSON.parse(fs.readFileSync(path.join(schemasDir, file), 'utf-8'));
361
+ const id = meta.id;
362
+ // Build the snippet entry following the hand-written schema
363
+ const snippet = {
364
+ id,
365
+ name: meta.name,
366
+ basePath: './',
367
+ description: meta.description || '',
368
+ tags: meta.tags || [],
369
+ documentation: meta.documentation || [],
370
+ pluginPath: `src/plugins/${id}/`,
371
+ };
372
+ if (meta.image) {
373
+ snippet.image = meta.image;
374
+ }
375
+ // Add links from package.json repository or metadata
376
+ const repoUrl = meta.repository || packageJson.repository?.url || packageJson.repository || '';
377
+ if (repoUrl) {
378
+ snippet.links = { github: typeof repoUrl === 'string' ? repoUrl : '' };
379
+ }
380
+ plugins.push(snippet);
381
+ }
382
+ catch {
383
+ // Skip malformed files
384
+ }
385
+ }
386
+ if (plugins.length === 0) {
387
+ return;
388
+ }
389
+ const rootPluginJson = { nodejs: plugins };
390
+ fs.writeFileSync(path.join(CWD, 'bsb-plugin.json'), JSON.stringify(rootPluginJson, null, 2), 'utf-8');
391
+ success(`Generated bsb-plugin.json with ${plugins.length} plugin(s)`);
392
+ }
393
+ // Build the plugin
394
+ async function build() {
395
+ log('\n=== Building BSB Plugin ===\n', 'bright');
396
+ // Step 1: Sync schemas with parent @bsb/base core plugins FIRST
397
+ // This ensures latest types are available during compilation
398
+ syncParentSchemas();
399
+ // Step 2: Extract schemas from TypeScript source (pre-compilation)
400
+ // This reads TS files directly, no compiled JS needed — breaks circular dependency
401
+ await extractSchemasFromSource();
402
+ // Step 3: Generate virtual clients from extracted schemas
403
+ // These will be compiled alongside the project in step 5
404
+ generateVirtualClients();
405
+ // Step 4: Clean
406
+ clean();
407
+ // Step 5: Compile TypeScript (virtual clients in src/.bsb/clients/ compile with the project)
408
+ exec('npx tsc', 'Compiling TypeScript');
409
+ // Step 6: Copy non-TypeScript assets for each plugin
410
+ const plugins = detectPluginStructure();
411
+ for (const plugin of plugins) {
412
+ copyPluginAssets(plugin);
413
+ }
414
+ // Step 7: Copy extracted schemas to lib/schemas/
415
+ copySchemasToLib();
416
+ // Step 8: Generate per-plugin metadata JSON (needs compiled JS for Config.metadata)
417
+ for (const plugin of plugins) {
418
+ generatePluginJson(plugin);
419
+ }
420
+ // Step 9: Generate root bsb-plugin.json (aggregates all per-plugin metadata)
421
+ generateRootPluginJson();
422
+ log('\n' + colors.green + colors.bright + '[BUILD COMPLETE]' + colors.reset + '\n');
423
+ }
424
+ // Start the BSB service
425
+ function start() {
426
+ log('\n=== Starting BSB Service ===\n', 'bright');
427
+ // Find the BSB CLI
428
+ const bsbCliPath = path.join(CWD, 'node_modules', '@bsb', 'base', 'lib', 'cli.js');
429
+ if (!fs.existsSync(bsbCliPath)) {
430
+ error('BSB CLI not found. Make sure @bsb/base is installed.');
431
+ }
432
+ info('Starting service');
433
+ // Spawn the process and inherit stdio for real-time output
434
+ const child = (0, child_process_1.spawn)('node', [bsbCliPath], {
435
+ cwd: CWD,
436
+ stdio: 'inherit',
437
+ });
438
+ // Handle process exit
439
+ child.on('exit', (code) => {
440
+ if (code !== 0) {
441
+ error(`Service exited with code ${code}`);
442
+ }
443
+ process.exit(code);
444
+ });
445
+ // Handle Ctrl+C
446
+ process.on('SIGINT', () => {
447
+ info('Shutting down service');
448
+ child.kill('SIGINT');
449
+ });
450
+ }
451
+ // Development mode (build + start)
452
+ async function dev() {
453
+ log('\n=== Development Mode ===\n', 'bright');
454
+ // Build first
455
+ await build();
456
+ // Then start
457
+ start();
458
+ }
459
+ // Run tests
460
+ function test() {
461
+ log('\n=== Running Tests ===\n', 'bright');
462
+ // Check if test script exists in package.json
463
+ const packageJsonPath = path.join(CWD, 'package.json');
464
+ if (!fs.existsSync(packageJsonPath)) {
465
+ error('package.json not found');
466
+ }
467
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
468
+ const testScript = packageJson.scripts?.['test:run'];
469
+ if (!testScript) {
470
+ log('No test:run script defined in package.json', 'yellow');
471
+ info('Define a "test:run" script in package.json to enable testing');
472
+ process.exit(0);
473
+ }
474
+ // Run the test script
475
+ exec('npm run test:run', 'Running tests');
476
+ log('\n' + colors.green + colors.bright + '[TESTS COMPLETE]' + colors.reset + '\n');
477
+ }
478
+ // Show usage
479
+ function usage() {
480
+ console.log(`
481
+ ${colors.bright}BSB Plugin CLI${colors.reset}
482
+
483
+ ${colors.cyan}Usage:${colors.reset}
484
+ npx bsb-plugin-cli <command>
485
+
486
+ ${colors.cyan}Commands:${colors.reset}
487
+ ${colors.green}build${colors.reset} - Clean, compile TypeScript, copy static files
488
+ ${colors.green}dev${colors.reset} - Build and start in development mode
489
+ ${colors.green}start${colors.reset} - Start the BSB service
490
+ ${colors.green}test${colors.reset} - Run tests (requires test:run script)
491
+ ${colors.green}clean${colors.reset} - Remove build artifacts (lib directory)
492
+
493
+ ${colors.cyan}Examples:${colors.reset}
494
+ npx bsb-plugin-cli build
495
+ npx bsb-plugin-cli dev
496
+ npx bsb-plugin-cli start
497
+
498
+ ${colors.cyan}Package.json Integration:${colors.reset}
499
+ {
500
+ "scripts": {
501
+ "build": "bsb-plugin-cli build",
502
+ "dev": "bsb-plugin-cli dev",
503
+ "start": "bsb-plugin-cli start",
504
+ "test": "bsb-plugin-cli test",
505
+ "clean": "bsb-plugin-cli clean"
506
+ }
507
+ }
508
+ `);
509
+ }
510
+ // Main entry point
511
+ async function main() {
512
+ if (!COMMAND) {
513
+ usage();
514
+ process.exit(1);
515
+ }
516
+ switch (COMMAND) {
517
+ case 'build':
518
+ await build();
519
+ break;
520
+ case 'dev':
521
+ await dev();
522
+ break;
523
+ case 'start':
524
+ start();
525
+ break;
526
+ case 'test':
527
+ test();
528
+ break;
529
+ case 'clean':
530
+ clean();
531
+ break;
532
+ case 'help':
533
+ case '--help':
534
+ case '-h':
535
+ usage();
536
+ break;
537
+ default:
538
+ error(`Unknown command: ${COMMAND}\n`);
539
+ usage();
540
+ process.exit(1);
541
+ }
542
+ }
543
+ main().catch((err) => {
544
+ const message = err instanceof Error ? err.message : String(err);
545
+ error(message);
546
+ });
547
+ //# sourceMappingURL=bsb-plugin-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bsb-plugin-cli.js","sourceRoot":"","sources":["../../src/scripts/bsb-plugin-cli.ts"],"names":[],"mappings":"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"}