@dogsbay/minja 0.2.0-beta.100
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/LICENSE +21 -0
- package/README.md +623 -0
- package/bin/minja.js +1225 -0
- package/dist/browser.d.ts +12 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +11 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +98 -0
- package/dist/cli.js.map +1 -0
- package/dist/context.d.ts +47 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +112 -0
- package/dist/context.js.map +1 -0
- package/dist/evaluator.d.ts +20 -0
- package/dist/evaluator.d.ts.map +1 -0
- package/dist/evaluator.js +213 -0
- package/dist/evaluator.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.js +1160 -0
- package/dist/index.umd.js.map +7 -0
- package/dist/index.umd.min.js +12 -0
- package/dist/index.umd.min.js.map +7 -0
- package/dist/loader-fetch.d.ts +8 -0
- package/dist/loader-fetch.d.ts.map +1 -0
- package/dist/loader-fetch.js +15 -0
- package/dist/loader-fetch.js.map +1 -0
- package/dist/loader-memory.d.ts +11 -0
- package/dist/loader-memory.d.ts.map +1 -0
- package/dist/loader-memory.js +36 -0
- package/dist/loader-memory.js.map +1 -0
- package/dist/loader.d.ts +73 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +159 -0
- package/dist/loader.js.map +1 -0
- package/dist/parser.d.ts +7 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +609 -0
- package/dist/parser.js.map +1 -0
- package/dist/renderer.d.ts +13 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +494 -0
- package/dist/renderer.js.map +1 -0
- package/dist/scan.d.ts +46 -0
- package/dist/scan.d.ts.map +1 -0
- package/dist/scan.js +46 -0
- package/dist/scan.js.map +1 -0
- package/dist/types.d.ts +175 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +72 -0
package/dist/loader.d.ts
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File loaders for {% include %} statements
|
|
3
|
+
* Pluggable interface supporting different environments
|
|
4
|
+
*/
|
|
5
|
+
import type { Loader } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Fetch-based loader for browsers and service workers
|
|
8
|
+
* Uses the Fetch API to load files
|
|
9
|
+
*/
|
|
10
|
+
export declare class FetchLoader implements Loader {
|
|
11
|
+
/**
|
|
12
|
+
* Load a file using fetch
|
|
13
|
+
* @param path - Path to load (relative or absolute URL)
|
|
14
|
+
* @param basePath - Base URL to resolve relative paths
|
|
15
|
+
* @returns File contents
|
|
16
|
+
*/
|
|
17
|
+
load(path: string, basePath?: string): Promise<string>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Options for {@link FileSystemLoader}.
|
|
21
|
+
*/
|
|
22
|
+
export interface FileSystemLoaderOptions {
|
|
23
|
+
/**
|
|
24
|
+
* Containment root for include targets. When set, every include is
|
|
25
|
+
* resolved with `realpath` (following symlinks) and must land INSIDE
|
|
26
|
+
* this directory — `{% include %}` otherwise reads any file the build
|
|
27
|
+
* process can, and a crafted include in an untrusted corpus publishes
|
|
28
|
+
* it into the site output (issue #027, same class as the VitePress
|
|
29
|
+
* `<<<` symlink escape). Relative `..` and absolute paths that stay
|
|
30
|
+
* inside the root remain legal. Unset = no containment (trusted
|
|
31
|
+
* input, backward compatible).
|
|
32
|
+
*/
|
|
33
|
+
root?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Filesystem loader for Node.js
|
|
37
|
+
* Uses fs.readFile to load files
|
|
38
|
+
*/
|
|
39
|
+
export declare class FileSystemLoader implements Loader {
|
|
40
|
+
private basePath;
|
|
41
|
+
private root?;
|
|
42
|
+
private realRoot?;
|
|
43
|
+
/**
|
|
44
|
+
* Create a filesystem loader
|
|
45
|
+
* @param basePath - Base directory for resolving relative paths
|
|
46
|
+
* @param options - See {@link FileSystemLoaderOptions}
|
|
47
|
+
*/
|
|
48
|
+
constructor(basePath?: string, options?: FileSystemLoaderOptions);
|
|
49
|
+
/**
|
|
50
|
+
* Load a file from the filesystem
|
|
51
|
+
* @param path - Path to load (relative or absolute)
|
|
52
|
+
* @param basePath - Base path to resolve relative paths (overrides constructor basePath)
|
|
53
|
+
* @returns File contents
|
|
54
|
+
*/
|
|
55
|
+
load(path: string, basePath?: string): Promise<string>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Memory-based loader for testing
|
|
59
|
+
* Stores files in a Map
|
|
60
|
+
*/
|
|
61
|
+
export declare class MemoryLoader implements Loader {
|
|
62
|
+
private files;
|
|
63
|
+
constructor(files?: Record<string, string>);
|
|
64
|
+
/**
|
|
65
|
+
* Add a file to the memory loader
|
|
66
|
+
*/
|
|
67
|
+
addFile(path: string, content: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* Load a file from memory
|
|
70
|
+
*/
|
|
71
|
+
load(path: string, basePath?: string): Promise<string>;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;;GAGG;AACH,qBAAa,WAAY,YAAW,MAAM;IACxC;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAc7D;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,MAAM;IAC7C,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,IAAI,CAAC,CAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IAEzB;;;;OAIG;gBACS,QAAQ,GAAE,MAAsB,EAAE,OAAO,GAAE,uBAA4B;IAKnF;;;;;OAKG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiF7D;AAED;;;GAGG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,KAAK,CAAqB;gBAEtB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAI9C;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAc7D"}
|
package/dist/loader.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File loaders for {% include %} statements
|
|
3
|
+
* Pluggable interface supporting different environments
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Fetch-based loader for browsers and service workers
|
|
7
|
+
* Uses the Fetch API to load files
|
|
8
|
+
*/
|
|
9
|
+
export class FetchLoader {
|
|
10
|
+
/**
|
|
11
|
+
* Load a file using fetch
|
|
12
|
+
* @param path - Path to load (relative or absolute URL)
|
|
13
|
+
* @param basePath - Base URL to resolve relative paths
|
|
14
|
+
* @returns File contents
|
|
15
|
+
*/
|
|
16
|
+
async load(path, basePath) {
|
|
17
|
+
const url = basePath ? new URL(path, basePath).href : path;
|
|
18
|
+
// Add cache busting parameter
|
|
19
|
+
const fetchUrl = `${url}?preventCache=${Date.now()}`;
|
|
20
|
+
const response = await fetch(fetchUrl);
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
throw new Error(`Failed to load ${url}: ${response.status} ${response.statusText}`);
|
|
23
|
+
}
|
|
24
|
+
return await response.text();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Filesystem loader for Node.js
|
|
29
|
+
* Uses fs.readFile to load files
|
|
30
|
+
*/
|
|
31
|
+
export class FileSystemLoader {
|
|
32
|
+
/**
|
|
33
|
+
* Create a filesystem loader
|
|
34
|
+
* @param basePath - Base directory for resolving relative paths
|
|
35
|
+
* @param options - See {@link FileSystemLoaderOptions}
|
|
36
|
+
*/
|
|
37
|
+
constructor(basePath = process.cwd(), options = {}) {
|
|
38
|
+
this.basePath = basePath;
|
|
39
|
+
this.root = options.root;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Load a file from the filesystem
|
|
43
|
+
* @param path - Path to load (relative or absolute)
|
|
44
|
+
* @param basePath - Base path to resolve relative paths (overrides constructor basePath)
|
|
45
|
+
* @returns File contents
|
|
46
|
+
*/
|
|
47
|
+
async load(path, basePath) {
|
|
48
|
+
// Dynamic import to avoid bundling fs in browser builds
|
|
49
|
+
const fs = await import('fs/promises');
|
|
50
|
+
const pathModule = await import('path');
|
|
51
|
+
const resolvedBasePath = basePath || this.basePath;
|
|
52
|
+
const resolvedPath = pathModule.isAbsolute(path)
|
|
53
|
+
? path
|
|
54
|
+
: pathModule.resolve(resolvedBasePath, path);
|
|
55
|
+
if (this.root !== undefined) {
|
|
56
|
+
// Containment check runs BEFORE the read, on the realpath of both
|
|
57
|
+
// sides, so neither `..` traversal nor a symlink inside the root
|
|
58
|
+
// pointing outside it can smuggle a foreign file into the render.
|
|
59
|
+
const refuse = (detail) => {
|
|
60
|
+
// Named error so the renderer can tell a SECURITY refusal from an
|
|
61
|
+
// ordinary missing-include: soft handling (preserve-the-directive,
|
|
62
|
+
// `<!-- Include error -->`) must not apply — the render fails hard.
|
|
63
|
+
const err = new Error(`Refusing include outside the include root: ${detail}`);
|
|
64
|
+
err.name = 'IncludeContainmentError';
|
|
65
|
+
throw err;
|
|
66
|
+
};
|
|
67
|
+
if (this.realRoot === undefined) {
|
|
68
|
+
try {
|
|
69
|
+
// Cached: containment is pinned to the root's topology at first
|
|
70
|
+
// load. A root re-pointed mid-render would leave the previously
|
|
71
|
+
// authorized set stale, but everything in it was legitimately
|
|
72
|
+
// authorized once — and a target now escaping the OLD realpath
|
|
73
|
+
// still refuses (fail-closed).
|
|
74
|
+
this.realRoot = await fs.realpath(this.root);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
// A root that doesn't resolve is a MISCONFIGURATION, not a
|
|
78
|
+
// missing include — soft handling would gut every include while
|
|
79
|
+
// the run "succeeds" with exit 0 (review finding). Fail hard.
|
|
80
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
81
|
+
refuse(`include root ${this.root} does not resolve (${message})`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Lexical pre-check: a path that is outside the root BEFORE any
|
|
85
|
+
// symlink resolution is refused even when its target does not
|
|
86
|
+
// exist — otherwise `{% include "../not-yet-there" %}` degrades to
|
|
87
|
+
// a soft missing-include and the directive survives into output a
|
|
88
|
+
// later uncontained pass might resolve (review finding). Lexical
|
|
89
|
+
// containment can only REFUSE early, never allow: the realpath
|
|
90
|
+
// check below still runs for everything lexically inside.
|
|
91
|
+
const lexical = pathModule.resolve(resolvedPath);
|
|
92
|
+
if (lexical !== this.realRoot && !lexical.startsWith(this.realRoot + pathModule.sep) &&
|
|
93
|
+
lexical !== this.root && !lexical.startsWith(pathModule.resolve(this.root) + pathModule.sep)) {
|
|
94
|
+
refuse(`"${path}" resolves to ${lexical}, which is not inside ${this.realRoot}`);
|
|
95
|
+
}
|
|
96
|
+
let realTarget;
|
|
97
|
+
try {
|
|
98
|
+
realTarget = await fs.realpath(resolvedPath);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
// Target doesn't resolve — surface as an ordinary load failure;
|
|
102
|
+
// there is nothing to disclose (lexically it is inside the root).
|
|
103
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
104
|
+
throw new Error(`Failed to load ${resolvedPath}: ${message}`);
|
|
105
|
+
}
|
|
106
|
+
if (realTarget !== this.realRoot && !realTarget.startsWith(this.realRoot + pathModule.sep)) {
|
|
107
|
+
refuse(`"${path}" resolves to ${realTarget}, which is not inside ${this.realRoot}`);
|
|
108
|
+
}
|
|
109
|
+
// Read the VETTED realpath, not the original: narrows the
|
|
110
|
+
// realpath→read race so a final-component symlink swap between the
|
|
111
|
+
// check and the read cannot redirect the read outside the root
|
|
112
|
+
// (parent-directory races remain, as in any realpath design).
|
|
113
|
+
try {
|
|
114
|
+
return await fs.readFile(realTarget, 'utf-8');
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
118
|
+
throw new Error(`Failed to load ${resolvedPath}: ${message}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
return await fs.readFile(resolvedPath, 'utf-8');
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
126
|
+
throw new Error(`Failed to load ${resolvedPath}: ${message}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Memory-based loader for testing
|
|
132
|
+
* Stores files in a Map
|
|
133
|
+
*/
|
|
134
|
+
export class MemoryLoader {
|
|
135
|
+
constructor(files = {}) {
|
|
136
|
+
this.files = new Map(Object.entries(files));
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Add a file to the memory loader
|
|
140
|
+
*/
|
|
141
|
+
addFile(path, content) {
|
|
142
|
+
this.files.set(path, content);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Load a file from memory
|
|
146
|
+
*/
|
|
147
|
+
async load(path, basePath) {
|
|
148
|
+
// Simple path resolution for memory loader
|
|
149
|
+
const resolvedPath = basePath && !path.startsWith('/')
|
|
150
|
+
? `${basePath}/${path}`.replace(/\/+/g, '/')
|
|
151
|
+
: path;
|
|
152
|
+
const content = this.files.get(resolvedPath);
|
|
153
|
+
if (content === undefined) {
|
|
154
|
+
throw new Error(`File not found: ${resolvedPath}`);
|
|
155
|
+
}
|
|
156
|
+
return content;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAW,WAAW,EAAc,MAAM,YAAY,CAAA;AAsDlE,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAgmBnD"}
|