binja 0.1.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.
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Built-in filters for Jinja2/DTL compatibility
3
+ * Includes all Django Template Language filters
4
+ */
5
+ export type FilterFunction = (value: any, ...args: any[]) => any;
6
+ export declare const upper: FilterFunction;
7
+ export declare const lower: FilterFunction;
8
+ export declare const capitalize: FilterFunction;
9
+ export declare const capfirst: FilterFunction;
10
+ export declare const title: FilterFunction;
11
+ export declare const trim: FilterFunction;
12
+ export declare const striptags: FilterFunction;
13
+ export declare const escape: FilterFunction;
14
+ export declare const safe: FilterFunction;
15
+ export declare const escapejs: FilterFunction;
16
+ export declare const linebreaks: FilterFunction;
17
+ export declare const linebreaksbr: FilterFunction;
18
+ export declare const truncatechars: FilterFunction;
19
+ export declare const truncatewords: FilterFunction;
20
+ export declare const wordcount: FilterFunction;
21
+ export declare const center: FilterFunction;
22
+ export declare const ljust: FilterFunction;
23
+ export declare const rjust: FilterFunction;
24
+ export declare const cut: FilterFunction;
25
+ export declare const slugify: FilterFunction;
26
+ export declare const abs: FilterFunction;
27
+ export declare const round: FilterFunction;
28
+ export declare const int: FilterFunction;
29
+ export declare const float: FilterFunction;
30
+ export declare const floatformat: FilterFunction;
31
+ export declare const add: FilterFunction;
32
+ export declare const divisibleby: FilterFunction;
33
+ export declare const filesizeformat: FilterFunction;
34
+ export declare const length: FilterFunction;
35
+ export declare const length_is: FilterFunction;
36
+ export declare const first: FilterFunction;
37
+ export declare const last: FilterFunction;
38
+ export declare const join: FilterFunction;
39
+ export declare const slice: FilterFunction;
40
+ export declare const reverse: FilterFunction;
41
+ export declare const sort: FilterFunction;
42
+ export declare const unique: FilterFunction;
43
+ export declare const make_list: FilterFunction;
44
+ export declare const dictsort: FilterFunction;
45
+ export declare const dictsortreversed: FilterFunction;
46
+ export declare const columns: FilterFunction;
47
+ export declare const date: FilterFunction;
48
+ export declare const time: FilterFunction;
49
+ export declare const timesince: FilterFunction;
50
+ export declare const timeuntil: FilterFunction;
51
+ declare const defaultFilter: FilterFunction;
52
+ export { defaultFilter as default };
53
+ export declare const default_if_none: FilterFunction;
54
+ export declare const yesno: FilterFunction;
55
+ export declare const pluralize: FilterFunction;
56
+ export declare const urlencode: FilterFunction;
57
+ export declare const urlize: FilterFunction;
58
+ export declare const json: FilterFunction;
59
+ export declare const random: FilterFunction;
60
+ export declare const batch: FilterFunction;
61
+ export declare const groupby: FilterFunction;
62
+ export declare const builtinFilters: Record<string, FilterFunction>;
63
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filters/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Jinja-Bun: Jinja2/Django Template Language engine for Bun/JavaScript
3
+ *
4
+ * 100% compatible with Django Template Language (DTL)
5
+ * High performance template rendering for Bun runtime
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { Environment } from 'jinja-bun'
10
+ *
11
+ * const env = new Environment({
12
+ * templates: './templates',
13
+ * autoescape: true,
14
+ * })
15
+ *
16
+ * const html = await env.render('page.html', {
17
+ * title: 'Hello',
18
+ * items: [1, 2, 3],
19
+ * })
20
+ * ```
21
+ */
22
+ import { TemplateNode } from './parser';
23
+ import { FilterFunction } from './filters';
24
+ export interface EnvironmentOptions {
25
+ /** Template directory path */
26
+ templates?: string;
27
+ /** Auto-escape HTML (default: true) */
28
+ autoescape?: boolean;
29
+ /** Custom filters */
30
+ filters?: Record<string, FilterFunction>;
31
+ /** Global variables available in all templates */
32
+ globals?: Record<string, any>;
33
+ /** URL resolver for {% url %} tag */
34
+ urlResolver?: (name: string, args: any[], kwargs: Record<string, any>) => string;
35
+ /** Static file resolver for {% static %} tag */
36
+ staticResolver?: (path: string) => string;
37
+ /** Cache compiled templates (default: true) */
38
+ cache?: boolean;
39
+ /** Template file extensions to try (default: ['.html', '.jinja', '.jinja2']) */
40
+ extensions?: string[];
41
+ }
42
+ export declare class Environment {
43
+ private options;
44
+ private runtime;
45
+ private templateCache;
46
+ private routes;
47
+ constructor(options?: EnvironmentOptions);
48
+ /**
49
+ * Render a template file with the given context
50
+ */
51
+ render(templateName: string, context?: Record<string, any>): Promise<string>;
52
+ /**
53
+ * Render a template string directly
54
+ */
55
+ renderString(source: string, context?: Record<string, any>): Promise<string>;
56
+ /**
57
+ * Compile a template string to AST (useful for caching)
58
+ */
59
+ compile(source: string): TemplateNode;
60
+ /**
61
+ * Load and compile a template file
62
+ */
63
+ loadTemplate(templateName: string): Promise<TemplateNode>;
64
+ /**
65
+ * Clear the template cache
66
+ */
67
+ clearCache(): void;
68
+ /**
69
+ * Add a custom filter
70
+ */
71
+ addFilter(name: string, fn: FilterFunction): void;
72
+ /**
73
+ * Add a global variable
74
+ */
75
+ addGlobal(name: string, value: any): void;
76
+ /**
77
+ * Register a URL route for {% url %} tag (Django-style)
78
+ */
79
+ addUrl(name: string, pattern: string): void;
80
+ /**
81
+ * Register multiple URL routes
82
+ */
83
+ addUrls(routes: Record<string, string>): void;
84
+ private resolveTemplatePath;
85
+ private defaultUrlResolver;
86
+ private defaultStaticResolver;
87
+ }
88
+ /**
89
+ * Quick render function for simple use cases
90
+ */
91
+ export declare function render(source: string, context?: Record<string, any>, options?: EnvironmentOptions): Promise<string>;
92
+ /**
93
+ * Create a template function (like Jinja2's Template class)
94
+ */
95
+ export declare function Template(source: string, options?: EnvironmentOptions): {
96
+ render(context?: Record<string, any>): Promise<string>;
97
+ };
98
+ export { Lexer, TokenType } from './lexer';
99
+ export type { Token } from './lexer';
100
+ export { Parser } from './parser';
101
+ export type { TemplateNode, ASTNode, ExpressionNode } from './parser/nodes';
102
+ export { Runtime, Context } from './runtime';
103
+ export { builtinFilters } from './filters';
104
+ export type { FilterFunction } from './filters';
105
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}