ventojs 1.12.15 → 1.13.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,12 @@
1
+ declare global {
2
+ interface Object {
3
+ /**
4
+ * Determines whether an object has a property with the specified name.
5
+ * @param o An object.
6
+ * @param v A property name.
7
+ */
8
+ hasOwn(o: object, v: PropertyKey): boolean;
9
+ }
10
+ }
11
+ export {};
12
+ //# sourceMappingURL=_dnt.polyfills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_dnt.polyfills.d.ts","sourceRoot":"","sources":["../src/_dnt.polyfills.ts"],"names":[],"mappings":"AAeA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd;;;;WAIG;QACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;KAC5C;CACF;AAED,OAAO,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ // https://github.com/tc39/proposal-accessible-object-hasownproperty/blob/main/polyfill.js
2
+ if (!Object.hasOwn) {
3
+ Object.defineProperty(Object, "hasOwn", {
4
+ value: function (object, property) {
5
+ if (object == null) {
6
+ throw new TypeError("Cannot convert undefined or null to object");
7
+ }
8
+ return Object.prototype.hasOwnProperty.call(Object(object), property);
9
+ },
10
+ configurable: true,
11
+ enumerable: false,
12
+ writable: true,
13
+ });
14
+ }
15
+ export {};
@@ -1,6 +1,2 @@
1
- import { Deno } from "@deno/shim-deno";
2
- export { Deno } from "@deno/shim-deno";
3
- export declare const dntGlobalThis: Omit<typeof globalThis, "Deno"> & {
4
- Deno: typeof Deno;
5
- };
1
+ export declare const dntGlobalThis: Omit<typeof globalThis, never>;
6
2
  //# sourceMappingURL=_dnt.shims.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAKvC,eAAO,MAAM,aAAa;;CAA2C,CAAC"}
1
+ {"version":3,"file":"_dnt.shims.d.ts","sourceRoot":"","sources":["../src/_dnt.shims.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,gCAA2C,CAAC"}
package/esm/_dnt.shims.js CHANGED
@@ -1,8 +1,4 @@
1
- import { Deno } from "@deno/shim-deno";
2
- export { Deno } from "@deno/shim-deno";
3
- const dntGlobals = {
4
- Deno,
5
- };
1
+ const dntGlobals = {};
6
2
  export const dntGlobalThis = createMergeProxy(globalThis, dntGlobals);
7
3
  function createMergeProxy(baseObj, extObj) {
8
4
  return new Proxy(baseObj, {
package/esm/bare.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { Environment } from "./src/environment.js";
2
+ import { type Loader } from "./src/loader.node.js";
3
+ export interface Options {
4
+ includes?: string | Loader;
5
+ autoDataVarname?: boolean;
6
+ dataVarname?: string;
7
+ autoescape?: boolean;
8
+ }
9
+ export default function (options?: Options): Environment;
10
+ //# sourceMappingURL=bare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bare.d.ts","sourceRoot":"","sources":["../src/bare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,GAAE,OAAY,GAAG,WAAW,CAa3D"}
package/esm/bare.js ADDED
@@ -0,0 +1,14 @@
1
+ import { Environment } from "./src/environment.js";
2
+ import { FileLoader } from "./src/loader.node.js";
3
+ export default function (options = {}) {
4
+ const loader = typeof options.includes === "object"
5
+ ? options.includes
6
+ : new FileLoader(options.includes);
7
+ const env = new Environment({
8
+ loader,
9
+ dataVarname: options.dataVarname || "it",
10
+ autoescape: options.autoescape ?? false,
11
+ autoDataVarname: options.autoDataVarname ?? true,
12
+ });
13
+ return env;
14
+ }
package/esm/mod.d.ts CHANGED
@@ -1,12 +1,9 @@
1
- import { Environment } from "./src/environment.js";
2
- import { Loader } from "./src/loader.js";
3
- export interface Options {
4
- includes?: string | Loader;
1
+ import "./_dnt.polyfills.js";
2
+ import { Options as BareOptions } from "./bare.js";
3
+ import { type Environment } from "./src/environment.js";
4
+ export interface Options extends BareOptions {
5
5
  /** @deprecated Use autoDataVarname */
6
6
  useWith?: boolean;
7
- autoDataVarname?: boolean;
8
- dataVarname?: string;
9
- autoescape?: boolean;
10
7
  }
11
8
  export default function (options?: Options): Environment;
12
9
  //# sourceMappingURL=mod.d.ts.map
package/esm/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAc,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAerD,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,GAAE,OAAY,GAAG,WAAW,CA4B3D"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAe,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAexD,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,GAAE,OAAY,GAAG,WAAW,CAsB3D"}
package/esm/mod.js CHANGED
@@ -1,6 +1,5 @@
1
- import * as dntShim from "./_dnt.shims.js";
2
- import { Environment } from "./src/environment.js";
3
- import { FileLoader } from "./src/loader.js";
1
+ import "./_dnt.polyfills.js";
2
+ import create from "./bare.js";
4
3
  import ifTag from "./plugins/if.js";
5
4
  import forTag from "./plugins/for.js";
6
5
  import includeTag from "./plugins/include.js";
@@ -15,13 +14,8 @@ import escape from "./plugins/escape.js";
15
14
  import unescape from "./plugins/unescape.js";
16
15
  import trim from "./plugins/trim.js";
17
16
  export default function (options = {}) {
18
- const loader = typeof options.includes === "object"
19
- ? options.includes
20
- : new FileLoader(options.includes || dntShim.Deno.cwd());
21
- const env = new Environment({
22
- loader,
23
- dataVarname: options.dataVarname || "it",
24
- autoescape: options.autoescape ?? false,
17
+ const env = create({
18
+ ...options,
25
19
  autoDataVarname: options.autoDataVarname ?? options.useWith ?? true,
26
20
  });
27
21
  // Register basic plugins
@@ -1,3 +1,4 @@
1
+ import "../_dnt.polyfills.js";
1
2
  import type { Token } from "../src/tokenizer.js";
2
3
  import type { Plugin } from "../src/environment.js";
3
4
  export declare const defaultTags: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"auto_trim.d.ts","sourceRoot":"","sources":["../../src/plugins/auto_trim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAO,MAAM,WAAW,UAgBvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjD,MAAM,CAAC,OAAO,WACZ,OAAO,GAAE,eAAuC,GAC/C,MAAM,CAIR;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,QAoBjE"}
1
+ {"version":3,"file":"auto_trim.d.ts","sourceRoot":"","sources":["../../src/plugins/auto_trim.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEjE,eAAO,MAAM,WAAW,UAgBvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEjD,MAAM,CAAC,OAAO,WACZ,OAAO,GAAE,eAAuC,GAC/C,MAAM,CAIR;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,eAAe,QAoBjE"}
@@ -1,3 +1,4 @@
1
+ import "../_dnt.polyfills.js";
1
2
  export const defaultTags = [
2
3
  ">",
3
4
  "#",
@@ -1,5 +1,6 @@
1
+ import "../_dnt.polyfills.js";
1
2
  import { Token } from "./tokenizer.js";
2
- import type { Loader } from "./loader.js";
3
+ import type { Loader } from "./loader.node.js";
3
4
  export interface TemplateResult {
4
5
  content: string;
5
6
  [key: string]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/src/environment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/src/environment.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import "../_dnt.polyfills.js";
1
2
  import * as dntShim from "../_dnt.shims.js";
2
3
  import tokenize from "./tokenizer.js";
3
4
  import { transformTemplateCode } from "./transformer.js";
@@ -8,7 +9,9 @@ export class Environment {
8
9
  tags = [];
9
10
  tokenPreprocessors = [];
10
11
  filters = {};
11
- utils = {};
12
+ utils = {
13
+ callMethod,
14
+ };
12
15
  constructor(options) {
13
16
  this.options = options;
14
17
  }
@@ -144,7 +147,7 @@ export class Environment {
144
147
  throw new Error(`Invalid filter: ${code}`);
145
148
  }
146
149
  const [_, isAsync, name, args] = match;
147
- if (!this.filters[name]) {
150
+ if (!Object.hasOwn(this.filters, name)) {
148
151
  if (name === "safe") {
149
152
  unescaped = true;
150
153
  }
@@ -154,7 +157,7 @@ export class Environment {
154
157
  }
155
158
  else {
156
159
  // It's a prototype's method (e.g. `String.toUpperCase()`)
157
- output = `${isAsync ? "await " : ""}(${output})?.${name}?.(${args ? args : ""})`;
160
+ output = `${isAsync ? "await " : ""}__env.utils.callMethod(${output}, "${name}", ${args ? args : ""})`;
158
161
  }
159
162
  }
160
163
  else {
@@ -172,15 +175,25 @@ export class Environment {
172
175
  }
173
176
  function isGlobal(name) {
174
177
  // @ts-ignore TS doesn't know about globalThis
175
- if (dntShim.dntGlobalThis[name]) {
178
+ if (Object.hasOwn(dntShim.dntGlobalThis, name)) {
176
179
  return true;
177
180
  }
178
181
  if (name.includes(".")) {
179
182
  const [obj, prop] = name.split(".");
180
183
  // @ts-ignore TS doesn't know about globalThis
181
- return typeof dntShim.dntGlobalThis[obj]?.[prop] === "function";
184
+ return Object.hasOwn(dntShim.dntGlobalThis[obj], prop);
182
185
  }
183
186
  }
187
+ // deno-lint-ignore no-explicit-any
188
+ function callMethod(thisObject, method, ...args) {
189
+ if (thisObject === null || thisObject === undefined) {
190
+ return thisObject;
191
+ }
192
+ if (typeof thisObject[method] === "function") {
193
+ return thisObject[method](...args);
194
+ }
195
+ throw new Error(`"${method}" is not a valid filter, global object or a method of a ${typeof thisObject} variable`);
196
+ }
184
197
  function checkAsync(fn) {
185
198
  return fn.constructor?.name === "AsyncFunction";
186
199
  }
@@ -1,3 +1,4 @@
1
+ import "../_dnt.polyfills.js";
1
2
  export interface TemplateSource {
2
3
  source: string;
3
4
  data?: Record<string, unknown>;
@@ -8,8 +9,8 @@ export interface Loader {
8
9
  }
9
10
  export declare class FileLoader implements Loader {
10
11
  #private;
11
- constructor(root: string);
12
+ constructor(root?: string);
12
13
  load(file: string): Promise<TemplateSource>;
13
14
  resolve(from: string, file: string): string;
14
15
  }
15
- //# sourceMappingURL=loader.d.ts.map
16
+ //# sourceMappingURL=loader.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.node.d.ts","sourceRoot":"","sources":["../../src/src/loader.node.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAK9B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7C;AAED,qBAAa,UAAW,YAAW,MAAM;;gBAG3B,IAAI,SAAgB;IAI1B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMjD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAW5C"}
@@ -1,13 +1,15 @@
1
- import * as dntShim from "../_dnt.shims.js";
2
- import { path } from "../deps.js";
1
+ import "../_dnt.polyfills.js";
2
+ import path from "node:path";
3
+ import fs from "node:fs/promises";
4
+ import process from "node:process";
3
5
  export class FileLoader {
4
6
  #root;
5
- constructor(root) {
7
+ constructor(root = process.cwd()) {
6
8
  this.#root = root;
7
9
  }
8
10
  async load(file) {
9
11
  return {
10
- source: await dntShim.Deno.readTextFile(file),
12
+ source: await fs.readFile(file, { encoding: "utf-8" }),
11
13
  };
12
14
  }
13
15
  resolve(from, file) {
@@ -1,3 +1,4 @@
1
+ import "../_dnt.polyfills.js";
1
2
  export type TokenType = "string" | "tag" | "filter" | "comment";
2
3
  export type Token = [TokenType, string, number?];
3
4
  export interface TokenizeResult {
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/src/tokenizer.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAsF/D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBjD"}
1
+ {"version":3,"file":"tokenizer.d.ts","sourceRoot":"","sources":["../../src/src/tokenizer.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAG9B,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAChE,MAAM,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAsF/D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBjD"}
@@ -1,3 +1,4 @@
1
+ import "../_dnt.polyfills.js";
1
2
  import analyze from "./js.js";
2
3
  export default function tokenize(source) {
3
4
  const tokens = [];
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/src/transformer.ts"],"names":[],"mappings":"AA4HA,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,MAAM,CA0JR"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/src/transformer.ts"],"names":[],"mappings":"AA2HA,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,MAAM,CA0JR"}
@@ -11,7 +11,6 @@ const INCLUDE_GLOBAL = [
11
11
  const DEFAULT_EXCLUDES = [
12
12
  "globalThis",
13
13
  "self",
14
- "global",
15
14
  "this",
16
15
  "undefined",
17
16
  "null",
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,QAE9C;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,iBAkB9C;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,QAiB5C;AAED,qBAAa,UAAW,YAAW,MAAM;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;gBAEvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIzC,IAAI,CAAC,IAAI,EAAE,MAAM;;;;;;;IAcjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAO5C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,QAE9C;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,iBAkB9C;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,QAiB5C;AAED,qBAAa,UAAW,YAAW,MAAM;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;gBAEvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIzC,IAAI,CAAC,IAAI,EAAE,MAAM;;;;;;;IAcjB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAO5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ventojs",
3
- "version": "1.12.15",
3
+ "version": "1.13.0",
4
4
  "description": "🌬 A minimal but powerful template engine",
5
5
  "homepage": "https://vento.js.org/",
6
6
  "repository": "github:oscarotero/vento",
@@ -15,7 +15,7 @@
15
15
  "import": "./esm/src/environment.js"
16
16
  },
17
17
  "./src/loader.js": {
18
- "import": "./esm/src/loader.js"
18
+ "import": "./esm/src/loader.node.js"
19
19
  },
20
20
  "./src/tokenizer.js": {
21
21
  "import": "./esm/src/tokenizer.js"
@@ -29,12 +29,12 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "estree-walker": "3.0.3",
32
- "meriyah": "6.0.5",
33
- "@deno/shim-deno": "~0.18.0"
32
+ "meriyah": "6.0.5"
34
33
  },
35
34
  "devDependencies": {
36
35
  "@types/node": "^20.9.0",
37
36
  "picocolors": "^1.0.0",
37
+ "@deno/shim-deno": "~0.18.0",
38
38
  "@types/estree": "1.0.5"
39
39
  },
40
40
  "_generatedBy": "dnt@dev"
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/src/loader.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7C;AAED,qBAAa,UAAW,YAAW,MAAM;;gBAG3B,IAAI,EAAE,MAAM;IAIlB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMjD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;CAW5C"}