@portel/photon-core 2.8.3 → 2.9.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/base.d.ts +7 -7
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +8 -8
- package/dist/base.js.map +1 -1
- package/dist/collections/Collection.d.ts +2 -2
- package/dist/collections/Collection.js +2 -2
- package/dist/compiler.js +7 -7
- package/dist/compiler.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/instance-store.d.ts +64 -0
- package/dist/instance-store.d.ts.map +1 -0
- package/dist/instance-store.js +144 -0
- package/dist/instance-store.js.map +1 -0
- package/dist/memory.d.ts +2 -2
- package/dist/memory.js +2 -2
- package/dist/middleware.d.ts +69 -0
- package/dist/middleware.d.ts.map +1 -0
- package/dist/middleware.js +570 -0
- package/dist/middleware.js.map +1 -0
- package/dist/schema-extractor.d.ts +111 -1
- package/dist/schema-extractor.d.ts.map +1 -1
- package/dist/schema-extractor.js +362 -10
- package/dist/schema-extractor.js.map +1 -1
- package/dist/stateful.d.ts +2 -0
- package/dist/stateful.d.ts.map +1 -1
- package/dist/stateful.js +2 -0
- package/dist/stateful.js.map +1 -1
- package/dist/types.d.ts +111 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/duration.d.ts +24 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +64 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/watcher.d.ts +62 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +270 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +2 -2
- package/src/base.ts +8 -8
- package/src/collections/Collection.ts +2 -2
- package/src/compiler.ts +7 -7
- package/src/config.ts +1 -1
- package/src/index.ts +34 -4
- package/src/instance-store.ts +155 -0
- package/src/memory.ts +2 -2
- package/src/middleware.ts +714 -0
- package/src/schema-extractor.ts +381 -10
- package/src/stateful.ts +4 -0
- package/src/types.ts +106 -5
- package/src/utils/duration.ts +67 -0
- package/src/watcher.ts +317 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Now uses TypeScript's compiler API for robust type parsing
|
|
9
9
|
*/
|
|
10
10
|
import { ExtractedSchema, ConstructorParam, TemplateInfo, StaticInfo, MCPDependency, PhotonDependency, CLIDependency, ResolvedInjection, PhotonAssets, ConfigSchema } from './types.js';
|
|
11
|
+
import { type MiddlewareDeclaration } from './middleware.js';
|
|
11
12
|
export interface ExtractedMetadata {
|
|
12
13
|
tools: ExtractedSchema[];
|
|
13
14
|
templates: TemplateInfo[];
|
|
@@ -81,6 +82,27 @@ export declare class SchemaExtractor {
|
|
|
81
82
|
* Extract default value from initializer
|
|
82
83
|
*/
|
|
83
84
|
private extractDefaultValue;
|
|
85
|
+
/**
|
|
86
|
+
* Parse inline {@prop value} config from a string
|
|
87
|
+
* @example parseInlineConfig('{@ttl 5m} {@key params.userId}')
|
|
88
|
+
* → { ttl: '5m', key: 'params.userId' }
|
|
89
|
+
*/
|
|
90
|
+
parseInlineConfig(text: string): Record<string, string>;
|
|
91
|
+
/**
|
|
92
|
+
* Extract @use declarations from JSDoc
|
|
93
|
+
* @example extractUseDeclarations('* @use audit {@level info} {@tags api}')
|
|
94
|
+
* → [{ name: 'audit', rawConfig: { level: 'info', tags: 'api' } }]
|
|
95
|
+
*/
|
|
96
|
+
extractUseDeclarations(jsdocContent: string): Array<{
|
|
97
|
+
name: string;
|
|
98
|
+
rawConfig: Record<string, string>;
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Build middleware declarations from all tags on a method's JSDoc.
|
|
102
|
+
* Converts both sugar tags (@cached 5m) and @use tags into a unified
|
|
103
|
+
* MiddlewareDeclaration[] array.
|
|
104
|
+
*/
|
|
105
|
+
buildMiddlewareDeclarations(jsdocContent: string): MiddlewareDeclaration[];
|
|
84
106
|
/**
|
|
85
107
|
* Extract main description from JSDoc comment
|
|
86
108
|
*/
|
|
@@ -150,6 +172,80 @@ export declare class SchemaExtractor {
|
|
|
150
172
|
* - @locked board:write → custom lock name
|
|
151
173
|
*/
|
|
152
174
|
private extractLocked;
|
|
175
|
+
/**
|
|
176
|
+
* Extract logging config from @logged tag
|
|
177
|
+
* - @logged → info level
|
|
178
|
+
* - @logged debug → debug level
|
|
179
|
+
*/
|
|
180
|
+
private extractLogged;
|
|
181
|
+
/**
|
|
182
|
+
* Extract fallback value from @fallback tag
|
|
183
|
+
* - @fallback [] → empty array on error
|
|
184
|
+
* - @fallback {} → empty object on error
|
|
185
|
+
* - @fallback null → null on error
|
|
186
|
+
* - @fallback 0 → zero on error
|
|
187
|
+
*/
|
|
188
|
+
private extractFallback;
|
|
189
|
+
/**
|
|
190
|
+
* Extract circuit breaker configuration from @circuitBreaker tag
|
|
191
|
+
* - @circuitBreaker 5 30s → 5 failures, 30s reset
|
|
192
|
+
* - @circuitBreaker 3 1m → 3 failures, 1 minute reset
|
|
193
|
+
*/
|
|
194
|
+
private extractCircuitBreaker;
|
|
195
|
+
/**
|
|
196
|
+
* Extract cache configuration from @cached tag
|
|
197
|
+
* - @cached → default 5m TTL
|
|
198
|
+
* - @cached 30s → 30 second TTL
|
|
199
|
+
* - @cached 1h → 1 hour TTL
|
|
200
|
+
*/
|
|
201
|
+
private extractCached;
|
|
202
|
+
/**
|
|
203
|
+
* Extract timeout configuration from @timeout tag
|
|
204
|
+
* - @timeout 30s → 30 second timeout
|
|
205
|
+
* - @timeout 5m → 5 minute timeout
|
|
206
|
+
*/
|
|
207
|
+
private extractTimeout;
|
|
208
|
+
/**
|
|
209
|
+
* Extract retry configuration from @retryable tag
|
|
210
|
+
* - @retryable → default 3 retries, 1s delay
|
|
211
|
+
* - @retryable 5 → 5 retries, 1s delay
|
|
212
|
+
* - @retryable 3 2s → 3 retries, 2s delay
|
|
213
|
+
*/
|
|
214
|
+
private extractRetryable;
|
|
215
|
+
/**
|
|
216
|
+
* Extract throttle configuration from @throttled tag
|
|
217
|
+
* - @throttled 10/min → 10 calls per minute
|
|
218
|
+
* - @throttled 100/h → 100 calls per hour
|
|
219
|
+
*/
|
|
220
|
+
private extractThrottled;
|
|
221
|
+
/**
|
|
222
|
+
* Extract debounce configuration from @debounced tag
|
|
223
|
+
* - @debounced → default 500ms
|
|
224
|
+
* - @debounced 200ms → 200ms delay
|
|
225
|
+
* - @debounced 1s → 1 second delay
|
|
226
|
+
*/
|
|
227
|
+
private extractDebounced;
|
|
228
|
+
/**
|
|
229
|
+
* Extract queue configuration from @queued tag
|
|
230
|
+
* - @queued → default concurrency 1
|
|
231
|
+
* - @queued 3 → concurrency 3
|
|
232
|
+
*/
|
|
233
|
+
private extractQueued;
|
|
234
|
+
/**
|
|
235
|
+
* Extract validation rules from @validate tags
|
|
236
|
+
* - @validate params.email must be a valid email
|
|
237
|
+
* - @validate params.amount must be positive
|
|
238
|
+
*/
|
|
239
|
+
private extractValidations;
|
|
240
|
+
/**
|
|
241
|
+
* Extract deprecation notice from @deprecated tag (class-level, not param-level)
|
|
242
|
+
* - @deprecated → true
|
|
243
|
+
* - @deprecated Use addV2 instead → "Use addV2 instead"
|
|
244
|
+
*
|
|
245
|
+
* Note: Only matches @deprecated at the start of a JSDoc line (after * prefix),
|
|
246
|
+
* NOT inside {@deprecated} inline tags (those are param-level).
|
|
247
|
+
*/
|
|
248
|
+
private extractDeprecated;
|
|
153
249
|
/**
|
|
154
250
|
* Extract URI pattern from @Static tag
|
|
155
251
|
* Example: @Static github://repos/{owner}/{repo}/readme
|
|
@@ -292,7 +388,7 @@ export declare class SchemaExtractor {
|
|
|
292
388
|
* * @prompt system ./prompts/system.md
|
|
293
389
|
* * @resource config ./resources/config.json
|
|
294
390
|
* *\/
|
|
295
|
-
* export default class MyPhoton extends
|
|
391
|
+
* export default class MyPhoton extends Photon { ... }
|
|
296
392
|
* ```
|
|
297
393
|
*/
|
|
298
394
|
extractAssets(source: string, assetFolder?: string): PhotonAssets;
|
|
@@ -324,4 +420,18 @@ export declare class SchemaExtractor {
|
|
|
324
420
|
*/
|
|
325
421
|
private getMimeTypeFromPath;
|
|
326
422
|
}
|
|
423
|
+
/**
|
|
424
|
+
* Capability types that can be auto-detected from source code
|
|
425
|
+
*/
|
|
426
|
+
export type PhotonCapability = 'emit' | 'memory' | 'call' | 'mcp' | 'lock' | 'instanceMeta' | 'allInstances';
|
|
427
|
+
/**
|
|
428
|
+
* Detect capabilities used by a Photon from its source code.
|
|
429
|
+
*
|
|
430
|
+
* Scans for `this.emit(`, `this.memory`, `this.call(`, etc. patterns
|
|
431
|
+
* and returns the set of capabilities that the runtime should inject.
|
|
432
|
+
*
|
|
433
|
+
* This enables plain classes (no extends Photon) to use all framework
|
|
434
|
+
* features — the loader detects usage and injects automatically.
|
|
435
|
+
*/
|
|
436
|
+
export declare function detectCapabilities(source: string): Set<PhotonCapability>;
|
|
327
437
|
//# sourceMappingURL=schema-extractor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-extractor.d.ts","sourceRoot":"","sources":["../src/schema-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAA2B,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAuC,YAAY,EAAe,MAAM,YAAY,CAAC;AAEnQ,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAUnE;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;
|
|
1
|
+
{"version":3,"file":"schema-extractor.d.ts","sourceRoot":"","sources":["../src/schema-extractor.ts"],"names":[],"mappings":"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"}
|
package/dist/schema-extractor.js
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import * as fs from 'fs/promises';
|
|
11
11
|
import * as ts from 'typescript';
|
|
12
|
+
import { parseDuration, parseRate } from './utils/duration.js';
|
|
13
|
+
import { builtinRegistry } from './middleware.js';
|
|
12
14
|
/**
|
|
13
15
|
* Extract schemas from a Photon MCP class file
|
|
14
16
|
*/
|
|
@@ -145,6 +147,20 @@ export class SchemaExtractor {
|
|
|
145
147
|
const webhook = this.extractWebhook(jsdoc, methodName);
|
|
146
148
|
const scheduled = this.extractScheduled(jsdoc, methodName);
|
|
147
149
|
const locked = this.extractLocked(jsdoc, methodName);
|
|
150
|
+
// Functional tags — individual fields kept for backward compat
|
|
151
|
+
const fallback = this.extractFallback(jsdoc);
|
|
152
|
+
const logged = this.extractLogged(jsdoc);
|
|
153
|
+
const circuitBreaker = this.extractCircuitBreaker(jsdoc);
|
|
154
|
+
const cached = this.extractCached(jsdoc);
|
|
155
|
+
const timeout = this.extractTimeout(jsdoc);
|
|
156
|
+
const retryable = this.extractRetryable(jsdoc);
|
|
157
|
+
const throttled = this.extractThrottled(jsdoc);
|
|
158
|
+
const debounced = this.extractDebounced(jsdoc);
|
|
159
|
+
const queued = this.extractQueued(jsdoc);
|
|
160
|
+
const validations = this.extractValidations(jsdoc);
|
|
161
|
+
const deprecated = this.extractDeprecated(jsdoc);
|
|
162
|
+
// Build unified middleware declarations (single source of truth for runtime)
|
|
163
|
+
const middleware = this.buildMiddlewareDeclarations(jsdoc);
|
|
148
164
|
// Check for static keyword on the method
|
|
149
165
|
const isStaticMethod = member.modifiers?.some(m => m.kind === ts.SyntaxKind.StaticKeyword) || false;
|
|
150
166
|
tools.push({
|
|
@@ -166,6 +182,20 @@ export class SchemaExtractor {
|
|
|
166
182
|
...(webhook !== undefined ? { webhook } : {}),
|
|
167
183
|
...(scheduled ? { scheduled } : {}),
|
|
168
184
|
...(locked !== undefined ? { locked } : {}),
|
|
185
|
+
// Functional tags (individual fields for backward compat)
|
|
186
|
+
...(fallback ? { fallback } : {}),
|
|
187
|
+
...(logged ? { logged } : {}),
|
|
188
|
+
...(circuitBreaker ? { circuitBreaker } : {}),
|
|
189
|
+
...(cached ? { cached } : {}),
|
|
190
|
+
...(timeout ? { timeout } : {}),
|
|
191
|
+
...(retryable ? { retryable } : {}),
|
|
192
|
+
...(throttled ? { throttled } : {}),
|
|
193
|
+
...(debounced ? { debounced } : {}),
|
|
194
|
+
...(queued ? { queued } : {}),
|
|
195
|
+
...(validations && validations.length > 0 ? { validations } : {}),
|
|
196
|
+
...(deprecated !== undefined ? { deprecated } : {}),
|
|
197
|
+
// Unified middleware declarations (new — runtime uses this)
|
|
198
|
+
...(middleware.length > 0 ? { middleware } : {}),
|
|
169
199
|
});
|
|
170
200
|
}
|
|
171
201
|
};
|
|
@@ -604,26 +634,176 @@ export class SchemaExtractor {
|
|
|
604
634
|
// For complex expressions (function calls, etc.), return as string
|
|
605
635
|
return initializer.getText(sourceFile);
|
|
606
636
|
}
|
|
637
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
638
|
+
// INLINE CONFIG + @use PARSING
|
|
639
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
640
|
+
/**
|
|
641
|
+
* Parse inline {@prop value} config from a string
|
|
642
|
+
* @example parseInlineConfig('{@ttl 5m} {@key params.userId}')
|
|
643
|
+
* → { ttl: '5m', key: 'params.userId' }
|
|
644
|
+
*/
|
|
645
|
+
parseInlineConfig(text) {
|
|
646
|
+
const config = {};
|
|
647
|
+
const regex = /\{@(\w+)\s+([^}]+)\}/g;
|
|
648
|
+
let match;
|
|
649
|
+
while ((match = regex.exec(text)) !== null) {
|
|
650
|
+
config[match[1]] = match[2].trim();
|
|
651
|
+
}
|
|
652
|
+
return config;
|
|
653
|
+
}
|
|
654
|
+
/**
|
|
655
|
+
* Extract @use declarations from JSDoc
|
|
656
|
+
* @example extractUseDeclarations('* @use audit {@level info} {@tags api}')
|
|
657
|
+
* → [{ name: 'audit', rawConfig: { level: 'info', tags: 'api' } }]
|
|
658
|
+
*/
|
|
659
|
+
extractUseDeclarations(jsdocContent) {
|
|
660
|
+
const declarations = [];
|
|
661
|
+
const regex = /@use\s+([\w][\w-]*)((?:\s+\{@\w+\s+[^}]+\})*)/g;
|
|
662
|
+
let match;
|
|
663
|
+
while ((match = regex.exec(jsdocContent)) !== null) {
|
|
664
|
+
const name = match[1];
|
|
665
|
+
const configStr = match[2] || '';
|
|
666
|
+
const rawConfig = this.parseInlineConfig(configStr);
|
|
667
|
+
declarations.push({ name, rawConfig });
|
|
668
|
+
}
|
|
669
|
+
return declarations;
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* Build middleware declarations from all tags on a method's JSDoc.
|
|
673
|
+
* Converts both sugar tags (@cached 5m) and @use tags into a unified
|
|
674
|
+
* MiddlewareDeclaration[] array.
|
|
675
|
+
*/
|
|
676
|
+
buildMiddlewareDeclarations(jsdocContent) {
|
|
677
|
+
const declarations = [];
|
|
678
|
+
// 1. Extract sugar tags → convert to declarations
|
|
679
|
+
// @fallback
|
|
680
|
+
const fallback = this.extractFallback(jsdocContent);
|
|
681
|
+
if (fallback) {
|
|
682
|
+
const def = builtinRegistry.get('fallback');
|
|
683
|
+
declarations.push({ name: 'fallback', config: fallback, phase: def?.phase ?? 3 });
|
|
684
|
+
}
|
|
685
|
+
// @logged
|
|
686
|
+
const logged = this.extractLogged(jsdocContent);
|
|
687
|
+
if (logged) {
|
|
688
|
+
const def = builtinRegistry.get('logged');
|
|
689
|
+
declarations.push({ name: 'logged', config: logged, phase: def?.phase ?? 5 });
|
|
690
|
+
}
|
|
691
|
+
// @circuitBreaker
|
|
692
|
+
const circuitBreaker = this.extractCircuitBreaker(jsdocContent);
|
|
693
|
+
if (circuitBreaker) {
|
|
694
|
+
const def = builtinRegistry.get('circuitBreaker');
|
|
695
|
+
declarations.push({ name: 'circuitBreaker', config: circuitBreaker, phase: def?.phase ?? 8 });
|
|
696
|
+
}
|
|
697
|
+
// @cached
|
|
698
|
+
const cached = this.extractCached(jsdocContent);
|
|
699
|
+
if (cached) {
|
|
700
|
+
const def = builtinRegistry.get('cached');
|
|
701
|
+
declarations.push({ name: 'cached', config: cached, phase: def?.phase ?? 30 });
|
|
702
|
+
}
|
|
703
|
+
// @timeout
|
|
704
|
+
const timeout = this.extractTimeout(jsdocContent);
|
|
705
|
+
if (timeout) {
|
|
706
|
+
const def = builtinRegistry.get('timeout');
|
|
707
|
+
declarations.push({ name: 'timeout', config: timeout, phase: def?.phase ?? 70 });
|
|
708
|
+
}
|
|
709
|
+
// @retryable
|
|
710
|
+
const retryable = this.extractRetryable(jsdocContent);
|
|
711
|
+
if (retryable) {
|
|
712
|
+
const def = builtinRegistry.get('retryable');
|
|
713
|
+
declarations.push({ name: 'retryable', config: retryable, phase: def?.phase ?? 80 });
|
|
714
|
+
}
|
|
715
|
+
// @throttled
|
|
716
|
+
const throttled = this.extractThrottled(jsdocContent);
|
|
717
|
+
if (throttled) {
|
|
718
|
+
const def = builtinRegistry.get('throttled');
|
|
719
|
+
declarations.push({ name: 'throttled', config: throttled, phase: def?.phase ?? 10 });
|
|
720
|
+
}
|
|
721
|
+
// @debounced
|
|
722
|
+
const debounced = this.extractDebounced(jsdocContent);
|
|
723
|
+
if (debounced) {
|
|
724
|
+
const def = builtinRegistry.get('debounced');
|
|
725
|
+
declarations.push({ name: 'debounced', config: debounced, phase: def?.phase ?? 20 });
|
|
726
|
+
}
|
|
727
|
+
// @queued
|
|
728
|
+
const queued = this.extractQueued(jsdocContent);
|
|
729
|
+
if (queued) {
|
|
730
|
+
const def = builtinRegistry.get('queued');
|
|
731
|
+
declarations.push({ name: 'queued', config: queued, phase: def?.phase ?? 50 });
|
|
732
|
+
}
|
|
733
|
+
// @validate
|
|
734
|
+
const validations = this.extractValidations(jsdocContent);
|
|
735
|
+
if (validations && validations.length > 0) {
|
|
736
|
+
const def = builtinRegistry.get('validate');
|
|
737
|
+
declarations.push({ name: 'validate', config: { validations }, phase: def?.phase ?? 40 });
|
|
738
|
+
}
|
|
739
|
+
// @locked (handled as middleware when it appears as a functional tag)
|
|
740
|
+
const lockedMatch = jsdocContent.match(/@locked(?:\s+(\w[\w\-:]*))?/i);
|
|
741
|
+
if (lockedMatch) {
|
|
742
|
+
const lockName = lockedMatch[1]?.trim() || '';
|
|
743
|
+
const def = builtinRegistry.get('locked');
|
|
744
|
+
declarations.push({ name: 'locked', config: { name: lockName }, phase: def?.phase ?? 60 });
|
|
745
|
+
}
|
|
746
|
+
// 2. Extract @use declarations
|
|
747
|
+
const useDecls = this.extractUseDeclarations(jsdocContent);
|
|
748
|
+
for (const { name, rawConfig } of useDecls) {
|
|
749
|
+
// Check if this is a built-in (allow @use cached {@ttl 5m} syntax)
|
|
750
|
+
const def = builtinRegistry.get(name);
|
|
751
|
+
if (def) {
|
|
752
|
+
// Use parseConfig if available, otherwise pass raw
|
|
753
|
+
const config = def.parseConfig ? def.parseConfig(rawConfig) : rawConfig;
|
|
754
|
+
// Don't duplicate if sugar tag already added this middleware
|
|
755
|
+
if (!declarations.some(d => d.name === name)) {
|
|
756
|
+
declarations.push({ name, config, phase: def.phase ?? 45 });
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
else {
|
|
760
|
+
// Custom middleware — phase defaults to 45
|
|
761
|
+
declarations.push({ name, config: rawConfig, phase: 45 });
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
return declarations;
|
|
765
|
+
}
|
|
607
766
|
/**
|
|
608
767
|
* Extract main description from JSDoc comment
|
|
609
768
|
*/
|
|
610
769
|
extractDescription(jsdocContent) {
|
|
611
|
-
// Split by @
|
|
612
|
-
|
|
770
|
+
// Split by @tags that appear at start of a JSDoc line (after optional * prefix)
|
|
771
|
+
// This avoids matching @tag references inline in description text
|
|
772
|
+
const beforeTags = jsdocContent.split(/(?:^|\n)\s*\*?\s*@(?:param|example|returns?|throws?|see|since|deprecated|version|author|license|ui|icon|format|stateful|autorun|async|webhook|cron|scheduled|locked|fallback|logged|circuitBreaker|cached|timeout|retryable|throttled|debounced|queued|validate|use|Template|Static|mcp|photon|cli|tags|dependencies|csp|visibility)\b/)[0];
|
|
613
773
|
// Remove leading * from each line and trim
|
|
614
774
|
const lines = beforeTags
|
|
615
775
|
.split('\n')
|
|
616
|
-
.map((line) => line.trim().replace(/^\*\s?/, ''))
|
|
617
|
-
|
|
618
|
-
//
|
|
619
|
-
|
|
776
|
+
.map((line) => line.trim().replace(/^\*\s?/, ''));
|
|
777
|
+
// Build description with paragraph-aware joining:
|
|
778
|
+
// - Blank lines = paragraph boundaries (insert period separator)
|
|
779
|
+
// - Non-blank consecutive lines = continuation (join with space)
|
|
780
|
+
let prevWasBlank = false;
|
|
781
|
+
const parts = [];
|
|
620
782
|
for (const line of lines) {
|
|
783
|
+
if (line.length === 0) {
|
|
784
|
+
prevWasBlank = true;
|
|
785
|
+
continue;
|
|
786
|
+
}
|
|
787
|
+
// Stop at markdown headings (## sections are extended docs)
|
|
621
788
|
if (line.startsWith('#'))
|
|
622
789
|
break;
|
|
623
|
-
|
|
790
|
+
if (parts.length === 0) {
|
|
791
|
+
parts.push(line);
|
|
792
|
+
}
|
|
793
|
+
else if (prevWasBlank) {
|
|
794
|
+
// Paragraph break — add period if previous part doesn't end with punctuation
|
|
795
|
+
const prev = parts[parts.length - 1];
|
|
796
|
+
const needsPeriod = !/[.!?:,;]$/.test(prev);
|
|
797
|
+
parts[parts.length - 1] = prev + (needsPeriod ? '. ' : ' ');
|
|
798
|
+
parts.push(line);
|
|
799
|
+
}
|
|
800
|
+
else {
|
|
801
|
+
// Continuation line — join with space
|
|
802
|
+
parts[parts.length - 1] += ' ' + line;
|
|
803
|
+
}
|
|
804
|
+
prevWasBlank = false;
|
|
624
805
|
}
|
|
625
|
-
|
|
626
|
-
const description = descLines.join(' ');
|
|
806
|
+
const description = parts.join('');
|
|
627
807
|
// Clean up multiple spaces
|
|
628
808
|
return description.replace(/\s+/g, ' ').trim() || 'No description';
|
|
629
809
|
}
|
|
@@ -1061,6 +1241,151 @@ export class SchemaExtractor {
|
|
|
1061
1241
|
}
|
|
1062
1242
|
return undefined;
|
|
1063
1243
|
}
|
|
1244
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
1245
|
+
// FUNCTIONAL TAG EXTRACTION
|
|
1246
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
1247
|
+
/**
|
|
1248
|
+
* Extract logging config from @logged tag
|
|
1249
|
+
* - @logged → info level
|
|
1250
|
+
* - @logged debug → debug level
|
|
1251
|
+
*/
|
|
1252
|
+
extractLogged(jsdocContent) {
|
|
1253
|
+
const match = jsdocContent.match(/@logged(?:\s+(\w+))?/i);
|
|
1254
|
+
if (!match)
|
|
1255
|
+
return undefined;
|
|
1256
|
+
return { level: match[1]?.trim() || 'info' };
|
|
1257
|
+
}
|
|
1258
|
+
/**
|
|
1259
|
+
* Extract fallback value from @fallback tag
|
|
1260
|
+
* - @fallback [] → empty array on error
|
|
1261
|
+
* - @fallback {} → empty object on error
|
|
1262
|
+
* - @fallback null → null on error
|
|
1263
|
+
* - @fallback 0 → zero on error
|
|
1264
|
+
*/
|
|
1265
|
+
extractFallback(jsdocContent) {
|
|
1266
|
+
const match = jsdocContent.match(/@fallback\s+(.+?)(?:\s*$|\s*\n|\s*\*)/m);
|
|
1267
|
+
if (!match)
|
|
1268
|
+
return undefined;
|
|
1269
|
+
return { value: match[1].trim() };
|
|
1270
|
+
}
|
|
1271
|
+
/**
|
|
1272
|
+
* Extract circuit breaker configuration from @circuitBreaker tag
|
|
1273
|
+
* - @circuitBreaker 5 30s → 5 failures, 30s reset
|
|
1274
|
+
* - @circuitBreaker 3 1m → 3 failures, 1 minute reset
|
|
1275
|
+
*/
|
|
1276
|
+
extractCircuitBreaker(jsdocContent) {
|
|
1277
|
+
const match = jsdocContent.match(/@circuitBreaker\s+(\d+)\s+(\d+(?:ms|s|sec|m|min|h|hr|d|day))/i);
|
|
1278
|
+
if (!match)
|
|
1279
|
+
return undefined;
|
|
1280
|
+
return { threshold: parseInt(match[1], 10), resetAfter: match[2] };
|
|
1281
|
+
}
|
|
1282
|
+
/**
|
|
1283
|
+
* Extract cache configuration from @cached tag
|
|
1284
|
+
* - @cached → default 5m TTL
|
|
1285
|
+
* - @cached 30s → 30 second TTL
|
|
1286
|
+
* - @cached 1h → 1 hour TTL
|
|
1287
|
+
*/
|
|
1288
|
+
extractCached(jsdocContent) {
|
|
1289
|
+
const match = jsdocContent.match(/@cached(?:\s+(\d+(?:ms|s|sec|m|min|h|hr|d|day)))?/i);
|
|
1290
|
+
if (!match)
|
|
1291
|
+
return undefined;
|
|
1292
|
+
const ttl = match[1] ? parseDuration(match[1]) : 300_000; // default 5m
|
|
1293
|
+
return { ttl };
|
|
1294
|
+
}
|
|
1295
|
+
/**
|
|
1296
|
+
* Extract timeout configuration from @timeout tag
|
|
1297
|
+
* - @timeout 30s → 30 second timeout
|
|
1298
|
+
* - @timeout 5m → 5 minute timeout
|
|
1299
|
+
*/
|
|
1300
|
+
extractTimeout(jsdocContent) {
|
|
1301
|
+
const match = jsdocContent.match(/@timeout\s+(\d+(?:ms|s|sec|m|min|h|hr|d|day))/i);
|
|
1302
|
+
if (!match)
|
|
1303
|
+
return undefined;
|
|
1304
|
+
return { ms: parseDuration(match[1]) };
|
|
1305
|
+
}
|
|
1306
|
+
/**
|
|
1307
|
+
* Extract retry configuration from @retryable tag
|
|
1308
|
+
* - @retryable → default 3 retries, 1s delay
|
|
1309
|
+
* - @retryable 5 → 5 retries, 1s delay
|
|
1310
|
+
* - @retryable 3 2s → 3 retries, 2s delay
|
|
1311
|
+
*/
|
|
1312
|
+
extractRetryable(jsdocContent) {
|
|
1313
|
+
const match = jsdocContent.match(/@retryable(?:\s+(\d+))?(?:\s+(\d+(?:ms|s|sec|m|min|h|hr|d|day)))?/i);
|
|
1314
|
+
if (!match)
|
|
1315
|
+
return undefined;
|
|
1316
|
+
const count = match[1] ? parseInt(match[1], 10) : 3;
|
|
1317
|
+
const delay = match[2] ? parseDuration(match[2]) : 1_000;
|
|
1318
|
+
return { count, delay };
|
|
1319
|
+
}
|
|
1320
|
+
/**
|
|
1321
|
+
* Extract throttle configuration from @throttled tag
|
|
1322
|
+
* - @throttled 10/min → 10 calls per minute
|
|
1323
|
+
* - @throttled 100/h → 100 calls per hour
|
|
1324
|
+
*/
|
|
1325
|
+
extractThrottled(jsdocContent) {
|
|
1326
|
+
const match = jsdocContent.match(/@throttled\s+(\d+\/(?:s|sec|m|min|h|hr|d|day))/i);
|
|
1327
|
+
if (!match)
|
|
1328
|
+
return undefined;
|
|
1329
|
+
return parseRate(match[1]);
|
|
1330
|
+
}
|
|
1331
|
+
/**
|
|
1332
|
+
* Extract debounce configuration from @debounced tag
|
|
1333
|
+
* - @debounced → default 500ms
|
|
1334
|
+
* - @debounced 200ms → 200ms delay
|
|
1335
|
+
* - @debounced 1s → 1 second delay
|
|
1336
|
+
*/
|
|
1337
|
+
extractDebounced(jsdocContent) {
|
|
1338
|
+
const match = jsdocContent.match(/@debounced(?:\s+(\d+(?:ms|s|sec|m|min|h|hr|d|day)))?/i);
|
|
1339
|
+
if (!match)
|
|
1340
|
+
return undefined;
|
|
1341
|
+
const delay = match[1] ? parseDuration(match[1]) : 500;
|
|
1342
|
+
return { delay };
|
|
1343
|
+
}
|
|
1344
|
+
/**
|
|
1345
|
+
* Extract queue configuration from @queued tag
|
|
1346
|
+
* - @queued → default concurrency 1
|
|
1347
|
+
* - @queued 3 → concurrency 3
|
|
1348
|
+
*/
|
|
1349
|
+
extractQueued(jsdocContent) {
|
|
1350
|
+
const match = jsdocContent.match(/@queued(?:\s+(\d+))?/i);
|
|
1351
|
+
if (!match)
|
|
1352
|
+
return undefined;
|
|
1353
|
+
const concurrency = match[1] ? parseInt(match[1], 10) : 1;
|
|
1354
|
+
return { concurrency };
|
|
1355
|
+
}
|
|
1356
|
+
/**
|
|
1357
|
+
* Extract validation rules from @validate tags
|
|
1358
|
+
* - @validate params.email must be a valid email
|
|
1359
|
+
* - @validate params.amount must be positive
|
|
1360
|
+
*/
|
|
1361
|
+
extractValidations(jsdocContent) {
|
|
1362
|
+
const validations = [];
|
|
1363
|
+
const regex = /@validate\s+([\w.]+)\s+(.+)/g;
|
|
1364
|
+
let match;
|
|
1365
|
+
while ((match = regex.exec(jsdocContent)) !== null) {
|
|
1366
|
+
validations.push({
|
|
1367
|
+
field: match[1].replace(/^params\./, ''), // strip params. prefix
|
|
1368
|
+
rule: match[2].trim().replace(/\*\/$/, '').trim(), // strip JSDoc closing
|
|
1369
|
+
});
|
|
1370
|
+
}
|
|
1371
|
+
return validations.length > 0 ? validations : undefined;
|
|
1372
|
+
}
|
|
1373
|
+
/**
|
|
1374
|
+
* Extract deprecation notice from @deprecated tag (class-level, not param-level)
|
|
1375
|
+
* - @deprecated → true
|
|
1376
|
+
* - @deprecated Use addV2 instead → "Use addV2 instead"
|
|
1377
|
+
*
|
|
1378
|
+
* Note: Only matches @deprecated at the start of a JSDoc line (after * prefix),
|
|
1379
|
+
* NOT inside {@deprecated} inline tags (those are param-level).
|
|
1380
|
+
*/
|
|
1381
|
+
extractDeprecated(jsdocContent) {
|
|
1382
|
+
// Match @deprecated at start of line (with optional * prefix), not inside {}
|
|
1383
|
+
const match = jsdocContent.match(/(?:^|\n)\s*\*?\s*@deprecated(?:\s+([^\n*]+))?/i);
|
|
1384
|
+
if (!match)
|
|
1385
|
+
return undefined;
|
|
1386
|
+
const message = match[1]?.trim();
|
|
1387
|
+
return message || true;
|
|
1388
|
+
}
|
|
1064
1389
|
/**
|
|
1065
1390
|
* Extract URI pattern from @Static tag
|
|
1066
1391
|
* Example: @Static github://repos/{owner}/{repo}/readme
|
|
@@ -1434,7 +1759,7 @@ export class SchemaExtractor {
|
|
|
1434
1759
|
* * @prompt system ./prompts/system.md
|
|
1435
1760
|
* * @resource config ./resources/config.json
|
|
1436
1761
|
* *\/
|
|
1437
|
-
* export default class MyPhoton extends
|
|
1762
|
+
* export default class MyPhoton extends Photon { ... }
|
|
1438
1763
|
* ```
|
|
1439
1764
|
*/
|
|
1440
1765
|
extractAssets(source, assetFolder) {
|
|
@@ -1579,4 +1904,31 @@ export class SchemaExtractor {
|
|
|
1579
1904
|
return mimeTypes[ext] || 'application/octet-stream';
|
|
1580
1905
|
}
|
|
1581
1906
|
}
|
|
1907
|
+
/**
|
|
1908
|
+
* Detect capabilities used by a Photon from its source code.
|
|
1909
|
+
*
|
|
1910
|
+
* Scans for `this.emit(`, `this.memory`, `this.call(`, etc. patterns
|
|
1911
|
+
* and returns the set of capabilities that the runtime should inject.
|
|
1912
|
+
*
|
|
1913
|
+
* This enables plain classes (no extends Photon) to use all framework
|
|
1914
|
+
* features — the loader detects usage and injects automatically.
|
|
1915
|
+
*/
|
|
1916
|
+
export function detectCapabilities(source) {
|
|
1917
|
+
const caps = new Set();
|
|
1918
|
+
if (/this\.emit\s*\(/.test(source))
|
|
1919
|
+
caps.add('emit');
|
|
1920
|
+
if (/this\.memory\b/.test(source))
|
|
1921
|
+
caps.add('memory');
|
|
1922
|
+
if (/this\.call\s*\(/.test(source))
|
|
1923
|
+
caps.add('call');
|
|
1924
|
+
if (/this\.mcp\s*\(/.test(source))
|
|
1925
|
+
caps.add('mcp');
|
|
1926
|
+
if (/this\.withLock\s*\(/.test(source))
|
|
1927
|
+
caps.add('lock');
|
|
1928
|
+
if (/this\.instanceMeta\b/.test(source))
|
|
1929
|
+
caps.add('instanceMeta');
|
|
1930
|
+
if (/this\.allInstances\s*\(/.test(source))
|
|
1931
|
+
caps.add('allInstances');
|
|
1932
|
+
return caps;
|
|
1933
|
+
}
|
|
1582
1934
|
//# sourceMappingURL=schema-extractor.js.map
|