@staticforge/build 0.0.0-stage → 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.
- package/LICENSE +21 -0
- package/README.md +6 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/build.d.ts +75 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +692 -0
- package/dist/build.js.map +1 -0
- package/dist/cache.d.ts +64 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +97 -0
- package/dist/cache.js.map +1 -0
- package/dist/code-assets.d.ts +36 -0
- package/dist/code-assets.d.ts.map +1 -0
- package/dist/code-assets.js +61 -0
- package/dist/code-assets.js.map +1 -0
- package/dist/data.d.ts +8 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +43 -0
- package/dist/data.js.map +1 -0
- package/dist/feeds.d.ts +33 -0
- package/dist/feeds.d.ts.map +1 -0
- package/dist/feeds.js +120 -0
- package/dist/feeds.js.map +1 -0
- package/dist/html.d.ts +14 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +31 -0
- package/dist/html.js.map +1 -0
- package/dist/images.d.ts +22 -0
- package/dist/images.d.ts.map +1 -0
- package/dist/images.js +95 -0
- package/dist/images.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/nav.d.ts +15 -0
- package/dist/nav.d.ts.map +1 -0
- package/dist/nav.js +19 -0
- package/dist/nav.js.map +1 -0
- package/dist/project.d.ts +31 -0
- package/dist/project.d.ts.map +1 -0
- package/dist/project.js +74 -0
- package/dist/project.js.map +1 -0
- package/dist/routes.d.ts +42 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +106 -0
- package/dist/routes.js.map +1 -0
- package/dist/scaffold.d.ts +46 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +163 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/site.d.ts +47 -0
- package/dist/site.d.ts.map +1 -0
- package/dist/site.js +107 -0
- package/dist/site.js.map +1 -0
- package/dist/tasks.d.ts +86 -0
- package/dist/tasks.d.ts.map +1 -0
- package/dist/tasks.js +103 -0
- package/dist/tasks.js.map +1 -0
- package/package.json +48 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/dist/cache.d.ts
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { PreparedSource } from '@staticforge/content';
|
|
2
|
+
import type { ParseResult } from './tasks.js';
|
|
3
|
+
/** SHA-256 of the parts, separated so ("ab", "c") and ("a", "bc") differ. */
|
|
4
|
+
export declare function hashOf(...parts: string[]): string;
|
|
5
|
+
/** JSON for hashing: Maps and Sets as sorted entries. */
|
|
6
|
+
export declare function stableJson(value: unknown): string;
|
|
7
|
+
/**
|
|
8
|
+
* Results by key, kept for one build: entries a build does not use are
|
|
9
|
+
* dropped when it finishes, so the cache never outgrows the site.
|
|
10
|
+
*/
|
|
11
|
+
export declare class Memo<V> {
|
|
12
|
+
private current;
|
|
13
|
+
private next;
|
|
14
|
+
get(key: string): V | undefined;
|
|
15
|
+
set(key: string, value: V): void;
|
|
16
|
+
/** Start a build: forget what an unfinished one collected. */
|
|
17
|
+
begin(): void;
|
|
18
|
+
/** Finish a build: keep only what it used. */
|
|
19
|
+
commit(): void;
|
|
20
|
+
get size(): number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Results for `items`, from `memo` where it has them; the rest are computed in
|
|
24
|
+
* one call (in item order) and kept when `keep` allows.
|
|
25
|
+
*/
|
|
26
|
+
export declare function memoized<I, R>(items: I[], memo: Memo<R> | undefined, keyOf: (item: I) => string, compute: (missing: I[]) => Promise<R[]>, keep: (result: R) => boolean): Promise<{
|
|
27
|
+
results: R[];
|
|
28
|
+
computed: number;
|
|
29
|
+
}>;
|
|
30
|
+
/** A copied file of a build, recognized by its source's size and modification time. */
|
|
31
|
+
export interface CopyRecord {
|
|
32
|
+
source: string;
|
|
33
|
+
size: number;
|
|
34
|
+
mtimeMs: number;
|
|
35
|
+
sha256: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* State kept between builds of the same project (`sforge dev`), so a rebuild
|
|
39
|
+
* only parses and renders what changed. Every key covers all inputs of its
|
|
40
|
+
* result, so the cache cannot serve stale output; it only saves work.
|
|
41
|
+
*/
|
|
42
|
+
export declare class BuildCache {
|
|
43
|
+
/** Template variable `build.time`: fixed, so unchanged pages stay identical. */
|
|
44
|
+
readonly time: Date;
|
|
45
|
+
readonly prepared: Memo<PreparedSource>;
|
|
46
|
+
/** Parse results without trees, by source and the page/output sets they resolve against. */
|
|
47
|
+
readonly parsed: Memo<ParseResult>;
|
|
48
|
+
/** Finished page HTML by everything that went into rendering it. */
|
|
49
|
+
readonly rendered: Memo<string>;
|
|
50
|
+
/** The last build, whose unchanged files the next one hard-links. */
|
|
51
|
+
previous: {
|
|
52
|
+
outDir: string;
|
|
53
|
+
copies: Map<string, CopyRecord>;
|
|
54
|
+
} | undefined;
|
|
55
|
+
/** What the last build did: pages parsed and rendered, files linked. */
|
|
56
|
+
stats: {
|
|
57
|
+
parsed: number;
|
|
58
|
+
rendered: number;
|
|
59
|
+
linked: number;
|
|
60
|
+
};
|
|
61
|
+
begin(): void;
|
|
62
|
+
commit(previous: BuildCache['previous']): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,6EAA6E;AAC7E,wBAAgB,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAIjD;AAED,yDAAyD;AACzD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMjD;AAED;;;GAGG;AACH,qBAAa,IAAI,CAAC,CAAC;IACjB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAwB;IAEpC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAM/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhC,8DAA8D;IAC9D,KAAK,IAAI,IAAI;IAIb,8CAA8C;IAC9C,MAAM,IAAI,IAAI;IAKd,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,EACV,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,EACzB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACvC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAY7C;AAED,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACrB,gFAAgF;IAChF,QAAQ,CAAC,IAAI,OAAc;IAC3B,QAAQ,CAAC,QAAQ,uBAA8B;IAC/C,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,oBAA2B;IAC1C,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,eAAsB;IACvC,qEAAqE;IACrE,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAC1E,wEAAwE;IACxE,KAAK;;;;MAAyC;IAE9C,KAAK,IAAI,IAAI;IAOb,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,IAAI;CAM/C"}
|
package/dist/cache.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
/** SHA-256 of the parts, separated so ("ab", "c") and ("a", "bc") differ. */
|
|
3
|
+
export function hashOf(...parts) {
|
|
4
|
+
const hash = createHash('sha256');
|
|
5
|
+
for (const part of parts)
|
|
6
|
+
hash.update(part).update('\0');
|
|
7
|
+
return hash.digest('hex');
|
|
8
|
+
}
|
|
9
|
+
/** JSON for hashing: Maps and Sets as sorted entries. */
|
|
10
|
+
export function stableJson(value) {
|
|
11
|
+
return JSON.stringify(value, (_key, v) => {
|
|
12
|
+
if (v instanceof Map)
|
|
13
|
+
return [...v].sort(([a], [b]) => String(a).localeCompare(String(b)));
|
|
14
|
+
if (v instanceof Set)
|
|
15
|
+
return [...v].sort();
|
|
16
|
+
return v;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Results by key, kept for one build: entries a build does not use are
|
|
21
|
+
* dropped when it finishes, so the cache never outgrows the site.
|
|
22
|
+
*/
|
|
23
|
+
export class Memo {
|
|
24
|
+
current = new Map();
|
|
25
|
+
next = new Map();
|
|
26
|
+
get(key) {
|
|
27
|
+
const value = this.current.get(key) ?? this.next.get(key);
|
|
28
|
+
if (value !== undefined)
|
|
29
|
+
this.next.set(key, value);
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
set(key, value) {
|
|
33
|
+
this.next.set(key, value);
|
|
34
|
+
}
|
|
35
|
+
/** Start a build: forget what an unfinished one collected. */
|
|
36
|
+
begin() {
|
|
37
|
+
this.next = new Map();
|
|
38
|
+
}
|
|
39
|
+
/** Finish a build: keep only what it used. */
|
|
40
|
+
commit() {
|
|
41
|
+
this.current = this.next;
|
|
42
|
+
this.next = new Map();
|
|
43
|
+
}
|
|
44
|
+
get size() {
|
|
45
|
+
return this.current.size;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Results for `items`, from `memo` where it has them; the rest are computed in
|
|
50
|
+
* one call (in item order) and kept when `keep` allows.
|
|
51
|
+
*/
|
|
52
|
+
export async function memoized(items, memo, keyOf, compute, keep) {
|
|
53
|
+
if (memo === undefined)
|
|
54
|
+
return { results: await compute(items), computed: items.length };
|
|
55
|
+
const keys = items.map(keyOf);
|
|
56
|
+
const results = keys.map((key) => memo.get(key));
|
|
57
|
+
const missing = results.flatMap((result, i) => (result === undefined ? [i] : []));
|
|
58
|
+
const computed = await compute(missing.map((i) => items[i]));
|
|
59
|
+
for (const [j, i] of missing.entries()) {
|
|
60
|
+
const result = computed[j];
|
|
61
|
+
results[i] = result;
|
|
62
|
+
if (keep(result))
|
|
63
|
+
memo.set(keys[i], result);
|
|
64
|
+
}
|
|
65
|
+
return { results: results, computed: missing.length };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* State kept between builds of the same project (`sforge dev`), so a rebuild
|
|
69
|
+
* only parses and renders what changed. Every key covers all inputs of its
|
|
70
|
+
* result, so the cache cannot serve stale output; it only saves work.
|
|
71
|
+
*/
|
|
72
|
+
export class BuildCache {
|
|
73
|
+
/** Template variable `build.time`: fixed, so unchanged pages stay identical. */
|
|
74
|
+
time = new Date();
|
|
75
|
+
prepared = new Memo();
|
|
76
|
+
/** Parse results without trees, by source and the page/output sets they resolve against. */
|
|
77
|
+
parsed = new Memo();
|
|
78
|
+
/** Finished page HTML by everything that went into rendering it. */
|
|
79
|
+
rendered = new Memo();
|
|
80
|
+
/** The last build, whose unchanged files the next one hard-links. */
|
|
81
|
+
previous;
|
|
82
|
+
/** What the last build did: pages parsed and rendered, files linked. */
|
|
83
|
+
stats = { parsed: 0, rendered: 0, linked: 0 };
|
|
84
|
+
begin() {
|
|
85
|
+
this.prepared.begin();
|
|
86
|
+
this.parsed.begin();
|
|
87
|
+
this.rendered.begin();
|
|
88
|
+
this.stats = { parsed: 0, rendered: 0, linked: 0 };
|
|
89
|
+
}
|
|
90
|
+
commit(previous) {
|
|
91
|
+
this.prepared.commit();
|
|
92
|
+
this.parsed.commit();
|
|
93
|
+
this.rendered.commit();
|
|
94
|
+
this.previous = previous;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Diagnostic } from '@staticforge/core';
|
|
2
|
+
export interface CodeInput {
|
|
3
|
+
/** Absolute source file. */
|
|
4
|
+
source: string;
|
|
5
|
+
/** Output path, POSIX-relative to the build directory. */
|
|
6
|
+
output: string;
|
|
7
|
+
/** Project-relative label for diagnostics. */
|
|
8
|
+
label: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CodeOutput {
|
|
11
|
+
output: string;
|
|
12
|
+
contents: Buffer;
|
|
13
|
+
/** Fingerprinted files never change, so they can be cached forever. */
|
|
14
|
+
immutable: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare const CODE: RegExp;
|
|
17
|
+
/**
|
|
18
|
+
* Bundle stylesheets (lightningcss) and scripts (esbuild). Each file is
|
|
19
|
+
* written, processed, under its own name (`.ts` as `.js`) and, with
|
|
20
|
+
* `fingerprint`, also under a content-hashed name that references are
|
|
21
|
+
* rewritten to. The hashed file stays in the same directory, so relative
|
|
22
|
+
* `url()`s keep working.
|
|
23
|
+
*
|
|
24
|
+
* @returns The files to write and the URL each source URL now maps to.
|
|
25
|
+
*/
|
|
26
|
+
export declare function processCode(inputs: CodeInput[], options: {
|
|
27
|
+
minify: boolean;
|
|
28
|
+
fingerprint: boolean;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
outputs: CodeOutput[];
|
|
31
|
+
urls: Map<string, string>;
|
|
32
|
+
diagnostics: Diagnostic[];
|
|
33
|
+
}>;
|
|
34
|
+
/** Whether a copied file is processed as code rather than copied verbatim. */
|
|
35
|
+
export declare const isCode: (output: string) => boolean;
|
|
36
|
+
//# sourceMappingURL=code-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-assets.d.ts","sourceRoot":"","sources":["../src/code-assets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,QAA4B,CAAC;AAG9C;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EAAE,EACnB,OAAO,EAAE;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC;IAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CA8C1F;AAED,8EAA8E;AAC9E,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,KAAG,OAA4C,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { posix } from 'node:path';
|
|
2
|
+
import { bundleScript, bundleStyle, fingerprint } from '@staticforge/assets';
|
|
3
|
+
export const CODE = /\.(css|js|mjs|ts|mts)$/i;
|
|
4
|
+
const TYPESCRIPT = /\.m?ts$/i;
|
|
5
|
+
/**
|
|
6
|
+
* Bundle stylesheets (lightningcss) and scripts (esbuild). Each file is
|
|
7
|
+
* written, processed, under its own name (`.ts` as `.js`) and, with
|
|
8
|
+
* `fingerprint`, also under a content-hashed name that references are
|
|
9
|
+
* rewritten to. The hashed file stays in the same directory, so relative
|
|
10
|
+
* `url()`s keep working.
|
|
11
|
+
*
|
|
12
|
+
* @returns The files to write and the URL each source URL now maps to.
|
|
13
|
+
*/
|
|
14
|
+
export async function processCode(inputs, options) {
|
|
15
|
+
const outputs = [];
|
|
16
|
+
const urls = new Map();
|
|
17
|
+
const diagnostics = [];
|
|
18
|
+
await Promise.all(inputs.map(async (input) => {
|
|
19
|
+
const isStyle = input.output.toLowerCase().endsWith('.css');
|
|
20
|
+
let result;
|
|
21
|
+
try {
|
|
22
|
+
result = isStyle
|
|
23
|
+
? await bundleStyle(input.source, { minify: options.minify })
|
|
24
|
+
: await bundleScript(input.source, { minify: options.minify });
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
diagnostics.push({
|
|
28
|
+
ruleId: 'asset-failed',
|
|
29
|
+
severity: 'error',
|
|
30
|
+
message: `Could not process ${input.label}: ${error instanceof Error ? error.message : String(error)}`,
|
|
31
|
+
file: input.label,
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
for (const warning of result.warnings) {
|
|
36
|
+
diagnostics.push({
|
|
37
|
+
ruleId: 'asset-warning',
|
|
38
|
+
severity: 'warning',
|
|
39
|
+
message: warning,
|
|
40
|
+
file: input.label,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
const plain = TYPESCRIPT.test(input.output)
|
|
44
|
+
? input.output.replace(TYPESCRIPT, '.js')
|
|
45
|
+
: input.output;
|
|
46
|
+
outputs.push({ output: plain, contents: result.contents, immutable: false });
|
|
47
|
+
let final = plain;
|
|
48
|
+
if (options.fingerprint) {
|
|
49
|
+
final = fingerprint(plain, result.contents);
|
|
50
|
+
outputs.push({ output: final, contents: result.contents, immutable: true });
|
|
51
|
+
}
|
|
52
|
+
urls.set(`/${input.output}`, `/${final}`);
|
|
53
|
+
if (plain !== input.output)
|
|
54
|
+
urls.set(`/${plain}`, `/${final}`);
|
|
55
|
+
}));
|
|
56
|
+
outputs.sort((a, b) => a.output.localeCompare(b.output));
|
|
57
|
+
return { outputs, urls, diagnostics };
|
|
58
|
+
}
|
|
59
|
+
/** Whether a copied file is processed as code rather than copied verbatim. */
|
|
60
|
+
export const isCode = (output) => CODE.test(posix.basename(output));
|
|
61
|
+
//# sourceMappingURL=code-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-assets.js","sourceRoot":"","sources":["../src/code-assets.ts"],"names":[],"mappings":"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"}
|
package/dist/data.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Diagnostic } from '@staticforge/core';
|
|
2
|
+
/**
|
|
3
|
+
* Load data/*.json|yaml|yml into an object keyed by file name, so
|
|
4
|
+
* `data/links.yaml` becomes `data.links` in templates. Nested directories
|
|
5
|
+
* become nested objects (`data/team/people.json` → `data.team.people`).
|
|
6
|
+
*/
|
|
7
|
+
export declare function loadData(rootDir: string, diagnostics: Diagnostic[]): Record<string, unknown>;
|
|
8
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmC5F"}
|
package/dist/data.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { join, posix } from 'node:path';
|
|
3
|
+
import { parse as parseYaml } from 'yaml';
|
|
4
|
+
import { ProjectDirs, listFiles } from './project.js';
|
|
5
|
+
/**
|
|
6
|
+
* Load data/*.json|yaml|yml into an object keyed by file name, so
|
|
7
|
+
* `data/links.yaml` becomes `data.links` in templates. Nested directories
|
|
8
|
+
* become nested objects (`data/team/people.json` → `data.team.people`).
|
|
9
|
+
*/
|
|
10
|
+
export function loadData(rootDir, diagnostics) {
|
|
11
|
+
const dir = join(rootDir, ProjectDirs.data);
|
|
12
|
+
const data = {};
|
|
13
|
+
for (const file of listFiles(dir)) {
|
|
14
|
+
const ext = posix.extname(file);
|
|
15
|
+
if (!['.json', '.yaml', '.yml'].includes(ext))
|
|
16
|
+
continue;
|
|
17
|
+
const projectPath = `${ProjectDirs.data}/${file}`;
|
|
18
|
+
let value;
|
|
19
|
+
try {
|
|
20
|
+
const text = readFileSync(join(dir, file), 'utf8');
|
|
21
|
+
value = ext === '.json' ? JSON.parse(text) : parseYaml(text);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
diagnostics.push({
|
|
25
|
+
ruleId: 'data-invalid',
|
|
26
|
+
severity: 'error',
|
|
27
|
+
message: `Cannot parse data file: ${error instanceof Error ? error.message : String(error)}`,
|
|
28
|
+
file: projectPath,
|
|
29
|
+
});
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
const keys = file.slice(0, -ext.length).split('/');
|
|
33
|
+
const name = keys.pop() ?? '';
|
|
34
|
+
let target = data;
|
|
35
|
+
for (const key of keys) {
|
|
36
|
+
const next = target[key];
|
|
37
|
+
target = (typeof next === 'object' && next !== null ? next : (target[key] = {}));
|
|
38
|
+
}
|
|
39
|
+
target[name] = value;
|
|
40
|
+
}
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data.js.map
|
package/dist/data.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,WAAyB;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,IAAI,GAA4B,EAAE,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QACxD,MAAM,WAAW,GAAG,GAAG,WAAW,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAClD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACnD,KAAK,GAAG,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC5F,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,MAAM,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAG9E,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/feeds.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PageSummary } from '@staticforge/render';
|
|
2
|
+
/** Make root-relative URLs in page HTML absolute, as feed readers need. */
|
|
3
|
+
export declare function absolutizeHtml(html: string, baseUrl: string): string;
|
|
4
|
+
export interface FeedOptions {
|
|
5
|
+
title: string;
|
|
6
|
+
description: string | undefined;
|
|
7
|
+
language: string;
|
|
8
|
+
author: string | undefined;
|
|
9
|
+
/** Absolute URL of the collection's list page. */
|
|
10
|
+
link: string;
|
|
11
|
+
/** Absolute URL of the feed itself. */
|
|
12
|
+
self: string;
|
|
13
|
+
items: {
|
|
14
|
+
page: PageSummary;
|
|
15
|
+
html: string | undefined;
|
|
16
|
+
}[];
|
|
17
|
+
/** Used when no item has a date. */
|
|
18
|
+
fallbackDate: Date;
|
|
19
|
+
generator: string;
|
|
20
|
+
}
|
|
21
|
+
/** Entries in a feed: the most recent ones. */
|
|
22
|
+
export declare const FEED_ITEMS = 20;
|
|
23
|
+
/** RSS 2.0, with the full content in content:encoded. */
|
|
24
|
+
export declare function rssFeed(options: FeedOptions): string;
|
|
25
|
+
/** Atom 1.0. Entries without a date use the feed's date, as Atom requires one. */
|
|
26
|
+
export declare function atomFeed(options: FeedOptions): string;
|
|
27
|
+
/** sitemap.xml (sitemaps.org protocol). */
|
|
28
|
+
export declare function sitemapXml(entries: {
|
|
29
|
+
url: string;
|
|
30
|
+
lastmod: Date | undefined;
|
|
31
|
+
}[]): string;
|
|
32
|
+
export declare function robotsTxt(sitemapUrl: string): string;
|
|
33
|
+
//# sourceMappingURL=feeds.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAWvD,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAepE;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,EAAE,CAAC;IACzD,oCAAoC;IACpC,YAAY,EAAE,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,+CAA+C;AAC/C,eAAO,MAAM,UAAU,KAAK,CAAC;AAU7B,yDAAyD;AACzD,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAiCpD;AAED,kFAAkF;AAClF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAwCrD;AAED,2CAA2C;AAC3C,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,IAAI,GAAG,SAAS,CAAA;CAAE,EAAE,GAAG,MAAM,CAYxF;AAED,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD"}
|
package/dist/feeds.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const xml = (text) => text
|
|
2
|
+
.replace(/&/g, '&')
|
|
3
|
+
.replace(/</g, '<')
|
|
4
|
+
.replace(/>/g, '>')
|
|
5
|
+
.replace(/"/g, '"')
|
|
6
|
+
// eslint-disable-next-line no-control-regex
|
|
7
|
+
.replace(/[\u0000-\u0008\u000B\u000C\u000E-\u001F]/g, '');
|
|
8
|
+
/** Make root-relative URLs in page HTML absolute, as feed readers need. */
|
|
9
|
+
export function absolutizeHtml(html, baseUrl) {
|
|
10
|
+
const absolute = (url) => url.startsWith('/') && !url.startsWith('//') ? new URL(url, baseUrl).href : url;
|
|
11
|
+
return html
|
|
12
|
+
.replace(/(\s(?:href|src|poster)=")([^"]*)"/g, (_m, attr, url) => `${attr}${absolute(url)}"`)
|
|
13
|
+
.replace(/(\ssrcset=")([^"]*)"/g, (_m, attr, set) => {
|
|
14
|
+
const candidates = set.split(',').map((c) => {
|
|
15
|
+
const [url = '', ...descriptor] = c.trim().split(/\s+/);
|
|
16
|
+
return [absolute(url), ...descriptor].join(' ');
|
|
17
|
+
});
|
|
18
|
+
return `${attr}${candidates.join(', ')}"`;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/** Entries in a feed: the most recent ones. */
|
|
22
|
+
export const FEED_ITEMS = 20;
|
|
23
|
+
const newest = (options) => options.items.reduce((latest, { page }) => {
|
|
24
|
+
const date = page.updated ?? page.date;
|
|
25
|
+
return date !== undefined && (latest === undefined || date > latest) ? date : latest;
|
|
26
|
+
}, undefined) ?? options.fallbackDate;
|
|
27
|
+
const cdata = (text) => `<![CDATA[${text.replace(/]]>/g, ']]]]><![CDATA[>')}]]>`;
|
|
28
|
+
/** RSS 2.0, with the full content in content:encoded. */
|
|
29
|
+
export function rssFeed(options) {
|
|
30
|
+
const items = options.items.map(({ page, html }) => {
|
|
31
|
+
const lines = [
|
|
32
|
+
' <item>',
|
|
33
|
+
` <title>${xml(page.title)}</title>`,
|
|
34
|
+
` <link>${xml(page.absoluteUrl)}</link>`,
|
|
35
|
+
` <guid isPermaLink="true">${xml(page.absoluteUrl)}</guid>`,
|
|
36
|
+
page.date !== undefined ? ` <pubDate>${page.date.toUTCString()}</pubDate>` : undefined,
|
|
37
|
+
page.description !== undefined
|
|
38
|
+
? ` <description>${xml(page.description)}</description>`
|
|
39
|
+
: undefined,
|
|
40
|
+
...page.tags.map((tag) => ` <category>${xml(tag.name)}</category>`),
|
|
41
|
+
html !== undefined ? ` <content:encoded>${cdata(html)}</content:encoded>` : undefined,
|
|
42
|
+
' </item>',
|
|
43
|
+
];
|
|
44
|
+
return lines.filter((l) => l !== undefined).join('\n');
|
|
45
|
+
});
|
|
46
|
+
return [
|
|
47
|
+
'<?xml version="1.0" encoding="utf-8"?>',
|
|
48
|
+
'<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">',
|
|
49
|
+
' <channel>',
|
|
50
|
+
` <title>${xml(options.title)}</title>`,
|
|
51
|
+
` <link>${xml(options.link)}</link>`,
|
|
52
|
+
` <description>${xml(options.description ?? options.title)}</description>`,
|
|
53
|
+
` <language>${xml(options.language)}</language>`,
|
|
54
|
+
` <lastBuildDate>${newest(options).toUTCString()}</lastBuildDate>`,
|
|
55
|
+
` <generator>${xml(options.generator)}</generator>`,
|
|
56
|
+
` <atom:link href="${xml(options.self)}" rel="self" type="application/rss+xml"/>`,
|
|
57
|
+
...items,
|
|
58
|
+
' </channel>',
|
|
59
|
+
'</rss>',
|
|
60
|
+
'',
|
|
61
|
+
].join('\n');
|
|
62
|
+
}
|
|
63
|
+
/** Atom 1.0. Entries without a date use the feed's date, as Atom requires one. */
|
|
64
|
+
export function atomFeed(options) {
|
|
65
|
+
const updated = newest(options);
|
|
66
|
+
const entries = options.items.map(({ page, html }) => {
|
|
67
|
+
const lines = [
|
|
68
|
+
' <entry>',
|
|
69
|
+
` <title>${xml(page.title)}</title>`,
|
|
70
|
+
` <link href="${xml(page.absoluteUrl)}"/>`,
|
|
71
|
+
` <id>${xml(page.absoluteUrl)}</id>`,
|
|
72
|
+
` <updated>${(page.updated ?? page.date ?? updated).toISOString()}</updated>`,
|
|
73
|
+
page.date !== undefined ? ` <published>${page.date.toISOString()}</published>` : undefined,
|
|
74
|
+
page.description !== undefined
|
|
75
|
+
? ` <summary>${xml(page.description)}</summary>`
|
|
76
|
+
: undefined,
|
|
77
|
+
...page.tags.map((tag) => ` <category term="${xml(tag.name)}"/>`),
|
|
78
|
+
html !== undefined ? ` <content type="html">${xml(html)}</content>` : undefined,
|
|
79
|
+
' </entry>',
|
|
80
|
+
];
|
|
81
|
+
return lines.filter((l) => l !== undefined).join('\n');
|
|
82
|
+
});
|
|
83
|
+
return [
|
|
84
|
+
'<?xml version="1.0" encoding="utf-8"?>',
|
|
85
|
+
`<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="${xml(options.language)}">`,
|
|
86
|
+
` <title>${xml(options.title)}</title>`,
|
|
87
|
+
options.description !== undefined
|
|
88
|
+
? ` <subtitle>${xml(options.description)}</subtitle>`
|
|
89
|
+
: undefined,
|
|
90
|
+
` <link href="${xml(options.link)}"/>`,
|
|
91
|
+
` <link href="${xml(options.self)}" rel="self" type="application/atom+xml"/>`,
|
|
92
|
+
` <id>${xml(options.link)}</id>`,
|
|
93
|
+
` <updated>${updated.toISOString()}</updated>`,
|
|
94
|
+
options.author !== undefined
|
|
95
|
+
? ` <author><name>${xml(options.author)}</name></author>`
|
|
96
|
+
: undefined,
|
|
97
|
+
` <generator>${xml(options.generator)}</generator>`,
|
|
98
|
+
...entries,
|
|
99
|
+
'</feed>',
|
|
100
|
+
'',
|
|
101
|
+
]
|
|
102
|
+
.filter((l) => l !== undefined)
|
|
103
|
+
.join('\n');
|
|
104
|
+
}
|
|
105
|
+
/** sitemap.xml (sitemaps.org protocol). */
|
|
106
|
+
export function sitemapXml(entries) {
|
|
107
|
+
return [
|
|
108
|
+
'<?xml version="1.0" encoding="utf-8"?>',
|
|
109
|
+
'<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
|
|
110
|
+
...entries.map(({ url, lastmod }) => lastmod !== undefined
|
|
111
|
+
? ` <url><loc>${xml(url)}</loc><lastmod>${lastmod.toISOString().slice(0, 10)}</lastmod></url>`
|
|
112
|
+
: ` <url><loc>${xml(url)}</loc></url>`),
|
|
113
|
+
'</urlset>',
|
|
114
|
+
'',
|
|
115
|
+
].join('\n');
|
|
116
|
+
}
|
|
117
|
+
export function robotsTxt(sitemapUrl) {
|
|
118
|
+
return `User-agent: *\nAllow: /\n\nSitemap: ${sitemapUrl}\n`;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=feeds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../src/feeds.ts"],"names":[],"mappings":"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"}
|
package/dist/html.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Root } from 'hast';
|
|
2
|
+
export interface FinishOptions {
|
|
3
|
+
/** Final URL of an asset (its fingerprinted name), or the URL unchanged. */
|
|
4
|
+
assetUrl: (url: string) => string;
|
|
5
|
+
/** Collapse insignificant whitespace (never inside <pre>, <textarea> or inline content). */
|
|
6
|
+
minify: boolean;
|
|
7
|
+
}
|
|
8
|
+
/** Rewrite asset references and minify a page's tree in place. */
|
|
9
|
+
export declare function finishTree(tree: Root, options: FinishOptions): void;
|
|
10
|
+
/** The same, for an HTML fragment such as a page body in a feed. */
|
|
11
|
+
export declare function finishFragment(html: string, options: FinishOptions): string;
|
|
12
|
+
/** Rewrite asset references in, and minify, a rendered page. */
|
|
13
|
+
export declare function finishHtml(html: string, options: FinishOptions): string;
|
|
14
|
+
//# sourceMappingURL=html.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AAM1C,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,4FAA4F;IAC5F,MAAM,EAAE,OAAO,CAAC;CACjB;AAID,kEAAkE;AAClE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAUnE;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAI3E;AAED,gEAAgE;AAChE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAIvE"}
|