flexorch-sdk 0.3.1 → 0.3.3

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.
@@ -16,6 +16,9 @@ var Dataset = class _Dataset {
16
16
  slug;
17
17
  status;
18
18
  rowCount;
19
+ piiMasked;
20
+ piiFindingsCount;
21
+ piiTypeSummary;
19
22
  createdAt;
20
23
  availableFormats;
21
24
  _transport;
@@ -25,6 +28,9 @@ var Dataset = class _Dataset {
25
28
  this.slug = data.slug;
26
29
  this.status = data.status;
27
30
  this.rowCount = data.rowCount;
31
+ this.piiMasked = data.piiMasked;
32
+ this.piiFindingsCount = data.piiFindingsCount;
33
+ this.piiTypeSummary = data.piiTypeSummary;
28
34
  this.createdAt = data.createdAt;
29
35
  this.availableFormats = data.availableFormats;
30
36
  this._transport = data._transport;
@@ -32,12 +38,19 @@ var Dataset = class _Dataset {
32
38
  static fromDict(data, transport) {
33
39
  const fmt = data["format_summary"] ?? {};
34
40
  const files = fmt["files"] ?? {};
41
+ const privacy = data["privacy"];
42
+ const piiMasked = privacy ? Boolean(privacy["privacy_applied"] ?? false) : Boolean(data["privacy_applied"] ?? false);
43
+ const piiFindingsCount = privacy ? Number(privacy["pii_findings_count"] ?? 0) : Number(data["pii_findings_count"] ?? 0);
44
+ const piiTypeSummary = privacy ? privacy["pii_type_summary"] ?? {} : {};
35
45
  return new _Dataset({
36
46
  id: String(data["id"] ?? ""),
37
47
  name: String(data["name"] ?? ""),
38
48
  slug: String(data["slug"] ?? ""),
39
49
  status: String(data["status"] ?? ""),
40
50
  rowCount: Number(data["row_count"] ?? 0),
51
+ piiMasked,
52
+ piiFindingsCount,
53
+ piiTypeSummary,
41
54
  createdAt: String(data["created_at"] ?? ""),
42
55
  availableFormats: Object.keys(files),
43
56
  _transport: transport
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Dataset
3
- } from "./chunk-4KCMMRD7.js";
3
+ } from "./chunk-U2CE5GVG.js";
4
4
  export {
5
5
  Dataset
6
6
  };
package/dist/index.cjs CHANGED
@@ -56,6 +56,9 @@ var init_dataset = __esm({
56
56
  slug;
57
57
  status;
58
58
  rowCount;
59
+ piiMasked;
60
+ piiFindingsCount;
61
+ piiTypeSummary;
59
62
  createdAt;
60
63
  availableFormats;
61
64
  _transport;
@@ -65,6 +68,9 @@ var init_dataset = __esm({
65
68
  this.slug = data.slug;
66
69
  this.status = data.status;
67
70
  this.rowCount = data.rowCount;
71
+ this.piiMasked = data.piiMasked;
72
+ this.piiFindingsCount = data.piiFindingsCount;
73
+ this.piiTypeSummary = data.piiTypeSummary;
68
74
  this.createdAt = data.createdAt;
69
75
  this.availableFormats = data.availableFormats;
70
76
  this._transport = data._transport;
@@ -72,12 +78,19 @@ var init_dataset = __esm({
72
78
  static fromDict(data, transport) {
73
79
  const fmt = data["format_summary"] ?? {};
74
80
  const files = fmt["files"] ?? {};
81
+ const privacy = data["privacy"];
82
+ const piiMasked = privacy ? Boolean(privacy["privacy_applied"] ?? false) : Boolean(data["privacy_applied"] ?? false);
83
+ const piiFindingsCount = privacy ? Number(privacy["pii_findings_count"] ?? 0) : Number(data["pii_findings_count"] ?? 0);
84
+ const piiTypeSummary = privacy ? privacy["pii_type_summary"] ?? {} : {};
75
85
  return new _Dataset({
76
86
  id: String(data["id"] ?? ""),
77
87
  name: String(data["name"] ?? ""),
78
88
  slug: String(data["slug"] ?? ""),
79
89
  status: String(data["status"] ?? ""),
80
90
  rowCount: Number(data["row_count"] ?? 0),
91
+ piiMasked,
92
+ piiFindingsCount,
93
+ piiTypeSummary,
81
94
  createdAt: String(data["created_at"] ?? ""),
82
95
  availableFormats: Object.keys(files),
83
96
  _transport: transport
@@ -312,7 +325,7 @@ var Transport = class {
312
325
  this.fetchFn = fetchFn ?? globalThis.fetch.bind(globalThis);
313
326
  this.defaultHeaders = {
314
327
  "X-API-KEY": apiKey,
315
- "User-Agent": "flexorch-sdk-js/0.3.1"
328
+ "User-Agent": "flexorch-sdk-js/0.3.3"
316
329
  };
317
330
  }
318
331
  url(path, params) {
@@ -418,6 +431,9 @@ var Job = class _Job {
418
431
  */
419
432
  degraded;
420
433
  failureReason;
434
+ piiMasked;
435
+ piiFindingsCount;
436
+ piiTypeSummary;
421
437
  _transport;
422
438
  constructor(data) {
423
439
  this.id = data.id;
@@ -430,12 +446,16 @@ var Job = class _Job {
430
446
  this.datasetId = data.datasetId;
431
447
  this.degraded = data.degraded;
432
448
  this.failureReason = data.failureReason;
449
+ this.piiMasked = data.piiMasked;
450
+ this.piiFindingsCount = data.piiFindingsCount;
451
+ this.piiTypeSummary = data.piiTypeSummary;
433
452
  this._transport = data._transport;
434
453
  }
435
454
  static fromDict(data, transport) {
436
455
  const executionSummary = data["execution_summary"];
437
456
  const processingSummary = data["processing_summary"];
438
457
  const datasetSummary = data["dataset_summary"];
458
+ const privacy = executionSummary?.["privacy"];
439
459
  let quality = data["quality"];
440
460
  if (!quality && processingSummary) {
441
461
  quality = processingSummary["quality"];
@@ -458,6 +478,13 @@ var Job = class _Job {
458
478
  datasetId: datasetSummary?.["dataset_id"] ?? null,
459
479
  degraded: Boolean(executionSummary?.["degraded"] ?? false),
460
480
  failureReason: data["failure_reason"] ?? null,
481
+ // execution_summary.privacy — computed fresh on every GET /jobs/{id}
482
+ // read, not frozen at job-completion time, so this works even for
483
+ // jobs older than this field. Defaults for jobs with no execution
484
+ // (e.g. dataset_build) or against an older API version.
485
+ piiMasked: Boolean(privacy?.["privacy_applied"] ?? false),
486
+ piiFindingsCount: Number(privacy?.["pii_findings_count"] ?? 0),
487
+ piiTypeSummary: privacy?.["pii_type_summary"] ?? {},
461
488
  _transport: transport
462
489
  });
463
490
  }
@@ -821,14 +848,25 @@ var UsageResource = class {
821
848
  };
822
849
 
823
850
  // src/resources/webhooks.ts
824
- var VALID_EVENTS = /* @__PURE__ */ new Set(["dataset.ready", "job.completed", "job.failed"]);
851
+ var VALID_EVENTS = /* @__PURE__ */ new Set(["dataset.ready", "job.completed", "job.failed", "quota.warning"]);
852
+ function autoExportFromDict(data) {
853
+ if (!data || typeof data !== "object") return null;
854
+ const d = data;
855
+ return {
856
+ connectorId: Number(d["connector_id"] ?? 0),
857
+ format: String(d["format"] ?? ""),
858
+ prefix: d["prefix"] !== void 0 ? String(d["prefix"]) : void 0
859
+ };
860
+ }
825
861
  function webhookFromDict(data) {
826
862
  return {
827
863
  id: String(data["id"] ?? ""),
828
864
  url: String(data["url"] ?? ""),
829
865
  events: data["events"] ?? [],
830
866
  active: Boolean(data["active"] ?? true),
831
- createdAt: String(data["created_at"] ?? "")
867
+ createdAt: String(data["created_at"] ?? ""),
868
+ autoExport: autoExportFromDict(data["auto_export"]),
869
+ secret: data["secret"] ?? null
832
870
  };
833
871
  }
834
872
  var WebhooksResource = class {
@@ -836,12 +874,20 @@ var WebhooksResource = class {
836
874
  this._t = _t;
837
875
  }
838
876
  _t;
839
- async register(url, events) {
877
+ async register(url, events, autoExport) {
840
878
  const invalid = events.filter((e) => !VALID_EVENTS.has(e));
841
879
  if (invalid.length > 0) {
842
880
  throw new Error(`Unknown event types: ${invalid.join(", ")}. Valid: ${[...VALID_EVENTS].join(", ")}`);
843
881
  }
844
- const data = await this._t.post("/webhooks", { url, events });
882
+ const body = { url, events };
883
+ if (autoExport) {
884
+ body["auto_export"] = {
885
+ connector_id: autoExport.connectorId,
886
+ format: autoExport.format,
887
+ ...autoExport.prefix !== void 0 ? { prefix: autoExport.prefix } : {}
888
+ };
889
+ }
890
+ const data = await this._t.post("/webhooks", body);
845
891
  return webhookFromDict(data);
846
892
  }
847
893
  async list() {
@@ -863,6 +909,9 @@ var Connector = class _Connector {
863
909
  lastTestedAt;
864
910
  lastUsedAt;
865
911
  createdAt;
912
+ /** Non-secret config fields (bucket/region, folder_id, index_name, etc.) —
913
+ * credentials are never included. */
914
+ config;
866
915
  constructor(data) {
867
916
  this.id = data.id;
868
917
  this.name = data.name;
@@ -871,6 +920,7 @@ var Connector = class _Connector {
871
920
  this.lastTestedAt = data.lastTestedAt;
872
921
  this.lastUsedAt = data.lastUsedAt;
873
922
  this.createdAt = data.createdAt;
923
+ this.config = data.config ?? {};
874
924
  }
875
925
  static fromDict(data) {
876
926
  return new _Connector({
@@ -880,7 +930,8 @@ var Connector = class _Connector {
880
930
  active: Boolean(data["active"] ?? true),
881
931
  lastTestedAt: data["last_tested_at"] ?? null,
882
932
  lastUsedAt: data["last_used_at"] ?? null,
883
- createdAt: String(data["created_at"] ?? "")
933
+ createdAt: String(data["created_at"] ?? ""),
934
+ config: data["config"] ?? {}
884
935
  });
885
936
  }
886
937
  toString() {
@@ -1275,7 +1326,7 @@ var FlexOrchReader = class {
1275
1326
  };
1276
1327
 
1277
1328
  // src/index.ts
1278
- var version = "0.3.1";
1329
+ var version = "0.3.3";
1279
1330
  // Annotate the CommonJS export names for ESM import in node:
1280
1331
  0 && (module.exports = {
1281
1332
  AuthError,
package/dist/index.d.cts CHANGED
@@ -22,6 +22,9 @@ declare class Dataset {
22
22
  readonly slug: string;
23
23
  readonly status: string;
24
24
  readonly rowCount: number;
25
+ readonly piiMasked: boolean;
26
+ readonly piiFindingsCount: number;
27
+ readonly piiTypeSummary: Record<string, number>;
25
28
  readonly createdAt: string;
26
29
  readonly availableFormats: string[];
27
30
  private readonly _transport;
@@ -31,6 +34,9 @@ declare class Dataset {
31
34
  slug: string;
32
35
  status: string;
33
36
  rowCount: number;
37
+ piiMasked: boolean;
38
+ piiFindingsCount: number;
39
+ piiTypeSummary: Record<string, number>;
34
40
  createdAt: string;
35
41
  availableFormats: string[];
36
42
  _transport: Transport;
@@ -112,6 +118,9 @@ declare class Job {
112
118
  */
113
119
  readonly degraded: boolean;
114
120
  readonly failureReason: string | null;
121
+ readonly piiMasked: boolean;
122
+ readonly piiFindingsCount: number;
123
+ readonly piiTypeSummary: Record<string, number>;
115
124
  private readonly _transport;
116
125
  constructor(data: {
117
126
  id: string;
@@ -124,6 +133,9 @@ declare class Job {
124
133
  datasetId: number | null;
125
134
  degraded: boolean;
126
135
  failureReason: string | null;
136
+ piiMasked: boolean;
137
+ piiFindingsCount: number;
138
+ piiTypeSummary: Record<string, number>;
127
139
  _transport: Transport;
128
140
  });
129
141
  static fromDict(data: Record<string, unknown>, transport: Transport): Job;
@@ -334,18 +346,27 @@ declare class UsageResource {
334
346
  rateLimits(): Promise<RateLimitStatus>;
335
347
  }
336
348
 
337
- type WebhookEvent = "dataset.ready" | "job.completed" | "job.failed";
349
+ type WebhookEvent = "dataset.ready" | "job.completed" | "job.failed" | "quota.warning";
350
+ interface WebhookAutoExport {
351
+ connectorId: number;
352
+ format: string;
353
+ prefix?: string;
354
+ }
338
355
  interface Webhook {
339
356
  id: string;
340
357
  url: string;
341
358
  events: WebhookEvent[];
342
359
  active: boolean;
343
360
  createdAt: string;
361
+ autoExport: WebhookAutoExport | null;
362
+ /** Signing secret — only present on the response from register(). Store it
363
+ * securely; it is never returned again by list()/get(). */
364
+ secret: string | null;
344
365
  }
345
366
  declare class WebhooksResource {
346
367
  private readonly _t;
347
368
  constructor(_t: Transport);
348
- register(url: string, events: WebhookEvent[]): Promise<Webhook>;
369
+ register(url: string, events: WebhookEvent[], autoExport?: WebhookAutoExport): Promise<Webhook>;
349
370
  list(): Promise<Webhook[]>;
350
371
  delete(webhookId: string): Promise<void>;
351
372
  }
@@ -358,6 +379,9 @@ declare class Connector {
358
379
  readonly lastTestedAt: string | null;
359
380
  readonly lastUsedAt: string | null;
360
381
  readonly createdAt: string;
382
+ /** Non-secret config fields (bucket/region, folder_id, index_name, etc.) —
383
+ * credentials are never included. */
384
+ readonly config: Record<string, unknown>;
361
385
  constructor(data: {
362
386
  id: string;
363
387
  name: string;
@@ -366,6 +390,7 @@ declare class Connector {
366
390
  lastTestedAt: string | null;
367
391
  lastUsedAt: string | null;
368
392
  createdAt: string;
393
+ config?: Record<string, unknown>;
369
394
  });
370
395
  static fromDict(data: Record<string, unknown>): Connector;
371
396
  toString(): string;
@@ -606,6 +631,6 @@ declare class FlexOrchReader {
606
631
  toString(): string;
607
632
  }
608
633
 
609
- declare const version = "0.3.1";
634
+ declare const version = "0.3.3";
610
635
 
611
636
  export { AuthError, Connector, type ConnectorTestResult, type ConnectorType, Dataset, Document, type ExportFormat, FlexOrchClient, type FlexOrchClientOptions, FlexOrchError, FlexOrchReader, FlexOrchRetriever, Job, JobFailedError, type JobFeedback, JobTimeoutError, NotFoundError, type QualityTrendItem, QuotaError, RAGDocument, RateLimitError, type RateLimitStatus, type ReaderLoadOptions, type RetrieverOptions, type S3ConnectorConfig, type SearchFilters, SearchResult, ServerError, type SyncLog, type SyncSchedule, type UsageHistoryItem, type UsageSnapshot, ValidationError, type Webhook, type WebhookEvent, version };
package/dist/index.d.ts CHANGED
@@ -22,6 +22,9 @@ declare class Dataset {
22
22
  readonly slug: string;
23
23
  readonly status: string;
24
24
  readonly rowCount: number;
25
+ readonly piiMasked: boolean;
26
+ readonly piiFindingsCount: number;
27
+ readonly piiTypeSummary: Record<string, number>;
25
28
  readonly createdAt: string;
26
29
  readonly availableFormats: string[];
27
30
  private readonly _transport;
@@ -31,6 +34,9 @@ declare class Dataset {
31
34
  slug: string;
32
35
  status: string;
33
36
  rowCount: number;
37
+ piiMasked: boolean;
38
+ piiFindingsCount: number;
39
+ piiTypeSummary: Record<string, number>;
34
40
  createdAt: string;
35
41
  availableFormats: string[];
36
42
  _transport: Transport;
@@ -112,6 +118,9 @@ declare class Job {
112
118
  */
113
119
  readonly degraded: boolean;
114
120
  readonly failureReason: string | null;
121
+ readonly piiMasked: boolean;
122
+ readonly piiFindingsCount: number;
123
+ readonly piiTypeSummary: Record<string, number>;
115
124
  private readonly _transport;
116
125
  constructor(data: {
117
126
  id: string;
@@ -124,6 +133,9 @@ declare class Job {
124
133
  datasetId: number | null;
125
134
  degraded: boolean;
126
135
  failureReason: string | null;
136
+ piiMasked: boolean;
137
+ piiFindingsCount: number;
138
+ piiTypeSummary: Record<string, number>;
127
139
  _transport: Transport;
128
140
  });
129
141
  static fromDict(data: Record<string, unknown>, transport: Transport): Job;
@@ -334,18 +346,27 @@ declare class UsageResource {
334
346
  rateLimits(): Promise<RateLimitStatus>;
335
347
  }
336
348
 
337
- type WebhookEvent = "dataset.ready" | "job.completed" | "job.failed";
349
+ type WebhookEvent = "dataset.ready" | "job.completed" | "job.failed" | "quota.warning";
350
+ interface WebhookAutoExport {
351
+ connectorId: number;
352
+ format: string;
353
+ prefix?: string;
354
+ }
338
355
  interface Webhook {
339
356
  id: string;
340
357
  url: string;
341
358
  events: WebhookEvent[];
342
359
  active: boolean;
343
360
  createdAt: string;
361
+ autoExport: WebhookAutoExport | null;
362
+ /** Signing secret — only present on the response from register(). Store it
363
+ * securely; it is never returned again by list()/get(). */
364
+ secret: string | null;
344
365
  }
345
366
  declare class WebhooksResource {
346
367
  private readonly _t;
347
368
  constructor(_t: Transport);
348
- register(url: string, events: WebhookEvent[]): Promise<Webhook>;
369
+ register(url: string, events: WebhookEvent[], autoExport?: WebhookAutoExport): Promise<Webhook>;
349
370
  list(): Promise<Webhook[]>;
350
371
  delete(webhookId: string): Promise<void>;
351
372
  }
@@ -358,6 +379,9 @@ declare class Connector {
358
379
  readonly lastTestedAt: string | null;
359
380
  readonly lastUsedAt: string | null;
360
381
  readonly createdAt: string;
382
+ /** Non-secret config fields (bucket/region, folder_id, index_name, etc.) —
383
+ * credentials are never included. */
384
+ readonly config: Record<string, unknown>;
361
385
  constructor(data: {
362
386
  id: string;
363
387
  name: string;
@@ -366,6 +390,7 @@ declare class Connector {
366
390
  lastTestedAt: string | null;
367
391
  lastUsedAt: string | null;
368
392
  createdAt: string;
393
+ config?: Record<string, unknown>;
369
394
  });
370
395
  static fromDict(data: Record<string, unknown>): Connector;
371
396
  toString(): string;
@@ -606,6 +631,6 @@ declare class FlexOrchReader {
606
631
  toString(): string;
607
632
  }
608
633
 
609
- declare const version = "0.3.1";
634
+ declare const version = "0.3.3";
610
635
 
611
636
  export { AuthError, Connector, type ConnectorTestResult, type ConnectorType, Dataset, Document, type ExportFormat, FlexOrchClient, type FlexOrchClientOptions, FlexOrchError, FlexOrchReader, FlexOrchRetriever, Job, JobFailedError, type JobFeedback, JobTimeoutError, NotFoundError, type QualityTrendItem, QuotaError, RAGDocument, RateLimitError, type RateLimitStatus, type ReaderLoadOptions, type RetrieverOptions, type S3ConnectorConfig, type SearchFilters, SearchResult, ServerError, type SyncLog, type SyncSchedule, type UsageHistoryItem, type UsageSnapshot, ValidationError, type Webhook, type WebhookEvent, version };
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Dataset
3
- } from "./chunk-4KCMMRD7.js";
3
+ } from "./chunk-U2CE5GVG.js";
4
4
 
5
5
  // src/errors.ts
6
6
  var FlexOrchError = class extends Error {
@@ -123,7 +123,7 @@ var Transport = class {
123
123
  this.fetchFn = fetchFn ?? globalThis.fetch.bind(globalThis);
124
124
  this.defaultHeaders = {
125
125
  "X-API-KEY": apiKey,
126
- "User-Agent": "flexorch-sdk-js/0.3.1"
126
+ "User-Agent": "flexorch-sdk-js/0.3.3"
127
127
  };
128
128
  }
129
129
  url(path, params) {
@@ -229,6 +229,9 @@ var Job = class _Job {
229
229
  */
230
230
  degraded;
231
231
  failureReason;
232
+ piiMasked;
233
+ piiFindingsCount;
234
+ piiTypeSummary;
232
235
  _transport;
233
236
  constructor(data) {
234
237
  this.id = data.id;
@@ -241,12 +244,16 @@ var Job = class _Job {
241
244
  this.datasetId = data.datasetId;
242
245
  this.degraded = data.degraded;
243
246
  this.failureReason = data.failureReason;
247
+ this.piiMasked = data.piiMasked;
248
+ this.piiFindingsCount = data.piiFindingsCount;
249
+ this.piiTypeSummary = data.piiTypeSummary;
244
250
  this._transport = data._transport;
245
251
  }
246
252
  static fromDict(data, transport) {
247
253
  const executionSummary = data["execution_summary"];
248
254
  const processingSummary = data["processing_summary"];
249
255
  const datasetSummary = data["dataset_summary"];
256
+ const privacy = executionSummary?.["privacy"];
250
257
  let quality = data["quality"];
251
258
  if (!quality && processingSummary) {
252
259
  quality = processingSummary["quality"];
@@ -269,6 +276,13 @@ var Job = class _Job {
269
276
  datasetId: datasetSummary?.["dataset_id"] ?? null,
270
277
  degraded: Boolean(executionSummary?.["degraded"] ?? false),
271
278
  failureReason: data["failure_reason"] ?? null,
279
+ // execution_summary.privacy — computed fresh on every GET /jobs/{id}
280
+ // read, not frozen at job-completion time, so this works even for
281
+ // jobs older than this field. Defaults for jobs with no execution
282
+ // (e.g. dataset_build) or against an older API version.
283
+ piiMasked: Boolean(privacy?.["privacy_applied"] ?? false),
284
+ piiFindingsCount: Number(privacy?.["pii_findings_count"] ?? 0),
285
+ piiTypeSummary: privacy?.["pii_type_summary"] ?? {},
272
286
  _transport: transport
273
287
  });
274
288
  }
@@ -294,7 +308,7 @@ var Job = class _Job {
294
308
  throw new JobTimeoutError(this.id, timeout);
295
309
  }
296
310
  async dataset() {
297
- const { Dataset: Dataset2 } = await import("./dataset-E7EXJETI.js");
311
+ const { Dataset: Dataset2 } = await import("./dataset-UGUUKKH3.js");
298
312
  if (this.datasetId !== null) {
299
313
  const data2 = await this._transport.get(`/datasets/${this.datasetId}`);
300
314
  return Dataset2.fromDict(data2, this._transport);
@@ -631,14 +645,25 @@ var UsageResource = class {
631
645
  };
632
646
 
633
647
  // src/resources/webhooks.ts
634
- var VALID_EVENTS = /* @__PURE__ */ new Set(["dataset.ready", "job.completed", "job.failed"]);
648
+ var VALID_EVENTS = /* @__PURE__ */ new Set(["dataset.ready", "job.completed", "job.failed", "quota.warning"]);
649
+ function autoExportFromDict(data) {
650
+ if (!data || typeof data !== "object") return null;
651
+ const d = data;
652
+ return {
653
+ connectorId: Number(d["connector_id"] ?? 0),
654
+ format: String(d["format"] ?? ""),
655
+ prefix: d["prefix"] !== void 0 ? String(d["prefix"]) : void 0
656
+ };
657
+ }
635
658
  function webhookFromDict(data) {
636
659
  return {
637
660
  id: String(data["id"] ?? ""),
638
661
  url: String(data["url"] ?? ""),
639
662
  events: data["events"] ?? [],
640
663
  active: Boolean(data["active"] ?? true),
641
- createdAt: String(data["created_at"] ?? "")
664
+ createdAt: String(data["created_at"] ?? ""),
665
+ autoExport: autoExportFromDict(data["auto_export"]),
666
+ secret: data["secret"] ?? null
642
667
  };
643
668
  }
644
669
  var WebhooksResource = class {
@@ -646,12 +671,20 @@ var WebhooksResource = class {
646
671
  this._t = _t;
647
672
  }
648
673
  _t;
649
- async register(url, events) {
674
+ async register(url, events, autoExport) {
650
675
  const invalid = events.filter((e) => !VALID_EVENTS.has(e));
651
676
  if (invalid.length > 0) {
652
677
  throw new Error(`Unknown event types: ${invalid.join(", ")}. Valid: ${[...VALID_EVENTS].join(", ")}`);
653
678
  }
654
- const data = await this._t.post("/webhooks", { url, events });
679
+ const body = { url, events };
680
+ if (autoExport) {
681
+ body["auto_export"] = {
682
+ connector_id: autoExport.connectorId,
683
+ format: autoExport.format,
684
+ ...autoExport.prefix !== void 0 ? { prefix: autoExport.prefix } : {}
685
+ };
686
+ }
687
+ const data = await this._t.post("/webhooks", body);
655
688
  return webhookFromDict(data);
656
689
  }
657
690
  async list() {
@@ -673,6 +706,9 @@ var Connector = class _Connector {
673
706
  lastTestedAt;
674
707
  lastUsedAt;
675
708
  createdAt;
709
+ /** Non-secret config fields (bucket/region, folder_id, index_name, etc.) —
710
+ * credentials are never included. */
711
+ config;
676
712
  constructor(data) {
677
713
  this.id = data.id;
678
714
  this.name = data.name;
@@ -681,6 +717,7 @@ var Connector = class _Connector {
681
717
  this.lastTestedAt = data.lastTestedAt;
682
718
  this.lastUsedAt = data.lastUsedAt;
683
719
  this.createdAt = data.createdAt;
720
+ this.config = data.config ?? {};
684
721
  }
685
722
  static fromDict(data) {
686
723
  return new _Connector({
@@ -690,7 +727,8 @@ var Connector = class _Connector {
690
727
  active: Boolean(data["active"] ?? true),
691
728
  lastTestedAt: data["last_tested_at"] ?? null,
692
729
  lastUsedAt: data["last_used_at"] ?? null,
693
- createdAt: String(data["created_at"] ?? "")
730
+ createdAt: String(data["created_at"] ?? ""),
731
+ config: data["config"] ?? {}
694
732
  });
695
733
  }
696
734
  toString() {
@@ -1082,7 +1120,7 @@ var FlexOrchReader = class {
1082
1120
  };
1083
1121
 
1084
1122
  // src/index.ts
1085
- var version = "0.3.1";
1123
+ var version = "0.3.3";
1086
1124
  export {
1087
1125
  AuthError,
1088
1126
  Connector,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flexorch-sdk",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "TypeScript/JavaScript SDK for the FlexOrch API — process documents, build LLM-ready datasets",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",