@modularizer/plat 0.5.0 → 0.7.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.
- package/dist/client-side-server/runtime.d.ts +47 -4
- package/dist/client-side-server/runtime.d.ts.map +1 -1
- package/dist/client-side-server/runtime.js +266 -5
- package/dist/client-side-server/runtime.js.map +1 -1
- package/dist/client-side-server/server.js +1 -1
- package/dist/server/server.js +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
-
|
|
23
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/client-side-server/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,70 @@
|
|
|
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;
|
|
40
|
+
function transpileSource(source, entryPoint) {
|
|
41
|
+
if (typeof source === 'string') {
|
|
42
|
+
return ts.transpileModule(source, {
|
|
43
|
+
compilerOptions: {
|
|
44
|
+
module: ts.ModuleKind.ESNext,
|
|
45
|
+
target: ts.ScriptTarget.ES2022,
|
|
46
|
+
experimentalDecorators: true,
|
|
47
|
+
},
|
|
48
|
+
}).outputText;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return transpileMultipleFiles(source, ts, entryPoint);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
6
54
|
export async function startClientSideServerFromSource(options) {
|
|
7
|
-
const compiled = options.transpile
|
|
8
|
-
?
|
|
9
|
-
: options.source;
|
|
55
|
+
const compiled = await (options.transpile
|
|
56
|
+
? options.transpile(options.source, options.sourceEntryPoint)
|
|
57
|
+
: Promise.resolve(transpileSource(options.source, options.sourceEntryPoint)));
|
|
58
|
+
const analysis = await (options.analyzeSource
|
|
59
|
+
? options.analyzeSource(options.source, options.sourceEntryPoint)
|
|
60
|
+
: Promise.resolve(typeof options.source === 'string'
|
|
61
|
+
? analyzeClientSideServerSource(ts, options.source, {
|
|
62
|
+
undecoratedMode: options.undecoratedMode ?? 'POST',
|
|
63
|
+
})
|
|
64
|
+
: analyzeClientSideServerMultipleFiles(ts, options.source, {
|
|
65
|
+
undecoratedMode: options.undecoratedMode ?? 'POST',
|
|
66
|
+
entryPoint: options.sourceEntryPoint,
|
|
67
|
+
})));
|
|
10
68
|
const moduleUrl = URL.createObjectURL(new Blob([compiled], { type: 'text/javascript' }));
|
|
11
69
|
let loaded;
|
|
12
70
|
try {
|
|
@@ -16,7 +74,6 @@ export async function startClientSideServerFromSource(options) {
|
|
|
16
74
|
URL.revokeObjectURL(moduleUrl);
|
|
17
75
|
}
|
|
18
76
|
const definition = resolveClientSideServerDefinition(loaded, options.serverName);
|
|
19
|
-
const analysis = options.analyzeSource ? await options.analyzeSource(options.source) : undefined;
|
|
20
77
|
if (analysis) {
|
|
21
78
|
applySourceAnalysisToControllers(definition.controllers, analysis);
|
|
22
79
|
}
|
|
@@ -161,7 +218,13 @@ function isClientSideServerDefinition(value) {
|
|
|
161
218
|
&& typeof value.serverName === 'string'
|
|
162
219
|
&& Array.isArray(value.controllers));
|
|
163
220
|
}
|
|
164
|
-
|
|
221
|
+
/**
|
|
222
|
+
* Copies {@link analyzeClientSideServerSource} output onto live controller classes
|
|
223
|
+
* (route metadata: summaries, JSON Schema for inputs/outputs). Call this **before**
|
|
224
|
+
* {@link createClientSideServer} whenever you load controllers from source without
|
|
225
|
+
* using {@link startClientSideServerFromSource}.
|
|
226
|
+
*/
|
|
227
|
+
export function applySourceAnalysisToControllers(controllers, analysis) {
|
|
165
228
|
const analysisByController = new Map(analysis.controllers.map((controller) => [controller.name, controller]));
|
|
166
229
|
for (const controller of controllers) {
|
|
167
230
|
const controllerAnalysis = analysisByController.get(controller.name);
|
|
@@ -185,4 +248,202 @@ function applySourceAnalysisToControllers(controllers, analysis) {
|
|
|
185
248
|
}
|
|
186
249
|
}
|
|
187
250
|
}
|
|
251
|
+
export function enrichClientSideServerControllersFromSource(ts, source, controllers, options = {}) {
|
|
252
|
+
const analysis = typeof source === 'string'
|
|
253
|
+
? analyzeClientSideServerSource(ts, source, options)
|
|
254
|
+
: analyzeClientSideServerMultipleFiles(ts, source, { ...options, entryPoint: options.entryPoint });
|
|
255
|
+
applySourceAnalysisToControllers(controllers, analysis);
|
|
256
|
+
return analysis;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Transpiles multiple TypeScript files into a single JavaScript bundle.
|
|
260
|
+
* Each file is transpiled independently and then concatenated with a namespace wrapper.
|
|
261
|
+
*
|
|
262
|
+
* @param sourceMap - Map of file paths to source code
|
|
263
|
+
* @param ts - TypeScript-like object with transpilation capabilities
|
|
264
|
+
* @param entryPoint - Optional entry point file (defaults to 'index.ts' or first file)
|
|
265
|
+
* @returns Transpiled and bundled JavaScript code
|
|
266
|
+
*/
|
|
267
|
+
function transpileMultipleFiles(sourceMap, ts, entryPoint) {
|
|
268
|
+
const files = Object.entries(sourceMap);
|
|
269
|
+
if (files.length === 0) {
|
|
270
|
+
throw new Error('No source files provided');
|
|
271
|
+
}
|
|
272
|
+
let entry = entryPoint;
|
|
273
|
+
if (!entry) {
|
|
274
|
+
// Try to find index.ts, otherwise use first file
|
|
275
|
+
const indexFile = files.find(([name]) => name === 'index.ts');
|
|
276
|
+
entry = indexFile ? indexFile[0] : files[0][0];
|
|
277
|
+
}
|
|
278
|
+
const transpiled = {};
|
|
279
|
+
// Transpile each file independently
|
|
280
|
+
for (const [fileName, content] of files) {
|
|
281
|
+
const output = ts.transpileModule(content, {
|
|
282
|
+
compilerOptions: {
|
|
283
|
+
module: ts.ModuleKind.ESNext,
|
|
284
|
+
target: ts.ScriptTarget.ES2022,
|
|
285
|
+
experimentalDecorators: true,
|
|
286
|
+
},
|
|
287
|
+
}).outputText;
|
|
288
|
+
transpiled[fileName] = output;
|
|
289
|
+
}
|
|
290
|
+
// Create module wrapper that bundles all transpiled files
|
|
291
|
+
const bundledCode = createMultiFileBundle(transpiled, entry);
|
|
292
|
+
return bundledCode;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Analyzes multiple TypeScript source files, building a unified type registry
|
|
296
|
+
* and extracting controller definitions across all files.
|
|
297
|
+
*
|
|
298
|
+
* @param ts - TypeScript-like object for AST parsing
|
|
299
|
+
* @param sourceMap - Map of file paths to source code
|
|
300
|
+
* @param options - Configuration for analysis
|
|
301
|
+
* @returns Analysis with controllers extracted from all files
|
|
302
|
+
*/
|
|
303
|
+
function analyzeClientSideServerMultipleFiles(ts, sourceMap, options = {}) {
|
|
304
|
+
const files = Object.entries(sourceMap);
|
|
305
|
+
if (files.length === 0) {
|
|
306
|
+
return { controllers: [] };
|
|
307
|
+
}
|
|
308
|
+
const undecoratedMode = options.undecoratedMode ?? 'POST';
|
|
309
|
+
const controllers = [];
|
|
310
|
+
// Build unified type registry from all files
|
|
311
|
+
const interfaces = new Map();
|
|
312
|
+
const typeAliases = new Map();
|
|
313
|
+
const enums = new Map();
|
|
314
|
+
const importMap = new Map(); // Track imports per file
|
|
315
|
+
// First pass: collect all type definitions from all files
|
|
316
|
+
for (const [fileName, content] of files) {
|
|
317
|
+
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
318
|
+
ts.forEachChild(sourceFile, (node) => {
|
|
319
|
+
if (isKind(ts, node, 'InterfaceDeclaration') && node.name?.text) {
|
|
320
|
+
interfaces.set(node.name.text, node);
|
|
321
|
+
}
|
|
322
|
+
if (isKind(ts, node, 'TypeAliasDeclaration') && node.name?.text) {
|
|
323
|
+
typeAliases.set(node.name.text, node.type);
|
|
324
|
+
}
|
|
325
|
+
if (isKind(ts, node, 'EnumDeclaration') && node.name?.text) {
|
|
326
|
+
enums.set(node.name.text, node);
|
|
327
|
+
}
|
|
328
|
+
if (isKind(ts, node, 'ImportDeclaration')) {
|
|
329
|
+
// Track imports for cross-file reference resolution
|
|
330
|
+
const imports = importMap.get(fileName) ?? new Set();
|
|
331
|
+
// Note: Simple import tracking; full module resolution not implemented
|
|
332
|
+
importMap.set(fileName, imports);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
// Second pass: extract controllers from all files
|
|
337
|
+
for (const [fileName, content] of files) {
|
|
338
|
+
const sourceFile = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
339
|
+
ts.forEachChild(sourceFile, (node) => {
|
|
340
|
+
if (isKind(ts, node, 'ClassDeclaration') && node.name?.text) {
|
|
341
|
+
const controllerAnalysis = analyzeControllerWithContext(ts, node, interfaces, typeAliases, enums, undecoratedMode, fileName);
|
|
342
|
+
controllers.push(controllerAnalysis);
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
}
|
|
346
|
+
return { controllers };
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Creates a multi-file bundle by wrapping each file in a namespace object
|
|
350
|
+
* and re-exporting from the entry point.
|
|
351
|
+
*/
|
|
352
|
+
function createMultiFileBundle(transpiled, entryPoint) {
|
|
353
|
+
const modules = [];
|
|
354
|
+
// Create namespace object containing all modules
|
|
355
|
+
modules.push('const __modules = {};');
|
|
356
|
+
modules.push('');
|
|
357
|
+
// Add each transpiled file as a module in the namespace
|
|
358
|
+
for (const [fileName, code] of Object.entries(transpiled)) {
|
|
359
|
+
modules.push(`__modules['${fileName}'] = {};`);
|
|
360
|
+
modules.push('(function(module) {');
|
|
361
|
+
modules.push(code);
|
|
362
|
+
modules.push(`}(__modules['${fileName}']));`);
|
|
363
|
+
modules.push('');
|
|
364
|
+
}
|
|
365
|
+
// Make entry point's exports the default module exports
|
|
366
|
+
modules.push(`const entryModule = __modules['${entryPoint}'];`);
|
|
367
|
+
modules.push('');
|
|
368
|
+
modules.push('// Re-export all properties from entry point');
|
|
369
|
+
modules.push('for (const key in entryModule) {');
|
|
370
|
+
modules.push(' if (Object.prototype.hasOwnProperty.call(entryModule, key)) {');
|
|
371
|
+
modules.push(' globalThis[key] = entryModule[key];');
|
|
372
|
+
modules.push(' }');
|
|
373
|
+
modules.push('}');
|
|
374
|
+
modules.push('');
|
|
375
|
+
modules.push('// Default export');
|
|
376
|
+
modules.push('export default entryModule.default ?? entryModule;');
|
|
377
|
+
modules.push('');
|
|
378
|
+
modules.push('// Named exports');
|
|
379
|
+
modules.push('export * from entryModule;');
|
|
380
|
+
return modules.join('\n');
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Analyzes a single controller class with unified type context from multiple files.
|
|
384
|
+
* Used internally for multi-file analysis.
|
|
385
|
+
*/
|
|
386
|
+
function analyzeControllerWithContext(ts, classNode, interfaces, typeAliases, enums, undecoratedMode, fileName) {
|
|
387
|
+
const methods = (classNode.members ?? [])
|
|
388
|
+
.filter((member) => {
|
|
389
|
+
if (!isKind(ts, member, 'MethodDeclaration'))
|
|
390
|
+
return false;
|
|
391
|
+
const name = member.name?.getText?.() ?? member.name?.text;
|
|
392
|
+
if (!name || name === 'constructor' || String(name).startsWith('_'))
|
|
393
|
+
return false;
|
|
394
|
+
return true;
|
|
395
|
+
})
|
|
396
|
+
.map((method) => {
|
|
397
|
+
const docs = getNodeDocHelper(ts, method);
|
|
398
|
+
return {
|
|
399
|
+
name: method.name.getText ? method.name.getText() : method.name.text,
|
|
400
|
+
summary: docs.summary,
|
|
401
|
+
description: docs.description,
|
|
402
|
+
inputSchema: undefined,
|
|
403
|
+
outputSchema: undefined,
|
|
404
|
+
};
|
|
405
|
+
});
|
|
406
|
+
return {
|
|
407
|
+
name: classNode.name.text,
|
|
408
|
+
methods,
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Helper to check if a node is of a specific TypeScript kind.
|
|
413
|
+
*/
|
|
414
|
+
function isKind(ts, node, kindName) {
|
|
415
|
+
const kind = ts.SyntaxKind[kindName];
|
|
416
|
+
return kind !== undefined && node.kind === kind;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Helper to extract JSDoc comments from a node.
|
|
420
|
+
*/
|
|
421
|
+
function getNodeDocHelper(_ts, node) {
|
|
422
|
+
const blocks = Array.isArray(node?.jsDoc) ? node.jsDoc : [];
|
|
423
|
+
if (blocks.length === 0)
|
|
424
|
+
return {};
|
|
425
|
+
const raw = blocks
|
|
426
|
+
.map((block) => {
|
|
427
|
+
if (typeof block.comment === 'string')
|
|
428
|
+
return block.comment;
|
|
429
|
+
if (Array.isArray(block.comment)) {
|
|
430
|
+
return block.comment.map((part) => part?.text ?? '').join('');
|
|
431
|
+
}
|
|
432
|
+
return '';
|
|
433
|
+
})
|
|
434
|
+
.join('\n')
|
|
435
|
+
.trim();
|
|
436
|
+
if (!raw)
|
|
437
|
+
return {};
|
|
438
|
+
const paragraphs = raw
|
|
439
|
+
.split(/\n\s*\n/)
|
|
440
|
+
.map((part) => part.trim())
|
|
441
|
+
.filter(Boolean);
|
|
442
|
+
if (paragraphs.length === 0)
|
|
443
|
+
return {};
|
|
444
|
+
return {
|
|
445
|
+
summary: paragraphs[0],
|
|
446
|
+
description: paragraphs.join('\n\n'),
|
|
447
|
+
};
|
|
448
|
+
}
|
|
188
449
|
//# 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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"}
|
package/dist/server/server.js
CHANGED