@complyforce/api 1.10.8 → 1.11.0-24043

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/cjs/sdk.gen.js CHANGED
@@ -30,6 +30,22 @@ class ComplyforceApi extends HeyApiClient {
30
30
  super(args);
31
31
  ComplyforceApi.__registry.set(this, args === null || args === void 0 ? void 0 : args.key);
32
32
  }
33
+ /**
34
+ * Cancel order
35
+ *
36
+ * Gracefully cancels an in-flight order before it reaches a final status.
37
+ *
38
+ * Authentication accepts **one of**: vendor API key, vendor-dashboard JWT (Bearer), or `x-authentication-super-admin`.
39
+ * A single `orderCancelAuth` guard implements this OR semantics — do not register multiple guards, as the controller requires every guard to succeed.
40
+ * The processor stops pending work, lets in-flight URL scans finish, and emits a final `canceled` status.
41
+ *
42
+ * Returns `204` when the cancel request is accepted, including when the order is already `canceled` (idempotent).
43
+ * Returns `422` when the order has already reached a non-cancelable final status (`completed`, `completedPartially`, or `error`).
44
+ */
45
+ postOrderCancel(options) {
46
+ var _a;
47
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).post(Object.assign(Object.assign({ security: [{ name: 'x-authentication-super-admin', type: 'apiKey' }], url: '/order/cancel' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options.headers) }));
48
+ }
33
49
  /**
34
50
  * Get order
35
51
  *
@@ -44,6 +60,10 @@ class ComplyforceApi extends HeyApiClient {
44
60
  *
45
61
  * Accepting an order for a website scan with one, several, all, or the most relevant subpages.
46
62
  *
63
+ * Authentication accepts **one of**: vendor API key or vendor-dashboard JWT (Bearer).
64
+ * A single `orderCreateAuth` guard implements this OR semantics — do not register multiple guards, as the controller requires every guard to succeed.
65
+ * The vendor API key remains the primary integration path for external integrators.
66
+ *
47
67
  * #### Scan types (with examples)
48
68
  * <details>
49
69
  * <summary>Single page scan</summary>
@@ -75,9 +95,8 @@ class ComplyforceApi extends HeyApiClient {
75
95
  * "orderPreparationUrlsEnrichment"
76
96
  * ],
77
97
  * "scanDomain": "shop.example.com",
78
- * "scanUrlsRequested": [
79
- * "https://shop.example.com/login"
80
- * ],
98
+ * "scanUrlsRequestedCount": 1,
99
+ * "scanUrlsFailedCount": 0,
81
100
  * "scanPriority": 50,
82
101
  * "status": "created",
83
102
  * "createdAt": "2025-01-01T12:00:00.000Z",
@@ -127,10 +146,8 @@ class ComplyforceApi extends HeyApiClient {
127
146
  * "orderPreparationUrlsEnrichment"
128
147
  * ],
129
148
  * "scanDomain": "shop.example.com",
130
- * "scanUrlsRequested": [
131
- * "https://shop.example.com/login",
132
- * "https://shop.example.com/checkout"
133
- * ],
149
+ * "scanUrlsRequestedCount": 2,
150
+ * "scanUrlsFailedCount": 0,
134
151
  * "scanPriority": 50,
135
152
  * "status": "created",
136
153
  * "createdAt": "2025-01-01T12:01:00.000Z",
@@ -178,7 +195,8 @@ class ComplyforceApi extends HeyApiClient {
178
195
  * "orderPreparationUrlsEnrichment"
179
196
  * ],
180
197
  * "scanDomain": "newsroom.example.com",
181
- * "scanUrlsRequested": [],
198
+ * "scanUrlsRequestedCount": 1,
199
+ * "scanUrlsFailedCount": 0,
182
200
  * "scanPriority": 50,
183
201
  * "status": "created",
184
202
  * "createdAt": "2025-01-01T12:02:00.000Z",
@@ -231,7 +249,8 @@ class ComplyforceApi extends HeyApiClient {
231
249
  * "orderPreparationUrlsEnrichment"
232
250
  * ],
233
251
  * "scanDomain": "careers.example.com",
234
- * "scanUrlsRequested": [],
252
+ * "scanUrlsRequestedCount": 1,
253
+ * "scanUrlsFailedCount": 0,
235
254
  * "scanUrlsLimit": 1000,
236
255
  * "scanPriority": 50,
237
256
  * "status": "created",
@@ -252,7 +271,7 @@ class ComplyforceApi extends HeyApiClient {
252
271
  */
253
272
  postOrder(options) {
254
273
  var _a;
255
- return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).post(Object.assign(Object.assign({ security: [{ name: 'x-api-key', type: 'apiKey' }, { name: 'x-api-key', type: 'apiKey' }], url: '/order' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options.headers) }));
274
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).post(Object.assign(Object.assign({ security: [{ name: 'authorization', type: 'apiKey' }], url: '/order' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options.headers) }));
256
275
  }
257
276
  /**
258
277
  * Get order progress
@@ -279,6 +298,20 @@ class ComplyforceApi extends HeyApiClient {
279
298
  var _a;
280
299
  return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).get(Object.assign({ security: [{ name: 'x-api-key', type: 'apiKey' }], url: '/order/report' }, options));
281
300
  }
301
+ /**
302
+ * Get scan artefact URLs for an order
303
+ *
304
+ * Looks up signed S3 download URLs for crawler scan artefacts (before/after consent captures and traces) for a single order.
305
+ *
306
+ * Artefacts are only mirrored when the order was created with `traceEnabled`. Absent or expired mirrors yield an empty `artefacts` map.
307
+ * Signed URLs expire with the S3 object lifetime; callers must treat them as short-lived download links, not permanent storage references.
308
+ *
309
+ * Authentication requires a vendor-dashboard JWT (Bearer). When the caller may not read the order, the response is `200` with an empty `artefacts` map (no existence leak).
310
+ */
311
+ getOrderOrderUuidScanArtefacts(options) {
312
+ var _a;
313
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).get(Object.assign({ security: [{ name: 'authorization', type: 'apiKey' }], url: '/order/:orderUuid/scan-artefacts' }, options));
314
+ }
282
315
  /**
283
316
  * Get orders overview
284
317
  *
package/esm/sdk.gen.js CHANGED
@@ -27,6 +27,22 @@ export class ComplyforceApi extends HeyApiClient {
27
27
  super(args);
28
28
  ComplyforceApi.__registry.set(this, args === null || args === void 0 ? void 0 : args.key);
29
29
  }
30
+ /**
31
+ * Cancel order
32
+ *
33
+ * Gracefully cancels an in-flight order before it reaches a final status.
34
+ *
35
+ * Authentication accepts **one of**: vendor API key, vendor-dashboard JWT (Bearer), or `x-authentication-super-admin`.
36
+ * A single `orderCancelAuth` guard implements this OR semantics — do not register multiple guards, as the controller requires every guard to succeed.
37
+ * The processor stops pending work, lets in-flight URL scans finish, and emits a final `canceled` status.
38
+ *
39
+ * Returns `204` when the cancel request is accepted, including when the order is already `canceled` (idempotent).
40
+ * Returns `422` when the order has already reached a non-cancelable final status (`completed`, `completedPartially`, or `error`).
41
+ */
42
+ postOrderCancel(options) {
43
+ var _a;
44
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).post(Object.assign(Object.assign({ security: [{ name: 'x-authentication-super-admin', type: 'apiKey' }], url: '/order/cancel' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options.headers) }));
45
+ }
30
46
  /**
31
47
  * Get order
32
48
  *
@@ -41,6 +57,10 @@ export class ComplyforceApi extends HeyApiClient {
41
57
  *
42
58
  * Accepting an order for a website scan with one, several, all, or the most relevant subpages.
43
59
  *
60
+ * Authentication accepts **one of**: vendor API key or vendor-dashboard JWT (Bearer).
61
+ * A single `orderCreateAuth` guard implements this OR semantics — do not register multiple guards, as the controller requires every guard to succeed.
62
+ * The vendor API key remains the primary integration path for external integrators.
63
+ *
44
64
  * #### Scan types (with examples)
45
65
  * <details>
46
66
  * <summary>Single page scan</summary>
@@ -72,9 +92,8 @@ export class ComplyforceApi extends HeyApiClient {
72
92
  * "orderPreparationUrlsEnrichment"
73
93
  * ],
74
94
  * "scanDomain": "shop.example.com",
75
- * "scanUrlsRequested": [
76
- * "https://shop.example.com/login"
77
- * ],
95
+ * "scanUrlsRequestedCount": 1,
96
+ * "scanUrlsFailedCount": 0,
78
97
  * "scanPriority": 50,
79
98
  * "status": "created",
80
99
  * "createdAt": "2025-01-01T12:00:00.000Z",
@@ -124,10 +143,8 @@ export class ComplyforceApi extends HeyApiClient {
124
143
  * "orderPreparationUrlsEnrichment"
125
144
  * ],
126
145
  * "scanDomain": "shop.example.com",
127
- * "scanUrlsRequested": [
128
- * "https://shop.example.com/login",
129
- * "https://shop.example.com/checkout"
130
- * ],
146
+ * "scanUrlsRequestedCount": 2,
147
+ * "scanUrlsFailedCount": 0,
131
148
  * "scanPriority": 50,
132
149
  * "status": "created",
133
150
  * "createdAt": "2025-01-01T12:01:00.000Z",
@@ -175,7 +192,8 @@ export class ComplyforceApi extends HeyApiClient {
175
192
  * "orderPreparationUrlsEnrichment"
176
193
  * ],
177
194
  * "scanDomain": "newsroom.example.com",
178
- * "scanUrlsRequested": [],
195
+ * "scanUrlsRequestedCount": 1,
196
+ * "scanUrlsFailedCount": 0,
179
197
  * "scanPriority": 50,
180
198
  * "status": "created",
181
199
  * "createdAt": "2025-01-01T12:02:00.000Z",
@@ -228,7 +246,8 @@ export class ComplyforceApi extends HeyApiClient {
228
246
  * "orderPreparationUrlsEnrichment"
229
247
  * ],
230
248
  * "scanDomain": "careers.example.com",
231
- * "scanUrlsRequested": [],
249
+ * "scanUrlsRequestedCount": 1,
250
+ * "scanUrlsFailedCount": 0,
232
251
  * "scanUrlsLimit": 1000,
233
252
  * "scanPriority": 50,
234
253
  * "status": "created",
@@ -249,7 +268,7 @@ export class ComplyforceApi extends HeyApiClient {
249
268
  */
250
269
  postOrder(options) {
251
270
  var _a;
252
- return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).post(Object.assign(Object.assign({ security: [{ name: 'x-api-key', type: 'apiKey' }, { name: 'x-api-key', type: 'apiKey' }], url: '/order' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options.headers) }));
271
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).post(Object.assign(Object.assign({ security: [{ name: 'authorization', type: 'apiKey' }], url: '/order' }, options), { headers: Object.assign({ 'Content-Type': 'application/json' }, options.headers) }));
253
272
  }
254
273
  /**
255
274
  * Get order progress
@@ -276,6 +295,20 @@ export class ComplyforceApi extends HeyApiClient {
276
295
  var _a;
277
296
  return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).get(Object.assign({ security: [{ name: 'x-api-key', type: 'apiKey' }], url: '/order/report' }, options));
278
297
  }
298
+ /**
299
+ * Get scan artefact URLs for an order
300
+ *
301
+ * Looks up signed S3 download URLs for crawler scan artefacts (before/after consent captures and traces) for a single order.
302
+ *
303
+ * Artefacts are only mirrored when the order was created with `traceEnabled`. Absent or expired mirrors yield an empty `artefacts` map.
304
+ * Signed URLs expire with the S3 object lifetime; callers must treat them as short-lived download links, not permanent storage references.
305
+ *
306
+ * Authentication requires a vendor-dashboard JWT (Bearer). When the caller may not read the order, the response is `200` with an empty `artefacts` map (no existence leak).
307
+ */
308
+ getOrderOrderUuidScanArtefacts(options) {
309
+ var _a;
310
+ return ((_a = options.client) !== null && _a !== void 0 ? _a : this.client).get(Object.assign({ security: [{ name: 'authorization', type: 'apiKey' }], url: '/order/:orderUuid/scan-artefacts' }, options));
311
+ }
279
312
  /**
280
313
  * Get orders overview
281
314
  *
package/package.json CHANGED
@@ -1,26 +1,30 @@
1
1
  {
2
- "name": "@complyforce/api",
3
- "version": "1.10.8",
4
- "description": "TypeScript client for the Complyforce API",
5
- "digestMd5": "dc7435b7fb716f5d75f903fa1fa814e0",
6
- "type": "module",
7
- "main": "cjs/index.cjs.js",
8
- "module": "esm/index.js",
9
- "types": "types/index.d.ts",
10
- "exports": {
11
- "types": "./types/index.d.ts",
12
- "default": {
13
- "import": "./esm/index.js",
14
- "require": "./cjs/index.js"
15
- }
16
- },
17
- "author": "devowl.io GmbH <support@devowl.io> (https://devowl.io)",
18
- "license": "MIT",
19
- "homepage": "https://complyforce.com",
20
- "devDependencies": {
21
- "@types/node": "^22.10.2",
22
- "typescript": "^5.7.2",
23
- "undici-types": "^7.2.0"
24
- },
25
- "files": ["cjs", "esm", "types"]
2
+ "name": "@complyforce/api",
3
+ "version": "1.11.0-24043",
4
+ "description": "TypeScript client for the Complyforce API",
5
+ "digestMd5": "d76450af7f92f83236477855a34e2540",
6
+ "type": "module",
7
+ "main": "cjs/index.cjs.js",
8
+ "module": "esm/index.js",
9
+ "types": "types/index.d.ts",
10
+ "exports": {
11
+ "types": "./types/index.d.ts",
12
+ "default": {
13
+ "import": "./esm/index.js",
14
+ "require": "./cjs/index.js"
15
+ }
16
+ },
17
+ "author": "devowl.io GmbH <support@devowl.io> (https://devowl.io)",
18
+ "license": "MIT",
19
+ "homepage": "https://complyforce.com",
20
+ "devDependencies": {
21
+ "@types/node": "^22.10.2",
22
+ "typescript": "^5.7.2",
23
+ "undici-types": "^7.2.0"
24
+ },
25
+ "files": [
26
+ "cjs",
27
+ "esm",
28
+ "types"
29
+ ]
26
30
  }
package/types/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { ComplyforceApi, type Options } from './sdk.gen.js';
2
- export type { ClientOptions, CursorPaginationResponseMetadata, DeleteOrderReportData, DeleteOrderReportError, DeleteOrderReportErrors, DeleteOrderReportResponse, DeleteOrderReportResponses, GetOrderData, GetOrderError, GetOrderErrors, GetOrderProgressData, GetOrderProgressError, GetOrderProgressErrors, GetOrderProgressResponse, GetOrderProgressResponses, GetOrderReportData, GetOrderReportError, GetOrderReportErrors, GetOrderReportResponse, GetOrderReportResponses, GetOrderResponse, GetOrderResponses, GetOrdersData, GetOrdersError, GetOrdersErrors, GetOrdersResponse, GetOrdersResponses, GetVendorApiKeyValidateData, GetVendorApiKeyValidateError, GetVendorApiKeyValidateErrors, GetVendorApiKeyValidateResponse, GetVendorApiKeyValidateResponses, OrderCreate, OrderGetResponse, OrderListItem, OrderPosted, OrderProgressResponse, OrderReportDeleteRequest, OrderReportGetResponse, PostOrderData, PostOrderError, PostOrderErrors, PostOrderResponse, PostOrderResponses } from './types.gen.js';
2
+ export type { ClientOptions, CursorPaginationResponseMetadata, DeleteOrderReportData, DeleteOrderReportError, DeleteOrderReportErrors, DeleteOrderReportResponse, DeleteOrderReportResponses, GetOrderData, GetOrderError, GetOrderErrors, GetOrderOrderUuidScanArtefactsData, GetOrderOrderUuidScanArtefactsError, GetOrderOrderUuidScanArtefactsErrors, GetOrderOrderUuidScanArtefactsResponse, GetOrderOrderUuidScanArtefactsResponses, GetOrderProgressData, GetOrderProgressError, GetOrderProgressErrors, GetOrderProgressResponse, GetOrderProgressResponses, GetOrderReportData, GetOrderReportError, GetOrderReportErrors, GetOrderReportResponse, GetOrderReportResponses, GetOrderResponse, GetOrderResponses, GetOrdersData, GetOrdersError, GetOrdersErrors, GetOrdersResponse, GetOrdersResponses, GetVendorApiKeyValidateData, GetVendorApiKeyValidateError, GetVendorApiKeyValidateErrors, GetVendorApiKeyValidateResponse, GetVendorApiKeyValidateResponses, OrderCancelRequest, OrderCreate, OrderGetResponse, OrderListItem, OrderPosted, OrderProgressResponse, OrderReportDeleteRequest, OrderReportGetResponse, OrderScanArtefactsGot, PostOrderCancelData, PostOrderCancelError, PostOrderCancelErrors, PostOrderCancelResponse, PostOrderCancelResponses, PostOrderData, PostOrderError, PostOrderErrors, PostOrderResponse, PostOrderResponses, ScanUrlResult, ScanUrlResults } from './types.gen.js';
3
3
  export { createClient, createConfig } from "./client/index.js";
4
4
  export { client } from "./client.gen.js";
@@ -1,5 +1,5 @@
1
1
  import type { Client, Options as Options2, TDataShape } from './client/index.js';
2
- import type { DeleteOrderReportData, DeleteOrderReportErrors, DeleteOrderReportResponses, GetOrderData, GetOrderErrors, GetOrderProgressData, GetOrderProgressErrors, GetOrderProgressResponses, GetOrderReportData, GetOrderReportErrors, GetOrderReportResponses, GetOrderResponses, GetOrdersData, GetOrdersErrors, GetOrdersResponses, GetVendorApiKeyValidateData, GetVendorApiKeyValidateErrors, GetVendorApiKeyValidateResponses, PostOrderData, PostOrderErrors, PostOrderResponses } from './types.gen.js';
2
+ import type { DeleteOrderReportData, DeleteOrderReportErrors, DeleteOrderReportResponses, GetOrderData, GetOrderErrors, GetOrderOrderUuidScanArtefactsData, GetOrderOrderUuidScanArtefactsErrors, GetOrderOrderUuidScanArtefactsResponses, GetOrderProgressData, GetOrderProgressErrors, GetOrderProgressResponses, GetOrderReportData, GetOrderReportErrors, GetOrderReportResponses, GetOrderResponses, GetOrdersData, GetOrdersErrors, GetOrdersResponses, GetVendorApiKeyValidateData, GetVendorApiKeyValidateErrors, GetVendorApiKeyValidateResponses, PostOrderCancelData, PostOrderCancelErrors, PostOrderCancelResponses, PostOrderData, PostOrderErrors, PostOrderResponses } from './types.gen.js';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -31,6 +31,19 @@ export declare class ComplyforceApi extends HeyApiClient {
31
31
  client?: Client;
32
32
  key?: string;
33
33
  });
34
+ /**
35
+ * Cancel order
36
+ *
37
+ * Gracefully cancels an in-flight order before it reaches a final status.
38
+ *
39
+ * Authentication accepts **one of**: vendor API key, vendor-dashboard JWT (Bearer), or `x-authentication-super-admin`.
40
+ * A single `orderCancelAuth` guard implements this OR semantics — do not register multiple guards, as the controller requires every guard to succeed.
41
+ * The processor stops pending work, lets in-flight URL scans finish, and emits a final `canceled` status.
42
+ *
43
+ * Returns `204` when the cancel request is accepted, including when the order is already `canceled` (idempotent).
44
+ * Returns `422` when the order has already reached a non-cancelable final status (`completed`, `completedPartially`, or `error`).
45
+ */
46
+ postOrderCancel<ThrowOnError extends boolean = false>(options: Options<PostOrderCancelData, ThrowOnError>): import("./client/types.gen.js").RequestResult<PostOrderCancelResponses, PostOrderCancelErrors, ThrowOnError, "fields">;
34
47
  /**
35
48
  * Get order
36
49
  *
@@ -42,6 +55,10 @@ export declare class ComplyforceApi extends HeyApiClient {
42
55
  *
43
56
  * Accepting an order for a website scan with one, several, all, or the most relevant subpages.
44
57
  *
58
+ * Authentication accepts **one of**: vendor API key or vendor-dashboard JWT (Bearer).
59
+ * A single `orderCreateAuth` guard implements this OR semantics — do not register multiple guards, as the controller requires every guard to succeed.
60
+ * The vendor API key remains the primary integration path for external integrators.
61
+ *
45
62
  * #### Scan types (with examples)
46
63
  * <details>
47
64
  * <summary>Single page scan</summary>
@@ -73,9 +90,8 @@ export declare class ComplyforceApi extends HeyApiClient {
73
90
  * "orderPreparationUrlsEnrichment"
74
91
  * ],
75
92
  * "scanDomain": "shop.example.com",
76
- * "scanUrlsRequested": [
77
- * "https://shop.example.com/login"
78
- * ],
93
+ * "scanUrlsRequestedCount": 1,
94
+ * "scanUrlsFailedCount": 0,
79
95
  * "scanPriority": 50,
80
96
  * "status": "created",
81
97
  * "createdAt": "2025-01-01T12:00:00.000Z",
@@ -125,10 +141,8 @@ export declare class ComplyforceApi extends HeyApiClient {
125
141
  * "orderPreparationUrlsEnrichment"
126
142
  * ],
127
143
  * "scanDomain": "shop.example.com",
128
- * "scanUrlsRequested": [
129
- * "https://shop.example.com/login",
130
- * "https://shop.example.com/checkout"
131
- * ],
144
+ * "scanUrlsRequestedCount": 2,
145
+ * "scanUrlsFailedCount": 0,
132
146
  * "scanPriority": 50,
133
147
  * "status": "created",
134
148
  * "createdAt": "2025-01-01T12:01:00.000Z",
@@ -176,7 +190,8 @@ export declare class ComplyforceApi extends HeyApiClient {
176
190
  * "orderPreparationUrlsEnrichment"
177
191
  * ],
178
192
  * "scanDomain": "newsroom.example.com",
179
- * "scanUrlsRequested": [],
193
+ * "scanUrlsRequestedCount": 1,
194
+ * "scanUrlsFailedCount": 0,
180
195
  * "scanPriority": 50,
181
196
  * "status": "created",
182
197
  * "createdAt": "2025-01-01T12:02:00.000Z",
@@ -229,7 +244,8 @@ export declare class ComplyforceApi extends HeyApiClient {
229
244
  * "orderPreparationUrlsEnrichment"
230
245
  * ],
231
246
  * "scanDomain": "careers.example.com",
232
- * "scanUrlsRequested": [],
247
+ * "scanUrlsRequestedCount": 1,
248
+ * "scanUrlsFailedCount": 0,
233
249
  * "scanUrlsLimit": 1000,
234
250
  * "scanPriority": 50,
235
251
  * "status": "created",
@@ -265,6 +281,17 @@ export declare class ComplyforceApi extends HeyApiClient {
265
281
  * Retrieve full report data and report link for completed orders.
266
282
  */
267
283
  getOrderReport<ThrowOnError extends boolean = false>(options: Options<GetOrderReportData, ThrowOnError>): import("./client/types.gen.js").RequestResult<GetOrderReportResponses, GetOrderReportErrors, ThrowOnError, "fields">;
284
+ /**
285
+ * Get scan artefact URLs for an order
286
+ *
287
+ * Looks up signed S3 download URLs for crawler scan artefacts (before/after consent captures and traces) for a single order.
288
+ *
289
+ * Artefacts are only mirrored when the order was created with `traceEnabled`. Absent or expired mirrors yield an empty `artefacts` map.
290
+ * Signed URLs expire with the S3 object lifetime; callers must treat them as short-lived download links, not permanent storage references.
291
+ *
292
+ * Authentication requires a vendor-dashboard JWT (Bearer). When the caller may not read the order, the response is `200` with an empty `artefacts` map (no existence leak).
293
+ */
294
+ getOrderOrderUuidScanArtefacts<ThrowOnError extends boolean = false>(options: Options<GetOrderOrderUuidScanArtefactsData, ThrowOnError>): import("./client/types.gen.js").RequestResult<GetOrderOrderUuidScanArtefactsResponses, GetOrderOrderUuidScanArtefactsErrors, ThrowOnError, "fields">;
268
295
  /**
269
296
  * Get orders overview
270
297
  *
@@ -1,6 +1,18 @@
1
1
  export type ClientOptions = {
2
2
  baseUrl: 'https://api.complyforce.com/v1' | (string & {});
3
3
  };
4
+ /**
5
+ * Cancel order request with order UUID and optional cancel reason.
6
+ */
7
+ export type OrderCancelRequest = {
8
+ order: {
9
+ uuid: string;
10
+ };
11
+ /**
12
+ * Optional reason for cancellation (vendor dashboard may require a selection).
13
+ */
14
+ cancelReason?: 'wrongTarget' | 'duplicateOrder' | 'noLongerNeeded' | 'takingTooLong' | 'other';
15
+ };
4
16
  /**
5
17
  * Get order entity
6
18
  */
@@ -10,19 +22,17 @@ export type OrderGetResponse = {
10
22
  scanType: 'single' | 'multiple' | 'mostRelevant' | 'all';
11
23
  scanFeaturesRequested: Array<'orderPreparationUrlsEnrichment' | 'browseAgentVisionAi' | 'informationObligationAgentLlmAi' | 'consentComplianceAgent' | 'archivingAgent'>;
12
24
  scanDomain: string;
13
- /**
14
- * Array of URLs to scan. Duplicate URLs are automatically removed when multiple URLs are provided.
15
- */
16
- scanUrlsRequested: Array<string>;
25
+ scanUrlsRequestedCount: number;
26
+ scanUrlsProcessedCount?: number | null;
27
+ scanUrlsFailedCount?: number;
17
28
  /**
18
29
  * Maximum number of URLs/pages to scan for all-pages scans (default: 500, max: 10000).
19
30
  */
20
31
  scanUrlsLimit?: number;
21
32
  scanPriority: number;
22
33
  scanFeaturesExecuted?: Array<'orderPreparationUrlsEnrichment' | 'browseAgentVisionAi' | 'informationObligationAgentLlmAi' | 'consentComplianceAgent' | 'archivingAgent'>;
23
- scanUrlsExecuted?: Array<string>;
24
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
25
- reportAvailability: 'pending' | 'available' | 'deleted';
34
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
35
+ reportAvailability: 'pending' | 'available' | 'canceled' | 'deleted';
26
36
  reportDeletionReason?: 'expired' | 'websiteOperatorRequest' | 'vendorRequest' | 'unknown';
27
37
  reportAvailableUntil?: string;
28
38
  createdAt?: string;
@@ -57,7 +67,7 @@ export type OrderGetResponse = {
57
67
  statusUpdates: Array<{
58
68
  id: string;
59
69
  uuid: string;
60
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
70
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
61
71
  errorType?: 'domainNotReachable' | 'invalidUrl' | 'domainBlacklisted' | 'scanTypeNotAllowed' | 'channelInactive' | 'brandInactive' | 'tooManyUrls' | 'mixedDomains' | 'crawlingTimeout' | 'processingError' | 'reportGenerationError' | 'webhookDeliveryError';
62
72
  updatedAt?: string;
63
73
  createdAt?: string;
@@ -77,21 +87,20 @@ export type OrderPosted = {
77
87
  scanType: 'single' | 'multiple' | 'mostRelevant' | 'all';
78
88
  scanFeaturesRequested: Array<'orderPreparationUrlsEnrichment' | 'browseAgentVisionAi' | 'informationObligationAgentLlmAi' | 'consentComplianceAgent' | 'archivingAgent'>;
79
89
  scanDomain: string;
80
- /**
81
- * Array of URLs to scan. Duplicate URLs are automatically removed when multiple URLs are provided.
82
- */
83
- scanUrlsRequested: Array<string>;
90
+ scanUrlsRequestedCount: number;
91
+ scanUrlsProcessedCount?: number | null;
92
+ scanUrlsFailedCount?: number;
84
93
  /**
85
94
  * Maximum number of URLs/pages to scan for all-pages scans (default: 500, max: 10000).
86
95
  */
87
96
  scanUrlsLimit?: number;
88
97
  scanPriority: number;
89
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
98
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
90
99
  createdAt?: string;
91
100
  statusUpdates: Array<{
92
101
  id: string;
93
102
  uuid: string;
94
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
103
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
95
104
  errorType?: 'domainNotReachable' | 'invalidUrl' | 'domainBlacklisted' | 'scanTypeNotAllowed' | 'channelInactive' | 'brandInactive' | 'tooManyUrls' | 'mixedDomains' | 'crawlingTimeout' | 'processingError' | 'reportGenerationError' | 'webhookDeliveryError';
96
105
  updatedAt?: string;
97
106
  createdAt?: string;
@@ -110,6 +119,10 @@ export type OrderCreate = {
110
119
  * Maximum number of URLs/pages to scan for all-pages scans (default: 500, max: 10000).
111
120
  */
112
121
  scanUrlsLimit?: number;
122
+ /**
123
+ * When set by an admin user, overrides the API config default for per-order crawler tracing and scan-artefact mirror writes.
124
+ */
125
+ traceEnabled?: boolean;
113
126
  channel: {
114
127
  uuid: string;
115
128
  };
@@ -119,9 +132,8 @@ export type OrderCreate = {
119
132
  */
120
133
  export type OrderProgressResponse = {
121
134
  orderUuid: string;
122
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
135
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
123
136
  sitemapDiscoveredUrls?: number;
124
- latestProcessedUrl?: string;
125
137
  processedUrls: number;
126
138
  totalUrls: number;
127
139
  error?: {
@@ -144,7 +156,9 @@ export type OrderReportGetResponse = {
144
156
  uuid: string;
145
157
  scanType: 'single' | 'multiple' | 'mostRelevant' | 'all';
146
158
  scanDomain: string;
147
- scanUrlsExecuted?: Array<string>;
159
+ scanUrlsRequestedCount: number;
160
+ scanUrlsProcessedCount?: number | null;
161
+ scanUrlsFailedCount?: number;
148
162
  createdAt?: string;
149
163
  vendorBrand: {
150
164
  uuid: string;
@@ -189,12 +203,57 @@ export type OrderReportGetResponse = {
189
203
  riskScore: number;
190
204
  };
191
205
  latestStatusUpdate: {
192
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
206
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
193
207
  errorType?: 'domainNotReachable' | 'invalidUrl' | 'domainBlacklisted' | 'scanTypeNotAllowed' | 'channelInactive' | 'brandInactive' | 'tooManyUrls' | 'mixedDomains' | 'crawlingTimeout' | 'processingError' | 'reportGenerationError' | 'webhookDeliveryError';
194
208
  updatedAt?: string;
195
209
  createdAt?: string;
196
210
  };
197
211
  };
212
+ /**
213
+ * Scan artefact lookup result for one order
214
+ */
215
+ export type OrderScanArtefactsGot = {
216
+ artefacts: ScanUrlResults;
217
+ };
218
+ /**
219
+ * Map of scanned page URL to artefact fields. Empty when no artefacts are available or the caller may not read the order.
220
+ */
221
+ export type ScanUrlResults = {
222
+ [key: string]: ScanUrlResult;
223
+ };
224
+ /**
225
+ * Scan artefact fields for one scanned page URL.
226
+ */
227
+ export type ScanUrlResult = {
228
+ /**
229
+ * Signed S3 URL for the before-consent (accept-all) capture.
230
+ */
231
+ beforeConsentAcceptAll?: string;
232
+ /**
233
+ * Signed S3 URL for the after-consent (accept-all) capture.
234
+ */
235
+ afterConsentAcceptAll?: string;
236
+ /**
237
+ * Signed S3 URL for the crawl trace artefact.
238
+ */
239
+ trace?: string;
240
+ /**
241
+ * Error name when the URL scan failed.
242
+ */
243
+ errorName?: string;
244
+ /**
245
+ * Error message when the URL scan failed.
246
+ */
247
+ errorMessage?: string;
248
+ /**
249
+ * Error stack when the URL scan failed.
250
+ */
251
+ errorStack?: string;
252
+ /**
253
+ * ISO timestamp when this URL was processed.
254
+ */
255
+ processedAt?: string;
256
+ };
198
257
  /**
199
258
  * Order summary for list view
200
259
  */
@@ -211,18 +270,19 @@ export type OrderListItem = {
211
270
  dataProtectionViolationsFound: boolean;
212
271
  riskScore: number;
213
272
  };
214
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
273
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
215
274
  errorType?: 'domainNotReachable' | 'invalidUrl' | 'domainBlacklisted' | 'scanTypeNotAllowed' | 'channelInactive' | 'brandInactive' | 'tooManyUrls' | 'mixedDomains' | 'crawlingTimeout' | 'processingError' | 'reportGenerationError' | 'webhookDeliveryError';
216
275
  createdAt: string;
217
276
  lastStatusUpdate?: {
218
277
  id: string;
219
278
  uuid: string;
220
- status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
279
+ status: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
221
280
  errorType?: 'domainNotReachable' | 'invalidUrl' | 'domainBlacklisted' | 'scanTypeNotAllowed' | 'channelInactive' | 'brandInactive' | 'tooManyUrls' | 'mixedDomains' | 'crawlingTimeout' | 'processingError' | 'reportGenerationError' | 'webhookDeliveryError';
281
+ log?: string;
222
282
  updatedAt?: string;
223
283
  createdAt?: string;
224
284
  };
225
- reportAvailability: 'pending' | 'available' | 'deleted';
285
+ reportAvailability: 'pending' | 'available' | 'canceled' | 'deleted';
226
286
  reportAvailableUntil?: string;
227
287
  vendorBrand: {
228
288
  id: string;
@@ -234,6 +294,17 @@ export type OrderListItem = {
234
294
  uuid: string;
235
295
  name: string;
236
296
  };
297
+ createdByUser?: {
298
+ id: string;
299
+ email: string;
300
+ firstName: string;
301
+ lastName: string;
302
+ };
303
+ vendorApiKey?: {
304
+ id: string;
305
+ keyLastDigits: string;
306
+ description?: string;
307
+ };
237
308
  };
238
309
  /**
239
310
  * Cursor-based pagination metadata for list responses.
@@ -252,6 +323,51 @@ export type CursorPaginationResponseMetadata = {
252
323
  */
253
324
  dataCount: number;
254
325
  };
326
+ export type PostOrderCancelData = {
327
+ body: OrderCancelRequest;
328
+ path?: never;
329
+ query?: never;
330
+ url: '/order/cancel';
331
+ };
332
+ export type PostOrderCancelErrors = {
333
+ /**
334
+ * No valid authentication credentials provided
335
+ */
336
+ 401: null;
337
+ 422: Array<{
338
+ code: string;
339
+ message: string;
340
+ description?: string;
341
+ entityName?: string;
342
+ fieldName?: string;
343
+ index?: number;
344
+ data?: {
345
+ [key: string]: unknown;
346
+ };
347
+ } | {
348
+ code: 'orderNotCancelable';
349
+ message: string;
350
+ }>;
351
+ default: Array<{
352
+ code: string;
353
+ message: string;
354
+ description?: string;
355
+ entityName?: string;
356
+ fieldName?: string;
357
+ index?: number;
358
+ data?: {
359
+ [key: string]: unknown;
360
+ };
361
+ }>;
362
+ };
363
+ export type PostOrderCancelError = PostOrderCancelErrors[keyof PostOrderCancelErrors];
364
+ export type PostOrderCancelResponses = {
365
+ /**
366
+ * Cancel request accepted or order already canceled
367
+ */
368
+ 204: null;
369
+ };
370
+ export type PostOrderCancelResponse = PostOrderCancelResponses[keyof PostOrderCancelResponses];
255
371
  export type GetOrderData = {
256
372
  body?: never;
257
373
  path?: never;
@@ -295,7 +411,7 @@ export type PostOrderData = {
295
411
  };
296
412
  export type PostOrderErrors = {
297
413
  /**
298
- * API key is invalid
414
+ * No valid authentication credentials provided
299
415
  */
300
416
  401: Array<{
301
417
  code: string;
@@ -311,23 +427,6 @@ export type PostOrderErrors = {
311
427
  code: 'InvalidApiKey';
312
428
  message: string;
313
429
  }>;
314
- /**
315
- * Vendor has no signed main contract
316
- */
317
- 403: Array<{
318
- code: string;
319
- message: string;
320
- description?: string;
321
- entityName?: string;
322
- fieldName?: string;
323
- index?: number;
324
- data?: {
325
- [key: string]: unknown;
326
- };
327
- } | {
328
- code: 'VendorMainContractNotSigned';
329
- message: string;
330
- }>;
331
430
  default: Array<{
332
431
  code: string;
333
432
  message: string;
@@ -465,6 +564,46 @@ export type GetOrderReportResponses = {
465
564
  };
466
565
  };
467
566
  export type GetOrderReportResponse = GetOrderReportResponses[keyof GetOrderReportResponses];
567
+ export type GetOrderOrderUuidScanArtefactsData = {
568
+ body?: never;
569
+ path?: never;
570
+ query: {
571
+ /**
572
+ * Order UUID to look up.
573
+ */
574
+ orderUuid: string;
575
+ };
576
+ url: '/order/:orderUuid/scan-artefacts';
577
+ };
578
+ export type GetOrderOrderUuidScanArtefactsErrors = {
579
+ /**
580
+ * JWT is invalid
581
+ */
582
+ 401: null;
583
+ /**
584
+ * JWT valid, but insufficient permissions
585
+ */
586
+ 403: null;
587
+ default: Array<{
588
+ code: string;
589
+ message: string;
590
+ description?: string;
591
+ entityName?: string;
592
+ fieldName?: string;
593
+ index?: number;
594
+ data?: {
595
+ [key: string]: unknown;
596
+ };
597
+ }>;
598
+ };
599
+ export type GetOrderOrderUuidScanArtefactsError = GetOrderOrderUuidScanArtefactsErrors[keyof GetOrderOrderUuidScanArtefactsErrors];
600
+ export type GetOrderOrderUuidScanArtefactsResponses = {
601
+ /**
602
+ * Signed scan artefact URLs for the requested order
603
+ */
604
+ 200: OrderScanArtefactsGot;
605
+ };
606
+ export type GetOrderOrderUuidScanArtefactsResponse = GetOrderOrderUuidScanArtefactsResponses[keyof GetOrderOrderUuidScanArtefactsResponses];
468
607
  export type GetOrdersData = {
469
608
  body?: never;
470
609
  path?: never;
@@ -496,7 +635,7 @@ export type GetOrdersData = {
496
635
  /**
497
636
  * Filter by order status.
498
637
  */
499
- status?: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'error';
638
+ status?: 'created' | 'preparing' | 'prepared' | 'queued' | 'crawling' | 'crawled' | 'processing' | 'processed' | 'reportGenerating' | 'reportGenerated' | 'reportDeliveryToWebhookQueued' | 'completed' | 'completedPartially' | 'canceled' | 'error';
500
639
  /**
501
640
  * Filter by vendor brand UUID.
502
641
  */