browser-ava 2.2.5 → 2.2.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/package.json +3 -3
- package/src/browser-ava-cli.mjs +15 -14
- package/src/resolver.mjs +13 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browser-ava",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@koa/cors": "^5.0.0",
|
|
39
39
|
"chalk": "^5.3.0",
|
|
40
40
|
"commander": "^12.0.0",
|
|
41
|
-
"es-module-lexer": "^1.
|
|
41
|
+
"es-module-lexer": "^1.5.0",
|
|
42
42
|
"globby": "^14.0.1",
|
|
43
43
|
"koa": "^2.15.2",
|
|
44
44
|
"koa-static": "^5.0.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"semantic-release": "^23.0.6"
|
|
55
55
|
},
|
|
56
56
|
"engines": {
|
|
57
|
-
"node": ">=20.
|
|
57
|
+
"node": ">=20.12.0",
|
|
58
58
|
"bun": ">=1.0"
|
|
59
59
|
},
|
|
60
60
|
"repository": {
|
package/src/browser-ava-cli.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
1
|
+
#!/usr/bin/env -S node --no-warnings --title browser-ava
|
|
3
2
|
import { readFile } from "node:fs/promises";
|
|
4
3
|
import { resolve } from "node:path";
|
|
5
4
|
import { init, parse } from "es-module-lexer";
|
|
@@ -13,13 +12,7 @@ import { calculateSummary, summaryMessages } from "./browser/util.mjs";
|
|
|
13
12
|
import { resolveImport, utf8EncodingOptions } from "./resolver.mjs";
|
|
14
13
|
import { globby } from "globby";
|
|
15
14
|
import chalk from "chalk";
|
|
16
|
-
|
|
17
|
-
const { version, description } = JSON.parse(
|
|
18
|
-
readFileSync(
|
|
19
|
-
new URL("../package.json", import.meta.url).pathname,
|
|
20
|
-
utf8EncodingOptions
|
|
21
|
-
)
|
|
22
|
-
);
|
|
15
|
+
import pkg from "../package.json" assert { type: "json" };
|
|
23
16
|
|
|
24
17
|
const knownBrowsers = {
|
|
25
18
|
chrome: chromium,
|
|
@@ -39,20 +32,28 @@ Object.entries(knownBrowsers).forEach(([name, browser]) => {
|
|
|
39
32
|
});
|
|
40
33
|
|
|
41
34
|
program
|
|
42
|
-
.description(description)
|
|
43
|
-
.version(version)
|
|
35
|
+
.description(pkg.description)
|
|
36
|
+
.version(pkg.version)
|
|
44
37
|
.addOption(
|
|
45
38
|
new Option("-p, --port <number>", "server port to use")
|
|
46
39
|
.default(8080)
|
|
47
40
|
.env("PORT")
|
|
48
41
|
)
|
|
49
42
|
.addOption(
|
|
50
|
-
new Option(
|
|
43
|
+
new Option(
|
|
44
|
+
"-b, --browser <name>[,secondBrowserName]",
|
|
45
|
+
"browsers to use"
|
|
46
|
+
).env("BROWSER")
|
|
51
47
|
)
|
|
52
48
|
.option("--headless", "hide browser window", false)
|
|
49
|
+
.option(
|
|
50
|
+
"--keep-open",
|
|
51
|
+
"keep browser-ava and the browser open after execution",
|
|
52
|
+
true
|
|
53
|
+
)
|
|
53
54
|
.option(
|
|
54
55
|
"--no-keep-open",
|
|
55
|
-
"
|
|
56
|
+
"close browser-ava and the browsers after execution",
|
|
56
57
|
true
|
|
57
58
|
)
|
|
58
59
|
.argument("<tests...>")
|
|
@@ -207,7 +208,7 @@ async function loadAndRewriteImports(file) {
|
|
|
207
208
|
|
|
208
209
|
d += m.length - i.n.length;
|
|
209
210
|
} else {
|
|
210
|
-
console.warn(
|
|
211
|
+
console.warn(`${file}: Unable to resolve "${i.n}" may lead to import errors`);
|
|
211
212
|
}
|
|
212
213
|
}
|
|
213
214
|
return body;
|
package/src/resolver.mjs
CHANGED
|
@@ -31,8 +31,8 @@ export function resolveExports(parts, pkg) {
|
|
|
31
31
|
case "string":
|
|
32
32
|
return value;
|
|
33
33
|
case "object":
|
|
34
|
-
if(value[
|
|
35
|
-
return matchingCondition(value[
|
|
34
|
+
if (value["."]) {
|
|
35
|
+
return matchingCondition(value["."]);
|
|
36
36
|
}
|
|
37
37
|
for (const condition of exportsConditionOrder) {
|
|
38
38
|
if (value[condition]) {
|
|
@@ -50,6 +50,10 @@ export function resolveExports(parts, pkg) {
|
|
|
50
50
|
return matchingCondition(pkg.exports["./" + parts.slice(1).join("/")]);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
+
|
|
54
|
+
/*if(parts.join('/') === pkg.name) {
|
|
55
|
+
return matchingCondition(pkg.exports) || pkg.main || "index.js";
|
|
56
|
+
}*/
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
export function resolveImports(name, pkg) {
|
|
@@ -100,14 +104,20 @@ export async function resolveImport(name, base) {
|
|
|
100
104
|
if (name.match(/^[\/\.]/)) {
|
|
101
105
|
return resolve(dirname(base), name);
|
|
102
106
|
}
|
|
103
|
-
let { pkg, path } = await findPackage(base);
|
|
104
107
|
|
|
105
108
|
let parts = name.split(/\//);
|
|
106
109
|
|
|
107
110
|
if (parts[0][0] === "@") {
|
|
111
|
+
const i = base.indexOf(parts[0]);
|
|
112
|
+
if (i > 0) {
|
|
113
|
+
base = base.substring(0, i);
|
|
114
|
+
}
|
|
115
|
+
|
|
108
116
|
parts = [parts[0] + "/" + parts[1], ...parts.slice(2)];
|
|
109
117
|
}
|
|
110
118
|
|
|
119
|
+
let { pkg, path } = await findPackage(base);
|
|
120
|
+
|
|
111
121
|
const e = resolveExports(parts, pkg) || resolveImports(name, pkg);
|
|
112
122
|
|
|
113
123
|
if (e) {
|