@testsmith/api-spector 0.4.4 → 0.4.6
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/out/main/chunks/{mock-server-DSLR2ulH.js → mock-server-BxiXhP1m.js} +2 -0
- package/out/main/chunks/{request-exec-DlvyG4rn.js → request-exec-CBi2kL6s.js} +30 -0
- package/out/main/chunks/{snapshots-B7rDeWNy.js → snapshots-BDe-B5iQ.js} +1 -1
- package/out/main/contract.js +3 -2
- package/out/main/index.js +5 -4
- package/out/main/lib.js +37 -0
- package/out/main/mock.js +1 -1
- package/out/main/runner.js +3 -2
- package/out/renderer/assets/{index-X3HWqTJC.js → index-B55aZQcN.js} +2 -2
- package/out/renderer/index.html +1 -1
- package/package.json +6 -1
|
@@ -292,7 +292,9 @@ function getRunningIds() {
|
|
|
292
292
|
async function stopAll() {
|
|
293
293
|
await Promise.all([...running.keys()].map(stopMock));
|
|
294
294
|
}
|
|
295
|
+
exports.findRoute = findRoute;
|
|
295
296
|
exports.getRunningIds = getRunningIds;
|
|
297
|
+
exports.handleRequest = handleRequest;
|
|
296
298
|
exports.isRunning = isRunning;
|
|
297
299
|
exports.setHitCallback = setHitCallback;
|
|
298
300
|
exports.startMock = startMock;
|
|
@@ -23,6 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
));
|
|
24
24
|
const undici = require("undici");
|
|
25
25
|
const promises = require("fs/promises");
|
|
26
|
+
const nodeTls = require("tls");
|
|
26
27
|
const handle = require("./handle-BGYDylL2.js");
|
|
27
28
|
const crypto = require("crypto");
|
|
28
29
|
const path = require("path");
|
|
@@ -49,6 +50,7 @@ function _interopNamespaceDefault(e) {
|
|
|
49
50
|
n.default = e;
|
|
50
51
|
return Object.freeze(n);
|
|
51
52
|
}
|
|
53
|
+
const nodeTls__namespace = /* @__PURE__ */ _interopNamespaceDefault(nodeTls);
|
|
52
54
|
const crypto__namespace = /* @__PURE__ */ _interopNamespaceDefault(crypto);
|
|
53
55
|
const vm__namespace = /* @__PURE__ */ _interopNamespaceDefault(vm);
|
|
54
56
|
let globals = {};
|
|
@@ -1033,6 +1035,30 @@ async function fetchOAuth2Token(auth, vars) {
|
|
|
1033
1035
|
refreshToken: json["refresh_token"] ? String(json["refresh_token"]) : void 0
|
|
1034
1036
|
};
|
|
1035
1037
|
}
|
|
1038
|
+
let systemCertificateStoreApplied = false;
|
|
1039
|
+
function trustSystemCertificateStore(options = {}) {
|
|
1040
|
+
const platform = options.platform ?? process.platform;
|
|
1041
|
+
if (platform !== "win32") return false;
|
|
1042
|
+
if (systemCertificateStoreApplied && !options.force) return false;
|
|
1043
|
+
const tlsApi = options.tlsApi ?? nodeTls__namespace;
|
|
1044
|
+
if (typeof tlsApi.getCACertificates !== "function" || typeof tlsApi.setDefaultCACertificates !== "function") {
|
|
1045
|
+
return false;
|
|
1046
|
+
}
|
|
1047
|
+
try {
|
|
1048
|
+
const defaultCerts = tlsApi.getCACertificates("default");
|
|
1049
|
+
const systemCerts = tlsApi.getCACertificates("system");
|
|
1050
|
+
const combinedCerts = Array.from(/* @__PURE__ */ new Set([...defaultCerts, ...systemCerts]));
|
|
1051
|
+
if (!systemCerts.length || combinedCerts.length === defaultCerts.length) {
|
|
1052
|
+
systemCertificateStoreApplied = true;
|
|
1053
|
+
return false;
|
|
1054
|
+
}
|
|
1055
|
+
tlsApi.setDefaultCACertificates(combinedCerts);
|
|
1056
|
+
systemCertificateStoreApplied = true;
|
|
1057
|
+
return true;
|
|
1058
|
+
} catch {
|
|
1059
|
+
return false;
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1036
1062
|
function maskPii(data, patterns) {
|
|
1037
1063
|
if (!patterns.length) return data;
|
|
1038
1064
|
try {
|
|
@@ -1156,6 +1182,7 @@ function applyRequestDefaults(req) {
|
|
|
1156
1182
|
if (!req.auth) req.auth = { type: "none" };
|
|
1157
1183
|
}
|
|
1158
1184
|
async function buildDispatcher(proxy, tls) {
|
|
1185
|
+
if (proxy?.url?.trim()) trustSystemCertificateStore();
|
|
1159
1186
|
const connectOpts = {};
|
|
1160
1187
|
let hasTls = false;
|
|
1161
1188
|
if (tls) {
|
|
@@ -1495,9 +1522,11 @@ exports.buildAuthHeaders = buildAuthHeaders;
|
|
|
1495
1522
|
exports.buildDispatcher = buildDispatcher;
|
|
1496
1523
|
exports.buildDynamicVars = buildDynamicVars;
|
|
1497
1524
|
exports.buildEnvVars = buildEnvVars;
|
|
1525
|
+
exports.buildProtocolFaultTests = buildProtocolFaultTests;
|
|
1498
1526
|
exports.buildProxyUri = buildProxyUri;
|
|
1499
1527
|
exports.buildSchemaTestResults = buildSchemaTestResults;
|
|
1500
1528
|
exports.buildUrl = buildUrl;
|
|
1529
|
+
exports.deriveRunStatus = deriveRunStatus;
|
|
1501
1530
|
exports.executeRunnerRequest = executeRunnerRequest;
|
|
1502
1531
|
exports.getGlobals = getGlobals;
|
|
1503
1532
|
exports.getSecret = getSecret;
|
|
@@ -1513,3 +1542,4 @@ exports.persistGlobals = persistGlobals;
|
|
|
1513
1542
|
exports.registerSecretHandlers = registerSecretHandlers;
|
|
1514
1543
|
exports.runScript = runScript;
|
|
1515
1544
|
exports.setGlobals = setGlobals;
|
|
1545
|
+
exports.syntheticHttpFailure = syntheticHttpFailure;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const undici = require("undici");
|
|
3
|
-
const requestExec = require("./request-exec-
|
|
3
|
+
const requestExec = require("./request-exec-CBi2kL6s.js");
|
|
4
4
|
const promises = require("fs/promises");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const Ajv = require("ajv");
|
package/out/main/contract.js
CHANGED
|
@@ -24,13 +24,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
));
|
|
25
25
|
const promises = require("fs/promises");
|
|
26
26
|
const path = require("path");
|
|
27
|
-
const snapshots = require("./chunks/snapshots-
|
|
27
|
+
const snapshots = require("./chunks/snapshots-BDe-B5iQ.js");
|
|
28
28
|
const crypto = require("crypto");
|
|
29
29
|
const undici = require("undici");
|
|
30
30
|
const os = require("os");
|
|
31
31
|
const cliCommon = require("./chunks/cli-common-CDQY1erJ.js");
|
|
32
32
|
const environments = require("./chunks/environments-iM3SUM-4.js");
|
|
33
|
-
require("./chunks/request-exec-
|
|
33
|
+
require("./chunks/request-exec-CBi2kL6s.js");
|
|
34
|
+
require("tls");
|
|
34
35
|
require("./chunks/handle-BGYDylL2.js");
|
|
35
36
|
require("dayjs");
|
|
36
37
|
require("vm");
|
package/out/main/index.js
CHANGED
|
@@ -27,21 +27,22 @@ const path = require("path");
|
|
|
27
27
|
const fs = require("fs");
|
|
28
28
|
const promises = require("fs/promises");
|
|
29
29
|
const crypto = require("crypto");
|
|
30
|
-
const requestExec = require("./chunks/request-exec-
|
|
30
|
+
const requestExec = require("./chunks/request-exec-CBi2kL6s.js");
|
|
31
31
|
const ipcValidate = require("./chunks/ipc-validate-k6KI8adf.js");
|
|
32
32
|
const uuid = require("uuid");
|
|
33
33
|
const jsYaml = require("js-yaml");
|
|
34
34
|
const undici = require("undici");
|
|
35
35
|
const JSZip = require("jszip");
|
|
36
36
|
const requestCollection = require("./chunks/request-collection-CJoXpvOw.js");
|
|
37
|
-
const mockServer = require("./chunks/mock-server-
|
|
37
|
+
const mockServer = require("./chunks/mock-server-BxiXhP1m.js");
|
|
38
38
|
const http = require("http");
|
|
39
39
|
const WebSocket = require("ws");
|
|
40
40
|
const soapHandler = require("./chunks/soap-handler-CAyUjzxB.js");
|
|
41
41
|
const os = require("os");
|
|
42
|
-
const snapshots = require("./chunks/snapshots-
|
|
42
|
+
const snapshots = require("./chunks/snapshots-BDe-B5iQ.js");
|
|
43
43
|
const simpleGit = require("simple-git");
|
|
44
44
|
const recorder = require("./chunks/recorder-0Ij921El.js");
|
|
45
|
+
require("tls");
|
|
45
46
|
require("dayjs");
|
|
46
47
|
require("vm");
|
|
47
48
|
require("tv4");
|
|
@@ -5174,7 +5175,7 @@ function isNewer(a, b) {
|
|
|
5174
5175
|
return a2 > b2;
|
|
5175
5176
|
}
|
|
5176
5177
|
async function checkForUpdate() {
|
|
5177
|
-
const current = "0.4.
|
|
5178
|
+
const current = "0.4.6";
|
|
5178
5179
|
try {
|
|
5179
5180
|
const res = await fetch(REGISTRY_URL, { signal: AbortSignal.timeout(4e3) });
|
|
5180
5181
|
if (!res.ok) return null;
|
package/out/main/lib.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const mockServer = require("./chunks/mock-server-BxiXhP1m.js");
|
|
4
|
+
const requestExec = require("./chunks/request-exec-CBi2kL6s.js");
|
|
5
|
+
require("http");
|
|
6
|
+
require("crypto");
|
|
7
|
+
require("vm");
|
|
8
|
+
require("dayjs");
|
|
9
|
+
require("@xmldom/xmldom");
|
|
10
|
+
require("undici");
|
|
11
|
+
require("fs/promises");
|
|
12
|
+
require("tls");
|
|
13
|
+
require("./chunks/handle-BGYDylL2.js");
|
|
14
|
+
require("path");
|
|
15
|
+
require("tv4");
|
|
16
|
+
require("jsonpath-plus");
|
|
17
|
+
require("ajv");
|
|
18
|
+
exports.findRoute = mockServer.findRoute;
|
|
19
|
+
exports.getRunningIds = mockServer.getRunningIds;
|
|
20
|
+
exports.handleRequest = mockServer.handleRequest;
|
|
21
|
+
exports.isRunning = mockServer.isRunning;
|
|
22
|
+
exports.setHitCallback = mockServer.setHitCallback;
|
|
23
|
+
exports.startMock = mockServer.startMock;
|
|
24
|
+
exports.stopAll = mockServer.stopAll;
|
|
25
|
+
exports.stopMock = mockServer.stopMock;
|
|
26
|
+
exports.updateMockRoutes = mockServer.updateMockRoutes;
|
|
27
|
+
exports.HookSkipTracker = requestExec.HookSkipTracker;
|
|
28
|
+
exports.applyRequestDefaults = requestExec.applyRequestDefaults;
|
|
29
|
+
exports.buildDispatcher = requestExec.buildDispatcher;
|
|
30
|
+
exports.buildProtocolFaultTests = requestExec.buildProtocolFaultTests;
|
|
31
|
+
exports.buildSchemaTestResults = requestExec.buildSchemaTestResults;
|
|
32
|
+
exports.deriveRunStatus = requestExec.deriveRunStatus;
|
|
33
|
+
exports.executeRunnerRequest = requestExec.executeRunnerRequest;
|
|
34
|
+
exports.maskHeaders = requestExec.maskHeaders;
|
|
35
|
+
exports.maskPii = requestExec.maskPii;
|
|
36
|
+
exports.performHttpExchange = requestExec.performHttpExchange;
|
|
37
|
+
exports.syntheticHttpFailure = requestExec.syntheticHttpFailure;
|
package/out/main/mock.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
const mockServer = require("./chunks/mock-server-
|
|
3
|
+
const mockServer = require("./chunks/mock-server-BxiXhP1m.js");
|
|
4
4
|
const cliCommon = require("./chunks/cli-common-CDQY1erJ.js");
|
|
5
5
|
require("http");
|
|
6
6
|
require("crypto");
|
package/out/main/runner.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
const promises = require("fs/promises");
|
|
4
4
|
const path = require("path");
|
|
5
|
-
const requestExec = require("./chunks/request-exec-
|
|
5
|
+
const requestExec = require("./chunks/request-exec-CBi2kL6s.js");
|
|
6
6
|
const requestCollection = require("./chunks/request-collection-CJoXpvOw.js");
|
|
7
7
|
const environments = require("./chunks/environments-iM3SUM-4.js");
|
|
8
8
|
const cliCommon = require("./chunks/cli-common-CDQY1erJ.js");
|
|
9
9
|
require("undici");
|
|
10
|
+
require("tls");
|
|
10
11
|
require("./chunks/handle-BGYDylL2.js");
|
|
11
12
|
require("crypto");
|
|
12
13
|
require("dayjs");
|
|
@@ -396,7 +397,7 @@ async function main() {
|
|
|
396
397
|
} else if (!envName && workspace.settings?.defaultEnvironment && !env) {
|
|
397
398
|
console.warn(cliCommon.color(`Warning: default environment "${workspace.settings.defaultEnvironment}" not found. Running without environment.`, cliCommon.C.yellow));
|
|
398
399
|
}
|
|
399
|
-
const version = `v${"0.4.
|
|
400
|
+
const version = `v${"0.4.6"}`;
|
|
400
401
|
console.log("");
|
|
401
402
|
console.log(cliCommon.color(" API Test Runner" + (version ? ` ${version}` : ""), cliCommon.C.bold, cliCommon.C.white));
|
|
402
403
|
console.log(cliCommon.color(` Workspace: ${wsPath}`, cliCommon.C.gray));
|
|
@@ -66386,7 +66386,7 @@ function WelcomeScreen() {
|
|
|
66386
66386
|
/* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "text-surface-400 text-sm max-w-sm", children: "Local-first API testing with Robot Framework & Playwright code generation. Secrets stay on your machine." }),
|
|
66387
66387
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("p", { className: "text-[11px] mt-3", style: { color: "var(--text-muted)" }, children: [
|
|
66388
66388
|
"version ",
|
|
66389
|
-
"0.4.
|
|
66389
|
+
"0.4.6"
|
|
66390
66390
|
] })
|
|
66391
66391
|
] }),
|
|
66392
66392
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex flex-col gap-3 w-64", children: [
|
|
@@ -72600,7 +72600,7 @@ function App() {
|
|
|
72600
72600
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { style: { color: "#6aa3c8" }, children: "Spector" }),
|
|
72601
72601
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "ml-2 text-[10px] font-normal opacity-50", children: [
|
|
72602
72602
|
"v",
|
|
72603
|
-
"0.4.
|
|
72603
|
+
"0.4.6"
|
|
72604
72604
|
] }),
|
|
72605
72605
|
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "mx-2 opacity-30", children: "·" }),
|
|
72606
72606
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
package/out/renderer/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>API Spector</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-B55aZQcN.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="./assets/index-DkZ0bxof.css">
|
|
10
10
|
</head>
|
|
11
11
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testsmith/api-spector",
|
|
3
3
|
"productName": "API Spector",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.6",
|
|
5
5
|
"description": "Local-first API testing tool to inspect, test and mock APIs",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
"homepage": "https://github.com/testsmith-io/api-spector",
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"main": "out/main/index.js",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": "./out/main/index.js",
|
|
18
|
+
"./engine": "./out/main/lib.js",
|
|
19
|
+
"./package.json": "./package.json"
|
|
20
|
+
},
|
|
16
21
|
"bin": {
|
|
17
22
|
"api-spector": "bin/cli.js"
|
|
18
23
|
},
|