sequenzy 0.9.0 → 0.10.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.0 (2026-01-26)
4
+
5
+ Full Changelog: [v0.9.0...v0.10.0](https://github.com/Sequenzy/sequenzy-typescript/compare/v0.9.0...v0.10.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([43dac7f](https://github.com/Sequenzy/sequenzy-typescript/commit/43dac7fe2b33ad6922969f34605ddb6557f2feef))
10
+
11
+
12
+ ### Chores
13
+
14
+ * break long lines in snippets into multiline ([a8c061f](https://github.com/Sequenzy/sequenzy-typescript/commit/a8c061f03a40b54db518ba29f84722be81523ac1))
15
+ * **ci:** upgrade `actions/github-script` ([1d55c09](https://github.com/Sequenzy/sequenzy-typescript/commit/1d55c0985d175e467d4a6eef7ccff3065086f42f))
16
+ * **internal:** codegen related update ([b62eeaa](https://github.com/Sequenzy/sequenzy-typescript/commit/b62eeaa6258ec1fa3a8a31cf57acf831145fb171))
17
+ * **internal:** update `actions/checkout` version ([6a6f6ea](https://github.com/Sequenzy/sequenzy-typescript/commit/6a6f6ea768cbcfdf00cd205c0d7231f84ba04258))
18
+ * **internal:** update lock file ([628c35a](https://github.com/Sequenzy/sequenzy-typescript/commit/628c35ab06c3b9c843ffde89072474a214ddfd07))
19
+ * **internal:** upgrade babel, qs, js-yaml ([95bce77](https://github.com/Sequenzy/sequenzy-typescript/commit/95bce77bc16d05794d9e2f66d234e43ae1bcc4f2))
20
+ * **internal:** upgrade brace-expansion and @babel/helpers ([fc6c5e5](https://github.com/Sequenzy/sequenzy-typescript/commit/fc6c5e5e31547029f98a57701aee8a6a0e4a823f))
21
+
3
22
  ## 0.9.0 (2025-12-29)
4
23
 
5
24
  Full Changelog: [v0.8.0...v0.9.0](https://github.com/Sequenzy/sequenzy-typescript/compare/v0.8.0...v0.9.0)
package/LICENSE CHANGED
@@ -186,7 +186,7 @@
186
186
  same "printed page" as the copyright notice for easier
187
187
  identification within third-party archives.
188
188
 
189
- Copyright 2025 Sequenzy
189
+ Copyright 2026 Sequenzy
190
190
 
191
191
  Licensed under the Apache License, Version 2.0 (the "License");
192
192
  you may not use this file except in compliance with the License.
package/README.md CHANGED
@@ -66,7 +66,11 @@ a subclass of `APIError` will be thrown:
66
66
  <!-- prettier-ignore -->
67
67
  ```ts
68
68
  const subscriber = await client.subscribers
69
- .create({ email: 'user@example.com', firstName: 'User', lastName: 'TheBest' })
69
+ .create({
70
+ email: 'user@example.com',
71
+ firstName: 'User',
72
+ lastName: 'TheBest',
73
+ })
70
74
  .catch(async (err) => {
71
75
  if (err instanceof Sequenzy.APIError) {
72
76
  console.log(err.status); // 400
@@ -107,7 +111,11 @@ const client = new Sequenzy({
107
111
  });
108
112
 
109
113
  // Or, configure per-request:
110
- await client.subscribers.create({ email: 'user@example.com', firstName: 'User', lastName: 'TheBest' }, {
114
+ await client.subscribers.create({
115
+ email: 'user@example.com',
116
+ firstName: 'User',
117
+ lastName: 'TheBest',
118
+ }, {
111
119
  maxRetries: 5,
112
120
  });
113
121
  ```
@@ -124,7 +132,11 @@ const client = new Sequenzy({
124
132
  });
125
133
 
126
134
  // Override per-request:
127
- await client.subscribers.create({ email: 'user@example.com', firstName: 'User', lastName: 'TheBest' }, {
135
+ await client.subscribers.create({
136
+ email: 'user@example.com',
137
+ firstName: 'User',
138
+ lastName: 'TheBest',
139
+ }, {
128
140
  timeout: 5 * 1000,
129
141
  });
130
142
  ```
@@ -148,13 +160,21 @@ Unlike `.asResponse()` this method consumes the body, returning once it is parse
148
160
  const client = new Sequenzy();
149
161
 
150
162
  const response = await client.subscribers
151
- .create({ email: 'user@example.com', firstName: 'User', lastName: 'TheBest' })
163
+ .create({
164
+ email: 'user@example.com',
165
+ firstName: 'User',
166
+ lastName: 'TheBest',
167
+ })
152
168
  .asResponse();
153
169
  console.log(response.headers.get('X-My-Header'));
154
170
  console.log(response.statusText); // access the underlying Response object
155
171
 
156
172
  const { data: subscriber, response: raw } = await client.subscribers
157
- .create({ email: 'user@example.com', firstName: 'User', lastName: 'TheBest' })
173
+ .create({
174
+ email: 'user@example.com',
175
+ firstName: 'User',
176
+ lastName: 'TheBest',
177
+ })
158
178
  .withResponse();
159
179
  console.log(raw.headers.get('X-My-Header'));
160
180
  console.log(subscriber.subscriber);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sequenzy",
3
- "version": "0.9.0",
3
+ "version": "0.10.0",
4
4
  "description": "The official TypeScript library for the Sequenzy API",
5
5
  "author": "Sequenzy <nic@sequenzy.com>",
6
6
  "types": "./index.d.ts",
@@ -1,4 +1,5 @@
1
1
  import { APIResource } from "../../core/resource.mjs";
2
+ import * as SubscribersAPI from "./subscribers.mjs";
2
3
  import * as EventsAPI from "./events.mjs";
3
4
  import { EventTriggerMultipleParams, EventTriggerMultipleResponse, EventTriggerParams, EventTriggerResponse, Events } from "./events.mjs";
4
5
  import * as TagsAPI from "./tags.mjs";
@@ -9,8 +10,14 @@ export declare class Subscribers extends APIResource {
9
10
  tags: TagsAPI.Tags;
10
11
  events: EventsAPI.Events;
11
12
  /**
12
- * Creates a new subscriber or returns the existing one. If the subscriber already
13
- * exists, their custom attributes are merged with any new ones provided.
13
+ * Creates a new subscriber or handles existing ones based on the
14
+ * `duplicateStrategy` parameter.
15
+ *
16
+ * **Duplicate Strategies:**
17
+ *
18
+ * - `skip` (default): Don't update existing subscribers
19
+ * - `merge`: Only fill in missing fields, never overwrite existing values
20
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
14
21
  *
15
22
  * @example
16
23
  * ```ts
@@ -74,9 +81,25 @@ export interface Subscriber {
74
81
  updatedAt?: string;
75
82
  }
76
83
  export interface SubscriberCreateResponse {
77
- subscriber?: Subscriber;
84
+ subscriber?: SubscriberCreateResponse.Subscriber;
78
85
  success?: boolean;
79
86
  }
87
+ export declare namespace SubscriberCreateResponse {
88
+ interface Subscriber extends SubscribersAPI.Subscriber {
89
+ /**
90
+ * Whether the subscriber was newly created
91
+ */
92
+ created?: boolean;
93
+ /**
94
+ * Whether the subscriber was skipped (skip strategy on existing)
95
+ */
96
+ skipped?: boolean;
97
+ /**
98
+ * Whether the subscriber was updated (merge/overwrite strategies)
99
+ */
100
+ updated?: boolean;
101
+ }
102
+ }
80
103
  export interface SubscriberRetrieveResponse {
81
104
  subscriber?: Subscriber;
82
105
  success?: boolean;
@@ -108,7 +131,16 @@ export interface SubscriberCreateParams {
108
131
  [key: string]: unknown;
109
132
  };
110
133
  /**
111
- * Whether to enroll the subscriber in matching sequences. Defaults to false.
134
+ * How to handle existing subscribers:
135
+ *
136
+ * - `skip`: Don't update existing subscribers (default)
137
+ * - `merge`: Only fill in missing fields, never overwrite existing values
138
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
139
+ */
140
+ duplicateStrategy?: 'skip' | 'merge' | 'overwrite';
141
+ /**
142
+ * Whether to enroll the subscriber in matching sequences. Defaults to true for API
143
+ * calls.
112
144
  */
113
145
  enrollInSequences?: boolean;
114
146
  firstName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"subscribers.d.mts","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribers.d.mts","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,cAAc;OACnB,KAAK,SAAS;OACd,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,oBAAoB,EACpB,MAAM,EACP;OACM,KAAK,OAAO;OACZ,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE;OACpF,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAE;AAGzB,qBAAa,WAAY,SAAQ,WAAW;IAC1C,IAAI,EAAE,OAAO,CAAC,IAAI,CAAkC;IACpD,MAAM,EAAE,SAAS,CAAC,MAAM,CAAsC;IAE9D;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,wBAAwB,CAAC;IAIpG;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,0BAA0B,CAAC;IAIzF;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,sBAAsB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,wBAAwB,CAAC;IAIvC;;;;;;;OAOG;IACH,IAAI,CACF,KAAK,GAAE,oBAAoB,GAAG,IAAI,GAAG,SAAc,EACnD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,sBAAsB,CAAC;IAIrC;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,wBAAwB,CAAC;CAGtF;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAE9C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAEnC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,wBAAwB,CAAC,UAAU,CAAC;IAEjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,yBAAiB,wBAAwB,CAAC;IACxC,UAAiB,UAAW,SAAQ,cAAc,CAAC,UAAU;QAC3D;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAElB;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;CACF;AAED,MAAM,WAAW,0BAA0B;IACzC,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC;IAE/C,WAAW,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,yBAAiB,sBAAsB,CAAC;IACtC,UAAiB,UAAU;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd,KAAK,CAAC,EAAE,MAAM,CAAC;QAEf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CACF;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IAEd,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAE9C;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IAEnD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAEnC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAE9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;IAEnC,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;CACpC;AAKD,MAAM,CAAC,OAAO,WAAW,WAAW,CAAC;IACnC,OAAO,EACL,KAAK,UAAU,IAAI,UAAU,EAC7B,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,0BAA0B,IAAI,0BAA0B,EAC7D,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,oBAAoB,IAAI,oBAAoB,GAClD,CAAC;IAEF,OAAO,EACL,IAAI,IAAI,IAAI,EACZ,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,sBAAsB,IAAI,sBAAsB,EACrD,KAAK,YAAY,IAAI,YAAY,EACjC,KAAK,oBAAoB,IAAI,oBAAoB,GAClD,CAAC;IAEF,OAAO,EACL,MAAM,IAAI,MAAM,EAChB,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,4BAA4B,IAAI,4BAA4B,EACjE,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,0BAA0B,IAAI,0BAA0B,GAC9D,CAAC;CACH"}
@@ -1,4 +1,5 @@
1
1
  import { APIResource } from "../../core/resource.js";
2
+ import * as SubscribersAPI from "./subscribers.js";
2
3
  import * as EventsAPI from "./events.js";
3
4
  import { EventTriggerMultipleParams, EventTriggerMultipleResponse, EventTriggerParams, EventTriggerResponse, Events } from "./events.js";
4
5
  import * as TagsAPI from "./tags.js";
@@ -9,8 +10,14 @@ export declare class Subscribers extends APIResource {
9
10
  tags: TagsAPI.Tags;
10
11
  events: EventsAPI.Events;
11
12
  /**
12
- * Creates a new subscriber or returns the existing one. If the subscriber already
13
- * exists, their custom attributes are merged with any new ones provided.
13
+ * Creates a new subscriber or handles existing ones based on the
14
+ * `duplicateStrategy` parameter.
15
+ *
16
+ * **Duplicate Strategies:**
17
+ *
18
+ * - `skip` (default): Don't update existing subscribers
19
+ * - `merge`: Only fill in missing fields, never overwrite existing values
20
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
14
21
  *
15
22
  * @example
16
23
  * ```ts
@@ -74,9 +81,25 @@ export interface Subscriber {
74
81
  updatedAt?: string;
75
82
  }
76
83
  export interface SubscriberCreateResponse {
77
- subscriber?: Subscriber;
84
+ subscriber?: SubscriberCreateResponse.Subscriber;
78
85
  success?: boolean;
79
86
  }
87
+ export declare namespace SubscriberCreateResponse {
88
+ interface Subscriber extends SubscribersAPI.Subscriber {
89
+ /**
90
+ * Whether the subscriber was newly created
91
+ */
92
+ created?: boolean;
93
+ /**
94
+ * Whether the subscriber was skipped (skip strategy on existing)
95
+ */
96
+ skipped?: boolean;
97
+ /**
98
+ * Whether the subscriber was updated (merge/overwrite strategies)
99
+ */
100
+ updated?: boolean;
101
+ }
102
+ }
80
103
  export interface SubscriberRetrieveResponse {
81
104
  subscriber?: Subscriber;
82
105
  success?: boolean;
@@ -108,7 +131,16 @@ export interface SubscriberCreateParams {
108
131
  [key: string]: unknown;
109
132
  };
110
133
  /**
111
- * Whether to enroll the subscriber in matching sequences. Defaults to false.
134
+ * How to handle existing subscribers:
135
+ *
136
+ * - `skip`: Don't update existing subscribers (default)
137
+ * - `merge`: Only fill in missing fields, never overwrite existing values
138
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
139
+ */
140
+ duplicateStrategy?: 'skip' | 'merge' | 'overwrite';
141
+ /**
142
+ * Whether to enroll the subscriber in matching sequences. Defaults to true for API
143
+ * calls.
112
144
  */
113
145
  enrollInSequences?: boolean;
114
146
  firstName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"subscribers.d.ts","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subscribers.d.ts","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,14 @@ class Subscribers extends resource_1.APIResource {
16
16
  this.events = new EventsAPI.Events(this._client);
17
17
  }
18
18
  /**
19
- * Creates a new subscriber or returns the existing one. If the subscriber already
20
- * exists, their custom attributes are merged with any new ones provided.
19
+ * Creates a new subscriber or handles existing ones based on the
20
+ * `duplicateStrategy` parameter.
21
+ *
22
+ * **Duplicate Strategies:**
23
+ *
24
+ * - `skip` (default): Don't update existing subscribers
25
+ * - `merge`: Only fill in missing fields, never overwrite existing values
26
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
21
27
  *
22
28
  * @example
23
29
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"subscribers.js","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAClD,+DAAsC;AACtC,wCAMkB;AAClB,2DAAkC;AAClC,oCAA0G;AAG1G,uDAAiD;AAEjD,MAAa,WAAY,SAAQ,sBAAW;IAA5C;;QACE,SAAI,GAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,WAAM,GAAqB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IA0EhE,CAAC;IAxEC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAA4B,EAAE,OAAwB;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAa,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa,EACb,IAA4B,EAC5B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,WAAI,EAAA,gBAAgB,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,QAAiD,EAAE,EACnD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAa,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CACF;AA5ED,kCA4EC;AA6HD,WAAW,CAAC,IAAI,GAAG,WAAI,CAAC;AACxB,WAAW,CAAC,MAAM,GAAG,eAAM,CAAC"}
1
+ {"version":3,"file":"subscribers.js","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAElD,+DAAsC;AACtC,wCAMkB;AAClB,2DAAkC;AAClC,oCAA0G;AAG1G,uDAAiD;AAEjD,MAAa,WAAY,SAAQ,sBAAW;IAA5C;;QACE,SAAI,GAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,WAAM,GAAqB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAgFhE,CAAC;IA9EC;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAA4B,EAAE,OAAwB;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAa,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa,EACb,IAA4B,EAC5B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,WAAI,EAAA,gBAAgB,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,QAAiD,EAAE,EACnD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAa,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CACF;AAlFD,kCAkFC;AA0JD,WAAW,CAAC,IAAI,GAAG,WAAI,CAAC;AACxB,WAAW,CAAC,MAAM,GAAG,eAAM,CAAC"}
@@ -12,8 +12,14 @@ export class Subscribers extends APIResource {
12
12
  this.events = new EventsAPI.Events(this._client);
13
13
  }
14
14
  /**
15
- * Creates a new subscriber or returns the existing one. If the subscriber already
16
- * exists, their custom attributes are merged with any new ones provided.
15
+ * Creates a new subscriber or handles existing ones based on the
16
+ * `duplicateStrategy` parameter.
17
+ *
18
+ * **Duplicate Strategies:**
19
+ *
20
+ * - `skip` (default): Don't update existing subscribers
21
+ * - `merge`: Only fill in missing fields, never overwrite existing values
22
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
17
23
  *
18
24
  * @example
19
25
  * ```ts
@@ -1 +1 @@
1
- {"version":3,"file":"subscribers.mjs","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OACf,KAAK,SAAS;OACd,EAKL,MAAM,GACP;OACM,KAAK,OAAO;OACZ,EAA8E,IAAI,EAAE;OAGpF,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,WAAY,SAAQ,WAAW;IAA5C;;QACE,SAAI,GAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,WAAM,GAAqB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IA0EhE,CAAC;IAxEC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAA4B,EAAE,OAAwB;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAa,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa,EACb,IAA4B,EAC5B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,gBAAgB,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,QAAiD,EAAE,EACnD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAa,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CACF;AA6HD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"subscribers.mjs","sourceRoot":"","sources":["../../src/resources/subscribers/subscribers.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAEf,KAAK,SAAS;OACd,EAKL,MAAM,GACP;OACM,KAAK,OAAO;OACZ,EAA8E,IAAI,EAAE;OAGpF,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,WAAY,SAAQ,WAAW;IAA5C;;QACE,SAAI,GAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,WAAM,GAAqB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAgFhE,CAAC;IA9EC;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,IAA4B,EAAE,OAAwB;QAC3D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,KAAa,EAAE,OAAwB;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,KAAa,EACb,IAA4B,EAC5B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,gBAAgB,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,CACF,QAAiD,EAAE,EACnD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAa,EAAE,OAAwB;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,gBAAgB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CACF;AA0JD,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;AACxB,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC"}
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
+ import * as SubscribersAPI from './subscribers';
4
5
  import * as EventsAPI from './events';
5
6
  import {
6
7
  EventTriggerMultipleParams,
@@ -20,8 +21,14 @@ export class Subscribers extends APIResource {
20
21
  events: EventsAPI.Events = new EventsAPI.Events(this._client);
21
22
 
22
23
  /**
23
- * Creates a new subscriber or returns the existing one. If the subscriber already
24
- * exists, their custom attributes are merged with any new ones provided.
24
+ * Creates a new subscriber or handles existing ones based on the
25
+ * `duplicateStrategy` parameter.
26
+ *
27
+ * **Duplicate Strategies:**
28
+ *
29
+ * - `skip` (default): Don't update existing subscribers
30
+ * - `merge`: Only fill in missing fields, never overwrite existing values
31
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
25
32
  *
26
33
  * @example
27
34
  * ```ts
@@ -114,11 +121,30 @@ export interface Subscriber {
114
121
  }
115
122
 
116
123
  export interface SubscriberCreateResponse {
117
- subscriber?: Subscriber;
124
+ subscriber?: SubscriberCreateResponse.Subscriber;
118
125
 
119
126
  success?: boolean;
120
127
  }
121
128
 
129
+ export namespace SubscriberCreateResponse {
130
+ export interface Subscriber extends SubscribersAPI.Subscriber {
131
+ /**
132
+ * Whether the subscriber was newly created
133
+ */
134
+ created?: boolean;
135
+
136
+ /**
137
+ * Whether the subscriber was skipped (skip strategy on existing)
138
+ */
139
+ skipped?: boolean;
140
+
141
+ /**
142
+ * Whether the subscriber was updated (merge/overwrite strategies)
143
+ */
144
+ updated?: boolean;
145
+ }
146
+ }
147
+
122
148
  export interface SubscriberRetrieveResponse {
123
149
  subscriber?: Subscriber;
124
150
 
@@ -163,7 +189,17 @@ export interface SubscriberCreateParams {
163
189
  customAttributes?: { [key: string]: unknown };
164
190
 
165
191
  /**
166
- * Whether to enroll the subscriber in matching sequences. Defaults to false.
192
+ * How to handle existing subscribers:
193
+ *
194
+ * - `skip`: Don't update existing subscribers (default)
195
+ * - `merge`: Only fill in missing fields, never overwrite existing values
196
+ * - `overwrite`: Replace all fields (but never reactivate unsubscribed users)
197
+ */
198
+ duplicateStrategy?: 'skip' | 'merge' | 'overwrite';
199
+
200
+ /**
201
+ * Whether to enroll the subscriber in matching sequences. Defaults to true for API
202
+ * calls.
167
203
  */
168
204
  enrollInSequences?: boolean;
169
205
 
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.9.0'; // x-release-please-version
1
+ export const VERSION = '0.10.0'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.9.0";
1
+ export declare const VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.mts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.mts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.mts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.9.0";
1
+ export declare const VERSION = "0.10.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,WAAW,CAAC"}
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.9.0'; // x-release-please-version
4
+ exports.VERSION = '0.10.0'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.9.0'; // x-release-please-version
1
+ export const VERSION = '0.10.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map
package/version.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
1
+ {"version":3,"file":"version.mjs","sourceRoot":"","sources":["src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}