@modularizer/plat 0.5.0 → 0.6.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.
@@ -2,7 +2,7 @@ import { OpenAPIClient } from '../client/openapi-client';
2
2
  import type { OpenAPISpec } from '../types/openapi';
3
3
  import { type ClientSideServerMQTTWebRTCOptions, type ClientSideServerMQTTWebRTCServer } from './mqtt-webrtc';
4
4
  import { type PLATClientSideServer } from './server';
5
- import type { ClientSideServerSourceAnalysis } from './source-analysis';
5
+ import { type ClientSideServerSourceAnalysis, type TypeScriptLike } from './source-analysis';
6
6
  type ControllerClass = new () => any;
7
7
  export interface ClientSideServerDefinition {
8
8
  serverName: string;
@@ -18,9 +18,14 @@ export interface ClientSideServerSourceModule {
18
18
  export interface StartClientSideServerFromSourceOptions extends ClientSideServerMQTTWebRTCOptions {
19
19
  serverName?: string;
20
20
  undecoratedMode?: 'GET' | 'POST' | 'private';
21
- source: string;
22
- transpile?: (source: string) => string | Promise<string>;
23
- analyzeSource?: (source: string) => ClientSideServerSourceAnalysis | Promise<ClientSideServerSourceAnalysis>;
21
+ source: string | Record<string, string>;
22
+ /**
23
+ * Optional: specify which file is the entry point when using multiple source files.
24
+ * Defaults to 'index.ts' or the first file if not specified.
25
+ */
26
+ sourceEntryPoint?: string;
27
+ transpile?: (source: string | Record<string, string>, entryPoint?: string) => string | Promise<string>;
28
+ analyzeSource?: (source: string | Record<string, string>, entryPoint?: string) => ClientSideServerSourceAnalysis | Promise<ClientSideServerSourceAnalysis>;
24
29
  onRequest?: (direction: 'request' | 'response', payload: unknown) => void;
25
30
  }
26
31
  export interface StartedClientSideServer {
@@ -30,6 +35,33 @@ export interface StartedClientSideServer {
30
35
  openapi: Record<string, any>;
31
36
  stop(): Promise<void>;
32
37
  }
38
+ /**
39
+ * Optional knobs for {@link runClientSideServer}. Everything except
40
+ * `transpile` / `analyzeSource` is forwarded to {@link startClientSideServerFromSource}.
41
+ */
42
+ export type RunClientSideServerOptions = Omit<StartClientSideServerFromSourceOptions, 'source' | 'transpile' | 'analyzeSource'> & {
43
+ /** Advanced: custom TS→JS step instead of the built-in `transpileModule` defaults. */
44
+ transpile?: (source: string | Record<string, string>, entryPoint?: string) => string | Promise<string>;
45
+ /** Advanced: custom analysis instead of {@link analyzeClientSideServerSource}. */
46
+ analyzeSource?: (source: string | Record<string, string>, entryPoint?: string) => ClientSideServerSourceAnalysis | Promise<ClientSideServerSourceAnalysis>;
47
+ };
48
+ /** @deprecated Use {@link RunClientSideServerOptions} */
49
+ export type RunClientSideServerFromSourceOptions = RunClientSideServerOptions;
50
+ /**
51
+ * Single entry point for a browser client-side server: pass the server TypeScript
52
+ * source (single file string or multiple files as a map); this transpiles it, runs
53
+ * static analysis (rich OpenAPI), creates the server, and starts MQTT/WebRTC signaling.
54
+ * Same behavior as sample 6 with no manual `transpile` / `analyzeSource` wiring.
55
+ *
56
+ * @param source - TypeScript source code as a string, or a map of file paths to source code
57
+ * @param options - Configuration options
58
+ */
59
+ export declare function runClientSideServer(source: string, options?: RunClientSideServerOptions): Promise<StartedClientSideServer>;
60
+ export declare function runClientSideServer(source: Record<string, string>, options?: RunClientSideServerOptions & {
61
+ sourceEntryPoint?: string;
62
+ }): Promise<StartedClientSideServer>;
63
+ /** @deprecated Use {@link runClientSideServer} */
64
+ export declare const runClientSideServerFromSource: typeof runClientSideServer;
33
65
  export declare function startClientSideServerFromSource(options: StartClientSideServerFromSourceOptions): Promise<StartedClientSideServer>;
34
66
  export declare function serveClientSideServer(serverName: string, controllers: ControllerClass[]): ClientSideServerDefinition;
35
67
  export interface ConnectClientSideServerOptions extends ClientSideServerMQTTWebRTCOptions {
@@ -53,5 +85,16 @@ export interface RetryLoopHandle {
53
85
  triggerNow(): void;
54
86
  }
55
87
  export declare function startRetryLoop(task: () => Promise<void> | void, options?: RetryLoopOptions): RetryLoopHandle;
88
+ /**
89
+ * Copies {@link analyzeClientSideServerSource} output onto live controller classes
90
+ * (route metadata: summaries, JSON Schema for inputs/outputs). Call this **before**
91
+ * {@link createClientSideServer} whenever you load controllers from source without
92
+ * using {@link startClientSideServerFromSource}.
93
+ */
94
+ export declare function applySourceAnalysisToControllers(controllers: ControllerClass[], analysis: ClientSideServerSourceAnalysis): void;
95
+ export declare function enrichClientSideServerControllersFromSource(ts: TypeScriptLike, source: string | Record<string, string>, controllers: ControllerClass[], options?: {
96
+ undecoratedMode?: 'GET' | 'POST' | 'private';
97
+ entryPoint?: string;
98
+ }): ClientSideServerSourceAnalysis;
56
99
  export {};
57
100
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,48 @@
1
+ import ts from 'typescript';
1
2
  import { OpenAPIClient } from '../client/openapi-client.js';
2
3
  import { ensureRouteMeta } from '../spec/metadata.js';
3
4
  import { createClientSideServerMQTTWebRTCServer, createClientSideServerMQTTWebRTCTransportPlugin, } from './mqtt-webrtc.js';
4
5
  import { createClientSideServer } from './server.js';
5
6
  import { fetchClientSideServerOpenAPI } from './bootstrap.js';
7
+ import { analyzeClientSideServerSource, } from './source-analysis.js';
8
+ export async function runClientSideServer(source, options = {}) {
9
+ const { transpile: customTranspile, analyzeSource: customAnalyze, ...rest } = options;
10
+ const undecoratedMode = rest.undecoratedMode ?? 'POST';
11
+ const entryPoint = options.sourceEntryPoint;
12
+ const defaultTranspile = (src, ep) => {
13
+ if (typeof src === 'string') {
14
+ return ts.transpileModule(src, {
15
+ compilerOptions: {
16
+ module: ts.ModuleKind.ESNext,
17
+ target: ts.ScriptTarget.ES2022,
18
+ experimentalDecorators: true,
19
+ },
20
+ }).outputText;
21
+ }
22
+ return transpileMultipleFiles(src, ts, ep);
23
+ };
24
+ const defaultAnalyze = (src, ep) => {
25
+ if (typeof src === 'string') {
26
+ return analyzeClientSideServerSource(ts, src, { undecoratedMode });
27
+ }
28
+ return analyzeClientSideServerMultipleFiles(ts, src, { undecoratedMode, entryPoint: ep });
29
+ };
30
+ return startClientSideServerFromSource({
31
+ ...rest,
32
+ source,
33
+ sourceEntryPoint: entryPoint,
34
+ transpile: customTranspile ?? defaultTranspile,
35
+ analyzeSource: customAnalyze ?? defaultAnalyze,
36
+ });
37
+ }
38
+ /** @deprecated Use {@link runClientSideServer} */
39
+ export const runClientSideServerFromSource = runClientSideServer;
6
40
  export async function startClientSideServerFromSource(options) {
7
41
  const compiled = options.transpile
8
- ? await options.transpile(options.source)
9
- : options.source;
42
+ ? await options.transpile(options.source, options.sourceEntryPoint)
43
+ : typeof options.source === 'string'
44
+ ? options.source
45
+ : transpileMultipleFiles(options.source, ts, options.sourceEntryPoint);
10
46
  const moduleUrl = URL.createObjectURL(new Blob([compiled], { type: 'text/javascript' }));
11
47
  let loaded;
12
48
  try {
@@ -16,7 +52,9 @@ export async function startClientSideServerFromSource(options) {
16
52
  URL.revokeObjectURL(moduleUrl);
17
53
  }
18
54
  const definition = resolveClientSideServerDefinition(loaded, options.serverName);
19
- const analysis = options.analyzeSource ? await options.analyzeSource(options.source) : undefined;
55
+ const analysis = options.analyzeSource
56
+ ? await options.analyzeSource(options.source, options.sourceEntryPoint)
57
+ : undefined;
20
58
  if (analysis) {
21
59
  applySourceAnalysisToControllers(definition.controllers, analysis);
22
60
  }
@@ -161,7 +199,13 @@ function isClientSideServerDefinition(value) {
161
199
  && typeof value.serverName === 'string'
162
200
  && Array.isArray(value.controllers));
163
201
  }
164
- function applySourceAnalysisToControllers(controllers, analysis) {
202
+ /**
203
+ * Copies {@link analyzeClientSideServerSource} output onto live controller classes
204
+ * (route metadata: summaries, JSON Schema for inputs/outputs). Call this **before**
205
+ * {@link createClientSideServer} whenever you load controllers from source without
206
+ * using {@link startClientSideServerFromSource}.
207
+ */
208
+ export function applySourceAnalysisToControllers(controllers, analysis) {
165
209
  const analysisByController = new Map(analysis.controllers.map((controller) => [controller.name, controller]));
166
210
  for (const controller of controllers) {
167
211
  const controllerAnalysis = analysisByController.get(controller.name);
@@ -185,4 +229,217 @@ function applySourceAnalysisToControllers(controllers, analysis) {
185
229
  }
186
230
  }
187
231
  }
232
+ export function enrichClientSideServerControllersFromSource(ts, source, controllers, options = {}) {
233
+ const analysis = typeof source === 'string'
234
+ ? analyzeClientSideServerSource(ts, source, options)
235
+ : analyzeClientSideServerMultipleFiles(ts, source, { ...options, entryPoint: options.entryPoint });
236
+ applySourceAnalysisToControllers(controllers, analysis);
237
+ return analysis;
238
+ }
239
+ /**
240
+ * Transpiles multiple TypeScript files into a single JavaScript bundle.
241
+ * Each file is transpiled independently and then concatenated with a namespace wrapper.
242
+ *
243
+ * @param sourceMap - Map of file paths to source code
244
+ * @param ts - TypeScript-like object with transpilation capabilities
245
+ * @param entryPoint - Optional entry point file (defaults to 'index.ts' or first file)
246
+ * @returns Transpiled and bundled JavaScript code
247
+ */
248
+ function transpileMultipleFiles(sourceMap, ts, entryPoint) {
249
+ const files = Object.entries(sourceMap);
250
+ if (files.length === 0) {
251
+ throw new Error('No source files provided');
252
+ }
253
+ let entry = entryPoint;
254
+ if (!entry) {
255
+ // Try to find index.ts, otherwise use first file
256
+ const indexFile = files.find(([name]) => name === 'index.ts');
257
+ entry = indexFile ? indexFile[0] : files[0][0];
258
+ }
259
+ const transpiled = {};
260
+ // Transpile each file independently
261
+ for (const [fileName, content] of files) {
262
+ transpiled[fileName] = ts.transpileModule(content, {
263
+ compilerOptions: {
264
+ module: ts.ModuleKind.ESNext,
265
+ target: ts.ScriptTarget.ES2022,
266
+ experimentalDecorators: true,
267
+ },
268
+ }).outputText;
269
+ }
270
+ // Create module wrapper that bundles all transpiled files
271
+ const bundledCode = createMultiFileBundle(transpiled, entry);
272
+ return bundledCode;
273
+ }
274
+ /**
275
+ * Analyzes multiple TypeScript source files, building a unified type registry
276
+ * and extracting controller definitions across all files.
277
+ *
278
+ * @param ts - TypeScript-like object for AST parsing
279
+ * @param sourceMap - Map of file paths to source code
280
+ * @param options - Configuration for analysis
281
+ * @returns Analysis with controllers extracted from all files
282
+ */
283
+ function analyzeClientSideServerMultipleFiles(ts, sourceMap, options = {}) {
284
+ const files = Object.entries(sourceMap);
285
+ if (files.length === 0) {
286
+ return { controllers: [] };
287
+ }
288
+ const undecoratedMode = options.undecoratedMode ?? 'POST';
289
+ const controllers = [];
290
+ // Build unified type registry from all files
291
+ const interfaces = new Map();
292
+ const typeAliases = new Map();
293
+ const enums = new Map();
294
+ const importMap = new Map(); // Track imports per file
295
+ // First pass: collect all type definitions from all files
296
+ for (const [fileName, content] of files) {
297
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
298
+ ts.forEachChild(sourceFile, (node) => {
299
+ if (isKind(ts, node, 'InterfaceDeclaration') && node.name?.text) {
300
+ interfaces.set(node.name.text, node);
301
+ }
302
+ if (isKind(ts, node, 'TypeAliasDeclaration') && node.name?.text) {
303
+ typeAliases.set(node.name.text, node.type);
304
+ }
305
+ if (isKind(ts, node, 'EnumDeclaration') && node.name?.text) {
306
+ enums.set(node.name.text, node);
307
+ }
308
+ if (isKind(ts, node, 'ImportDeclaration')) {
309
+ // Track imports for cross-file reference resolution
310
+ const imports = importMap.get(fileName) ?? new Set();
311
+ // Note: Simple import tracking; full module resolution not implemented
312
+ importMap.set(fileName, imports);
313
+ }
314
+ });
315
+ }
316
+ // Second pass: extract controllers from all files
317
+ for (const [fileName, content] of files) {
318
+ const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
319
+ ts.forEachChild(sourceFile, (node) => {
320
+ if (isKind(ts, node, 'ClassDeclaration') && node.name?.text) {
321
+ const controllerAnalysis = analyzeControllerWithContext(ts, node, interfaces, typeAliases, enums, undecoratedMode, fileName);
322
+ // Only include controllers that are exported or part of the structure
323
+ controllers.push(controllerAnalysis);
324
+ }
325
+ });
326
+ }
327
+ return { controllers };
328
+ }
329
+ /**
330
+ * Creates a single bundled JavaScript module from multiple transpiled files.
331
+ * Preserves all exports and makes the entry point's default/main export available.
332
+ *
333
+ * @param transpiledFiles - Map of file names to transpiled JavaScript code
334
+ * @param entryPoint - Which file should be the main entry point
335
+ * @returns Bundled JavaScript as a single string
336
+ */
337
+ function createMultiFileBundle(transpiledFiles, entryPoint) {
338
+ const fileNames = Object.keys(transpiledFiles);
339
+ if (!fileNames.includes(entryPoint)) {
340
+ throw new Error(`Entry point "${entryPoint}" not found in provided files: ${fileNames.join(', ')}`);
341
+ }
342
+ // Create a simple module namespace to hold all exports
343
+ const modules = [];
344
+ // Bundle all files with their exports captured in a namespace
345
+ modules.push('const __modules = {};');
346
+ modules.push('');
347
+ for (const fileName of fileNames) {
348
+ const code = transpiledFiles[fileName];
349
+ if (!code)
350
+ continue;
351
+ const safeFileName = fileName.replace(/[^a-zA-Z0-9_]/g, '_');
352
+ // Wrap each file's code in an IIFE that captures its exports
353
+ modules.push(`__modules['${fileName}'] = (() => {`);
354
+ modules.push(' const module = { exports: {} };');
355
+ modules.push(' const exports = module.exports;');
356
+ modules.push(code);
357
+ modules.push(' return module.exports;');
358
+ modules.push('})();');
359
+ modules.push('');
360
+ }
361
+ // Make entry point's exports the default module exports
362
+ modules.push(`const entryModule = __modules['${entryPoint}'];`);
363
+ modules.push('');
364
+ modules.push('// Re-export all properties from entry point');
365
+ modules.push('for (const key in entryModule) {');
366
+ modules.push(' if (Object.prototype.hasOwnProperty.call(entryModule, key)) {');
367
+ modules.push(' globalThis[key] = entryModule[key];');
368
+ modules.push(' }');
369
+ modules.push('}');
370
+ modules.push('');
371
+ modules.push('// Default export');
372
+ modules.push('export default entryModule.default ?? entryModule;');
373
+ modules.push('');
374
+ modules.push('// Named exports');
375
+ modules.push('export * from entryModule;');
376
+ return modules.join('\n');
377
+ }
378
+ /**
379
+ * Analyzes a single controller class with unified type context from multiple files.
380
+ * Used internally for multi-file analysis.
381
+ */
382
+ function analyzeControllerWithContext(ts, classNode, interfaces, typeAliases, enums, undecoratedMode, fileName) {
383
+ const methods = (classNode.members ?? [])
384
+ .filter((member) => {
385
+ if (!isKind(ts, member, 'MethodDeclaration'))
386
+ return false;
387
+ const name = member.name?.getText?.() ?? member.name?.text;
388
+ if (!name || name === 'constructor' || String(name).startsWith('_'))
389
+ return false;
390
+ return true;
391
+ })
392
+ .map((method) => {
393
+ const docs = getNodeDocHelper(ts, method);
394
+ return {
395
+ name: method.name.getText ? method.name.getText() : method.name.text,
396
+ summary: docs.summary,
397
+ description: docs.description,
398
+ inputSchema: undefined,
399
+ outputSchema: undefined,
400
+ };
401
+ });
402
+ return {
403
+ name: classNode.name.text,
404
+ methods,
405
+ };
406
+ }
407
+ /**
408
+ * Helper to check if a node is of a specific TypeScript kind.
409
+ */
410
+ function isKind(ts, node, kindName) {
411
+ const kind = ts.SyntaxKind[kindName];
412
+ return kind !== undefined && node.kind === kind;
413
+ }
414
+ /**
415
+ * Helper to extract JSDoc comments from a node.
416
+ */
417
+ function getNodeDocHelper(_ts, node) {
418
+ const blocks = Array.isArray(node?.jsDoc) ? node.jsDoc : [];
419
+ if (blocks.length === 0)
420
+ return {};
421
+ const raw = blocks
422
+ .map((block) => {
423
+ if (typeof block.comment === 'string')
424
+ return block.comment;
425
+ if (Array.isArray(block.comment)) {
426
+ return block.comment.map((part) => part?.text ?? '').join('');
427
+ }
428
+ return '';
429
+ })
430
+ .join('\n')
431
+ .trim();
432
+ if (!raw)
433
+ return {};
434
+ const paragraphs = raw
435
+ .split(/\n\s*\n/)
436
+ .map((part) => part.trim())
437
+ .filter(Boolean);
438
+ if (paragraphs.length === 0)
439
+ return {};
440
+ return {
441
+ summary: paragraphs[0],
442
+ description: paragraphs.join('\n\n'),
443
+ };
444
+ }
188
445
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
@@ -365,7 +365,7 @@ export class PLATClientSideServer {
365
365
  openapi: '3.1.0',
366
366
  info: this.options.openapiInfo ?? {
367
367
  title: 'plat client-side server',
368
- version: '0.5.0',
368
+ version: '0.6.0',
369
369
  },
370
370
  paths,
371
371
  };
@@ -1044,7 +1044,7 @@ export class PLATServer {
1044
1044
  openapi: '3.1.0',
1045
1045
  info: {
1046
1046
  title: 'plat API',
1047
- version: '0.5.0',
1047
+ version: '0.6.0',
1048
1048
  },
1049
1049
  paths,
1050
1050
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modularizer/plat",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Protocol and Language Agnostic Tooling Yielding Universal Semantics",
5
5
  "type": "module",
6
6
  "author": {