plgg-bundle 0.0.1 → 0.0.2
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/package.json +1 -4
- package/dist/Dev/fixtures/devPoc.spec.d.ts +0 -2
- package/dist/Dev/fixtures/devPoc.spec.d.ts.map +0 -1
- package/dist/Dev/fixtures/devPoc.spec.js +0 -145
- package/dist/Dev/fixtures/devPoc.spec.js.map +0 -1
- package/dist/Dev/model/Fetch.d.ts +0 -20
- package/dist/Dev/model/Fetch.d.ts.map +0 -1
- package/dist/Dev/model/Fetch.js +0 -8
- package/dist/Dev/model/Fetch.js.map +0 -1
- package/dist/Dev/model/ModuleGraph.d.ts +0 -27
- package/dist/Dev/model/ModuleGraph.d.ts.map +0 -1
- package/dist/Dev/model/ModuleGraph.js +0 -2
- package/dist/Dev/model/ModuleGraph.js.map +0 -1
- package/dist/Dev/model/Protocol.d.ts +0 -22
- package/dist/Dev/model/Protocol.d.ts.map +0 -1
- package/dist/Dev/model/Protocol.js +0 -31
- package/dist/Dev/model/Protocol.js.map +0 -1
- package/dist/Dev/node/devServer.d.ts +0 -21
- package/dist/Dev/node/devServer.d.ts.map +0 -1
- package/dist/Dev/node/devServer.js +0 -298
- package/dist/Dev/node/devServer.js.map +0 -1
- package/dist/Dev/node/httpAdapter.d.ts +0 -19
- package/dist/Dev/node/httpAdapter.d.ts.map +0 -1
- package/dist/Dev/node/httpAdapter.js +0 -76
- package/dist/Dev/node/httpAdapter.js.map +0 -1
- package/dist/Dev/node/scanGraph.d.ts +0 -21
- package/dist/Dev/node/scanGraph.d.ts.map +0 -1
- package/dist/Dev/node/scanGraph.js +0 -145
- package/dist/Dev/node/scanGraph.js.map +0 -1
- package/dist/Dev/node/watch.d.ts +0 -10
- package/dist/Dev/node/watch.d.ts.map +0 -1
- package/dist/Dev/node/watch.js +0 -44
- package/dist/Dev/node/watch.js.map +0 -1
- package/dist/Dev/usecase/allowedHost.d.ts +0 -16
- package/dist/Dev/usecase/allowedHost.d.ts.map +0 -1
- package/dist/Dev/usecase/allowedHost.js +0 -33
- package/dist/Dev/usecase/allowedHost.js.map +0 -1
- package/dist/Dev/usecase/allowedHost.spec.d.ts +0 -2
- package/dist/Dev/usecase/allowedHost.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/allowedHost.spec.js +0 -13
- package/dist/Dev/usecase/allowedHost.spec.js.map +0 -1
- package/dist/Dev/usecase/buildGraph.d.ts +0 -12
- package/dist/Dev/usecase/buildGraph.d.ts.map +0 -1
- package/dist/Dev/usecase/buildGraph.js +0 -24
- package/dist/Dev/usecase/buildGraph.js.map +0 -1
- package/dist/Dev/usecase/buildGraph.spec.d.ts +0 -2
- package/dist/Dev/usecase/buildGraph.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/buildGraph.spec.js +0 -16
- package/dist/Dev/usecase/buildGraph.spec.js.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.d.ts +0 -12
- package/dist/Dev/usecase/decorateDevHtml.d.ts.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.js +0 -15
- package/dist/Dev/usecase/decorateDevHtml.js.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.spec.d.ts +0 -2
- package/dist/Dev/usecase/decorateDevHtml.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/decorateDevHtml.spec.js +0 -19
- package/dist/Dev/usecase/decorateDevHtml.spec.js.map +0 -1
- package/dist/Dev/usecase/invalidate.d.ts +0 -17
- package/dist/Dev/usecase/invalidate.d.ts.map +0 -1
- package/dist/Dev/usecase/invalidate.js +0 -57
- package/dist/Dev/usecase/invalidate.js.map +0 -1
- package/dist/Dev/usecase/invalidate.spec.d.ts +0 -2
- package/dist/Dev/usecase/invalidate.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/invalidate.spec.js +0 -64
- package/dist/Dev/usecase/invalidate.spec.js.map +0 -1
- package/dist/Dev/usecase/parseImports.d.ts +0 -24
- package/dist/Dev/usecase/parseImports.d.ts.map +0 -1
- package/dist/Dev/usecase/parseImports.js +0 -40
- package/dist/Dev/usecase/parseImports.js.map +0 -1
- package/dist/Dev/usecase/parseImports.spec.d.ts +0 -2
- package/dist/Dev/usecase/parseImports.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/parseImports.spec.js +0 -24
- package/dist/Dev/usecase/parseImports.spec.js.map +0 -1
- package/dist/Dev/usecase/reloadDecision.d.ts +0 -20
- package/dist/Dev/usecase/reloadDecision.d.ts.map +0 -1
- package/dist/Dev/usecase/reloadDecision.js +0 -52
- package/dist/Dev/usecase/reloadDecision.js.map +0 -1
- package/dist/Dev/usecase/reloadDecision.spec.d.ts +0 -2
- package/dist/Dev/usecase/reloadDecision.spec.d.ts.map +0 -1
- package/dist/Dev/usecase/reloadDecision.spec.js +0 -17
- package/dist/Dev/usecase/reloadDecision.spec.js.map +0 -1
- package/dist/domain/model/BundleConfig.d.ts +0 -136
- package/dist/domain/model/BundleConfig.d.ts.map +0 -1
- package/dist/domain/model/BundleConfig.js +0 -18
- package/dist/domain/model/BundleConfig.js.map +0 -1
- package/dist/domain/model/BundleConfig.spec.d.ts +0 -2
- package/dist/domain/model/BundleConfig.spec.d.ts.map +0 -1
- package/dist/domain/model/BundleConfig.spec.js +0 -8
- package/dist/domain/model/BundleConfig.spec.js.map +0 -1
- package/dist/domain/usecase/asBundleConfig.d.ts +0 -17
- package/dist/domain/usecase/asBundleConfig.d.ts.map +0 -1
- package/dist/domain/usecase/asBundleConfig.js +0 -179
- package/dist/domain/usecase/asBundleConfig.js.map +0 -1
- package/dist/domain/usecase/asBundleConfig.spec.d.ts +0 -2
- package/dist/domain/usecase/asBundleConfig.spec.d.ts.map +0 -1
- package/dist/domain/usecase/asBundleConfig.spec.js +0 -119
- package/dist/domain/usecase/asBundleConfig.spec.js.map +0 -1
- package/dist/domain/usecase/build.d.ts +0 -14
- package/dist/domain/usecase/build.d.ts.map +0 -1
- package/dist/domain/usecase/build.js +0 -177
- package/dist/domain/usecase/build.js.map +0 -1
- package/dist/domain/usecase/collectModules.d.ts +0 -53
- package/dist/domain/usecase/collectModules.d.ts.map +0 -1
- package/dist/domain/usecase/collectModules.js +0 -118
- package/dist/domain/usecase/collectModules.js.map +0 -1
- package/dist/domain/usecase/deriveExternal.d.ts +0 -25
- package/dist/domain/usecase/deriveExternal.d.ts.map +0 -1
- package/dist/domain/usecase/deriveExternal.js +0 -79
- package/dist/domain/usecase/deriveExternal.js.map +0 -1
- package/dist/domain/usecase/deriveExternal.spec.d.ts +0 -2
- package/dist/domain/usecase/deriveExternal.spec.d.ts.map +0 -1
- package/dist/domain/usecase/deriveExternal.spec.js +0 -56
- package/dist/domain/usecase/deriveExternal.spec.js.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.d.ts +0 -27
- package/dist/domain/usecase/discoverWorkspace.d.ts.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.js +0 -116
- package/dist/domain/usecase/discoverWorkspace.js.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.spec.d.ts +0 -2
- package/dist/domain/usecase/discoverWorkspace.spec.d.ts.map +0 -1
- package/dist/domain/usecase/discoverWorkspace.spec.js +0 -23
- package/dist/domain/usecase/discoverWorkspace.spec.js.map +0 -1
- package/dist/domain/usecase/emitBundle.d.ts +0 -43
- package/dist/domain/usecase/emitBundle.d.ts.map +0 -1
- package/dist/domain/usecase/emitBundle.js +0 -157
- package/dist/domain/usecase/emitBundle.js.map +0 -1
- package/dist/domain/usecase/emitBundle.spec.d.ts +0 -2
- package/dist/domain/usecase/emitBundle.spec.d.ts.map +0 -1
- package/dist/domain/usecase/emitBundle.spec.js +0 -80
- package/dist/domain/usecase/emitBundle.spec.js.map +0 -1
- package/dist/domain/usecase/emitDts.d.ts +0 -32
- package/dist/domain/usecase/emitDts.d.ts.map +0 -1
- package/dist/domain/usecase/emitDts.js +0 -99
- package/dist/domain/usecase/emitDts.js.map +0 -1
- package/dist/domain/usecase/isExternal.d.ts +0 -12
- package/dist/domain/usecase/isExternal.d.ts.map +0 -1
- package/dist/domain/usecase/isExternal.js +0 -16
- package/dist/domain/usecase/isExternal.js.map +0 -1
- package/dist/domain/usecase/isExternal.spec.d.ts +0 -2
- package/dist/domain/usecase/isExternal.spec.d.ts.map +0 -1
- package/dist/domain/usecase/isExternal.spec.js +0 -16
- package/dist/domain/usecase/isExternal.spec.js.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.d.ts +0 -35
- package/dist/domain/usecase/resolveSpecifier.d.ts.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.js +0 -83
- package/dist/domain/usecase/resolveSpecifier.js.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.spec.d.ts +0 -2
- package/dist/domain/usecase/resolveSpecifier.spec.d.ts.map +0 -1
- package/dist/domain/usecase/resolveSpecifier.spec.js +0 -44
- package/dist/domain/usecase/resolveSpecifier.spec.js.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.d.ts +0 -29
- package/dist/domain/usecase/resolveWorkspaceSpecifier.d.ts.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.js +0 -89
- package/dist/domain/usecase/resolveWorkspaceSpecifier.js.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.d.ts +0 -2
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.d.ts.map +0 -1
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.js +0 -27
- package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.js.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.d.ts +0 -25
- package/dist/domain/usecase/rewriteDtsAliases.d.ts.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.js +0 -71
- package/dist/domain/usecase/rewriteDtsAliases.js.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.spec.d.ts +0 -2
- package/dist/domain/usecase/rewriteDtsAliases.spec.d.ts.map +0 -1
- package/dist/domain/usecase/rewriteDtsAliases.spec.js +0 -35
- package/dist/domain/usecase/rewriteDtsAliases.spec.js.map +0 -1
- package/dist/entrypoints/cli.d.ts +0 -2
- package/dist/entrypoints/cli.d.ts.map +0 -1
- package/dist/entrypoints/cli.js +0 -79
- package/dist/entrypoints/cli.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -28
- package/dist/index.js.map +0 -1
- package/dist/vendors/runner.d.ts +0 -20
- package/dist/vendors/runner.d.ts.map +0 -1
- package/dist/vendors/runner.js +0 -60
- package/dist/vendors/runner.js.map +0 -1
- package/dist/vendors/runner.spec.d.ts +0 -2
- package/dist/vendors/runner.spec.d.ts.map +0 -1
- package/dist/vendors/runner.spec.js +0 -20
- package/dist/vendors/runner.spec.js.map +0 -1
- package/dist/vendors/transpiler.d.ts +0 -19
- package/dist/vendors/transpiler.d.ts.map +0 -1
- package/dist/vendors/transpiler.js +0 -42
- package/dist/vendors/transpiler.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../../src/Dev/node/devServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { type IncomingMessage, type ServerResponse, type Server } from "node:http";
|
|
2
|
-
import { type Fetch } from "plgg-bundle/Dev/model/Fetch";
|
|
3
|
-
/** How the dev server binds its node:http listener. */
|
|
4
|
-
export type ServeOptions = Readonly<{
|
|
5
|
-
port: number;
|
|
6
|
-
hostname?: string;
|
|
7
|
-
}>;
|
|
8
|
-
/** Convert a Node request (+ buffered body) into a Request. */
|
|
9
|
-
export declare const toRequest: (req: IncomingMessage, body: ArrayBuffer) => Request;
|
|
10
|
-
/** Write a Web Response back onto a Node ServerResponse. */
|
|
11
|
-
export declare const writeResponse: (res: ServerResponse, response: Response) => Promise<void>;
|
|
12
|
-
/**
|
|
13
|
-
* Serve a {@link Fetch} over a node:http server
|
|
14
|
-
* (data-last). The handler is read fresh from `current()`
|
|
15
|
-
* per request, so the dev loop can hot-swap the live
|
|
16
|
-
* `Fetch` without rebinding the listener.
|
|
17
|
-
*/
|
|
18
|
-
export declare const serveFetch: (options: ServeOptions, current: () => Fetch, onListen?: () => void) => () => Server;
|
|
19
|
-
//# sourceMappingURL=httpAdapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"httpAdapter.d.ts","sourceRoot":"","sources":["../../../src/Dev/node/httpAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,MAAM,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAUzD,uDAAuD;AACvD,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AA4CH,+DAA+D;AAC/D,eAAO,MAAM,SAAS,GACpB,KAAK,eAAe,EACpB,MAAM,WAAW,KAChB,OAgBF,CAAC;AAqBF,4DAA4D;AAC5D,eAAO,MAAM,aAAa,GACxB,KAAK,cAAc,EACnB,UAAU,QAAQ,KACjB,OAAO,CAAC,IAAI,CAUd,CAAC;AAUF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAEnB,SAAS,YAAY,EACrB,SAAS,MAAM,KAAK,EACpB,WAAW,MAAM,IAAI,WAEnB,MAoBH,CAAC"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { createServer, } from "node:http";
|
|
2
|
-
import {} from "plgg-bundle/Dev/model/Fetch";
|
|
3
|
-
/** Buffer a request body into an ArrayBuffer. */
|
|
4
|
-
const collectBody = (req) => new Promise((resolve, reject) => {
|
|
5
|
-
const chunks = [];
|
|
6
|
-
req.on("data", (chunk) => {
|
|
7
|
-
chunks.push(chunk);
|
|
8
|
-
});
|
|
9
|
-
req.on("end", () => {
|
|
10
|
-
const merged = Buffer.concat(chunks);
|
|
11
|
-
const copy = new ArrayBuffer(merged.byteLength);
|
|
12
|
-
new Uint8Array(copy).set(merged);
|
|
13
|
-
resolve(copy);
|
|
14
|
-
});
|
|
15
|
-
req.on("error", reject);
|
|
16
|
-
});
|
|
17
|
-
/** Copy Node's incoming headers into Web Headers. */
|
|
18
|
-
const buildHeaders = (raw) => new Headers(Object.entries(raw).flatMap(([key, value]) => value === undefined
|
|
19
|
-
? []
|
|
20
|
-
: typeof value === "string"
|
|
21
|
-
? [[key, value]]
|
|
22
|
-
: value.map((v) => [
|
|
23
|
-
key,
|
|
24
|
-
v,
|
|
25
|
-
])));
|
|
26
|
-
/** Convert a Node request (+ buffered body) into a Request. */
|
|
27
|
-
export const toRequest = (req, body) => {
|
|
28
|
-
const method = req.method ?? "GET";
|
|
29
|
-
const host = req.headers.host ?? "localhost";
|
|
30
|
-
const url = `http://${host}${req.url ?? "/"}`;
|
|
31
|
-
return method !== "GET" &&
|
|
32
|
-
method !== "HEAD" &&
|
|
33
|
-
body.byteLength > 0
|
|
34
|
-
? new Request(url, {
|
|
35
|
-
method,
|
|
36
|
-
headers: buildHeaders(req.headers),
|
|
37
|
-
body,
|
|
38
|
-
})
|
|
39
|
-
: new Request(url, {
|
|
40
|
-
method,
|
|
41
|
-
headers: buildHeaders(req.headers),
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
/** Stream a Web ReadableStream of bytes onto the Node response. */
|
|
45
|
-
const pump = (reader, res) => reader.read().then((chunk) => chunk.done
|
|
46
|
-
? new Promise((resolve) => res.end(() => resolve()))
|
|
47
|
-
: new Promise((resolve, reject) => res.write(Buffer.from(chunk.value), (e) => e ? reject(e) : resolve())).then(() => pump(reader, res)));
|
|
48
|
-
/** Write a Web Response back onto a Node ServerResponse. */
|
|
49
|
-
export const writeResponse = (res, response) => {
|
|
50
|
-
res.statusCode = response.status;
|
|
51
|
-
response.headers.forEach((value, key) => res.setHeader(key, value));
|
|
52
|
-
return response.body === null
|
|
53
|
-
? new Promise((resolve) => res.end(() => resolve()))
|
|
54
|
-
: pump(response.body.getReader(), res);
|
|
55
|
-
};
|
|
56
|
-
/** Last-resort 500 when the adapter itself throws. */
|
|
57
|
-
const writeError = (res) => {
|
|
58
|
-
res.statusCode = 500;
|
|
59
|
-
res.end("Internal Server Error");
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Serve a {@link Fetch} over a node:http server
|
|
63
|
-
* (data-last). The handler is read fresh from `current()`
|
|
64
|
-
* per request, so the dev loop can hot-swap the live
|
|
65
|
-
* `Fetch` without rebinding the listener.
|
|
66
|
-
*/
|
|
67
|
-
export const serveFetch = (options, current, onListen) => () => {
|
|
68
|
-
const server = createServer((req, res) => collectBody(req)
|
|
69
|
-
.then((body) => current()(toRequest(req, body)))
|
|
70
|
-
.then((response) => writeResponse(res, response))
|
|
71
|
-
.catch(() => writeError(res)));
|
|
72
|
-
return options.hostname === undefined
|
|
73
|
-
? server.listen(options.port, () => onListen?.())
|
|
74
|
-
: server.listen(options.port, options.hostname, () => onListen?.());
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=httpAdapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"httpAdapter.js","sourceRoot":"","sources":["../../../src/Dev/node/httpAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { type ModuleGraph } from "plgg-bundle/Dev/model/ModuleGraph";
|
|
2
|
-
/**
|
|
3
|
-
* A self-alias resolution rule: `<prefix>`/`<prefix>/<sub>`
|
|
4
|
-
* → `<srcDir>`/`<srcDir>/<sub>`. One per package whose
|
|
5
|
-
* source participates in dev (the app's own, plus any
|
|
6
|
-
* cross-package `sourceAliases`).
|
|
7
|
-
*/
|
|
8
|
-
export type Alias = Readonly<{
|
|
9
|
-
prefix: string;
|
|
10
|
-
srcDir: string;
|
|
11
|
-
}>;
|
|
12
|
-
/**
|
|
13
|
-
* Scan the watch roots and build the local
|
|
14
|
-
* {@link ModuleGraph}, resolving relative AND aliased
|
|
15
|
-
* imports (every rule in `aliases`) so cross-package source
|
|
16
|
-
* edges are captured. Unreadable roots/files are skipped (a
|
|
17
|
-
* scan is best-effort — the reload decision falls back to
|
|
18
|
-
* reloading when the graph is empty).
|
|
19
|
-
*/
|
|
20
|
-
export declare const scanGraph: (roots: ReadonlyArray<string>, aliases: ReadonlyArray<Alias>) => ModuleGraph;
|
|
21
|
-
//# sourceMappingURL=scanGraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanGraph.d.ts","sourceRoot":"","sources":["../../../src/Dev/node/scanGraph.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAkBrE;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GACpB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,SAAS,aAAa,CAAC,KAAK,CAAC,KAC5B,WAKA,CAAC"}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { readdirSync, readFileSync, statSync, } from "node:fs";
|
|
2
|
-
import { resolve, dirname, join, } from "node:path";
|
|
3
|
-
import { parseImports } from "plgg-bundle/Dev/usecase/parseImports";
|
|
4
|
-
import { buildGraph } from "plgg-bundle/Dev/usecase/buildGraph";
|
|
5
|
-
import {} from "plgg-bundle/Dev/model/ModuleGraph";
|
|
6
|
-
// The effectful graph scan: walk the watch roots, read
|
|
7
|
-
// each source file, and resolve its LOCAL import edges
|
|
8
|
-
// (relative specifiers + the app's own self-alias) to
|
|
9
|
-
// absolute paths. Feeds the pure `buildGraph` /
|
|
10
|
-
// reload-decision. In `Dev/node/` (fs seam), excluded from
|
|
11
|
-
// the coverage threshold and exercised by the fixture PoC.
|
|
12
|
-
/** Source extensions whose imports are scanned. */
|
|
13
|
-
const SOURCE_EXT = [
|
|
14
|
-
".ts",
|
|
15
|
-
".tsx",
|
|
16
|
-
".mts",
|
|
17
|
-
".js",
|
|
18
|
-
".mjs",
|
|
19
|
-
];
|
|
20
|
-
/**
|
|
21
|
-
* Scan the watch roots and build the local
|
|
22
|
-
* {@link ModuleGraph}, resolving relative AND aliased
|
|
23
|
-
* imports (every rule in `aliases`) so cross-package source
|
|
24
|
-
* edges are captured. Unreadable roots/files are skipped (a
|
|
25
|
-
* scan is best-effort — the reload decision falls back to
|
|
26
|
-
* reloading when the graph is empty).
|
|
27
|
-
*/
|
|
28
|
-
export const scanGraph = (roots, aliases) => buildGraph(sourceFiles(roots).flatMap((file) => edgesOf(file, aliases)));
|
|
29
|
-
/** Every source file under the roots (recursive, de-duped). */
|
|
30
|
-
const sourceFiles = (roots) => {
|
|
31
|
-
const seen = new Set();
|
|
32
|
-
for (const root of roots) {
|
|
33
|
-
for (const abs of walk(root)) {
|
|
34
|
-
seen.add(abs);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return [...seen];
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Directories never descended into during the graph scan —
|
|
41
|
-
* dependency trees, build output, VCS. A watch root of `.`
|
|
42
|
-
* (a package dir) would otherwise pull thousands of
|
|
43
|
-
* `node_modules` files into the graph.
|
|
44
|
-
*/
|
|
45
|
-
const SKIP_DIRS = [
|
|
46
|
-
"node_modules",
|
|
47
|
-
"dist",
|
|
48
|
-
".git",
|
|
49
|
-
];
|
|
50
|
-
/**
|
|
51
|
-
* Recursively list source files under a directory, pruning
|
|
52
|
-
* {@link SKIP_DIRS}. A manual walk (not `readdirSync`'s
|
|
53
|
-
* `recursive`) so a huge `node_modules` is never read.
|
|
54
|
-
*/
|
|
55
|
-
const walk = (root) => {
|
|
56
|
-
let entries;
|
|
57
|
-
try {
|
|
58
|
-
entries = readdirSync(root, {
|
|
59
|
-
withFileTypes: true,
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch {
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
return entries.flatMap((entry) => {
|
|
66
|
-
const abs = join(root, entry.name);
|
|
67
|
-
if (entry.isDirectory()) {
|
|
68
|
-
return SKIP_DIRS.includes(entry.name)
|
|
69
|
-
? []
|
|
70
|
-
: walk(abs);
|
|
71
|
-
}
|
|
72
|
-
return entry.isFile() &&
|
|
73
|
-
SOURCE_EXT.some((e) => entry.name.endsWith(e))
|
|
74
|
-
? [abs]
|
|
75
|
-
: [];
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
/** The resolved local edges a single file imports. */
|
|
79
|
-
const edgesOf = (file, aliases) => {
|
|
80
|
-
const source = read(file);
|
|
81
|
-
if (source === null) {
|
|
82
|
-
return [];
|
|
83
|
-
}
|
|
84
|
-
return parseImports(source).flatMap((spec) => {
|
|
85
|
-
const to = resolveLocal(file, spec, aliases);
|
|
86
|
-
return to === null
|
|
87
|
-
? []
|
|
88
|
-
: [{ from: file, to }];
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
/** Read a file, or null when it cannot be read. */
|
|
92
|
-
const read = (file) => {
|
|
93
|
-
try {
|
|
94
|
-
return readFileSync(file, "utf8");
|
|
95
|
-
}
|
|
96
|
-
catch {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Resolve a specifier to an absolute local file, or null
|
|
102
|
-
* for a package / `node:` specifier. Handles relative
|
|
103
|
-
* paths and every alias rule (`prefix` / `prefix/…`); tries
|
|
104
|
-
* the path itself, `.ts`, and `/index.ts`.
|
|
105
|
-
*/
|
|
106
|
-
const resolveLocal = (from, spec, aliases) => {
|
|
107
|
-
const base = baseOf(from, spec, aliases);
|
|
108
|
-
if (base === null) {
|
|
109
|
-
return null;
|
|
110
|
-
}
|
|
111
|
-
const candidates = [
|
|
112
|
-
base,
|
|
113
|
-
`${base}.ts`,
|
|
114
|
-
join(base, "index.ts"),
|
|
115
|
-
];
|
|
116
|
-
// A FILE, never a directory: a bare `<prefix>` base is
|
|
117
|
-
// the src dir (which exists) — prefer its `index.ts`.
|
|
118
|
-
return (candidates.find(isFile) ?? null);
|
|
119
|
-
};
|
|
120
|
-
/** Whether a path exists and is a regular file. */
|
|
121
|
-
const isFile = (path) => {
|
|
122
|
-
try {
|
|
123
|
-
return statSync(path).isFile();
|
|
124
|
-
}
|
|
125
|
-
catch {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
};
|
|
129
|
-
/** The pre-extension base path a specifier points at. */
|
|
130
|
-
const baseOf = (from, spec, aliases) => {
|
|
131
|
-
if (spec.startsWith("./") ||
|
|
132
|
-
spec.startsWith("../")) {
|
|
133
|
-
return resolve(dirname(from), spec);
|
|
134
|
-
}
|
|
135
|
-
for (const alias of aliases) {
|
|
136
|
-
if (spec === alias.prefix) {
|
|
137
|
-
return alias.srcDir;
|
|
138
|
-
}
|
|
139
|
-
if (spec.startsWith(`${alias.prefix}/`)) {
|
|
140
|
-
return join(alias.srcDir, spec.slice(alias.prefix.length + 1));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
return null;
|
|
144
|
-
};
|
|
145
|
-
//# sourceMappingURL=scanGraph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scanGraph.js","sourceRoot":"","sources":["../../../src/Dev/node/scanGraph.ts"],"names":[],"mappings":"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"}
|
package/dist/Dev/node/watch.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type FSWatcher } from "node:fs";
|
|
2
|
-
/**
|
|
3
|
-
* Watch each root recursively; coalesce bursts onto a
|
|
4
|
-
* single `onChange` carrying the last changed filename.
|
|
5
|
-
* Returns the watchers so the caller owns their lifecycle.
|
|
6
|
-
* A root that cannot be watched is skipped rather than
|
|
7
|
-
* crashing the dev loop.
|
|
8
|
-
*/
|
|
9
|
-
export declare const watchRoots: (roots: ReadonlyArray<string>, onChange: (filename: string) => void) => ReadonlyArray<FSWatcher>;
|
|
10
|
-
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/Dev/node/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAYhD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,UAAU,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,KACnC,aAAa,CAAC,SAAS,CA+BzB,CAAC"}
|
package/dist/Dev/node/watch.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { watch } from "node:fs";
|
|
2
|
-
// The fs.watch seam: a debounced, recursive watcher over
|
|
3
|
-
// several source roots. One save can emit multiple events,
|
|
4
|
-
// so an imperative timer coalesces them onto a single
|
|
5
|
-
// `onChange(path)`. Kept in `Dev/node/` (effectful,
|
|
6
|
-
// excluded from the coverage threshold) — the pure reload
|
|
7
|
-
// decision it feeds is unit-tested separately.
|
|
8
|
-
/** fs.watch debounce window in ms. */
|
|
9
|
-
const DEBOUNCE_MS = 80;
|
|
10
|
-
/**
|
|
11
|
-
* Watch each root recursively; coalesce bursts onto a
|
|
12
|
-
* single `onChange` carrying the last changed filename.
|
|
13
|
-
* Returns the watchers so the caller owns their lifecycle.
|
|
14
|
-
* A root that cannot be watched is skipped rather than
|
|
15
|
-
* crashing the dev loop.
|
|
16
|
-
*/
|
|
17
|
-
export const watchRoots = (roots, onChange) => {
|
|
18
|
-
// Debounce seam: one shared timer + the latest filename
|
|
19
|
-
// across all roots.
|
|
20
|
-
let pending;
|
|
21
|
-
let latest = "";
|
|
22
|
-
const fire = (filename) => {
|
|
23
|
-
latest = filename;
|
|
24
|
-
clearTimeout(pending);
|
|
25
|
-
pending = setTimeout(() => {
|
|
26
|
-
onChange(latest);
|
|
27
|
-
}, DEBOUNCE_MS);
|
|
28
|
-
};
|
|
29
|
-
return roots.flatMap((root) => {
|
|
30
|
-
try {
|
|
31
|
-
return [
|
|
32
|
-
watch(root, { recursive: true }, (_event, filename) => {
|
|
33
|
-
if (filename !== null) {
|
|
34
|
-
fire(filename);
|
|
35
|
-
}
|
|
36
|
-
}),
|
|
37
|
-
];
|
|
38
|
-
}
|
|
39
|
-
catch {
|
|
40
|
-
return [];
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=watch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/Dev/node/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,SAAS,CAAC;AAEhD,yDAAyD;AACzD,2DAA2D;AAC3D,sDAAsD;AACtD,oDAAoD;AACpD,0DAA0D;AAC1D,+CAA+C;AAE/C,sCAAsC;AACtC,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAA4B,EAC5B,QAAoC,EACV,EAAE;IAC5B,wDAAwD;IACxD,oBAAoB;IACpB,IAAI,OAES,CAAC;IACd,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACtC,MAAM,GAAG,QAAQ,CAAC;QAClB,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,GAAG,UAAU,CAAC,GAAS,EAAE;YAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,EAAE,WAAW,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,OAAO;gBACL,KAAK,CACH,IAAI,EACJ,EAAE,SAAS,EAAE,IAAI,EAAE,EACnB,CAAC,MAAM,EAAE,QAAQ,EAAQ,EAAE;oBACzB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;wBACtB,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC,CACF;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The bare host name (any `:port` suffix stripped) of a
|
|
3
|
-
* `Host`-header value. A value with no colon is returned
|
|
4
|
-
* unchanged. `indexOf`/`slice` (not `split(":")[0]`) so
|
|
5
|
-
* there is no unreachable `undefined` case to branch on.
|
|
6
|
-
*/
|
|
7
|
-
export declare const hostName: (host: string) => string;
|
|
8
|
-
/**
|
|
9
|
-
* The Host allowlist check (data-last): loopback plus the
|
|
10
|
-
* config-supplied `allowedHosts`. Reproduces the tunnel
|
|
11
|
-
* safety plggpress's dev server gave — the guide adds its
|
|
12
|
-
* `*.qmu.dev` tunnel host so the Cloudflare tunnel is
|
|
13
|
-
* accepted while arbitrary Host headers are refused.
|
|
14
|
-
*/
|
|
15
|
-
export declare const isAllowedHost: (allowedHosts: ReadonlyArray<string>) => (host: string) => boolean;
|
|
16
|
-
//# sourceMappingURL=allowedHost.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowedHost.d.ts","sourceRoot":"","sources":["../../../src/Dev/usecase/allowedHost.ts"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,MAAM,MAAM,KACX,MAKF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACvB,cAAc,aAAa,CAAC,MAAM,CAAC,MACnC,MAAM,MAAM,KAAG,OAIY,CAAC"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hosts the dev server always accepts, on top of the
|
|
3
|
-
* config-supplied allowlist. Loopback is implicit so local
|
|
4
|
-
* development needs no configuration.
|
|
5
|
-
*/
|
|
6
|
-
const DEFAULT_HOSTS = [
|
|
7
|
-
"localhost",
|
|
8
|
-
"127.0.0.1",
|
|
9
|
-
];
|
|
10
|
-
/**
|
|
11
|
-
* The bare host name (any `:port` suffix stripped) of a
|
|
12
|
-
* `Host`-header value. A value with no colon is returned
|
|
13
|
-
* unchanged. `indexOf`/`slice` (not `split(":")[0]`) so
|
|
14
|
-
* there is no unreachable `undefined` case to branch on.
|
|
15
|
-
*/
|
|
16
|
-
export const hostName = (host) => {
|
|
17
|
-
const colon = host.indexOf(":");
|
|
18
|
-
return colon === -1
|
|
19
|
-
? host
|
|
20
|
-
: host.slice(0, colon);
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* The Host allowlist check (data-last): loopback plus the
|
|
24
|
-
* config-supplied `allowedHosts`. Reproduces the tunnel
|
|
25
|
-
* safety plggpress's dev server gave — the guide adds its
|
|
26
|
-
* `*.qmu.dev` tunnel host so the Cloudflare tunnel is
|
|
27
|
-
* accepted while arbitrary Host headers are refused.
|
|
28
|
-
*/
|
|
29
|
-
export const isAllowedHost = (allowedHosts) => (host) => [
|
|
30
|
-
...DEFAULT_HOSTS,
|
|
31
|
-
...allowedHosts,
|
|
32
|
-
].includes(hostName(host));
|
|
33
|
-
//# sourceMappingURL=allowedHost.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowedHost.js","sourceRoot":"","sources":["../../../src/Dev/usecase/allowedHost.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,aAAa,GAA0B;IAC3C,WAAW;IACX,WAAW;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAAY,EACJ,EAAE;IACV,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,KAAK,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GACxB,CAAC,YAAmC,EAAE,EAAE,CACxC,CAAC,IAAY,EAAW,EAAE,CACxB;IACE,GAAG,aAAa;IAChB,GAAG,YAAY;CAChB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowedHost.spec.d.ts","sourceRoot":"","sources":["../../../src/Dev/usecase/allowedHost.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { test, check, all, toBe, } from "plgg-test";
|
|
2
|
-
import { hostName, isAllowedHost, } from "plgg-bundle/Dev/usecase/allowedHost";
|
|
3
|
-
test("hostName strips a :port suffix", () => all([
|
|
4
|
-
check(hostName("localhost:5181"), toBe("localhost")),
|
|
5
|
-
check(hostName("plgg-guide.qmu.dev"), toBe("plgg-guide.qmu.dev")),
|
|
6
|
-
]));
|
|
7
|
-
test("isAllowedHost accepts loopback by default", () => all([
|
|
8
|
-
check(isAllowedHost([])("localhost:5181"), toBe(true)),
|
|
9
|
-
check(isAllowedHost([])("127.0.0.1:5181"), toBe(true)),
|
|
10
|
-
]));
|
|
11
|
-
test("isAllowedHost accepts a config-supplied tunnel host", () => check(isAllowedHost(["plgg-guide.qmu.dev"])("plgg-guide.qmu.dev"), toBe(true)));
|
|
12
|
-
test("isAllowedHost refuses an unlisted host", () => check(isAllowedHost(["plgg-guide.qmu.dev"])("evil.example.com"), toBe(false)));
|
|
13
|
-
//# sourceMappingURL=allowedHost.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"allowedHost.spec.js","sourceRoot":"","sources":["../../../src/Dev/usecase/allowedHost.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,GACL,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,QAAQ,EACR,aAAa,GACd,MAAM,qCAAqC,CAAC;AAE7C,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAC1C,GAAG,CAAC;IACF,KAAK,CACH,QAAQ,CAAC,gBAAgB,CAAC,EAC1B,IAAI,CAAC,WAAW,CAAC,CAClB;IACD,KAAK,CACH,QAAQ,CAAC,oBAAoB,CAAC,EAC9B,IAAI,CAAC,oBAAoB,CAAC,CAC3B;CACF,CAAC,CAAC,CAAC;AAEN,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE,CACrD,GAAG,CAAC;IACF,KAAK,CACH,aAAa,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EACnC,IAAI,CAAC,IAAI,CAAC,CACX;IACD,KAAK,CACH,aAAa,CAAC,EAAE,CAAC,CAAC,gBAAgB,CAAC,EACnC,IAAI,CAAC,IAAI,CAAC,CACX;CACF,CAAC,CAAC,CAAC;AAEN,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE,CAC/D,KAAK,CACH,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,CACnC,oBAAoB,CACrB,EACD,IAAI,CAAC,IAAI,CAAC,CACX,CAAC,CAAC;AAEL,IAAI,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAClD,KAAK,CACH,aAAa,CAAC,CAAC,oBAAoB,CAAC,CAAC,CACnC,kBAAkB,CACnB,EACD,IAAI,CAAC,KAAK,CAAC,CACZ,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type Edge, type ModuleGraph } from "plgg-bundle/Dev/model/ModuleGraph";
|
|
2
|
-
/**
|
|
3
|
-
* Fold a flat list of resolved import {@link Edge}s into a
|
|
4
|
-
* {@link ModuleGraph} (file → the local files it imports).
|
|
5
|
-
* Pure: the adapter does the effectful scan+resolve and
|
|
6
|
-
* hands the edges here. A file that imports nothing local
|
|
7
|
-
* still appears as a node (empty array) as soon as it is
|
|
8
|
-
* an edge's `from`, so the reload decision can tell "known
|
|
9
|
-
* module" from "unrelated file".
|
|
10
|
-
*/
|
|
11
|
-
export declare const buildGraph: (edges: ReadonlyArray<Edge>) => ModuleGraph;
|
|
12
|
-
//# sourceMappingURL=buildGraph.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildGraph.d.ts","sourceRoot":"","sources":["../../../src/Dev/usecase/buildGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,KAAK,WAAW,EACjB,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,aAAa,CAAC,IAAI,CAAC,KACzB,WAcF,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {} from "plgg-bundle/Dev/model/ModuleGraph";
|
|
2
|
-
/**
|
|
3
|
-
* Fold a flat list of resolved import {@link Edge}s into a
|
|
4
|
-
* {@link ModuleGraph} (file → the local files it imports).
|
|
5
|
-
* Pure: the adapter does the effectful scan+resolve and
|
|
6
|
-
* hands the edges here. A file that imports nothing local
|
|
7
|
-
* still appears as a node (empty array) as soon as it is
|
|
8
|
-
* an edge's `from`, so the reload decision can tell "known
|
|
9
|
-
* module" from "unrelated file".
|
|
10
|
-
*/
|
|
11
|
-
export const buildGraph = (edges) => {
|
|
12
|
-
const graph = new Map();
|
|
13
|
-
for (const { from, to } of edges) {
|
|
14
|
-
const existing = graph.get(from);
|
|
15
|
-
if (existing === undefined) {
|
|
16
|
-
graph.set(from, [to]);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
existing.push(to);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return graph;
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=buildGraph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildGraph.js","sourceRoot":"","sources":["../../../src/Dev/usecase/buildGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,mCAAmC,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,KAA0B,EACb,EAAE;IACf,MAAM,KAAK,GAAG,IAAI,GAAG,EAGlB,CAAC;IACJ,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildGraph.spec.d.ts","sourceRoot":"","sources":["../../../src/Dev/usecase/buildGraph.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { test, check, all, toBe, toEqual, } from "plgg-test";
|
|
2
|
-
import { buildGraph } from "plgg-bundle/Dev/usecase/buildGraph";
|
|
3
|
-
test("buildGraph folds edges into a file → imports map", () => {
|
|
4
|
-
const graph = buildGraph([
|
|
5
|
-
{ from: "/a.ts", to: "/b.ts" },
|
|
6
|
-
{ from: "/a.ts", to: "/c.ts" },
|
|
7
|
-
{ from: "/b.ts", to: "/c.ts" },
|
|
8
|
-
]);
|
|
9
|
-
return all([
|
|
10
|
-
check(graph.size, toBe(2)),
|
|
11
|
-
check(graph.get("/a.ts"), toEqual(["/b.ts", "/c.ts"])),
|
|
12
|
-
check(graph.get("/b.ts"), toEqual(["/c.ts"])),
|
|
13
|
-
]);
|
|
14
|
-
});
|
|
15
|
-
test("buildGraph yields an empty graph for no edges", () => check(buildGraph([]).size, toBe(0)));
|
|
16
|
-
//# sourceMappingURL=buildGraph.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buildGraph.spec.js","sourceRoot":"","sources":["../../../src/Dev/usecase/buildGraph.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAC5D,MAAM,KAAK,GAAG,UAAU,CAAC;QACvB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;QAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;QAC9B,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;KAC/B,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;QACT,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,KAAK,CACH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAClB,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAC5B;QACD,KAAK,CACH,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAClB,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CACnB;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE,CACzD,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The DEV-ONLY HTML decoration: string-append the
|
|
3
|
-
* {@link LIVE_RELOAD_SCRIPT} just before `</body>` (or at
|
|
4
|
-
* the very end when the document has none). Pure string
|
|
5
|
-
* surgery on rendered HTML OUTPUT — never inside a typed
|
|
6
|
-
* render tree (which would escape the `<script>`), and
|
|
7
|
-
* never in a production build path. This is the plgg-free
|
|
8
|
-
* toolchain counterpart to plggpress's old
|
|
9
|
-
* `decorateDevHtml`.
|
|
10
|
-
*/
|
|
11
|
-
export declare const decorateDevHtml: (html: string) => string;
|
|
12
|
-
//# sourceMappingURL=decorateDevHtml.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorateDevHtml.d.ts","sourceRoot":"","sources":["../../../src/Dev/usecase/decorateDevHtml.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,KACX,MAM4B,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { LIVE_RELOAD_SCRIPT } from "plgg-bundle/Dev/model/Protocol";
|
|
2
|
-
/**
|
|
3
|
-
* The DEV-ONLY HTML decoration: string-append the
|
|
4
|
-
* {@link LIVE_RELOAD_SCRIPT} just before `</body>` (or at
|
|
5
|
-
* the very end when the document has none). Pure string
|
|
6
|
-
* surgery on rendered HTML OUTPUT — never inside a typed
|
|
7
|
-
* render tree (which would escape the `<script>`), and
|
|
8
|
-
* never in a production build path. This is the plgg-free
|
|
9
|
-
* toolchain counterpart to plggpress's old
|
|
10
|
-
* `decorateDevHtml`.
|
|
11
|
-
*/
|
|
12
|
-
export const decorateDevHtml = (html) => html.includes("</body>")
|
|
13
|
-
? html.replace("</body>", `${LIVE_RELOAD_SCRIPT}</body>`)
|
|
14
|
-
: html + LIVE_RELOAD_SCRIPT;
|
|
15
|
-
//# sourceMappingURL=decorateDevHtml.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorateDevHtml.js","sourceRoot":"","sources":["../../../src/Dev/usecase/decorateDevHtml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAY,EACJ,EAAE,CACV,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CACV,SAAS,EACT,GAAG,kBAAkB,SAAS,CAC/B;IACH,CAAC,CAAC,IAAI,GAAG,kBAAkB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorateDevHtml.spec.d.ts","sourceRoot":"","sources":["../../../src/Dev/usecase/decorateDevHtml.spec.ts"],"names":[],"mappings":""}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { test, check, all, toBe, } from "plgg-test";
|
|
2
|
-
import { decorateDevHtml } from "plgg-bundle/Dev/usecase/decorateDevHtml";
|
|
3
|
-
import { LIVE_RELOAD_SCRIPT } from "plgg-bundle/Dev/model/Protocol";
|
|
4
|
-
test("decorateDevHtml injects the reload script before </body>", () => {
|
|
5
|
-
const out = decorateDevHtml("<html><body><h1>hi</h1></body></html>");
|
|
6
|
-
return all([
|
|
7
|
-
check(out.includes(LIVE_RELOAD_SCRIPT), toBe(true)),
|
|
8
|
-
check(out.indexOf(LIVE_RELOAD_SCRIPT) <
|
|
9
|
-
out.indexOf("</body>"), toBe(true)),
|
|
10
|
-
]);
|
|
11
|
-
});
|
|
12
|
-
test("decorateDevHtml appends to a document with no </body>", () => {
|
|
13
|
-
const out = decorateDevHtml("<h1>bare</h1>");
|
|
14
|
-
return all([
|
|
15
|
-
check(out.startsWith("<h1>bare</h1>"), toBe(true)),
|
|
16
|
-
check(out.endsWith(LIVE_RELOAD_SCRIPT), toBe(true)),
|
|
17
|
-
]);
|
|
18
|
-
});
|
|
19
|
-
//# sourceMappingURL=decorateDevHtml.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorateDevHtml.spec.js","sourceRoot":"","sources":["../../../src/Dev/usecase/decorateDevHtml.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,GACL,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;IACpE,MAAM,GAAG,GAAG,eAAe,CACzB,uCAAuC,CACxC,CAAC;IACF,OAAO,GAAG,CAAC;QACT,KAAK,CACH,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAChC,IAAI,CAAC,IAAI,CAAC,CACX;QACD,KAAK,CACH,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,IAAI,CAAC,IAAI,CAAC,CACX;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACjE,MAAM,GAAG,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;QACT,KAAK,CACH,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,EAC/B,IAAI,CAAC,IAAI,CAAC,CACX;QACD,KAAK,CACH,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAChC,IAAI,CAAC,IAAI,CAAC,CACX;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type ModuleGraph } from "plgg-bundle/Dev/model/ModuleGraph";
|
|
2
|
-
/**
|
|
3
|
-
* The invalidation set for a changed file: the file itself
|
|
4
|
-
* plus every module that transitively imports it (its
|
|
5
|
-
* reverse-reachable closure in the {@link ModuleGraph}).
|
|
6
|
-
* These are exactly the modules a cache-busted re-import
|
|
7
|
-
* must re-evaluate for the edit to take effect — a change
|
|
8
|
-
* to a deep leaf `B` invalidates every `A` that imports it
|
|
9
|
-
* (directly or through a chain).
|
|
10
|
-
*
|
|
11
|
-
* Pure graph walk over reversed edges; cycle-safe via the
|
|
12
|
-
* visited set. This is the "transitive invalidation" the
|
|
13
|
-
* ticket flags as the hard part, isolated here as testable
|
|
14
|
-
* logic (A imports B; invalidate(B) ⊇ {A, B}).
|
|
15
|
-
*/
|
|
16
|
-
export declare const transitiveImporters: (graph: ModuleGraph, changed: string) => ReadonlySet<string>;
|
|
17
|
-
//# sourceMappingURL=invalidate.d.ts.map
|