@graph8/sdk 0.7.1 → 0.7.2

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/dist/index.mjs CHANGED
@@ -468,21 +468,30 @@ var createSequencesClient = (apiKey, apiUrl) => {
468
468
  query: params
469
469
  });
470
470
  },
471
- /** Add contacts to a sequence (V2 queuing). Live or drafted sequences only. */
472
- async add(config) {
471
+ /**
472
+ * Add contacts to a sequence (V2 queuing). Live or drafted sequences only.
473
+ * Pass `idempotencyKey` to make a retry safe — the same key returns the
474
+ * first result instead of re-enrolling on a 5xx-then-success (A6).
475
+ */
476
+ async add(config, idempotencyKey) {
473
477
  const resp = await request(
474
478
  baseUrl,
475
479
  `/api/v1/sequences/${config.sequenceId}/contacts`,
476
480
  apiKey,
477
- { method: "POST", body: { contact_ids: config.contactIds, list_id: config.listId } }
481
+ { method: "POST", body: { contact_ids: config.contactIds, list_id: config.listId }, idempotencyKey }
478
482
  );
479
483
  return resp.data ?? resp;
480
484
  },
481
- /** Create a new sequence with optional steps + channels. */
482
- async create(payload) {
485
+ /**
486
+ * Create a new sequence with optional steps + channels. Pass `idempotencyKey`
487
+ * to make a retry safe — the same key returns the first result instead of
488
+ * creating a duplicate sequence on a 5xx-then-success (A6).
489
+ */
490
+ async create(payload, idempotencyKey) {
483
491
  const resp = await request(baseUrl, "/api/v1/sequences", apiKey, {
484
492
  method: "POST",
485
- body: payload
493
+ body: payload,
494
+ idempotencyKey
486
495
  });
487
496
  return resp.data ?? resp;
488
497
  },
@@ -511,33 +520,43 @@ var createSequencesClient = (apiKey, apiUrl) => {
511
520
  });
512
521
  return resp.data ?? resp;
513
522
  },
514
- /** Run/start a DRAFTED sequence (V2 orchestration). */
515
- async run(sequenceId) {
523
+ /**
524
+ * Run/start a DRAFTED sequence (V2 orchestration). Pass `idempotencyKey` to
525
+ * make a retry safe — the same key won't re-trigger the run on a
526
+ * 5xx-then-success (A6).
527
+ */
528
+ async run(sequenceId, idempotencyKey) {
516
529
  const resp = await request(
517
530
  baseUrl,
518
531
  `/api/v1/sequences/${sequenceId}/run`,
519
532
  apiKey,
520
- { method: "POST" }
533
+ { method: "POST", idempotencyKey }
521
534
  );
522
535
  return resp.data ?? resp;
523
536
  },
524
- /** Pause a live sequence. */
525
- async pause(sequenceId) {
537
+ /**
538
+ * Pause a live sequence. Pass `idempotencyKey` to make a retry safe — the
539
+ * same key won't double-apply on a 5xx-then-success (A6).
540
+ */
541
+ async pause(sequenceId, idempotencyKey) {
526
542
  const resp = await request(
527
543
  baseUrl,
528
544
  `/api/v1/sequences/${sequenceId}/pause`,
529
545
  apiKey,
530
- { method: "POST" }
546
+ { method: "POST", idempotencyKey }
531
547
  );
532
548
  return resp.data ?? resp;
533
549
  },
534
- /** Resume a paused sequence. */
535
- async resume(sequenceId) {
550
+ /**
551
+ * Resume a paused sequence. Pass `idempotencyKey` to make a retry safe — the
552
+ * same key won't double-apply on a 5xx-then-success (A6).
553
+ */
554
+ async resume(sequenceId, idempotencyKey) {
536
555
  const resp = await request(
537
556
  baseUrl,
538
557
  `/api/v1/sequences/${sequenceId}/resume`,
539
558
  apiKey,
540
- { method: "POST" }
559
+ { method: "POST", idempotencyKey }
541
560
  );
542
561
  return resp.data ?? resp;
543
562
  },