binja 0.1.1 → 0.2.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/README.md +97 -2
- package/dist/cli.d.ts +16 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +2316 -0
- package/dist/compiler/flattener.d.ts +36 -0
- package/dist/compiler/flattener.d.ts.map +1 -0
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/debug/collector.d.ts +73 -0
- package/dist/debug/collector.d.ts.map +1 -0
- package/dist/debug/index.d.ts +54 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/panel.d.ts +16 -0
- package/dist/debug/panel.d.ts.map +1 -0
- package/dist/filters/index.d.ts +20 -0
- package/dist/filters/index.d.ts.map +1 -1
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1455 -4
- package/dist/lexer/index.d.ts +2 -0
- package/dist/lexer/index.d.ts.map +1 -1
- package/package.json +12 -2
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Template Flattener - Resolves template inheritance at compile-time
|
|
3
|
+
*
|
|
4
|
+
* This module flattens template inheritance chains (extends/include/block)
|
|
5
|
+
* into a single AST that can be compiled to AOT JavaScript.
|
|
6
|
+
*
|
|
7
|
+
* Requirements:
|
|
8
|
+
* - extends/include must use static string literals (not variables)
|
|
9
|
+
* - Template loader must be provided to resolve template names
|
|
10
|
+
*/
|
|
11
|
+
import type { TemplateNode } from '../parser/nodes';
|
|
12
|
+
export interface TemplateLoader {
|
|
13
|
+
/** Load template source by name (sync for compile-time resolution) */
|
|
14
|
+
load(name: string): string;
|
|
15
|
+
/** Parse template source to AST */
|
|
16
|
+
parse(source: string): TemplateNode;
|
|
17
|
+
}
|
|
18
|
+
export interface FlattenOptions {
|
|
19
|
+
/** Template loader for resolving extends/include */
|
|
20
|
+
loader: TemplateLoader;
|
|
21
|
+
/** Maximum inheritance depth (default: 10) */
|
|
22
|
+
maxDepth?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Flatten a template AST by resolving all extends/include/block tags
|
|
26
|
+
* Returns a new AST with no inheritance - ready for AOT compilation
|
|
27
|
+
*/
|
|
28
|
+
export declare function flattenTemplate(ast: TemplateNode, options: FlattenOptions): TemplateNode;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a template can be flattened (all extends/include are static)
|
|
31
|
+
*/
|
|
32
|
+
export declare function canFlatten(ast: TemplateNode): {
|
|
33
|
+
canFlatten: boolean;
|
|
34
|
+
reason?: string;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=flattener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flattener.d.ts","sourceRoot":"","sources":["../../src/compiler/flattener.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAEV,YAAY,EASb,MAAM,iBAAiB,CAAA;AAExB,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IAC1B,mCAAmC;IACnC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAA;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,MAAM,EAAE,cAAc,CAAA;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,YAAY,CAGxF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAGtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,YAAY,EAqBb,MAAM,iBAAiB,CAAA;AAIxB,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,CAGvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAUvH;AAGD,QAAA,MAAM,cAAc;oBACF,GAAG,KAAG,MAAM;sBAQV,GAAG,KAAG,OAAO;qBAad,GAAG,KAAG,GAAG,EAAE;wBAWR,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,KAAG,GAAG;sBAM1C,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,KAAG,OAAO;CAK/D,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAEV,YAAY,EAqBb,MAAM,iBAAiB,CAAA;AAIxB,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qDAAqD;IACrD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qCAAqC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,uCAAuC;IACvC,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,CAGvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAUvH;AAGD,QAAA,MAAM,cAAc;oBACF,GAAG,KAAG,MAAM;sBAQV,GAAG,KAAG,OAAO;qBAad,GAAG,KAAG,GAAG,EAAE;wBAWR,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,KAAG,GAAG;sBAM1C,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,KAAG,OAAO;CAK/D,CAAA;AAucD,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Collector - Tracks rendering information for the debug panel
|
|
3
|
+
*/
|
|
4
|
+
export interface TemplateInfo {
|
|
5
|
+
name: string;
|
|
6
|
+
type: 'root' | 'extends' | 'include';
|
|
7
|
+
parent?: string;
|
|
8
|
+
renderTime?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface FilterUsage {
|
|
11
|
+
name: string;
|
|
12
|
+
count: number;
|
|
13
|
+
}
|
|
14
|
+
export interface ContextValue {
|
|
15
|
+
type: string;
|
|
16
|
+
preview: string;
|
|
17
|
+
value: any;
|
|
18
|
+
expandable: boolean;
|
|
19
|
+
children?: Record<string, ContextValue>;
|
|
20
|
+
}
|
|
21
|
+
export interface DebugData {
|
|
22
|
+
startTime: number;
|
|
23
|
+
endTime?: number;
|
|
24
|
+
totalTime?: number;
|
|
25
|
+
lexerTime?: number;
|
|
26
|
+
parserTime?: number;
|
|
27
|
+
renderTime?: number;
|
|
28
|
+
templateChain: TemplateInfo[];
|
|
29
|
+
rootTemplate?: string;
|
|
30
|
+
mode: 'runtime' | 'aot';
|
|
31
|
+
isAsync: boolean;
|
|
32
|
+
contextKeys: string[];
|
|
33
|
+
contextSnapshot: Record<string, ContextValue>;
|
|
34
|
+
filtersUsed: Map<string, number>;
|
|
35
|
+
testsUsed: Map<string, number>;
|
|
36
|
+
cacheHits: number;
|
|
37
|
+
cacheMisses: number;
|
|
38
|
+
warnings: string[];
|
|
39
|
+
}
|
|
40
|
+
export declare class DebugCollector {
|
|
41
|
+
private data;
|
|
42
|
+
constructor();
|
|
43
|
+
startLexer(): void;
|
|
44
|
+
endLexer(): void;
|
|
45
|
+
startParser(): void;
|
|
46
|
+
endParser(): void;
|
|
47
|
+
startRender(): void;
|
|
48
|
+
endRender(): void;
|
|
49
|
+
addTemplate(name: string, type: 'root' | 'extends' | 'include', parent?: string): void;
|
|
50
|
+
setMode(mode: 'runtime' | 'aot'): void;
|
|
51
|
+
setAsync(isAsync: boolean): void;
|
|
52
|
+
captureContext(context: Record<string, any>): void;
|
|
53
|
+
private captureValue;
|
|
54
|
+
private isExpandable;
|
|
55
|
+
private getType;
|
|
56
|
+
private getPreview;
|
|
57
|
+
recordFilter(name: string): void;
|
|
58
|
+
recordTest(name: string): void;
|
|
59
|
+
recordCacheHit(): void;
|
|
60
|
+
recordCacheMiss(): void;
|
|
61
|
+
addWarning(message: string): void;
|
|
62
|
+
getData(): DebugData;
|
|
63
|
+
getSummary(): {
|
|
64
|
+
totalTime: number;
|
|
65
|
+
templateCount: number;
|
|
66
|
+
filterCount: number;
|
|
67
|
+
mode: string;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export declare function startDebugCollection(): DebugCollector;
|
|
71
|
+
export declare function getDebugCollector(): DebugCollector | null;
|
|
72
|
+
export declare function endDebugCollection(): DebugData | null;
|
|
73
|
+
//# sourceMappingURL=collector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../src/debug/collector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,GAAG,CAAA;IACV,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CACxC;AAED,MAAM,WAAW,SAAS;IAExB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IAGnB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAA;IAGrB,IAAI,EAAE,SAAS,GAAG,KAAK,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAGhB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAG7C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAG9B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IAGnB,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAW;;IAmBvB,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,IAAI;IAMhB,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,IAAI;IAMjB,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,IAAI;IASjB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQtF,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI;IAItC,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKhC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAOlD,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,UAAU;IAmClB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK9B,cAAc,IAAI,IAAI;IAItB,eAAe,IAAI,IAAI;IAKvB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,OAAO,IAAI,SAAS;IAKpB,UAAU,IAAI;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,IAAI,EAAE,MAAM,CAAA;KACb;CAQF;AAKD,wBAAgB,oBAAoB,IAAI,cAAc,CAGrD;AAED,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAEzD;AAED,wBAAgB,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAOrD"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* binja Debug Panel
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { renderWithDebug } from 'binja/debug'
|
|
7
|
+
*
|
|
8
|
+
* // In development
|
|
9
|
+
* const html = await renderWithDebug(env, 'page.html', context)
|
|
10
|
+
* // HTML includes debug panel at the bottom
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
import type { Environment } from '../index';
|
|
14
|
+
import { PanelOptions } from './panel';
|
|
15
|
+
export { DebugCollector, startDebugCollection, endDebugCollection, getDebugCollector } from './collector';
|
|
16
|
+
export type { DebugData, ContextValue } from './collector';
|
|
17
|
+
export { generateDebugPanel } from './panel';
|
|
18
|
+
export type { PanelOptions } from './panel';
|
|
19
|
+
export interface DebugRenderOptions {
|
|
20
|
+
/** Panel options */
|
|
21
|
+
panel?: PanelOptions;
|
|
22
|
+
/** Only inject if response is HTML */
|
|
23
|
+
htmlOnly?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Render a template with debug panel injection
|
|
27
|
+
*/
|
|
28
|
+
export declare function renderWithDebug(env: Environment, templateName: string, context?: Record<string, any>, options?: DebugRenderOptions): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Render a string template with debug panel
|
|
31
|
+
*/
|
|
32
|
+
export declare function renderStringWithDebug(env: Environment, source: string, context?: Record<string, any>, options?: DebugRenderOptions): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Create debug-enabled render functions
|
|
35
|
+
*/
|
|
36
|
+
export declare function createDebugRenderer(env: Environment, options?: DebugRenderOptions): {
|
|
37
|
+
render(templateName: string, context?: Record<string, any>): Promise<string>;
|
|
38
|
+
renderString(source: string, context?: Record<string, any>): Promise<string>;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Middleware factory for web frameworks
|
|
42
|
+
* Injects debug panel into HTML responses
|
|
43
|
+
*/
|
|
44
|
+
export declare function debugMiddleware(env: Environment, options?: DebugRenderOptions): {
|
|
45
|
+
/**
|
|
46
|
+
* Hono middleware
|
|
47
|
+
*/
|
|
48
|
+
hono(): (c: any, next: () => Promise<void>) => Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Express-style middleware
|
|
51
|
+
*/
|
|
52
|
+
express(): (req: any, res: any, next: () => void) => void;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,EAAsB,YAAY,EAAE,MAAM,SAAS,CAAA;AAG1D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACzG,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,KAAK,CAAC,EAAE,YAAY,CAAA;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAgCjB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EACjC,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB;yBAEvD,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAQ,OAAO,CAAC,MAAM,CAAC;yBAG3D,MAAM,YAAW,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAQ,OAAO,CAAC,MAAM,CAAC;EAIzF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,kBAAuB;IAE9E;;OAEG;aAEa,GAAG,GAAG,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC;IAyBjD;;OAEG;gBAEO,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI;EA2BjD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Panel - Professional template debugging interface
|
|
3
|
+
*/
|
|
4
|
+
import type { DebugData } from './collector';
|
|
5
|
+
export interface PanelOptions {
|
|
6
|
+
/** Panel position */
|
|
7
|
+
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
|
|
8
|
+
/** Start collapsed */
|
|
9
|
+
collapsed?: boolean;
|
|
10
|
+
/** Dark mode */
|
|
11
|
+
dark?: boolean;
|
|
12
|
+
/** Panel width in pixels */
|
|
13
|
+
width?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function generateDebugPanel(data: DebugData, options?: PanelOptions): string;
|
|
16
|
+
//# sourceMappingURL=panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/debug/panel.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAA8B,MAAM,aAAa,CAAA;AAExE,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;IACpE,sBAAsB;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gBAAgB;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AASD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,YAAiB,GAAG,MAAM,CAetF"}
|
package/dist/filters/index.d.ts
CHANGED
|
@@ -59,5 +59,25 @@ export declare const json: FilterFunction;
|
|
|
59
59
|
export declare const random: FilterFunction;
|
|
60
60
|
export declare const batch: FilterFunction;
|
|
61
61
|
export declare const groupby: FilterFunction;
|
|
62
|
+
export declare const wordwrap: FilterFunction;
|
|
63
|
+
export declare const indent: FilterFunction;
|
|
64
|
+
export declare const replace: FilterFunction;
|
|
65
|
+
export declare const format: FilterFunction;
|
|
66
|
+
export declare const string: FilterFunction;
|
|
67
|
+
export declare const list: FilterFunction;
|
|
68
|
+
export declare const map: FilterFunction;
|
|
69
|
+
export declare const select: FilterFunction;
|
|
70
|
+
export declare const reject: FilterFunction;
|
|
71
|
+
export declare const selectattr: FilterFunction;
|
|
72
|
+
export declare const rejectattr: FilterFunction;
|
|
73
|
+
export declare const attr: FilterFunction;
|
|
74
|
+
export declare const max: FilterFunction;
|
|
75
|
+
export declare const min: FilterFunction;
|
|
76
|
+
export declare const sum: FilterFunction;
|
|
77
|
+
export declare const pprint: FilterFunction;
|
|
78
|
+
export declare const forceescape: FilterFunction;
|
|
79
|
+
export declare const phone2numeric: FilterFunction;
|
|
80
|
+
export declare const linenumbers: FilterFunction;
|
|
81
|
+
export declare const unordered_list: FilterFunction;
|
|
62
82
|
export declare const builtinFilters: Record<string, FilterFunction>;
|
|
63
83
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
import { TemplateNode } from './parser';
|
|
23
23
|
import { FilterFunction } from './filters';
|
|
24
24
|
import { CompileOptions } from './compiler';
|
|
25
|
+
import type { PanelOptions } from './debug';
|
|
25
26
|
export interface EnvironmentOptions {
|
|
26
27
|
/** Template directory path */
|
|
27
28
|
templates?: string;
|
|
@@ -39,6 +40,10 @@ export interface EnvironmentOptions {
|
|
|
39
40
|
cache?: boolean;
|
|
40
41
|
/** Template file extensions to try (default: ['.html', '.jinja', '.jinja2']) */
|
|
41
42
|
extensions?: string[];
|
|
43
|
+
/** Enable debug panel injection (default: false) */
|
|
44
|
+
debug?: boolean;
|
|
45
|
+
/** Debug panel options */
|
|
46
|
+
debugOptions?: PanelOptions;
|
|
42
47
|
}
|
|
43
48
|
export declare class Environment {
|
|
44
49
|
private options;
|
|
@@ -54,6 +59,18 @@ export declare class Environment {
|
|
|
54
59
|
* Render a template string directly
|
|
55
60
|
*/
|
|
56
61
|
renderString(source: string, context?: Record<string, any>): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* Internal: Render with debug panel
|
|
64
|
+
*/
|
|
65
|
+
private renderWithDebug;
|
|
66
|
+
/**
|
|
67
|
+
* Internal: Render string with debug panel
|
|
68
|
+
*/
|
|
69
|
+
private renderStringWithDebug;
|
|
70
|
+
/**
|
|
71
|
+
* Internal: Inject debug panel into HTML
|
|
72
|
+
*/
|
|
73
|
+
private injectDebugPanel;
|
|
57
74
|
/**
|
|
58
75
|
* Compile a template string to AST (useful for caching)
|
|
59
76
|
*/
|
|
@@ -100,6 +117,9 @@ export declare function Template(source: string, options?: EnvironmentOptions):
|
|
|
100
117
|
* Compile a template to an optimized JavaScript function (AOT mode)
|
|
101
118
|
* Returns a sync function that is 10-50x faster than runtime rendering
|
|
102
119
|
*
|
|
120
|
+
* Note: This function does NOT support {% extends %} or {% include %}.
|
|
121
|
+
* Use compileWithInheritance() for templates with inheritance.
|
|
122
|
+
*
|
|
103
123
|
* @example
|
|
104
124
|
* ```typescript
|
|
105
125
|
* const renderUser = compile('<h1>{{ name|upper }}</h1>')
|
|
@@ -107,6 +127,34 @@ export declare function Template(source: string, options?: EnvironmentOptions):
|
|
|
107
127
|
* ```
|
|
108
128
|
*/
|
|
109
129
|
export declare function compile(source: string, options?: CompileOptions): (ctx: Record<string, any>) => string;
|
|
130
|
+
export interface CompileWithInheritanceOptions extends CompileOptions {
|
|
131
|
+
/** Base directory for resolving template paths */
|
|
132
|
+
templates: string;
|
|
133
|
+
/** File extensions to try (default: ['.html', '.jinja', '.jinja2', '']) */
|
|
134
|
+
extensions?: string[];
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Compile a template with full inheritance support (extends/include/block)
|
|
138
|
+
* Resolves all template inheritance at compile-time for maximum AOT performance.
|
|
139
|
+
*
|
|
140
|
+
* IMPORTANT: All {% extends %} and {% include %} must use static string literals.
|
|
141
|
+
* Dynamic template names (variables) are not supported in AOT mode.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* // page.html: {% extends "base.html" %}{% block content %}Hello{% endblock %}
|
|
146
|
+
* const renderPage = await compileWithInheritance('page.html', {
|
|
147
|
+
* templates: './templates'
|
|
148
|
+
* })
|
|
149
|
+
* const html = renderPage({ title: 'Home' }) // Full page with base template
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export declare function compileWithInheritance(templateName: string, options: CompileWithInheritanceOptions): Promise<(ctx: Record<string, any>) => string>;
|
|
153
|
+
/**
|
|
154
|
+
* Compile a template with inheritance to JavaScript code string
|
|
155
|
+
* For build tools and CLI usage.
|
|
156
|
+
*/
|
|
157
|
+
export declare function compileWithInheritanceToCode(templateName: string, options: CompileWithInheritanceOptions): Promise<string>;
|
|
110
158
|
/**
|
|
111
159
|
* Compile a template to JavaScript code string (for build tools/CLI)
|
|
112
160
|
* The generated code can be saved to a file and imported directly
|
|
@@ -128,4 +176,8 @@ export type { FilterFunction } from './filters';
|
|
|
128
176
|
export type { CompileOptions } from './compiler';
|
|
129
177
|
export { builtinTests } from './tests';
|
|
130
178
|
export type { TestFunction } from './tests';
|
|
179
|
+
export { flattenTemplate, canFlatten } from './compiler/flattener';
|
|
180
|
+
export type { TemplateLoader } from './compiler/flattener';
|
|
181
|
+
export { renderWithDebug, renderStringWithDebug, createDebugRenderer, debugMiddleware, generateDebugPanel, } from './debug';
|
|
182
|
+
export type { DebugData, PanelOptions, DebugRenderOptions } from './debug';
|
|
131
183
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAU,YAAY,EAAE,MAAM,UAAU,CAAA;AAE/C,OAAO,EAAkB,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1D,OAAO,EAAsC,cAAc,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|