@verdaccio/e2e-cli 2.3.0 → 2.4.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.
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
2
2
|
let debug = require("debug");
|
|
3
3
|
debug = require_runtime.__toESM(debug);
|
|
4
|
-
let got = require("got");
|
|
5
|
-
got = require_runtime.__toESM(got);
|
|
6
4
|
//#region src/utils/registry-client.ts
|
|
7
5
|
var debug$1 = (0, debug.default)("verdaccio:e2e-cli:registry-client");
|
|
8
6
|
/**
|
|
@@ -13,21 +11,20 @@ var debug$1 = (0, debug.default)("verdaccio:e2e-cli:registry-client");
|
|
|
13
11
|
async function createUser(registryUrl, user = `e2e-user-${Date.now()}`, password = "e2e-test-password") {
|
|
14
12
|
debug$1("creating user %s on %s", user, registryUrl);
|
|
15
13
|
const url = `${registryUrl}/-/user/org.couchdb.user:${encodeURIComponent(user)}`;
|
|
16
|
-
const response = await
|
|
17
|
-
|
|
14
|
+
const response = await fetch(url, {
|
|
15
|
+
method: "PUT",
|
|
16
|
+
headers: { "Content-Type": "application/json" },
|
|
17
|
+
body: JSON.stringify({
|
|
18
18
|
name: user,
|
|
19
19
|
password,
|
|
20
20
|
_id: `org.couchdb.user:${user}`,
|
|
21
21
|
type: "user",
|
|
22
22
|
roles: [],
|
|
23
23
|
date: (/* @__PURE__ */ new Date()).toISOString()
|
|
24
|
-
}
|
|
25
|
-
responseType: "json",
|
|
26
|
-
throwHttpErrors: false,
|
|
27
|
-
retry: { limit: 0 }
|
|
24
|
+
})
|
|
28
25
|
});
|
|
29
|
-
const body = response.
|
|
30
|
-
if (response.
|
|
26
|
+
const body = await response.json();
|
|
27
|
+
if (response.status === 201 || response.status === 200 || response.status === 409) {
|
|
31
28
|
const token = body.token;
|
|
32
29
|
if (token) {
|
|
33
30
|
debug$1("user %s authenticated, token obtained", user);
|
|
@@ -37,7 +34,7 @@ async function createUser(registryUrl, user = `e2e-user-${Date.now()}`, password
|
|
|
37
34
|
};
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
|
-
throw new Error(`Failed to create/login user "${user}" on ${registryUrl}: ${response.
|
|
37
|
+
throw new Error(`Failed to create/login user "${user}" on ${registryUrl}: ${response.status} ${JSON.stringify(body)}`);
|
|
41
38
|
}
|
|
42
39
|
/**
|
|
43
40
|
* Ping the registry to check it's alive.
|
|
@@ -45,11 +42,11 @@ async function createUser(registryUrl, user = `e2e-user-${Date.now()}`, password
|
|
|
45
42
|
async function pingRegistry(registryUrl) {
|
|
46
43
|
debug$1("pinging %s", registryUrl);
|
|
47
44
|
try {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
const controller = new AbortController();
|
|
46
|
+
const timeout = setTimeout(() => controller.abort(), 5e3);
|
|
47
|
+
const response = await fetch(`${registryUrl}/-/ping`, { signal: controller.signal });
|
|
48
|
+
clearTimeout(timeout);
|
|
49
|
+
return response.status === 200;
|
|
53
50
|
} catch {
|
|
54
51
|
return false;
|
|
55
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-client.cjs","names":[],"sources":["../../../src/utils/registry-client.ts"],"sourcesContent":["import buildDebug from 'debug';\
|
|
1
|
+
{"version":3,"file":"registry-client.cjs","names":[],"sources":["../../../src/utils/registry-client.ts"],"sourcesContent":["import buildDebug from 'debug';\n\nconst debug = buildDebug('verdaccio:e2e-cli:registry-client');\n\nexport type RegistryAuth = {\n token: string;\n user: string;\n};\n\n/**\n * Creates a user on the registry and returns the auth token.\n * Uses a unique username per run to avoid 409 conflicts.\n * Works against any running Verdaccio instance with htpasswd auth.\n */\nexport async function createUser(\n registryUrl: string,\n user = `e2e-user-${Date.now()}`,\n password = 'e2e-test-password'\n): Promise<RegistryAuth> {\n debug('creating user %s on %s', user, registryUrl);\n const url = `${registryUrl}/-/user/org.couchdb.user:${encodeURIComponent(user)}`;\n const response = await fetch(url, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name: user,\n password,\n _id: `org.couchdb.user:${user}`,\n type: 'user',\n roles: [],\n date: new Date().toISOString(),\n }),\n });\n\n const body = (await response.json()) as any;\n\n if (response.status === 201 || response.status === 200 || response.status === 409) {\n const token = body.token;\n if (token) {\n debug('user %s authenticated, token obtained', user);\n return { token, user };\n }\n }\n\n throw new Error(\n `Failed to create/login user \"${user}\" on ${registryUrl}: ${response.status} ${JSON.stringify(body)}`\n );\n}\n\n/**\n * Ping the registry to check it's alive.\n */\nexport async function pingRegistry(registryUrl: string): Promise<boolean> {\n debug('pinging %s', registryUrl);\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 5000);\n const response = await fetch(`${registryUrl}/-/ping`, {\n signal: controller.signal,\n });\n clearTimeout(timeout);\n return response.status === 200;\n } catch {\n return false;\n }\n}\n"],"mappings":";;;;AAEA,IAAM,WAAA,GAAA,MAAA,SAAmB,oCAAoC;;;;;;AAY7D,eAAsB,WACpB,aACA,OAAO,YAAY,KAAK,KAAK,IAC7B,WAAW,qBACY;AACvB,SAAM,0BAA0B,MAAM,YAAY;CAClD,MAAM,MAAM,GAAG,YAAY,2BAA2B,mBAAmB,KAAK;CAC9E,MAAM,WAAW,MAAM,MAAM,KAAK;EAChC,QAAQ;EACR,SAAS,EAAE,gBAAgB,oBAAoB;EAC/C,MAAM,KAAK,UAAU;GACnB,MAAM;GACN;GACA,KAAK,oBAAoB;GACzB,MAAM;GACN,OAAO,EAAE;GACT,uBAAM,IAAI,MAAM,EAAC,aAAa;GAC/B,CAAC;EACH,CAAC;CAEF,MAAM,OAAQ,MAAM,SAAS,MAAM;AAEnC,KAAI,SAAS,WAAW,OAAO,SAAS,WAAW,OAAO,SAAS,WAAW,KAAK;EACjF,MAAM,QAAQ,KAAK;AACnB,MAAI,OAAO;AACT,WAAM,yCAAyC,KAAK;AACpD,UAAO;IAAE;IAAO;IAAM;;;AAI1B,OAAM,IAAI,MACR,gCAAgC,KAAK,OAAO,YAAY,IAAI,SAAS,OAAO,GAAG,KAAK,UAAU,KAAK,GACpG;;;;;AAMH,eAAsB,aAAa,aAAuC;AACxE,SAAM,cAAc,YAAY;AAChC,KAAI;EACF,MAAM,aAAa,IAAI,iBAAiB;EACxC,MAAM,UAAU,iBAAiB,WAAW,OAAO,EAAE,IAAK;EAC1D,MAAM,WAAW,MAAM,MAAM,GAAG,YAAY,UAAU,EACpD,QAAQ,WAAW,QACpB,CAAC;AACF,eAAa,QAAQ;AACrB,SAAO,SAAS,WAAW;SACrB;AACN,SAAO"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import buildDebug from "debug";
|
|
2
|
-
import got from "got";
|
|
3
2
|
//#region src/utils/registry-client.ts
|
|
4
3
|
var debug = buildDebug("verdaccio:e2e-cli:registry-client");
|
|
5
4
|
/**
|
|
@@ -10,21 +9,20 @@ var debug = buildDebug("verdaccio:e2e-cli:registry-client");
|
|
|
10
9
|
async function createUser(registryUrl, user = `e2e-user-${Date.now()}`, password = "e2e-test-password") {
|
|
11
10
|
debug("creating user %s on %s", user, registryUrl);
|
|
12
11
|
const url = `${registryUrl}/-/user/org.couchdb.user:${encodeURIComponent(user)}`;
|
|
13
|
-
const response = await
|
|
14
|
-
|
|
12
|
+
const response = await fetch(url, {
|
|
13
|
+
method: "PUT",
|
|
14
|
+
headers: { "Content-Type": "application/json" },
|
|
15
|
+
body: JSON.stringify({
|
|
15
16
|
name: user,
|
|
16
17
|
password,
|
|
17
18
|
_id: `org.couchdb.user:${user}`,
|
|
18
19
|
type: "user",
|
|
19
20
|
roles: [],
|
|
20
21
|
date: (/* @__PURE__ */ new Date()).toISOString()
|
|
21
|
-
}
|
|
22
|
-
responseType: "json",
|
|
23
|
-
throwHttpErrors: false,
|
|
24
|
-
retry: { limit: 0 }
|
|
22
|
+
})
|
|
25
23
|
});
|
|
26
|
-
const body = response.
|
|
27
|
-
if (response.
|
|
24
|
+
const body = await response.json();
|
|
25
|
+
if (response.status === 201 || response.status === 200 || response.status === 409) {
|
|
28
26
|
const token = body.token;
|
|
29
27
|
if (token) {
|
|
30
28
|
debug("user %s authenticated, token obtained", user);
|
|
@@ -34,7 +32,7 @@ async function createUser(registryUrl, user = `e2e-user-${Date.now()}`, password
|
|
|
34
32
|
};
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
|
-
throw new Error(`Failed to create/login user "${user}" on ${registryUrl}: ${response.
|
|
35
|
+
throw new Error(`Failed to create/login user "${user}" on ${registryUrl}: ${response.status} ${JSON.stringify(body)}`);
|
|
38
36
|
}
|
|
39
37
|
/**
|
|
40
38
|
* Ping the registry to check it's alive.
|
|
@@ -42,11 +40,11 @@ async function createUser(registryUrl, user = `e2e-user-${Date.now()}`, password
|
|
|
42
40
|
async function pingRegistry(registryUrl) {
|
|
43
41
|
debug("pinging %s", registryUrl);
|
|
44
42
|
try {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
const controller = new AbortController();
|
|
44
|
+
const timeout = setTimeout(() => controller.abort(), 5e3);
|
|
45
|
+
const response = await fetch(`${registryUrl}/-/ping`, { signal: controller.signal });
|
|
46
|
+
clearTimeout(timeout);
|
|
47
|
+
return response.status === 200;
|
|
50
48
|
} catch {
|
|
51
49
|
return false;
|
|
52
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-client.js","names":[],"sources":["../../../src/utils/registry-client.ts"],"sourcesContent":["import buildDebug from 'debug';\
|
|
1
|
+
{"version":3,"file":"registry-client.js","names":[],"sources":["../../../src/utils/registry-client.ts"],"sourcesContent":["import buildDebug from 'debug';\n\nconst debug = buildDebug('verdaccio:e2e-cli:registry-client');\n\nexport type RegistryAuth = {\n token: string;\n user: string;\n};\n\n/**\n * Creates a user on the registry and returns the auth token.\n * Uses a unique username per run to avoid 409 conflicts.\n * Works against any running Verdaccio instance with htpasswd auth.\n */\nexport async function createUser(\n registryUrl: string,\n user = `e2e-user-${Date.now()}`,\n password = 'e2e-test-password'\n): Promise<RegistryAuth> {\n debug('creating user %s on %s', user, registryUrl);\n const url = `${registryUrl}/-/user/org.couchdb.user:${encodeURIComponent(user)}`;\n const response = await fetch(url, {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n name: user,\n password,\n _id: `org.couchdb.user:${user}`,\n type: 'user',\n roles: [],\n date: new Date().toISOString(),\n }),\n });\n\n const body = (await response.json()) as any;\n\n if (response.status === 201 || response.status === 200 || response.status === 409) {\n const token = body.token;\n if (token) {\n debug('user %s authenticated, token obtained', user);\n return { token, user };\n }\n }\n\n throw new Error(\n `Failed to create/login user \"${user}\" on ${registryUrl}: ${response.status} ${JSON.stringify(body)}`\n );\n}\n\n/**\n * Ping the registry to check it's alive.\n */\nexport async function pingRegistry(registryUrl: string): Promise<boolean> {\n debug('pinging %s', registryUrl);\n try {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), 5000);\n const response = await fetch(`${registryUrl}/-/ping`, {\n signal: controller.signal,\n });\n clearTimeout(timeout);\n return response.status === 200;\n } catch {\n return false;\n }\n}\n"],"mappings":";;AAEA,IAAM,QAAQ,WAAW,oCAAoC;;;;;;AAY7D,eAAsB,WACpB,aACA,OAAO,YAAY,KAAK,KAAK,IAC7B,WAAW,qBACY;AACvB,OAAM,0BAA0B,MAAM,YAAY;CAClD,MAAM,MAAM,GAAG,YAAY,2BAA2B,mBAAmB,KAAK;CAC9E,MAAM,WAAW,MAAM,MAAM,KAAK;EAChC,QAAQ;EACR,SAAS,EAAE,gBAAgB,oBAAoB;EAC/C,MAAM,KAAK,UAAU;GACnB,MAAM;GACN;GACA,KAAK,oBAAoB;GACzB,MAAM;GACN,OAAO,EAAE;GACT,uBAAM,IAAI,MAAM,EAAC,aAAa;GAC/B,CAAC;EACH,CAAC;CAEF,MAAM,OAAQ,MAAM,SAAS,MAAM;AAEnC,KAAI,SAAS,WAAW,OAAO,SAAS,WAAW,OAAO,SAAS,WAAW,KAAK;EACjF,MAAM,QAAQ,KAAK;AACnB,MAAI,OAAO;AACT,SAAM,yCAAyC,KAAK;AACpD,UAAO;IAAE;IAAO;IAAM;;;AAI1B,OAAM,IAAI,MACR,gCAAgC,KAAK,OAAO,YAAY,IAAI,SAAS,OAAO,GAAG,KAAK,UAAU,KAAK,GACpG;;;;;AAMH,eAAsB,aAAa,aAAuC;AACxE,OAAM,cAAc,YAAY;AAChC,KAAI;EACF,MAAM,aAAa,IAAI,iBAAiB;EACxC,MAAM,UAAU,iBAAiB,WAAW,OAAO,EAAE,IAAK;EAC1D,MAAM,WAAW,MAAM,MAAM,GAAG,YAAY,UAAU,EACpD,QAAQ,WAAW,QACpB,CAAC;AACF,eAAa,QAAQ;AACrB,SAAO,SAAS,WAAW;SACrB;AACN,SAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdaccio/e2e-cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "CLI tool to run Verdaccio e2e tests against any running registry",
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"debug": "4.4.0",
|
|
31
31
|
"get-port": "5.1.1",
|
|
32
|
-
"got": "11.8.6",
|
|
33
32
|
"js-yaml": "4.1.0"
|
|
34
33
|
},
|
|
35
34
|
"devDependencies": {
|