@testsmith/api-spector 0.4.5 → 0.4.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.
@@ -26,7 +26,11 @@ const IPC = {
26
26
  },
27
27
  // ─── HTTP execution ────────────────────────────────────────────────────────
28
28
  request: {
29
- send: "request:send"
29
+ send: "request:send",
30
+ /** Event (main→renderer): a batch of streamed response frames. */
31
+ streamEvent: "request:stream-event",
32
+ /** Renderer→main: abort an in-flight streamed read by streamId. */
33
+ stopStream: "request:stop-stream"
30
34
  },
31
35
  // ─── Secrets ───────────────────────────────────────────────────────────────
32
36
  secret: {
@@ -106,6 +110,8 @@ const IPC = {
106
110
  run: "contract:run",
107
111
  inferSchema: "contract:inferSchema",
108
112
  exportReportHtml: "contract:exportReportHtml",
113
+ /** Compile a design-first contract to a Pact file on disk (save dialog). */
114
+ exportDesignPact: "contract:exportDesignPact",
109
115
  captureSnapshot: "contract:captureSnapshot",
110
116
  listSnapshots: "contract:listSnapshots",
111
117
  loadSnapshot: "contract:loadSnapshot",
@@ -160,6 +166,25 @@ const IPC = {
160
166
  // ─── App ───────────────────────────────────────────────────────────────────
161
167
  app: {
162
168
  checkUpdate: "app:checkUpdate"
169
+ },
170
+ // ─── Cloud (API Spector Cloud integration) ──────────────────────────────────
171
+ cloud: {
172
+ /** Verify the endpoint + token (GET /api/me). */
173
+ test: "cloud:test",
174
+ /** Push a mock server definition (POST /api/mocks). */
175
+ pushMock: "cloud:pushMock",
176
+ /** Look up an existing cloud mock's routes (GET /api/mocks/{slug}). */
177
+ getMock: "cloud:getMock",
178
+ /** Push a request as a monitor, URL resolved (POST /api/monitors). */
179
+ pushMonitor: "cloud:pushMonitor",
180
+ /** Publish a consumer pact built from requests (PUT /api/contracts). */
181
+ pushPact: "cloud:pushPact",
182
+ /** Publish a design-first consumer contract as a pact (PUT /api/contracts). */
183
+ pushDesignContract: "cloud:pushDesignContract",
184
+ /** Publish a provider OpenAPI spec (PUT /api/provider-contracts). */
185
+ pushSpec: "cloud:pushSpec",
186
+ /** Open the cloud deployment matrix in the browser. */
187
+ openMatrix: "cloud:openMatrix"
163
188
  }
164
189
  };
165
190
  const api = {
@@ -220,6 +245,15 @@ const api = {
220
245
  // ─── OAuth 2.0 ────────────────────────────────────────────────────────────
221
246
  oauth2StartFlow: (auth, vars) => electron.ipcRenderer.invoke(IPC.oauth2.startFlow, auth, vars),
222
247
  oauth2RefreshToken: (auth, vars, refreshToken) => electron.ipcRenderer.invoke(IPC.oauth2.refreshToken, auth, vars, refreshToken),
248
+ // ─── Cloud integration ────────────────────────────────────────────────────────
249
+ cloudTest: () => electron.ipcRenderer.invoke(IPC.cloud.test),
250
+ cloudPushMock: (server) => electron.ipcRenderer.invoke(IPC.cloud.pushMock, server),
251
+ cloudGetMock: (name) => electron.ipcRenderer.invoke(IPC.cloud.getMock, name),
252
+ cloudPushMonitor: (input) => electron.ipcRenderer.invoke(IPC.cloud.pushMonitor, input),
253
+ cloudPushPact: (input) => electron.ipcRenderer.invoke(IPC.cloud.pushPact, input),
254
+ cloudPushDesignContract: (input) => electron.ipcRenderer.invoke(IPC.cloud.pushDesignContract, input),
255
+ cloudPushSpec: (input) => electron.ipcRenderer.invoke(IPC.cloud.pushSpec, input),
256
+ cloudOpenMatrix: () => electron.ipcRenderer.invoke(IPC.cloud.openMatrix),
223
257
  // ─── Mock servers ─────────────────────────────────────────────────────────────
224
258
  mockStart: (server) => electron.ipcRenderer.invoke(IPC.mock.start, server),
225
259
  mockStop: (id) => electron.ipcRenderer.invoke(IPC.mock.stop, id),
@@ -248,6 +282,15 @@ const api = {
248
282
  electron.ipcRenderer.removeAllListeners(IPC.ws.message);
249
283
  electron.ipcRenderer.removeAllListeners(IPC.ws.status);
250
284
  },
285
+ // ─── Streamed responses (SSE / NDJSON / chunked) ──────────────────────────
286
+ onRequestStreamEvent: (cb) => {
287
+ electron.ipcRenderer.on(IPC.request.streamEvent, (_e, payload) => cb(payload));
288
+ },
289
+ offRequestStreamEvent: () => {
290
+ electron.ipcRenderer.removeAllListeners(IPC.request.streamEvent);
291
+ },
292
+ /** Abort an in-flight streamed read (the Stop button). */
293
+ stopStream: (streamId) => electron.ipcRenderer.invoke(IPC.request.stopStream, streamId),
251
294
  // ─── SOAP / WSDL ──────────────────────────────────────────────────────────
252
295
  wsdlFetch: (url, extraHeaders) => electron.ipcRenderer.invoke(IPC.wsdl.fetch, url, extraHeaders ?? {}),
253
296
  /** Build a Collection + MockServer from a WSDL. Renderer registers the
@@ -259,6 +302,7 @@ const api = {
259
302
  runContracts: (payload) => electron.ipcRenderer.invoke(IPC.contract.run, payload),
260
303
  inferContractSchema: (jsonBody) => electron.ipcRenderer.invoke(IPC.contract.inferSchema, jsonBody),
261
304
  exportContractReportHtml: (report, meta) => electron.ipcRenderer.invoke(IPC.contract.exportReportHtml, report, meta),
305
+ exportDesignPact: (contract) => electron.ipcRenderer.invoke(IPC.contract.exportDesignPact, contract),
262
306
  captureContractSnapshot: (opts) => electron.ipcRenderer.invoke(IPC.contract.captureSnapshot, opts),
263
307
  listContractSnapshots: (registered = []) => electron.ipcRenderer.invoke(IPC.contract.listSnapshots, registered),
264
308
  loadContractSnapshot: (relPath) => electron.ipcRenderer.invoke(IPC.contract.loadSnapshot, relPath),