binja 0.2.1 → 0.3.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 CHANGED
@@ -290,6 +290,28 @@ app.get('/user/:id', ({ params }) => templates.user({ id: params.id }))
290
290
  | `timesince` | `{{ past\|timesince }}` | `2 days ago` |
291
291
  | `timeuntil` | `{{ future\|timeuntil }}` | `in 3 hours` |
292
292
 
293
+ #### Timezone Support
294
+
295
+ All date/time operations respect the `timezone` option in Environment:
296
+
297
+ ```typescript
298
+ const env = new Environment({
299
+ timezone: 'Europe/Rome' // All dates will be displayed in Rome timezone
300
+ })
301
+
302
+ // 2024-06-15 12:00 UTC = 2024-06-15 14:00 Rome (UTC+2)
303
+ await env.renderString('{{ date|date:"Y-m-d H:i" }}', {
304
+ date: new Date('2024-06-15T12:00:00Z')
305
+ })
306
+ // Output: 2024-06-15 14:00
307
+
308
+ // {% now %} tag also uses the configured timezone
309
+ await env.renderString('{% now "Y-m-d H:i" %}')
310
+ // Output: current date/time in Rome timezone
311
+ ```
312
+
313
+ Common timezone values: `UTC`, `Europe/London`, `Europe/Rome`, `Europe/Paris`, `America/New_York`, `America/Los_Angeles`, `Asia/Tokyo`, `Asia/Shanghai`, `Australia/Sydney`
314
+
293
315
  ### Safety & Encoding
294
316
 
295
317
  | Filter | Example | Description |
@@ -378,6 +400,10 @@ const env = new Environment({
378
400
  // Auto-escape HTML (default: true)
379
401
  autoescape: true,
380
402
 
403
+ // Timezone for date/time operations
404
+ // All date filters and {% now %} tag will use this timezone
405
+ timezone: 'Europe/Rome', // or 'UTC', 'America/New_York', etc.
406
+
381
407
  // Custom filters
382
408
  filters: {
383
409
  currency: (value: number) => `$${value.toFixed(2)}`,
package/dist/cli.js CHANGED
@@ -499,6 +499,8 @@ class Parser {
499
499
  return this.parseUrl(start);
500
500
  case "static":
501
501
  return this.parseStatic(start);
502
+ case "now":
503
+ return this.parseNow(start);
502
504
  case "comment":
503
505
  return this.parseComment(start);
504
506
  case "spaceless":
@@ -792,6 +794,22 @@ class Parser {
792
794
  column: start.column
793
795
  };
794
796
  }
797
+ parseNow(start) {
798
+ const format = this.parseExpression();
799
+ let asVar = null;
800
+ if (this.check("NAME" /* NAME */) && this.peek().value === "as") {
801
+ this.advance();
802
+ asVar = this.expect("NAME" /* NAME */).value;
803
+ }
804
+ this.expect("BLOCK_END" /* BLOCK_END */);
805
+ return {
806
+ type: "Now",
807
+ format,
808
+ asVar,
809
+ line: start.line,
810
+ column: start.column
811
+ };
812
+ }
795
813
  parseComment(start) {
796
814
  this.expect("BLOCK_END" /* BLOCK_END */);
797
815
  while (!this.isAtEnd()) {
package/dist/index.d.ts CHANGED
@@ -44,6 +44,8 @@ export interface EnvironmentOptions {
44
44
  debug?: boolean;
45
45
  /** Debug panel options */
46
46
  debugOptions?: PanelOptions;
47
+ /** Timezone for date/time operations (e.g., 'Europe/Rome', 'UTC', 'America/New_York') */
48
+ timezone?: string;
47
49
  }
48
50
  export declare class Environment {
49
51
  private options;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -535,6 +535,8 @@ class Parser {
535
535
  return this.parseUrl(start);
536
536
  case "static":
537
537
  return this.parseStatic(start);
538
+ case "now":
539
+ return this.parseNow(start);
538
540
  case "comment":
539
541
  return this.parseComment(start);
540
542
  case "spaceless":
@@ -828,6 +830,22 @@ class Parser {
828
830
  column: start.column
829
831
  };
830
832
  }
833
+ parseNow(start) {
834
+ const format = this.parseExpression();
835
+ let asVar = null;
836
+ if (this.check("NAME" /* NAME */) && this.peek().value === "as") {
837
+ this.advance();
838
+ asVar = this.expect("NAME" /* NAME */).value;
839
+ }
840
+ this.expect("BLOCK_END" /* BLOCK_END */);
841
+ return {
842
+ type: "Now",
843
+ format,
844
+ asVar,
845
+ line: start.line,
846
+ column: start.column
847
+ };
848
+ }
831
849
  parseComment(start) {
832
850
  this.expect("BLOCK_END" /* BLOCK_END */);
833
851
  while (!this.isAtEnd()) {
@@ -2251,6 +2269,7 @@ var builtinTests = {
2251
2269
  defined,
2252
2270
  undefined: undefined2,
2253
2271
  none,
2272
+ None: none,
2254
2273
  boolean,
2255
2274
  string: string2,
2256
2275
  mapping,
@@ -2288,9 +2307,22 @@ class Runtime {
2288
2307
  staticResolver: options.staticResolver ?? ((path) => `/static/${path}`),
2289
2308
  templateLoader: options.templateLoader ?? (async () => {
2290
2309
  throw new Error("Template loader not configured");
2291
- })
2310
+ }),
2311
+ timezone: options.timezone ?? undefined
2292
2312
  };
2293
2313
  this.filters = { ...builtinFilters, ...this.options.filters };
2314
+ if (this.options.timezone) {
2315
+ const tz = this.options.timezone;
2316
+ this.filters.date = (value, format2 = "N j, Y") => {
2317
+ const d = value instanceof Date ? value : new Date(value);
2318
+ if (isNaN(d.getTime()))
2319
+ return "";
2320
+ return this.formatDate(d, format2);
2321
+ };
2322
+ this.filters.time = (value, format2 = "H:i") => {
2323
+ return this.filters.date(value, format2);
2324
+ };
2325
+ }
2294
2326
  this.tests = { ...builtinTests, ...this.options.tests };
2295
2327
  }
2296
2328
  async render(ast, context = {}) {
@@ -2411,6 +2443,8 @@ class Runtime {
2411
2443
  return this.renderUrlSync(node, ctx);
2412
2444
  case "Static":
2413
2445
  return this.renderStaticSync(node, ctx);
2446
+ case "Now":
2447
+ return this.renderNowSync(node, ctx);
2414
2448
  case "Load":
2415
2449
  case "Extends":
2416
2450
  return null;
@@ -2469,9 +2503,10 @@ class Runtime {
2469
2503
  renderBlockSync(node, ctx) {
2470
2504
  const blockToRender = this.blocks.get(node.name) || node;
2471
2505
  ctx.push();
2472
- ctx.set("block", {
2473
- super: () => this.renderNodesSync(node.body, ctx)
2474
- });
2506
+ const parentContent = this.renderNodesSync(node.body, ctx);
2507
+ const safeContent = new String(parentContent);
2508
+ safeContent.__safe__ = true;
2509
+ ctx.set("block", { super: safeContent });
2475
2510
  const result = this.renderNodesSync(blockToRender.body, ctx);
2476
2511
  ctx.pop();
2477
2512
  return result;
@@ -2505,6 +2540,122 @@ class Runtime {
2505
2540
  }
2506
2541
  return url;
2507
2542
  }
2543
+ renderNowSync(node, ctx) {
2544
+ const format2 = String(this.eval(node.format, ctx));
2545
+ const result = this.formatDate(new Date, format2);
2546
+ if (node.asVar) {
2547
+ ctx.set(node.asVar, result);
2548
+ return "";
2549
+ }
2550
+ return result;
2551
+ }
2552
+ getDateInTimezone(d, tz) {
2553
+ if (!tz) {
2554
+ return {
2555
+ year: d.getFullYear(),
2556
+ month: d.getMonth(),
2557
+ day: d.getDate(),
2558
+ weekday: d.getDay(),
2559
+ hours: d.getHours(),
2560
+ minutes: d.getMinutes(),
2561
+ seconds: d.getSeconds()
2562
+ };
2563
+ }
2564
+ const formatter = new Intl.DateTimeFormat("en-US", {
2565
+ timeZone: tz,
2566
+ year: "numeric",
2567
+ month: "2-digit",
2568
+ day: "2-digit",
2569
+ weekday: "short",
2570
+ hour: "2-digit",
2571
+ minute: "2-digit",
2572
+ second: "2-digit",
2573
+ hour12: false
2574
+ });
2575
+ const parts = formatter.formatToParts(d);
2576
+ const get = (type) => parts.find((p) => p.type === type)?.value || "";
2577
+ const weekdayMap = { Sun: 0, Mon: 1, Tue: 2, Wed: 3, Thu: 4, Fri: 5, Sat: 6 };
2578
+ return {
2579
+ year: parseInt(get("year"), 10),
2580
+ month: parseInt(get("month"), 10) - 1,
2581
+ day: parseInt(get("day"), 10),
2582
+ weekday: weekdayMap[get("weekday")] ?? 0,
2583
+ hours: parseInt(get("hour"), 10),
2584
+ minutes: parseInt(get("minute"), 10),
2585
+ seconds: parseInt(get("second"), 10)
2586
+ };
2587
+ }
2588
+ formatDate(d, format2) {
2589
+ const DAY_NAMES_SHORT2 = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
2590
+ const DAY_NAMES_LONG2 = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
2591
+ const MONTH_NAMES_SHORT2 = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
2592
+ const MONTH_NAMES_LONG2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
2593
+ const tz = this.options.timezone;
2594
+ const { year, month, day, weekday, hours, minutes, seconds } = this.getDateInTimezone(d, tz);
2595
+ let result = "";
2596
+ for (let i = 0;i < format2.length; i++) {
2597
+ const char = format2[i];
2598
+ switch (char) {
2599
+ case "d":
2600
+ result += String(day).padStart(2, "0");
2601
+ break;
2602
+ case "j":
2603
+ result += String(day);
2604
+ break;
2605
+ case "D":
2606
+ result += DAY_NAMES_SHORT2[weekday];
2607
+ break;
2608
+ case "l":
2609
+ result += DAY_NAMES_LONG2[weekday];
2610
+ break;
2611
+ case "m":
2612
+ result += String(month + 1).padStart(2, "0");
2613
+ break;
2614
+ case "n":
2615
+ result += String(month + 1);
2616
+ break;
2617
+ case "M":
2618
+ result += MONTH_NAMES_SHORT2[month];
2619
+ break;
2620
+ case "F":
2621
+ result += MONTH_NAMES_LONG2[month];
2622
+ break;
2623
+ case "y":
2624
+ result += String(year).slice(-2);
2625
+ break;
2626
+ case "Y":
2627
+ result += String(year);
2628
+ break;
2629
+ case "H":
2630
+ result += String(hours).padStart(2, "0");
2631
+ break;
2632
+ case "G":
2633
+ result += String(hours);
2634
+ break;
2635
+ case "i":
2636
+ result += String(minutes).padStart(2, "0");
2637
+ break;
2638
+ case "s":
2639
+ result += String(seconds).padStart(2, "0");
2640
+ break;
2641
+ case "a":
2642
+ result += hours < 12 ? "a.m." : "p.m.";
2643
+ break;
2644
+ case "A":
2645
+ result += hours < 12 ? "AM" : "PM";
2646
+ break;
2647
+ case "g":
2648
+ result += String(hours % 12 || 12);
2649
+ break;
2650
+ case "h":
2651
+ result += String(hours % 12 || 12).padStart(2, "0");
2652
+ break;
2653
+ default:
2654
+ result += char;
2655
+ }
2656
+ }
2657
+ return result;
2658
+ }
2508
2659
  renderNodesSync(nodes2, ctx) {
2509
2660
  const parts = [];
2510
2661
  for (const node of nodes2) {
@@ -2749,6 +2900,8 @@ class Runtime {
2749
2900
  return this.renderUrlSync(node, ctx);
2750
2901
  case "Static":
2751
2902
  return this.renderStaticSync(node, ctx);
2903
+ case "Now":
2904
+ return this.renderNowSync(node, ctx);
2752
2905
  default:
2753
2906
  return null;
2754
2907
  }
@@ -2805,9 +2958,9 @@ class Runtime {
2805
2958
  const blockToRender = this.blocks.get(node.name) || node;
2806
2959
  ctx.push();
2807
2960
  const parentContent = await this.renderNodesAsync(node.body, ctx);
2808
- ctx.set("block", {
2809
- super: () => parentContent
2810
- });
2961
+ const safeContent = new String(parentContent);
2962
+ safeContent.__safe__ = true;
2963
+ ctx.set("block", { super: safeContent });
2811
2964
  const result = await this.renderNodesAsync(blockToRender.body, ctx);
2812
2965
  ctx.pop();
2813
2966
  return result;
@@ -4344,7 +4497,8 @@ class Environment {
4344
4497
  cache: options.cache ?? true,
4345
4498
  extensions: options.extensions ?? [".html", ".jinja", ".jinja2", ""],
4346
4499
  debug: options.debug ?? false,
4347
- debugOptions: options.debugOptions ?? {}
4500
+ debugOptions: options.debugOptions ?? {},
4501
+ timezone: options.timezone ?? undefined
4348
4502
  };
4349
4503
  this.runtime = new Runtime({
4350
4504
  autoescape: this.options.autoescape,
@@ -4352,7 +4506,8 @@ class Environment {
4352
4506
  globals: this.options.globals,
4353
4507
  urlResolver: this.options.urlResolver,
4354
4508
  staticResolver: this.options.staticResolver,
4355
- templateLoader: this.loadTemplate.bind(this)
4509
+ templateLoader: this.loadTemplate.bind(this),
4510
+ timezone: this.options.timezone
4356
4511
  });
4357
4512
  }
4358
4513
  async render(templateName, context = {}) {
@@ -19,6 +19,7 @@ export declare class Parser {
19
19
  private parseLoad;
20
20
  private parseUrl;
21
21
  private parseStatic;
22
+ private parseNow;
22
23
  private parseComment;
23
24
  private parseSimpleBlock;
24
25
  private parseExpression;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAEV,YAAY,EA2Bb,MAAM,SAAS,CAAA;AAEhB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAY;gBAEf,MAAM,EAAE,KAAK,EAAE;IAI3B,KAAK,IAAI,YAAY;IAgBrB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;IAwClB,OAAO,CAAC,OAAO;IA+Df,OAAO,CAAC,QAAQ;IAuEhB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,SAAS;IAiCjB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAgFpB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,WAAW;IA2DnB,OAAO,CAAC,YAAY;IAiEpB,OAAO,CAAC,YAAY;IAkFpB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,KAAK;CAId;AAED,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,KAAK,EAEV,YAAY,EA4Bb,MAAM,SAAS,CAAA;AAEhB,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAY;gBAEf,MAAM,EAAE,KAAK,EAAE;IAI3B,KAAK,IAAI,YAAY;IAgBrB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;IA0ClB,OAAO,CAAC,OAAO;IA+Df,OAAO,CAAC,QAAQ;IAuEhB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,SAAS;IAiCjB,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,QAAQ;IAqChB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,QAAQ;IAoBhB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,YAAY;IAgFpB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,WAAW;IA2DnB,OAAO,CAAC,YAAY;IAiEpB,OAAO,CAAC,YAAY;IAkFpB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,KAAK;CAId;AAED,cAAc,SAAS,CAAA"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * AST Node definitions for Jinja2/DTL templates
3
3
  */
4
- export type NodeType = 'Template' | 'Text' | 'Output' | 'If' | 'For' | 'Block' | 'Extends' | 'Include' | 'Set' | 'With' | 'Macro' | 'Call' | 'Filter' | 'Comment' | 'Load' | 'Url' | 'Static' | 'Cache' | 'Name' | 'Literal' | 'Array' | 'Object' | 'BinaryOp' | 'UnaryOp' | 'Compare' | 'GetAttr' | 'GetItem' | 'FilterExpr' | 'TestExpr' | 'Conditional' | 'FunctionCall';
4
+ export type NodeType = 'Template' | 'Text' | 'Output' | 'If' | 'For' | 'Block' | 'Extends' | 'Include' | 'Set' | 'With' | 'Macro' | 'Call' | 'Filter' | 'Comment' | 'Load' | 'Url' | 'Static' | 'Cache' | 'Now' | 'Name' | 'Literal' | 'Array' | 'Object' | 'BinaryOp' | 'UnaryOp' | 'Compare' | 'GetAttr' | 'GetItem' | 'FilterExpr' | 'TestExpr' | 'Conditional' | 'FunctionCall';
5
5
  export interface BaseNode {
6
6
  type: NodeType;
7
7
  line: number;
@@ -90,6 +90,11 @@ export interface CacheNode extends BaseNode {
90
90
  varyOn: ExpressionNode[];
91
91
  body: ASTNode[];
92
92
  }
93
+ export interface NowNode extends BaseNode {
94
+ type: 'Now';
95
+ format: ExpressionNode;
96
+ asVar: string | null;
97
+ }
93
98
  export interface NameNode extends BaseNode {
94
99
  type: 'Name';
95
100
  name: string;
@@ -188,6 +193,6 @@ export interface FilterNode extends BaseNode {
188
193
  body: ASTNode[];
189
194
  }
190
195
  export type ExpressionNode = NameNode | LiteralNode | ArrayNode | ObjectNode | BinaryOpNode | UnaryOpNode | CompareNode | GetAttrNode | GetItemNode | FilterExprNode | TestExprNode | ConditionalNode | FunctionCallNode;
191
- export type StatementNode = TextNode | OutputNode | IfNode | ForNode | BlockNode | ExtendsNode | IncludeNode | SetNode | WithNode | LoadNode | UrlNode | StaticNode | CacheNode | CommentNode | MacroNode | CallNode | FilterNode;
196
+ export type StatementNode = TextNode | OutputNode | IfNode | ForNode | BlockNode | ExtendsNode | IncludeNode | SetNode | WithNode | LoadNode | UrlNode | StaticNode | CacheNode | NowNode | CommentNode | MacroNode | CallNode | FilterNode;
192
197
  export type ASTNode = StatementNode | ExpressionNode | TemplateNode;
193
198
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/parser/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/parser/nodes.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export interface RuntimeOptions {
17
17
  urlResolver?: (name: string, args: any[], kwargs: Record<string, any>) => string;
18
18
  staticResolver?: (path: string) => string;
19
19
  templateLoader?: (name: string) => Promise<TemplateNode>;
20
+ /** Timezone for date/time operations (e.g., 'Europe/Rome', 'UTC') */
21
+ timezone?: string;
20
22
  }
21
23
  export declare class Runtime {
22
24
  private options;
@@ -37,6 +39,9 @@ export declare class Runtime {
37
39
  private renderWithSync;
38
40
  private renderUrlSync;
39
41
  private renderStaticSync;
42
+ private renderNowSync;
43
+ private getDateInTimezone;
44
+ private formatDate;
40
45
  private renderNodesSync;
41
46
  private eval;
42
47
  private evalGetAttr;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAkB,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3D,OAAO,EAAgB,YAAY,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,KAAK,EAEV,YAAY,EAaZ,cAAc,EAcf,MAAM,iBAAiB,CAAA;AAExB,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAA;IAChF,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACzC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;CACzD;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,KAAK,CAA8B;IAC3C,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,cAAc,CAA4B;gBAEtC,OAAO,GAAE,cAAmB;IAoBlC,MAAM,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBnF,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,IAAI;IAiCZ,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,cAAc;YAUR,aAAa;YAYb,mBAAmB;YASnB,eAAe;YAgCf,aAAa;YAYb,cAAc;YA6Cd,gBAAgB;YAahB,aAAa;YAoBb,eAAe;YAUf,gBAAgB;IAUxB,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAMhE,OAAO,CAAC,SAAS;IAiBjB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,IAAI;IAOZ,OAAO,CAAC,UAAU;IAelB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI;IAKjD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI;IAK7C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;CAG1C;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAA;AAIlE,eAAO,MAAM,WAAW,EAAE,YAKzB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,YAGlB,CAAA;AAED,eAAO,MAAM,GAAG,EAAE,YAGjB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,YAEpB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,YAErB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,YAEnB,CAAA;AAGD,eAAO,MAAM,EAAE,EAAE,YAA8D,CAAA;AAC/E,eAAO,MAAM,EAAE,EAAE,YAA+D,CAAA;AAChF,eAAO,MAAM,EAAE,EAAE,YAA8D,CAAA;AAC/E,eAAO,MAAM,EAAE,EAAE,YAA+D,CAAA;AAChF,eAAO,MAAM,WAAW,cAAK,CAAA;AAC7B,eAAO,MAAM,QAAQ,cAAK,CAAA;AAI1B,eAAO,MAAM,OAAO,EAAE,YAErB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,YAEvB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,YAElB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,YAErB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,YAEpB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,YAOrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAGtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAEtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAEtB,CAAA;AAID,eAAO,MAAM,KAAK,EAAE,YAGnB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,YAGnB,CAAA;AAID,eAAO,MAAM,KAAK,EAAE,YASnB,CAAA;AAED,eAAO,MAAM,GAAG,EAAE,YAKjB,CAAA;AAID,eAAO,MAAM,EAAE,EAAE,YAAgD,CAAA;AACjE,eAAO,MAAM,EAAE,EAAE,YAAgD,CAAA;AACjE,eAAO,MAAM,MAAM,EAAE,YAAgD,CAAA;AACrE,eAAO,MAAM,OAAO,cAAK,CAAA;AAIzB,eAAO,MAAM,MAAM,EAAE,YAYpB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,YAAwC,CAAA;AAG5D,eAAO,MAAM,KAAK,EAAE,YAAwC,CAAA;AAC5D,eAAO,MAAM,MAAM,EAAE,YAAyC,CAAA;AAI9D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA6CrD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tests/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAA;AAIlE,eAAO,MAAM,WAAW,EAAE,YAKzB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,YAGlB,CAAA;AAED,eAAO,MAAM,GAAG,EAAE,YAGjB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,YAEpB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,YAErB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,YAEnB,CAAA;AAGD,eAAO,MAAM,EAAE,EAAE,YAA8D,CAAA;AAC/E,eAAO,MAAM,EAAE,EAAE,YAA+D,CAAA;AAChF,eAAO,MAAM,EAAE,EAAE,YAA8D,CAAA;AAC/E,eAAO,MAAM,EAAE,EAAE,YAA+D,CAAA;AAChF,eAAO,MAAM,WAAW,cAAK,CAAA;AAC7B,eAAO,MAAM,QAAQ,cAAK,CAAA;AAI1B,eAAO,MAAM,OAAO,EAAE,YAErB,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,YAEvB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,YAElB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,YAErB,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,YAEpB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,YAOrB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAGtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAEtB,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,YAEtB,CAAA;AAID,eAAO,MAAM,KAAK,EAAE,YAGnB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,YAGnB,CAAA;AAID,eAAO,MAAM,KAAK,EAAE,YASnB,CAAA;AAED,eAAO,MAAM,GAAG,EAAE,YAKjB,CAAA;AAID,eAAO,MAAM,EAAE,EAAE,YAAgD,CAAA;AACjE,eAAO,MAAM,EAAE,EAAE,YAAgD,CAAA;AACjE,eAAO,MAAM,MAAM,EAAE,YAAgD,CAAA;AACrE,eAAO,MAAM,OAAO,cAAK,CAAA;AAIzB,eAAO,MAAM,MAAM,EAAE,YAYpB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,YAAwC,CAAA;AAG5D,eAAO,MAAM,KAAK,EAAE,YAAwC,CAAA;AAC5D,eAAO,MAAM,MAAM,EAAE,YAAyC,CAAA;AAI9D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA8CrD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "binja",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "High-performance Jinja2/Django template engine for Bun",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -64,8 +64,7 @@
64
64
  "license": "BSD-3-Clause",
65
65
  "devDependencies": {
66
66
  "@types/bun": "latest",
67
- "hono": "^4.11.3",
68
- "typescript": "^5.0.0"
67
+ "typescript": "latest"
69
68
  },
70
69
  "engines": {
71
70
  "bun": ">=1.0.0"