@prosopo/config 3.3.5 → 3.3.7
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/.turbo/turbo-build$colon$cjs.log +3 -3
- package/.turbo/turbo-build$colon$tsc.log +4 -4
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +13 -0
- package/dist/cjs/vite/vite.test.config.cjs +3 -1
- package/dist/dependencies.test.d.ts +2 -0
- package/dist/dependencies.test.d.ts.map +1 -0
- package/dist/dependencies.test.js +160 -0
- package/dist/dependencies.test.js.map +1 -0
- package/dist/getDependencies.test.d.ts +2 -0
- package/dist/getDependencies.test.d.ts.map +1 -0
- package/dist/getDependencies.test.js +258 -0
- package/dist/getDependencies.test.js.map +1 -0
- package/dist/vite/bundleConfigs.test.d.ts +2 -0
- package/dist/vite/bundleConfigs.test.d.ts.map +1 -0
- package/dist/vite/bundleConfigs.test.js +252 -0
- package/dist/vite/bundleConfigs.test.js.map +1 -0
- package/dist/vite/configs.test.d.ts +2 -0
- package/dist/vite/configs.test.d.ts.map +1 -0
- package/dist/vite/configs.test.js +163 -0
- package/dist/vite/configs.test.js.map +1 -0
- package/dist/vite/plugins.test.d.ts +2 -0
- package/dist/vite/plugins.test.d.ts.map +1 -0
- package/dist/vite/plugins.test.js +232 -0
- package/dist/vite/plugins.test.js.map +1 -0
- package/dist/vite/translations.test.d.ts +2 -0
- package/dist/vite/translations.test.d.ts.map +1 -0
- package/dist/vite/translations.test.js +96 -0
- package/dist/vite/translations.test.js.map +1 -0
- package/dist/vite/vite.test.config.d.ts.map +1 -1
- package/dist/vite/vite.test.config.js +3 -1
- package/dist/vite/vite.test.config.js.map +1 -1
- package/package.json +4 -3
- package/src/dependencies.test.ts +249 -0
- package/src/getDependencies.test.ts +385 -0
- package/src/vite/bundleConfigs.test.ts +405 -0
- package/src/vite/configs.test.ts +217 -0
- package/src/vite/plugins.test.ts +348 -0
- package/src/vite/translations.test.ts +164 -0
- package/src/vite/vite.test.config.ts +5 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vite.test.config.ts +37 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/config@3.3.
|
|
2
|
+
> @prosopo/config@3.3.7 build:cjs
|
|
3
3
|
> NODE_ENV=${NODE_ENV:-production}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
|
|
4
4
|
|
|
5
5
|
ViteCommonJSConfig: .
|
|
@@ -26,10 +26,10 @@ dist/cjs/vite/vite.esm.config.cjs 2.39 kB │ gzip:
|
|
|
26
26
|
dist/cjs/vite/vite.commonjs.config.cjs 2.52 kB │ gzip: 0.99 kB
|
|
27
27
|
dist/cjs/vite/vite.threads.test.config.cjs 2.52 kB │ gzip: 1.00 kB
|
|
28
28
|
dist/cjs/index.cjs 2.54 kB │ gzip: 0.57 kB
|
|
29
|
-
dist/cjs/vite/vite.test.config.cjs 2.
|
|
29
|
+
dist/cjs/vite/vite.test.config.cjs 2.72 kB │ gzip: 1.04 kB
|
|
30
30
|
dist/cjs/vite/vite.backend.config.cjs 3.63 kB │ gzip: 1.35 kB
|
|
31
31
|
dist/cjs/webpack/webpack.config.cjs 3.72 kB │ gzip: 1.30 kB
|
|
32
32
|
dist/cjs/dependencies.cjs 5.87 kB │ gzip: 1.92 kB
|
|
33
33
|
dist/cjs/vite/vite.frontend.config.cjs 6.66 kB │ gzip: 2.32 kB
|
|
34
34
|
|
|
35
|
-
[32m✓ built in
|
|
35
|
+
[32m✓ built in 67ms[39m
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/config@3.3.
|
|
2
|
+
> @prosopo/config@3.3.7 build:tsc
|
|
3
3
|
> tsc --build --verbose
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
1:56:26 PM - Projects in this build:
|
|
6
6
|
* tsconfig.json
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
1:56:27 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
1:56:27 PM - Building project '/home/runner/work/captcha/captcha/dev/config/tsconfig.json'...
|
|
11
11
|
|
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
|
|
2
|
-
> @prosopo/config@3.3.
|
|
2
|
+
> @prosopo/config@3.3.7 build
|
|
3
3
|
> npm run build:cross-env -- --mode ${NODE_ENV:-development}
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @prosopo/config@3.3.
|
|
6
|
+
> @prosopo/config@3.3.7 build:cross-env
|
|
7
7
|
> vite build --config vite.esm.config.ts --mode production
|
|
8
8
|
|
|
9
9
|
ViteEsmConfig: .
|
|
@@ -30,10 +30,10 @@ dist/vite/vite.esm.config.js 1.90 kB │ gzip: 0.84
|
|
|
30
30
|
dist/vite/vite.commonjs.config.js 2.00 kB │ gzip: 0.90 kB
|
|
31
31
|
dist/vite/vite-plugin-remove-unused-translations.js 2.03 kB │ gzip: 0.92 kB
|
|
32
32
|
dist/vite/vite.threads.test.config.js 2.19 kB │ gzip: 0.94 kB
|
|
33
|
-
dist/vite/vite.test.config.js 2.
|
|
33
|
+
dist/vite/vite.test.config.js 2.29 kB │ gzip: 0.96 kB
|
|
34
34
|
dist/webpack/webpack.config.js 3.08 kB │ gzip: 1.23 kB
|
|
35
35
|
dist/vite/vite.backend.config.js 3.10 kB │ gzip: 1.27 kB
|
|
36
36
|
dist/dependencies.js 5.31 kB │ gzip: 1.81 kB
|
|
37
37
|
dist/vite/vite.frontend.config.js 5.68 kB │ gzip: 2.19 kB
|
|
38
38
|
|
|
39
|
-
[32m✓ built in
|
|
39
|
+
[32m✓ built in 53ms[39m
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @prosopo/config
|
|
2
2
|
|
|
3
|
+
## 3.3.7
|
|
4
|
+
### Patch Changes
|
|
5
|
+
|
|
6
|
+
- a6518a1: Add unit tests for the shared build config: dependency resolution, the vite bundle and library configs, the plugin set and the translations plugin. No behaviour changes.
|
|
7
|
+
- 2aabe73: Remove the client-controlled `detectorUnavailable` frictionless bypass. A client could set the flag and be handed a PoW challenge without any detection running. The flag is gone from the wire format, the API client and the widget; the only remaining bypasses are provider-side (maintenance mode, empty detector bundle pool).
|
|
8
|
+
|
|
9
|
+
The frictionless decision machine now gates on payload presence after the access-rule ladder: no token serves a 3-round image captcha, a token without its head hash serves a 2-round one.
|
|
10
|
+
|
|
11
|
+
## 3.3.6
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- c2ab027: chore(deps-dev): bump webpack-dev-server from 5.2.6 to 6.0.0
|
|
15
|
+
|
|
3
16
|
## 3.3.5
|
|
4
17
|
### Patch Changes
|
|
5
18
|
|
|
@@ -29,7 +29,9 @@ function vite_test_config_default(tsConfigPath) {
|
|
|
29
29
|
"src/**/*.test.ts",
|
|
30
30
|
"src/**/*.spec.ts",
|
|
31
31
|
"src/**/*.test.tsx",
|
|
32
|
-
"src/**/*.spec.tsx"
|
|
32
|
+
"src/**/*.spec.tsx",
|
|
33
|
+
"src/**/*.test-d.ts",
|
|
34
|
+
"src/**/*.test-d.tsx"
|
|
33
35
|
] : [
|
|
34
36
|
"**/tests/**/*",
|
|
35
37
|
"**/*.d.ts",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.test.d.ts","sourceRoot":"","sources":["../src/dependencies.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { filterDependencies, getExternalsFromReferences, getTsConfigs, } from "./dependencies.js";
|
|
6
|
+
let root;
|
|
7
|
+
const writeProject = (dir, references, packageName) => {
|
|
8
|
+
const absolute = path.join(root, dir);
|
|
9
|
+
fs.mkdirSync(absolute, { recursive: true });
|
|
10
|
+
const tsConfigPath = path.join(absolute, "tsconfig.json");
|
|
11
|
+
fs.writeFileSync(tsConfigPath, JSON.stringify({ references: references.map((p) => ({ path: p })) }));
|
|
12
|
+
if (packageName) {
|
|
13
|
+
fs.writeFileSync(path.join(absolute, "package.json"), JSON.stringify({ name: packageName }));
|
|
14
|
+
}
|
|
15
|
+
return tsConfigPath;
|
|
16
|
+
};
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
root = fs.mkdtempSync(path.join(os.tmpdir(), "prosopo-config-test-"));
|
|
19
|
+
});
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
fs.rmSync(root, { recursive: true, force: true });
|
|
22
|
+
});
|
|
23
|
+
describe("getTsConfigs", () => {
|
|
24
|
+
it("returns just the starting config when it has no references", () => {
|
|
25
|
+
const entry = writeProject("a", []);
|
|
26
|
+
expect(getTsConfigs(entry)).toEqual([entry]);
|
|
27
|
+
});
|
|
28
|
+
it("returns nothing when the starting config is excluded and has no references", () => {
|
|
29
|
+
const entry = writeProject("a", []);
|
|
30
|
+
expect(getTsConfigs(entry, [], [], false)).toEqual([]);
|
|
31
|
+
});
|
|
32
|
+
it("walks references transitively", () => {
|
|
33
|
+
const c = writeProject("c", []);
|
|
34
|
+
const b = writeProject("b", ["../c"]);
|
|
35
|
+
const a = writeProject("a", ["../b"]);
|
|
36
|
+
expect(getTsConfigs(a, [/nothing-matches/], []).sort()).toEqual([a, b, c].sort());
|
|
37
|
+
});
|
|
38
|
+
it("skips references matching an ignore pattern, and everything under them", () => {
|
|
39
|
+
writeProject("keep", []);
|
|
40
|
+
writeProject("skip", []);
|
|
41
|
+
const a = writeProject("a", ["../keep/", "../skip/"]);
|
|
42
|
+
expect(getTsConfigs(a, [/skip/], [])).toEqual([
|
|
43
|
+
a,
|
|
44
|
+
path.join(root, "keep", "tsconfig.json"),
|
|
45
|
+
]);
|
|
46
|
+
});
|
|
47
|
+
it("builds the ignore expression from the stringified patterns, delimiters included", () => {
|
|
48
|
+
writeProject("skip", []);
|
|
49
|
+
const a = writeProject("a", ["../skip"]);
|
|
50
|
+
expect(getTsConfigs(a, [/skip/], [])).toHaveLength(2);
|
|
51
|
+
});
|
|
52
|
+
it("drops every reference when no ignore pattern is given", () => {
|
|
53
|
+
writeProject("b", []);
|
|
54
|
+
const a = writeProject("a", ["../b"]);
|
|
55
|
+
expect(getTsConfigs(a)).toEqual([a]);
|
|
56
|
+
});
|
|
57
|
+
it("appends tsconfig.json to a reference that names a directory", () => {
|
|
58
|
+
writeProject("b", []);
|
|
59
|
+
const a = writeProject("a", ["../b"]);
|
|
60
|
+
expect(getTsConfigs(a, [/\.\./], [])).toContain(path.join(root, "b", "tsconfig.json"));
|
|
61
|
+
});
|
|
62
|
+
it("honours a reference that names a config file explicitly", () => {
|
|
63
|
+
fs.mkdirSync(path.join(root, "b"), { recursive: true });
|
|
64
|
+
const explicit = path.join(root, "b", "tsconfig.build.json");
|
|
65
|
+
fs.writeFileSync(explicit, JSON.stringify({ references: [] }));
|
|
66
|
+
const a = writeProject("a", ["../b/tsconfig.build.json"]);
|
|
67
|
+
expect(getTsConfigs(a, [/\.\./], [])).toContain(explicit);
|
|
68
|
+
});
|
|
69
|
+
it("does not loop forever on a reference cycle", () => {
|
|
70
|
+
const a = path.join(root, "a", "tsconfig.json");
|
|
71
|
+
const b = path.join(root, "b", "tsconfig.json");
|
|
72
|
+
writeProject("a", ["../b"]);
|
|
73
|
+
writeProject("b", ["../a"]);
|
|
74
|
+
expect(getTsConfigs(a, [/\.\./], []).sort()).toEqual([a, b].sort());
|
|
75
|
+
});
|
|
76
|
+
it("visits a diamond dependency only once", () => {
|
|
77
|
+
writeProject("d", []);
|
|
78
|
+
writeProject("b", ["../d"]);
|
|
79
|
+
writeProject("c", ["../d"]);
|
|
80
|
+
const a = writeProject("a", ["../b", "../c"]);
|
|
81
|
+
const result = getTsConfigs(a, [/\.\./], []);
|
|
82
|
+
expect(new Set(result).size).toBe(result.length);
|
|
83
|
+
expect(result).toHaveLength(4);
|
|
84
|
+
});
|
|
85
|
+
it("keeps configs that were already accumulated", () => {
|
|
86
|
+
const existing = "/already/seen/tsconfig.json";
|
|
87
|
+
const a = writeProject("a", []);
|
|
88
|
+
expect(getTsConfigs(a, [], [existing])).toEqual([existing, a]);
|
|
89
|
+
});
|
|
90
|
+
it("returns the accumulator untouched when the config was already seen", () => {
|
|
91
|
+
const a = writeProject("a", []);
|
|
92
|
+
expect(getTsConfigs(a, [], [a])).toEqual([a]);
|
|
93
|
+
});
|
|
94
|
+
it("throws for a config path that does not exist", () => {
|
|
95
|
+
expect(() => getTsConfigs(path.join(root, "missing.json"))).toThrow();
|
|
96
|
+
});
|
|
97
|
+
it("throws for a config that is not valid JSON", () => {
|
|
98
|
+
const broken = path.join(root, "broken.json");
|
|
99
|
+
fs.writeFileSync(broken, "{ not json");
|
|
100
|
+
expect(() => getTsConfigs(broken)).toThrow();
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe("getExternalsFromReferences", () => {
|
|
104
|
+
it("returns the package name of every referenced project", async () => {
|
|
105
|
+
writeProject("b", [], "@prosopo/b");
|
|
106
|
+
writeProject("c", [], "@prosopo/c");
|
|
107
|
+
const a = writeProject("a", ["../b", "../c"], "@prosopo/a");
|
|
108
|
+
await expect(getExternalsFromReferences(a, [/\.\./])).resolves.toEqual([
|
|
109
|
+
"@prosopo/b",
|
|
110
|
+
"@prosopo/c",
|
|
111
|
+
]);
|
|
112
|
+
});
|
|
113
|
+
it("returns nothing when there are no followed references", async () => {
|
|
114
|
+
const a = writeProject("a", [], "@prosopo/a");
|
|
115
|
+
await expect(getExternalsFromReferences(a)).resolves.toEqual([]);
|
|
116
|
+
});
|
|
117
|
+
it("rejects when a referenced project has no package.json", async () => {
|
|
118
|
+
writeProject("b", []);
|
|
119
|
+
const a = writeProject("a", ["../b"], "@prosopo/a");
|
|
120
|
+
await expect(getExternalsFromReferences(a, [/\.\./])).rejects.toBeDefined();
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe("filterDependencies", () => {
|
|
124
|
+
it("splits on the filter patterns, sorted", () => {
|
|
125
|
+
expect(filterDependencies(["zod", "@prosopo/util", "axios"], ["@prosopo"])).toEqual({
|
|
126
|
+
internal: ["axios", "zod"],
|
|
127
|
+
external: ["@prosopo/util"],
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
it("treats the filters as alternatives in a single expression", () => {
|
|
131
|
+
expect(filterDependencies(["a-one", "b-two", "c-three"], ["one", "two"])).toEqual({ internal: ["c-three"], external: ["a-one", "b-two"] });
|
|
132
|
+
});
|
|
133
|
+
it("deduplicates before splitting", () => {
|
|
134
|
+
expect(filterDependencies(["zod", "zod", "zod"], ["nope"]).internal).toEqual(["zod"]);
|
|
135
|
+
});
|
|
136
|
+
it("drops empty strings", () => {
|
|
137
|
+
expect(filterDependencies(["", "zod", ""], ["nope"])).toEqual({
|
|
138
|
+
internal: ["zod"],
|
|
139
|
+
external: [],
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
it("returns two empty lists for no dependencies", () => {
|
|
143
|
+
expect(filterDependencies([], ["@prosopo"])).toEqual({
|
|
144
|
+
internal: [],
|
|
145
|
+
external: [],
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
it("puts everything in external when a filter matches all", () => {
|
|
149
|
+
expect(filterDependencies(["a", "b"], [""]).external).toEqual(["a", "b"]);
|
|
150
|
+
});
|
|
151
|
+
it("puts everything in internal when no filter is supplied", () => {
|
|
152
|
+
expect(filterDependencies(["a", "b"], []).external).toEqual(["a", "b"]);
|
|
153
|
+
});
|
|
154
|
+
it("does not mutate the input", () => {
|
|
155
|
+
const deps = ["zod", "axios"];
|
|
156
|
+
filterDependencies(deps, ["zod"]);
|
|
157
|
+
expect(deps).toEqual(["zod", "axios"]);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=dependencies.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.test.js","sourceRoot":"","sources":["../src/dependencies.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencies.test.d.ts","sourceRoot":"","sources":["../src/getDependencies.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { promisify } from "node:util";
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
let commands = [];
|
|
5
|
+
let responses = [];
|
|
6
|
+
const fakeExec = (command, callback) => {
|
|
7
|
+
commands.push(command);
|
|
8
|
+
const next = responses.shift();
|
|
9
|
+
if (next === undefined) {
|
|
10
|
+
throw new Error(`unexpected exec: ${command}`);
|
|
11
|
+
}
|
|
12
|
+
if (next instanceof Error) {
|
|
13
|
+
callback(next, "", "");
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
callback(null, next.stdout, next.stderr);
|
|
17
|
+
};
|
|
18
|
+
Object.defineProperty(fakeExec, promisify.custom, {
|
|
19
|
+
value: (command) => new Promise((resolve, reject) => {
|
|
20
|
+
fakeExec(command, (error, stdout, stderr) => {
|
|
21
|
+
if (error) {
|
|
22
|
+
reject(error);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
resolve({ stdout, stderr });
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}),
|
|
29
|
+
});
|
|
30
|
+
vi.mock("node:child_process", () => ({ default: { exec: fakeExec } }));
|
|
31
|
+
const { getDependencies } = await import("./dependencies.js");
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
commands = [];
|
|
34
|
+
responses = [];
|
|
35
|
+
});
|
|
36
|
+
afterEach(() => {
|
|
37
|
+
expect(responses).toEqual([]);
|
|
38
|
+
});
|
|
39
|
+
const ok = (stdout, stderr = "") => ({ stdout, stderr });
|
|
40
|
+
const failing = (stdout, stderr = "") => {
|
|
41
|
+
const error = Object.assign(new Error("npm ls exited 1"), { stdout, stderr });
|
|
42
|
+
return error;
|
|
43
|
+
};
|
|
44
|
+
const TREE = [
|
|
45
|
+
"@prosopo/root@1.0.0 /repo",
|
|
46
|
+
"├─┬ mongodb@6.3.0",
|
|
47
|
+
"│ └── bson@6.2.0",
|
|
48
|
+
"└── zod@3.22.4",
|
|
49
|
+
].join("\n");
|
|
50
|
+
describe("getDependencies", () => {
|
|
51
|
+
it("parses every package name out of the npm ls tree", async () => {
|
|
52
|
+
responses = [ok(TREE)];
|
|
53
|
+
const { dependencies } = await getDependencies();
|
|
54
|
+
expect(dependencies).toEqual(["mongodb", "bson", "zod"]);
|
|
55
|
+
});
|
|
56
|
+
it("does not treat the root package line as a dependency", async () => {
|
|
57
|
+
responses = [ok(TREE)];
|
|
58
|
+
const { dependencies } = await getDependencies();
|
|
59
|
+
expect(dependencies).not.toContain("@prosopo/root");
|
|
60
|
+
});
|
|
61
|
+
it("collects unmet optional peers separately", async () => {
|
|
62
|
+
responses = [
|
|
63
|
+
ok([
|
|
64
|
+
"│ ├── UNMET OPTIONAL DEPENDENCY bufferutil@^4.0.1",
|
|
65
|
+
"│ ├── UNMET OPTIONAL DEPENDENCY utf-8-validate@^5.0.2",
|
|
66
|
+
"└── zod@3.22.4",
|
|
67
|
+
].join("\n")),
|
|
68
|
+
];
|
|
69
|
+
const { dependencies, optionalPeerDependencies } = await getDependencies();
|
|
70
|
+
expect(optionalPeerDependencies).toEqual(["bufferutil", "utf-8-validate"]);
|
|
71
|
+
expect(dependencies).toEqual(["zod"]);
|
|
72
|
+
});
|
|
73
|
+
it("deduplicates packages that appear all over the tree", async () => {
|
|
74
|
+
responses = [ok(["├── zod@3.22.4", "│ └── zod@3.22.4"].join("\n"))];
|
|
75
|
+
await expect(getDependencies()).resolves.toEqual({
|
|
76
|
+
dependencies: ["zod"],
|
|
77
|
+
optionalPeerDependencies: [],
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
it("returns empty lists for an empty tree", async () => {
|
|
81
|
+
responses = [ok("")];
|
|
82
|
+
await expect(getDependencies()).resolves.toEqual({
|
|
83
|
+
dependencies: [],
|
|
84
|
+
optionalPeerDependencies: [],
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
it("omits dev dependencies when asked for a production tree", async () => {
|
|
88
|
+
responses = [ok(TREE)];
|
|
89
|
+
await getDependencies(undefined, true);
|
|
90
|
+
expect(commands[0]).toContain("--omit=dev");
|
|
91
|
+
});
|
|
92
|
+
it("keeps dev dependencies otherwise", async () => {
|
|
93
|
+
responses = [ok(TREE)];
|
|
94
|
+
await getDependencies(undefined, false);
|
|
95
|
+
expect(commands[0]).not.toContain("--omit=dev");
|
|
96
|
+
});
|
|
97
|
+
it("resolves the package directory first and runs npm ls inside it", async () => {
|
|
98
|
+
responses = [ok("/repo/packages/server\n"), ok(TREE)];
|
|
99
|
+
await getDependencies("@prosopo/server");
|
|
100
|
+
expect(commands[0]).toBe("npm list @prosopo/server -ap");
|
|
101
|
+
expect(commands[1]).toContain("cd /repo/packages/server &&");
|
|
102
|
+
});
|
|
103
|
+
it("prefixes a bare package name with the scope", async () => {
|
|
104
|
+
responses = [ok("/repo/packages/server\n"), ok(TREE)];
|
|
105
|
+
await getDependencies("server");
|
|
106
|
+
expect(commands[0]).toBe("npm list @prosopo/server -ap");
|
|
107
|
+
});
|
|
108
|
+
it("leaves an already-scoped name alone", async () => {
|
|
109
|
+
responses = [ok("/repo/packages/server\n"), ok(TREE)];
|
|
110
|
+
await getDependencies("@prosopo/server");
|
|
111
|
+
expect(commands[0]).toBe("npm list @prosopo/server -ap");
|
|
112
|
+
});
|
|
113
|
+
it("falls back to the working directory when npm prints no path", async () => {
|
|
114
|
+
responses = [ok(" \n"), ok(TREE)];
|
|
115
|
+
await getDependencies("@prosopo/server");
|
|
116
|
+
expect(commands[1]).toContain(`cd ${process.cwd()} &&`);
|
|
117
|
+
});
|
|
118
|
+
it("rejects when the package cannot be located", async () => {
|
|
119
|
+
responses = [ok("", "npm ERR! code E404")];
|
|
120
|
+
await expect(getDependencies("@prosopo/absent")).rejects.toThrow("CONFIG.INVALID_PACKAGE_DIR");
|
|
121
|
+
});
|
|
122
|
+
it("tolerates npm warnings on stderr that are not errors", async () => {
|
|
123
|
+
responses = [
|
|
124
|
+
ok("/repo/packages/server\n", "npm warn deprecated"),
|
|
125
|
+
ok(TREE),
|
|
126
|
+
];
|
|
127
|
+
await expect(getDependencies("@prosopo/server")).resolves.toMatchObject({
|
|
128
|
+
dependencies: ["mongodb", "bson", "zod"],
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
it("still parses the tree when npm ls exits non-zero", async () => {
|
|
132
|
+
responses = [failing(TREE)];
|
|
133
|
+
const { dependencies } = await getDependencies();
|
|
134
|
+
expect(dependencies).toEqual(["mongodb", "bson", "zod"]);
|
|
135
|
+
});
|
|
136
|
+
it("rethrows when a failing npm ls produced no output at all", async () => {
|
|
137
|
+
const error = new Error("npm not found");
|
|
138
|
+
responses = [error];
|
|
139
|
+
await expect(getDependencies()).rejects.toThrow("npm not found");
|
|
140
|
+
});
|
|
141
|
+
it("reads stderr as well as stdout, since npm splits the tree across both", async () => {
|
|
142
|
+
responses = [ok("├── zod@3.22.4", "\n└── axios@1.6.0")];
|
|
143
|
+
const { dependencies } = await getDependencies();
|
|
144
|
+
expect(dependencies).toEqual(["zod", "axios"]);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
const { default: ViteBackendConfig } = await import("./vite/vite.backend.config.js");
|
|
148
|
+
const npmLsResponses = () => [
|
|
149
|
+
ok("/repo/packages/server\n"),
|
|
150
|
+
ok(TREE),
|
|
151
|
+
];
|
|
152
|
+
const externalsOf = (config) => {
|
|
153
|
+
const external = config.build?.rollupOptions?.external;
|
|
154
|
+
if (!Array.isArray(external)) {
|
|
155
|
+
throw new Error("expected an array of externals");
|
|
156
|
+
}
|
|
157
|
+
return external.map(String);
|
|
158
|
+
};
|
|
159
|
+
const flattenDeep = (value) => Array.isArray(value) ? value.flatMap(flattenDeep) : [value];
|
|
160
|
+
const pluginNamesOf = (plugins) => flattenDeep(plugins ?? []).map((plugin) => {
|
|
161
|
+
if (plugin && typeof plugin === "object" && "name" in plugin) {
|
|
162
|
+
return String(plugin.name);
|
|
163
|
+
}
|
|
164
|
+
return "";
|
|
165
|
+
});
|
|
166
|
+
describe("ViteBackendConfig", () => {
|
|
167
|
+
const build = (command, mode, outputDir) => {
|
|
168
|
+
responses = npmLsResponses();
|
|
169
|
+
return ViteBackendConfig("@prosopo/server", "1.2.3", "server", "/repo/packages/server", "src/index.ts", command, mode, outputDir);
|
|
170
|
+
};
|
|
171
|
+
it("emits an esm bundle named after the bundle name", async () => {
|
|
172
|
+
const config = await build();
|
|
173
|
+
expect(config.build?.lib).toMatchObject({
|
|
174
|
+
name: "server",
|
|
175
|
+
formats: ["es"],
|
|
176
|
+
fileName: "server.[name].bundle.js",
|
|
177
|
+
});
|
|
178
|
+
expect(config.build?.rollupOptions?.output).toMatchObject({
|
|
179
|
+
entryFileNames: "server.[name].bundle.js",
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
it("defaults the output to dist/bundle inside the package", async () => {
|
|
183
|
+
const config = await build();
|
|
184
|
+
expect(config.build?.outDir).toBe(path.resolve("/repo/packages/server", "dist/bundle"));
|
|
185
|
+
});
|
|
186
|
+
it("honours an explicit output directory", async () => {
|
|
187
|
+
const config = await build(undefined, undefined, "/tmp/out");
|
|
188
|
+
expect(config.build?.outDir).toBe(path.resolve("/tmp/out"));
|
|
189
|
+
});
|
|
190
|
+
it("minifies only in production", async () => {
|
|
191
|
+
await expect(build(undefined, "production")).resolves.toMatchObject({
|
|
192
|
+
build: { minify: true },
|
|
193
|
+
});
|
|
194
|
+
await expect(build(undefined, "development")).resolves.toMatchObject({
|
|
195
|
+
build: { minify: false },
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
it("bakes the package version into the bundle", async () => {
|
|
199
|
+
const config = await build();
|
|
200
|
+
expect(config.define).toMatchObject({
|
|
201
|
+
"process.env.PROSOPO_PACKAGE_VERSION": '"1.2.3"',
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
it("stubs out the optional websocket native helpers", async () => {
|
|
205
|
+
const config = await build();
|
|
206
|
+
expect(config.define).toMatchObject({
|
|
207
|
+
"process.env.WS_NO_BUFFER_UTIL": "true",
|
|
208
|
+
"process.env.WS_NO_UTF_8_VALIDATE": "true",
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
it("bundles punycode rather than externalising it", async () => {
|
|
212
|
+
const config = await build();
|
|
213
|
+
expect(externalsOf(config)).not.toContain("punycode");
|
|
214
|
+
expect(externalsOf(config)).toContain("node:punycode");
|
|
215
|
+
});
|
|
216
|
+
it("externalises the remaining node builtins", async () => {
|
|
217
|
+
const list = externalsOf(await build());
|
|
218
|
+
expect(list).toContain("fs");
|
|
219
|
+
expect(list).toContain("node:fs");
|
|
220
|
+
});
|
|
221
|
+
it("resolves the entry against the package directory", async () => {
|
|
222
|
+
const config = await build();
|
|
223
|
+
expect(config.build?.lib).toMatchObject({
|
|
224
|
+
entry: [path.resolve("/repo/packages/server", "src/index.ts")],
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
it("resolves a list of entries", async () => {
|
|
228
|
+
responses = npmLsResponses();
|
|
229
|
+
const config = await ViteBackendConfig("@prosopo/server", "1.2.3", "server", "/repo/packages/server", ["src/a.ts", "src/b.ts"]);
|
|
230
|
+
expect(config.build?.lib).toMatchObject({
|
|
231
|
+
entry: [
|
|
232
|
+
path.resolve("/repo/packages/server", "src/a.ts"),
|
|
233
|
+
path.resolve("/repo/packages/server", "src/b.ts"),
|
|
234
|
+
],
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
it("resolves a named entry map", async () => {
|
|
238
|
+
responses = npmLsResponses();
|
|
239
|
+
const config = await ViteBackendConfig("@prosopo/server", "1.2.3", "server", "/repo/packages/server", { cli: "src/cli.ts" });
|
|
240
|
+
expect(config.build?.lib).toMatchObject({
|
|
241
|
+
entry: { cli: path.resolve("/repo/packages/server", "src/cli.ts") },
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
it("skips the close plugin while serving, so the dev server stays up", async () => {
|
|
245
|
+
const serving = (await build("serve")).plugins ?? [];
|
|
246
|
+
const building = (await build("build")).plugins ?? [];
|
|
247
|
+
expect(pluginNamesOf(serving)).not.toContain("close-plugin");
|
|
248
|
+
expect(pluginNamesOf(building)).toContain("close-plugin");
|
|
249
|
+
});
|
|
250
|
+
it("keeps module side effects when treeshaking", async () => {
|
|
251
|
+
const config = await build();
|
|
252
|
+
expect(config.build?.rollupOptions?.treeshake).toMatchObject({
|
|
253
|
+
annotations: true,
|
|
254
|
+
moduleSideEffects: true,
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
//# sourceMappingURL=getDependencies.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDependencies.test.js","sourceRoot":"","sources":["../src/getDependencies.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bundleConfigs.test.d.ts","sourceRoot":"","sources":["../../src/vite/bundleConfigs.test.ts"],"names":[],"mappings":""}
|