@testsmith/api-spector 0.3.6 → 0.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.
@@ -13,7 +13,9 @@ const IPC = {
13
13
  saveEnvironment: "file:saveEnvironment",
14
14
  deleteWorkspaceFile: "file:deleteWorkspaceFile",
15
15
  saveMock: "file:saveMock",
16
- loadMock: "file:loadMock"
16
+ loadMock: "file:loadMock",
17
+ loadHistory: "file:loadHistory",
18
+ saveHistory: "file:saveHistory"
17
19
  },
18
20
  // ─── Native dialogs ────────────────────────────────────────────────────────
19
21
  dialog: {
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const uuid = require("uuid");
4
- const soapHandler = require("./soap-handler-CqXVreNa.js");
5
- require("./handle-BtRMtQJg.js");
4
+ const soapHandler = require("./soap-handler-h0dWIjOK.js");
5
+ require("./handle-BCnNIZZr.js");
6
6
  require("https");
7
7
  require("http");
8
8
  require("@xmldom/xmldom");
@@ -23,7 +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 handle = require("./handle-BtRMtQJg.js");
26
+ const handle = require("./handle-BCnNIZZr.js");
27
27
  const crypto = require("crypto");
28
28
  const path = require("path");
29
29
  const dayjs = require("dayjs");
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const undici = require("undici");
3
- const requestExec = require("./request-exec-DbNHbA8x.js");
3
+ const requestExec = require("./request-exec-AQD6cEgT.js");
4
4
  const promises = require("fs/promises");
5
5
  const path = require("path");
6
6
  const Ajv = require("ajv");
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const handle = require("./handle-BtRMtQJg.js");
2
+ const handle = require("./handle-BCnNIZZr.js");
3
3
  const https = require("https");
4
4
  const http = require("http");
5
5
  const xmldom = require("@xmldom/xmldom");
@@ -315,7 +315,7 @@ function registerSoapHandlers(ipc) {
315
315
  handle.handleIpc(ipc, handle.IPC.wsdl.import, async (_event, opts) => {
316
316
  const { validateWsdlImport } = await Promise.resolve().then(() => require("./ipc-validate-k6KI8adf.js"));
317
317
  validateWsdlImport(opts);
318
- const { importWsdl } = await Promise.resolve().then(() => require("./import-CZxL6J96.js"));
318
+ const { importWsdl } = await Promise.resolve().then(() => require("./import-DUKaMYGO.js"));
319
319
  const wsdlText = opts.xml ?? (opts.url ? await fetchUrl(opts.url) : "");
320
320
  if (!wsdlText) throw new Error("wsdl:import requires either `url` or `xml`");
321
321
  return importWsdl(wsdlText, { name: opts.name, existingMockPorts: opts.existingMockPorts });
@@ -24,14 +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-rV5tPwAd.js");
27
+ const snapshots = require("./chunks/snapshots-NGkGQNZ4.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-DbNHbA8x.js");
34
- require("./chunks/handle-BtRMtQJg.js");
33
+ require("./chunks/request-exec-AQD6cEgT.js");
34
+ require("./chunks/handle-BCnNIZZr.js");
35
35
  require("dayjs");
36
36
  require("vm");
37
37
  require("tv4");
package/out/main/index.js CHANGED
@@ -22,11 +22,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  const electron = require("electron");
25
- const handle = require("./chunks/handle-BtRMtQJg.js");
25
+ const handle = require("./chunks/handle-BCnNIZZr.js");
26
26
  const path = require("path");
27
27
  const fs = require("fs");
28
28
  const promises = require("fs/promises");
29
- const requestExec = require("./chunks/request-exec-DbNHbA8x.js");
29
+ const requestExec = require("./chunks/request-exec-AQD6cEgT.js");
30
30
  const ipcValidate = require("./chunks/ipc-validate-k6KI8adf.js");
31
31
  const uuid = require("uuid");
32
32
  const jsYaml = require("js-yaml");
@@ -36,10 +36,10 @@ const requestCollection = require("./chunks/request-collection-CBuPjBwa.js");
36
36
  const mockServer = require("./chunks/mock-server-DSLR2ulH.js");
37
37
  const http = require("http");
38
38
  const WebSocket = require("ws");
39
- const soapHandler = require("./chunks/soap-handler-CqXVreNa.js");
39
+ const soapHandler = require("./chunks/soap-handler-h0dWIjOK.js");
40
40
  const os = require("os");
41
41
  const crypto = require("crypto");
42
- const snapshots = require("./chunks/snapshots-rV5tPwAd.js");
42
+ const snapshots = require("./chunks/snapshots-NGkGQNZ4.js");
43
43
  const simpleGit = require("simple-git");
44
44
  const recorder = require("./chunks/recorder-0Ij921El.js");
45
45
  require("dayjs");
@@ -91,6 +91,9 @@ const SPECTOR_GITIGNORE = [
91
91
  "results.html",
92
92
  "coverage/",
93
93
  "",
94
+ "# Local session history (opt-in persistence)",
95
+ "history.json",
96
+ "",
94
97
  "# OS / editor",
95
98
  ".DS_Store",
96
99
  "Thumbs.db",
@@ -294,6 +297,20 @@ function registerFileHandlers(ipc) {
294
297
  if (err.code !== "ENOENT") throw err;
295
298
  }
296
299
  });
300
+ handle.handleIpc(ipc, handle.IPC.file.loadHistory, async () => {
301
+ if (!workspaceDir) return [];
302
+ try {
303
+ const raw = await promises.readFile(path.join(workspaceDir, "history.json"), "utf8");
304
+ const parsed = JSON.parse(raw);
305
+ return Array.isArray(parsed) ? parsed : [];
306
+ } catch {
307
+ return [];
308
+ }
309
+ });
310
+ handle.handleIpc(ipc, handle.IPC.file.saveHistory, async (_e, entries) => {
311
+ if (!workspaceDir) return;
312
+ await promises.writeFile(path.join(workspaceDir, "history.json"), JSON.stringify(entries, null, 2), "utf8");
313
+ });
297
314
  handle.handleIpc(ipc, handle.IPC.dialog.pickDir, async () => {
298
315
  const result = await electron.dialog.showOpenDialog({
299
316
  title: "Select Output Directory",
@@ -2,12 +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-DbNHbA8x.js");
5
+ const requestExec = require("./chunks/request-exec-AQD6cEgT.js");
6
6
  const requestCollection = require("./chunks/request-collection-CBuPjBwa.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("./chunks/handle-BtRMtQJg.js");
10
+ require("./chunks/handle-BCnNIZZr.js");
11
11
  require("crypto");
12
12
  require("dayjs");
13
13
  require("vm");
@@ -396,7 +396,7 @@ async function main() {
396
396
  } else if (!envName && workspace.settings?.defaultEnvironment && !env) {
397
397
  console.warn(cliCommon.color(`Warning: default environment "${workspace.settings.defaultEnvironment}" not found. Running without environment.`, cliCommon.C.yellow));
398
398
  }
399
- const version = `v${"0.3.6"}`;
399
+ const version = `v${"0.3.7"}`;
400
400
  console.log("");
401
401
  console.log(cliCommon.color(" API Test Runner" + (version ? ` ${version}` : ""), cliCommon.C.bold, cliCommon.C.white));
402
402
  console.log(cliCommon.color(` Workspace: ${wsPath}`, cliCommon.C.gray));
package/out/main/wsdl.js CHANGED
@@ -4,10 +4,10 @@ const promises = require("fs/promises");
4
4
  const path = require("path");
5
5
  const https = require("https");
6
6
  const http = require("http");
7
- const soapHandler = require("./chunks/soap-handler-CqXVreNa.js");
8
- const _import = require("./chunks/import-CZxL6J96.js");
7
+ const soapHandler = require("./chunks/soap-handler-h0dWIjOK.js");
8
+ const _import = require("./chunks/import-DUKaMYGO.js");
9
9
  const cliCommon = require("./chunks/cli-common-CDQY1erJ.js");
10
- require("./chunks/handle-BtRMtQJg.js");
10
+ require("./chunks/handle-BCnNIZZr.js");
11
11
  require("@xmldom/xmldom");
12
12
  require("uuid");
13
13
  function fetchUrl(url) {
@@ -14,7 +14,9 @@ const IPC = {
14
14
  saveEnvironment: "file:saveEnvironment",
15
15
  deleteWorkspaceFile: "file:deleteWorkspaceFile",
16
16
  saveMock: "file:saveMock",
17
- loadMock: "file:loadMock"
17
+ loadMock: "file:loadMock",
18
+ loadHistory: "file:loadHistory",
19
+ saveHistory: "file:saveHistory"
18
20
  },
19
21
  // ─── Native dialogs ────────────────────────────────────────────────────────
20
22
  dialog: {
@@ -168,6 +170,8 @@ const api = {
168
170
  * environment / mock delete flows so the file is removed from disk, not
169
171
  * just from the workspace manifest. */
170
172
  deleteWorkspaceFile: (relPath) => electron.ipcRenderer.invoke(IPC.file.deleteWorkspaceFile, relPath),
173
+ loadHistory: () => electron.ipcRenderer.invoke(IPC.file.loadHistory),
174
+ saveHistory: (entries) => electron.ipcRenderer.invoke(IPC.file.saveHistory, entries),
171
175
  // ─── HTTP execution ────────────────────────────────────────────────────────
172
176
  sendRequest: (payload) => electron.ipcRenderer.invoke(IPC.request.send, payload),
173
177
  // ─── Secrets (encrypted, master-key-based) ───────────────────────────────