@sentdm/sentdm 0.7.1 → 0.14.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 +125 -0
- package/README.md +71 -34
- package/client.d.mts +49 -21
- package/client.d.mts.map +1 -1
- package/client.d.ts +49 -21
- package/client.d.ts.map +1 -1
- package/client.js +59 -38
- package/client.js.map +1 -1
- package/client.mjs +59 -38
- package/client.mjs.map +1 -1
- package/internal/tslib.js +17 -17
- package/internal/utils/log.d.mts.map +1 -1
- package/internal/utils/log.d.ts.map +1 -1
- package/internal/utils/log.js +0 -1
- package/internal/utils/log.js.map +1 -1
- package/internal/utils/log.mjs +0 -1
- package/internal/utils/log.mjs.map +1 -1
- package/internal/utils/query.d.mts +5 -0
- package/internal/utils/query.d.mts.map +1 -0
- package/internal/utils/query.d.ts +5 -0
- package/internal/utils/query.d.ts.map +1 -0
- package/internal/utils/query.js +23 -0
- package/internal/utils/query.js.map +1 -0
- package/internal/utils/query.mjs +20 -0
- package/internal/utils/query.mjs.map +1 -0
- package/internal/utils.d.mts +1 -0
- package/internal/utils.d.ts +1 -0
- package/internal/utils.js +1 -0
- package/internal/utils.js.map +1 -1
- package/internal/utils.mjs +1 -0
- package/package.json +7 -1
- package/resources/contacts.d.mts +243 -49
- package/resources/contacts.d.mts.map +1 -1
- package/resources/contacts.d.ts +243 -49
- package/resources/contacts.d.ts.map +1 -1
- package/resources/contacts.js +112 -15
- package/resources/contacts.js.map +1 -1
- package/resources/contacts.mjs +112 -15
- package/resources/contacts.mjs.map +1 -1
- package/resources/index.d.mts +8 -4
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +8 -4
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +11 -3
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +5 -1
- package/resources/index.mjs.map +1 -1
- package/resources/me.d.mts +269 -0
- package/resources/me.d.mts.map +1 -0
- package/resources/me.d.ts +269 -0
- package/resources/me.d.ts.map +1 -0
- package/resources/me.js +40 -0
- package/resources/me.js.map +1 -0
- package/resources/me.mjs +36 -0
- package/resources/me.mjs.map +1 -0
- package/resources/messages.d.mts +239 -133
- package/resources/messages.d.mts.map +1 -1
- package/resources/messages.d.ts +239 -133
- package/resources/messages.d.ts.map +1 -1
- package/resources/messages.js +42 -50
- package/resources/messages.js.map +1 -1
- package/resources/messages.mjs +42 -50
- package/resources/messages.mjs.map +1 -1
- package/resources/numbers.d.mts +70 -0
- package/resources/numbers.d.mts.map +1 -0
- package/resources/numbers.d.ts +70 -0
- package/resources/numbers.d.ts.map +1 -0
- package/resources/numbers.js +36 -0
- package/resources/numbers.js.map +1 -0
- package/resources/numbers.mjs +32 -0
- package/resources/numbers.mjs.map +1 -0
- package/resources/profiles/campaigns.d.mts +339 -0
- package/resources/profiles/campaigns.d.mts.map +1 -0
- package/resources/profiles/campaigns.d.ts +339 -0
- package/resources/profiles/campaigns.d.ts.map +1 -0
- package/resources/profiles/campaigns.js +148 -0
- package/resources/profiles/campaigns.js.map +1 -0
- package/resources/profiles/campaigns.mjs +144 -0
- package/resources/profiles/campaigns.mjs.map +1 -0
- package/resources/profiles/index.d.mts +3 -0
- package/resources/profiles/index.d.mts.map +1 -0
- package/resources/profiles/index.d.ts +3 -0
- package/resources/profiles/index.d.ts.map +1 -0
- package/resources/profiles/index.js +9 -0
- package/resources/profiles/index.js.map +1 -0
- package/resources/profiles/index.mjs +4 -0
- package/resources/profiles/index.mjs.map +1 -0
- package/resources/profiles/profiles.d.mts +967 -0
- package/resources/profiles/profiles.d.mts.map +1 -0
- package/resources/profiles/profiles.d.ts +967 -0
- package/resources/profiles/profiles.d.ts.map +1 -0
- package/resources/profiles/profiles.js +227 -0
- package/resources/profiles/profiles.js.map +1 -0
- package/resources/profiles/profiles.mjs +222 -0
- package/resources/profiles/profiles.mjs.map +1 -0
- package/resources/profiles.d.mts +2 -0
- package/resources/profiles.d.mts.map +1 -0
- package/resources/profiles.d.ts +2 -0
- package/resources/profiles.d.ts.map +1 -0
- package/resources/profiles.js +6 -0
- package/resources/profiles.js.map +1 -0
- package/resources/profiles.mjs +3 -0
- package/resources/profiles.mjs.map +1 -0
- package/resources/templates.d.mts +327 -191
- package/resources/templates.d.mts.map +1 -1
- package/resources/templates.d.ts +327 -191
- package/resources/templates.d.ts.map +1 -1
- package/resources/templates.js +80 -35
- package/resources/templates.js.map +1 -1
- package/resources/templates.mjs +80 -35
- package/resources/templates.mjs.map +1 -1
- package/resources/users.d.mts +251 -0
- package/resources/users.d.mts.map +1 -0
- package/resources/users.d.ts +251 -0
- package/resources/users.d.ts.map +1 -0
- package/resources/users.js +124 -0
- package/resources/users.js.map +1 -0
- package/resources/users.mjs +120 -0
- package/resources/users.mjs.map +1 -0
- package/resources/webhooks.d.mts +639 -0
- package/resources/webhooks.d.mts.map +1 -0
- package/resources/webhooks.d.ts +639 -0
- package/resources/webhooks.d.ts.map +1 -0
- package/resources/webhooks.js +237 -0
- package/resources/webhooks.js.map +1 -0
- package/resources/webhooks.mjs +233 -0
- package/resources/webhooks.mjs.map +1 -0
- package/src/client.ts +235 -79
- package/src/internal/utils/log.ts +0 -1
- package/src/internal/utils/query.ts +23 -0
- package/src/internal/utils.ts +1 -0
- package/src/resources/contacts.ts +335 -57
- package/src/resources/index.ts +81 -12
- package/src/resources/me.ts +333 -0
- package/src/resources/messages.ts +306 -147
- package/src/resources/numbers.ts +102 -0
- package/src/resources/profiles/campaigns.ts +501 -0
- package/src/resources/profiles/index.ts +38 -0
- package/src/resources/profiles/profiles.ts +1302 -0
- package/src/resources/profiles.ts +3 -0
- package/src/resources/templates.ts +424 -202
- package/src/resources/users.ts +366 -0
- package/src/resources/webhooks.ts +923 -0
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.mts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
- package/resources/number-lookup.d.mts +0 -59
- package/resources/number-lookup.d.mts.map +0 -1
- package/resources/number-lookup.d.ts +0 -59
- package/resources/number-lookup.d.ts.map +0 -1
- package/resources/number-lookup.js +0 -17
- package/resources/number-lookup.js.map +0 -1
- package/resources/number-lookup.mjs +0 -13
- package/resources/number-lookup.mjs.map +0 -1
- package/src/resources/number-lookup.ts +0 -80
package/src/client.ts
CHANGED
|
@@ -11,41 +11,111 @@ import type { APIResponseProps } from './internal/parse';
|
|
|
11
11
|
import { getPlatformHeaders } from './internal/detect-platform';
|
|
12
12
|
import * as Shims from './internal/shims';
|
|
13
13
|
import * as Opts from './internal/request-options';
|
|
14
|
+
import { stringifyQuery } from './internal/utils/query';
|
|
14
15
|
import { VERSION } from './version';
|
|
15
16
|
import * as Errors from './core/error';
|
|
16
17
|
import * as Uploads from './core/uploads';
|
|
17
18
|
import * as API from './resources/index';
|
|
18
19
|
import { APIPromise } from './core/api-promise';
|
|
19
20
|
import {
|
|
20
|
-
|
|
21
|
+
APIResponseOfContact,
|
|
22
|
+
ContactCreateParams,
|
|
23
|
+
ContactDeleteParams,
|
|
21
24
|
ContactListParams,
|
|
22
25
|
ContactListResponse,
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
ContactResponse,
|
|
27
|
+
ContactRetrieveParams,
|
|
28
|
+
ContactUpdateParams,
|
|
25
29
|
Contacts,
|
|
26
30
|
} from './resources/contacts';
|
|
31
|
+
import { Me, MeRetrieveParams, MeRetrieveResponse, ProfileSettings } from './resources/me';
|
|
27
32
|
import {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
MessageRetrieveActivitiesParams,
|
|
34
|
+
MessageRetrieveActivitiesResponse,
|
|
35
|
+
MessageRetrieveStatusParams,
|
|
36
|
+
MessageRetrieveStatusResponse,
|
|
37
|
+
MessageSendParams,
|
|
38
|
+
MessageSendResponse,
|
|
32
39
|
Messages,
|
|
33
40
|
} from './resources/messages';
|
|
41
|
+
import { NumberLookupParams, NumberLookupResponse, Numbers } from './resources/numbers';
|
|
34
42
|
import {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
APIResponseTemplate,
|
|
44
|
+
SentDmServicesCommonContractsPocOsAuthenticationConfig,
|
|
45
|
+
SentDmServicesCommonContractsPocOsTemplateBody,
|
|
46
|
+
SentDmServicesCommonContractsPocOsTemplateButton,
|
|
47
|
+
SentDmServicesCommonContractsPocOsTemplateButtonProps,
|
|
48
|
+
SentDmServicesCommonContractsPocOsTemplateFooter,
|
|
49
|
+
SentDmServicesCommonContractsPocOsTemplateHeader,
|
|
50
|
+
Template,
|
|
40
51
|
TemplateBodyContent,
|
|
41
52
|
TemplateCreateParams,
|
|
42
53
|
TemplateDefinition,
|
|
54
|
+
TemplateDeleteParams,
|
|
43
55
|
TemplateListParams,
|
|
44
56
|
TemplateListResponse,
|
|
45
|
-
|
|
57
|
+
TemplateRetrieveParams,
|
|
58
|
+
TemplateUpdateParams,
|
|
46
59
|
TemplateVariable,
|
|
47
60
|
Templates,
|
|
48
61
|
} from './resources/templates';
|
|
62
|
+
import {
|
|
63
|
+
APIResponseOfUser,
|
|
64
|
+
UserInviteParams,
|
|
65
|
+
UserListParams,
|
|
66
|
+
UserListResponse,
|
|
67
|
+
UserRemoveParams,
|
|
68
|
+
UserResponse,
|
|
69
|
+
UserRetrieveParams,
|
|
70
|
+
UserUpdateRoleParams,
|
|
71
|
+
Users,
|
|
72
|
+
} from './resources/users';
|
|
73
|
+
import {
|
|
74
|
+
APIMeta,
|
|
75
|
+
APIResponseWebhook,
|
|
76
|
+
ErrorDetail,
|
|
77
|
+
MutationRequest,
|
|
78
|
+
PaginationMeta,
|
|
79
|
+
WebhookCreateParams,
|
|
80
|
+
WebhookDeleteParams,
|
|
81
|
+
WebhookListEventTypesParams,
|
|
82
|
+
WebhookListEventTypesResponse,
|
|
83
|
+
WebhookListEventsParams,
|
|
84
|
+
WebhookListEventsResponse,
|
|
85
|
+
WebhookListParams,
|
|
86
|
+
WebhookListResponse,
|
|
87
|
+
WebhookResponse,
|
|
88
|
+
WebhookRetrieveParams,
|
|
89
|
+
WebhookRotateSecretParams,
|
|
90
|
+
WebhookRotateSecretResponse,
|
|
91
|
+
WebhookTestParams,
|
|
92
|
+
WebhookTestResponse,
|
|
93
|
+
WebhookToggleStatusParams,
|
|
94
|
+
WebhookUpdateParams,
|
|
95
|
+
Webhooks,
|
|
96
|
+
} from './resources/webhooks';
|
|
97
|
+
import {
|
|
98
|
+
APIResponseOfProfileDetail,
|
|
99
|
+
BillingContactInfo,
|
|
100
|
+
BrandsBrandData,
|
|
101
|
+
DestinationCountry,
|
|
102
|
+
PaymentDetails,
|
|
103
|
+
ProfileCompleteParams,
|
|
104
|
+
ProfileCompleteResponse,
|
|
105
|
+
ProfileCreateParams,
|
|
106
|
+
ProfileDeleteParams,
|
|
107
|
+
ProfileDetail,
|
|
108
|
+
ProfileListParams,
|
|
109
|
+
ProfileListResponse,
|
|
110
|
+
ProfileRetrieveParams,
|
|
111
|
+
ProfileUpdateParams,
|
|
112
|
+
Profiles,
|
|
113
|
+
SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo,
|
|
114
|
+
SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo,
|
|
115
|
+
SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo,
|
|
116
|
+
TcrBrandRelationship,
|
|
117
|
+
TcrVertical,
|
|
118
|
+
} from './resources/profiles/profiles';
|
|
49
119
|
import { type Fetch } from './internal/builtin-types';
|
|
50
120
|
import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
|
|
51
121
|
import { FinalRequestOptions, RequestOptions } from './internal/request-options';
|
|
@@ -65,11 +135,6 @@ export interface ClientOptions {
|
|
|
65
135
|
*/
|
|
66
136
|
apiKey?: string | undefined;
|
|
67
137
|
|
|
68
|
-
/**
|
|
69
|
-
* Customer sender ID (UUID) identifying the customer account. Obtain this from your account settings. Pass via the `x-sender-id` header.
|
|
70
|
-
*/
|
|
71
|
-
senderID?: string | undefined;
|
|
72
|
-
|
|
73
138
|
/**
|
|
74
139
|
* Override the default base URL for the API, e.g., "https://api.example.com/v2/"
|
|
75
140
|
*
|
|
@@ -144,7 +209,6 @@ export interface ClientOptions {
|
|
|
144
209
|
*/
|
|
145
210
|
export class SentDm {
|
|
146
211
|
apiKey: string;
|
|
147
|
-
senderID: string;
|
|
148
212
|
|
|
149
213
|
baseURL: string;
|
|
150
214
|
maxRetries: number;
|
|
@@ -162,7 +226,6 @@ export class SentDm {
|
|
|
162
226
|
* API Client for interfacing with the Sent Dm API.
|
|
163
227
|
*
|
|
164
228
|
* @param {string | undefined} [opts.apiKey=process.env['SENT_DM_API_KEY'] ?? undefined]
|
|
165
|
-
* @param {string | undefined} [opts.senderID=process.env['SENT_DM_SENDER_ID'] ?? undefined]
|
|
166
229
|
* @param {string} [opts.baseURL=process.env['SENT_DM_BASE_URL'] ?? https://api.sent.dm] - Override the default base URL for the API.
|
|
167
230
|
* @param {number} [opts.timeout=1 minute] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
|
|
168
231
|
* @param {MergedRequestInit} [opts.fetchOptions] - Additional `RequestInit` options to be passed to `fetch` calls.
|
|
@@ -174,7 +237,6 @@ export class SentDm {
|
|
|
174
237
|
constructor({
|
|
175
238
|
baseURL = readEnv('SENT_DM_BASE_URL'),
|
|
176
239
|
apiKey = readEnv('SENT_DM_API_KEY'),
|
|
177
|
-
senderID = readEnv('SENT_DM_SENDER_ID'),
|
|
178
240
|
...opts
|
|
179
241
|
}: ClientOptions = {}) {
|
|
180
242
|
if (apiKey === undefined) {
|
|
@@ -182,15 +244,9 @@ export class SentDm {
|
|
|
182
244
|
"The SENT_DM_API_KEY environment variable is missing or empty; either provide it, or instantiate the SentDm client with an apiKey option, like new SentDm({ apiKey: 'My API Key' }).",
|
|
183
245
|
);
|
|
184
246
|
}
|
|
185
|
-
if (senderID === undefined) {
|
|
186
|
-
throw new Errors.SentDmError(
|
|
187
|
-
"The SENT_DM_SENDER_ID environment variable is missing or empty; either provide it, or instantiate the SentDm client with an senderID option, like new SentDm({ senderID: 'My Sender ID' }).",
|
|
188
|
-
);
|
|
189
|
-
}
|
|
190
247
|
|
|
191
248
|
const options: ClientOptions = {
|
|
192
249
|
apiKey,
|
|
193
|
-
senderID,
|
|
194
250
|
...opts,
|
|
195
251
|
baseURL: baseURL || `https://api.sent.dm`,
|
|
196
252
|
};
|
|
@@ -213,7 +269,6 @@ export class SentDm {
|
|
|
213
269
|
this._options = options;
|
|
214
270
|
|
|
215
271
|
this.apiKey = apiKey;
|
|
216
|
-
this.senderID = senderID;
|
|
217
272
|
}
|
|
218
273
|
|
|
219
274
|
/**
|
|
@@ -230,7 +285,6 @@ export class SentDm {
|
|
|
230
285
|
fetch: this.fetch,
|
|
231
286
|
fetchOptions: this.fetchOptions,
|
|
232
287
|
apiKey: this.apiKey,
|
|
233
|
-
senderID: this.senderID,
|
|
234
288
|
...options,
|
|
235
289
|
});
|
|
236
290
|
return client;
|
|
@@ -252,35 +306,14 @@ export class SentDm {
|
|
|
252
306
|
}
|
|
253
307
|
|
|
254
308
|
protected async authHeaders(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {
|
|
255
|
-
return buildHeaders([await this.customerAPIKeyAuth(opts), await this.customerSenderIDAuth(opts)]);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
protected async customerAPIKeyAuth(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {
|
|
259
309
|
return buildHeaders([{ 'x-api-key': this.apiKey }]);
|
|
260
310
|
}
|
|
261
311
|
|
|
262
|
-
protected async customerSenderIDAuth(opts: FinalRequestOptions): Promise<NullableHeaders | undefined> {
|
|
263
|
-
return buildHeaders([{ 'x-sender-id': this.senderID }]);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
312
|
/**
|
|
267
313
|
* Basic re-implementation of `qs.stringify` for primitive types.
|
|
268
314
|
*/
|
|
269
|
-
protected stringifyQuery(query: Record<string, unknown>): string {
|
|
270
|
-
return
|
|
271
|
-
.filter(([_, value]) => typeof value !== 'undefined')
|
|
272
|
-
.map(([key, value]) => {
|
|
273
|
-
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
274
|
-
return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
|
|
275
|
-
}
|
|
276
|
-
if (value === null) {
|
|
277
|
-
return `${encodeURIComponent(key)}=`;
|
|
278
|
-
}
|
|
279
|
-
throw new Errors.SentDmError(
|
|
280
|
-
`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`,
|
|
281
|
-
);
|
|
282
|
-
})
|
|
283
|
-
.join('&');
|
|
315
|
+
protected stringifyQuery(query: object | Record<string, unknown>): string {
|
|
316
|
+
return stringifyQuery(query);
|
|
284
317
|
}
|
|
285
318
|
|
|
286
319
|
private getUserAgent(): string {
|
|
@@ -312,12 +345,13 @@ export class SentDm {
|
|
|
312
345
|
: new URL(baseURL + (baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));
|
|
313
346
|
|
|
314
347
|
const defaultQuery = this.defaultQuery();
|
|
315
|
-
|
|
316
|
-
|
|
348
|
+
const pathQuery = Object.fromEntries(url.searchParams);
|
|
349
|
+
if (!isEmptyObj(defaultQuery) || !isEmptyObj(pathQuery)) {
|
|
350
|
+
query = { ...pathQuery, ...defaultQuery, ...query };
|
|
317
351
|
}
|
|
318
352
|
|
|
319
353
|
if (typeof query === 'object' && query && !Array.isArray(query)) {
|
|
320
|
-
url.search = this.stringifyQuery(query
|
|
354
|
+
url.search = this.stringifyQuery(query);
|
|
321
355
|
}
|
|
322
356
|
|
|
323
357
|
return url.toString();
|
|
@@ -622,9 +656,9 @@ export class SentDm {
|
|
|
622
656
|
}
|
|
623
657
|
}
|
|
624
658
|
|
|
625
|
-
// If the API asks us to wait a certain amount of time
|
|
626
|
-
//
|
|
627
|
-
if (
|
|
659
|
+
// If the API asks us to wait a certain amount of time, just do what it
|
|
660
|
+
// says, but otherwise calculate a default
|
|
661
|
+
if (timeoutMillis === undefined) {
|
|
628
662
|
const maxRetries = options.maxRetries ?? this.maxRetries;
|
|
629
663
|
timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);
|
|
630
664
|
}
|
|
@@ -750,6 +784,14 @@ export class SentDm {
|
|
|
750
784
|
(Symbol.iterator in body && 'next' in body && typeof body.next === 'function'))
|
|
751
785
|
) {
|
|
752
786
|
return { bodyHeaders: undefined, body: Shims.ReadableStreamFrom(body as AsyncIterable<Uint8Array>) };
|
|
787
|
+
} else if (
|
|
788
|
+
typeof body === 'object' &&
|
|
789
|
+
headers.values.get('content-type') === 'application/x-www-form-urlencoded'
|
|
790
|
+
) {
|
|
791
|
+
return {
|
|
792
|
+
bodyHeaders: { 'content-type': 'application/x-www-form-urlencoded' },
|
|
793
|
+
body: this.stringifyQuery(body),
|
|
794
|
+
};
|
|
753
795
|
} else {
|
|
754
796
|
return this.#encoder({ body, headers });
|
|
755
797
|
}
|
|
@@ -774,51 +816,165 @@ export class SentDm {
|
|
|
774
816
|
|
|
775
817
|
static toFile = Uploads.toFile;
|
|
776
818
|
|
|
777
|
-
|
|
778
|
-
|
|
819
|
+
/**
|
|
820
|
+
* Configure webhook endpoints for real-time event delivery
|
|
821
|
+
*/
|
|
822
|
+
webhooks: API.Webhooks = new API.Webhooks(this);
|
|
823
|
+
/**
|
|
824
|
+
* Invite, update, and manage organization users and roles
|
|
825
|
+
*/
|
|
826
|
+
users: API.Users = new API.Users(this);
|
|
827
|
+
/**
|
|
828
|
+
* Manage message templates with variable substitution
|
|
829
|
+
*/
|
|
779
830
|
templates: API.Templates = new API.Templates(this);
|
|
780
|
-
|
|
831
|
+
/**
|
|
832
|
+
* Manage organization profiles
|
|
833
|
+
*/
|
|
834
|
+
profiles: API.Profiles = new API.Profiles(this);
|
|
835
|
+
/**
|
|
836
|
+
* Manage and lookup phone numbers
|
|
837
|
+
*/
|
|
838
|
+
numbers: API.Numbers = new API.Numbers(this);
|
|
839
|
+
/**
|
|
840
|
+
* Send and track SMS and WhatsApp messages
|
|
841
|
+
*/
|
|
842
|
+
messages: API.Messages = new API.Messages(this);
|
|
843
|
+
/**
|
|
844
|
+
* Create, update, and manage customer contact lists
|
|
845
|
+
*/
|
|
846
|
+
contacts: API.Contacts = new API.Contacts(this);
|
|
847
|
+
/**
|
|
848
|
+
* Retrieve account details
|
|
849
|
+
*/
|
|
850
|
+
me: API.Me = new API.Me(this);
|
|
781
851
|
}
|
|
782
852
|
|
|
783
|
-
SentDm.
|
|
784
|
-
SentDm.
|
|
853
|
+
SentDm.Webhooks = Webhooks;
|
|
854
|
+
SentDm.Users = Users;
|
|
785
855
|
SentDm.Templates = Templates;
|
|
786
|
-
SentDm.
|
|
856
|
+
SentDm.Profiles = Profiles;
|
|
857
|
+
SentDm.Numbers = Numbers;
|
|
858
|
+
SentDm.Messages = Messages;
|
|
859
|
+
SentDm.Contacts = Contacts;
|
|
860
|
+
SentDm.Me = Me;
|
|
787
861
|
|
|
788
862
|
export declare namespace SentDm {
|
|
789
863
|
export type RequestOptions = Opts.RequestOptions;
|
|
790
864
|
|
|
791
865
|
export {
|
|
792
|
-
|
|
793
|
-
type
|
|
794
|
-
type
|
|
795
|
-
type
|
|
796
|
-
type
|
|
797
|
-
type
|
|
866
|
+
Webhooks as Webhooks,
|
|
867
|
+
type APIMeta as APIMeta,
|
|
868
|
+
type APIResponseWebhook as APIResponseWebhook,
|
|
869
|
+
type ErrorDetail as ErrorDetail,
|
|
870
|
+
type MutationRequest as MutationRequest,
|
|
871
|
+
type PaginationMeta as PaginationMeta,
|
|
872
|
+
type WebhookResponse as WebhookResponse,
|
|
873
|
+
type WebhookListResponse as WebhookListResponse,
|
|
874
|
+
type WebhookListEventTypesResponse as WebhookListEventTypesResponse,
|
|
875
|
+
type WebhookListEventsResponse as WebhookListEventsResponse,
|
|
876
|
+
type WebhookRotateSecretResponse as WebhookRotateSecretResponse,
|
|
877
|
+
type WebhookTestResponse as WebhookTestResponse,
|
|
878
|
+
type WebhookCreateParams as WebhookCreateParams,
|
|
879
|
+
type WebhookRetrieveParams as WebhookRetrieveParams,
|
|
880
|
+
type WebhookUpdateParams as WebhookUpdateParams,
|
|
881
|
+
type WebhookListParams as WebhookListParams,
|
|
882
|
+
type WebhookDeleteParams as WebhookDeleteParams,
|
|
883
|
+
type WebhookListEventTypesParams as WebhookListEventTypesParams,
|
|
884
|
+
type WebhookListEventsParams as WebhookListEventsParams,
|
|
885
|
+
type WebhookRotateSecretParams as WebhookRotateSecretParams,
|
|
886
|
+
type WebhookTestParams as WebhookTestParams,
|
|
887
|
+
type WebhookToggleStatusParams as WebhookToggleStatusParams,
|
|
798
888
|
};
|
|
799
889
|
|
|
800
890
|
export {
|
|
801
|
-
|
|
802
|
-
type
|
|
803
|
-
type
|
|
804
|
-
type
|
|
805
|
-
type
|
|
891
|
+
Users as Users,
|
|
892
|
+
type APIResponseOfUser as APIResponseOfUser,
|
|
893
|
+
type UserResponse as UserResponse,
|
|
894
|
+
type UserListResponse as UserListResponse,
|
|
895
|
+
type UserRetrieveParams as UserRetrieveParams,
|
|
896
|
+
type UserListParams as UserListParams,
|
|
897
|
+
type UserInviteParams as UserInviteParams,
|
|
898
|
+
type UserRemoveParams as UserRemoveParams,
|
|
899
|
+
type UserUpdateRoleParams as UserUpdateRoleParams,
|
|
806
900
|
};
|
|
807
901
|
|
|
808
902
|
export {
|
|
809
903
|
Templates as Templates,
|
|
904
|
+
type APIResponseTemplate as APIResponseTemplate,
|
|
905
|
+
type SentDmServicesCommonContractsPocOsAuthenticationConfig as SentDmServicesCommonContractsPocOsAuthenticationConfig,
|
|
906
|
+
type SentDmServicesCommonContractsPocOsTemplateBody as SentDmServicesCommonContractsPocOsTemplateBody,
|
|
907
|
+
type SentDmServicesCommonContractsPocOsTemplateButton as SentDmServicesCommonContractsPocOsTemplateButton,
|
|
908
|
+
type SentDmServicesCommonContractsPocOsTemplateButtonProps as SentDmServicesCommonContractsPocOsTemplateButtonProps,
|
|
909
|
+
type SentDmServicesCommonContractsPocOsTemplateFooter as SentDmServicesCommonContractsPocOsTemplateFooter,
|
|
910
|
+
type SentDmServicesCommonContractsPocOsTemplateHeader as SentDmServicesCommonContractsPocOsTemplateHeader,
|
|
911
|
+
type Template as Template,
|
|
810
912
|
type TemplateBodyContent as TemplateBodyContent,
|
|
811
913
|
type TemplateDefinition as TemplateDefinition,
|
|
812
|
-
type TemplateResponseV2 as TemplateResponseV2,
|
|
813
914
|
type TemplateVariable as TemplateVariable,
|
|
814
915
|
type TemplateListResponse as TemplateListResponse,
|
|
815
916
|
type TemplateCreateParams as TemplateCreateParams,
|
|
917
|
+
type TemplateRetrieveParams as TemplateRetrieveParams,
|
|
918
|
+
type TemplateUpdateParams as TemplateUpdateParams,
|
|
816
919
|
type TemplateListParams as TemplateListParams,
|
|
920
|
+
type TemplateDeleteParams as TemplateDeleteParams,
|
|
921
|
+
};
|
|
922
|
+
|
|
923
|
+
export {
|
|
924
|
+
Profiles as Profiles,
|
|
925
|
+
type APIResponseOfProfileDetail as APIResponseOfProfileDetail,
|
|
926
|
+
type BillingContactInfo as BillingContactInfo,
|
|
927
|
+
type BrandsBrandData as BrandsBrandData,
|
|
928
|
+
type DestinationCountry as DestinationCountry,
|
|
929
|
+
type PaymentDetails as PaymentDetails,
|
|
930
|
+
type ProfileDetail as ProfileDetail,
|
|
931
|
+
type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandBusinessInfo,
|
|
932
|
+
type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandComplianceInfo,
|
|
933
|
+
type SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo as SentDmServicesEndpointsCustomerApIv3ContractsRequestsBrandsBrandContactInfo,
|
|
934
|
+
type TcrBrandRelationship as TcrBrandRelationship,
|
|
935
|
+
type TcrVertical as TcrVertical,
|
|
936
|
+
type ProfileListResponse as ProfileListResponse,
|
|
937
|
+
type ProfileCompleteResponse as ProfileCompleteResponse,
|
|
938
|
+
type ProfileCreateParams as ProfileCreateParams,
|
|
939
|
+
type ProfileRetrieveParams as ProfileRetrieveParams,
|
|
940
|
+
type ProfileUpdateParams as ProfileUpdateParams,
|
|
941
|
+
type ProfileListParams as ProfileListParams,
|
|
942
|
+
type ProfileDeleteParams as ProfileDeleteParams,
|
|
943
|
+
type ProfileCompleteParams as ProfileCompleteParams,
|
|
944
|
+
};
|
|
945
|
+
|
|
946
|
+
export {
|
|
947
|
+
Numbers as Numbers,
|
|
948
|
+
type NumberLookupResponse as NumberLookupResponse,
|
|
949
|
+
type NumberLookupParams as NumberLookupParams,
|
|
950
|
+
};
|
|
951
|
+
|
|
952
|
+
export {
|
|
953
|
+
Messages as Messages,
|
|
954
|
+
type MessageRetrieveActivitiesResponse as MessageRetrieveActivitiesResponse,
|
|
955
|
+
type MessageRetrieveStatusResponse as MessageRetrieveStatusResponse,
|
|
956
|
+
type MessageSendResponse as MessageSendResponse,
|
|
957
|
+
type MessageRetrieveActivitiesParams as MessageRetrieveActivitiesParams,
|
|
958
|
+
type MessageRetrieveStatusParams as MessageRetrieveStatusParams,
|
|
959
|
+
type MessageSendParams as MessageSendParams,
|
|
960
|
+
};
|
|
961
|
+
|
|
962
|
+
export {
|
|
963
|
+
Contacts as Contacts,
|
|
964
|
+
type APIResponseOfContact as APIResponseOfContact,
|
|
965
|
+
type ContactResponse as ContactResponse,
|
|
966
|
+
type ContactListResponse as ContactListResponse,
|
|
967
|
+
type ContactCreateParams as ContactCreateParams,
|
|
968
|
+
type ContactRetrieveParams as ContactRetrieveParams,
|
|
969
|
+
type ContactUpdateParams as ContactUpdateParams,
|
|
970
|
+
type ContactListParams as ContactListParams,
|
|
971
|
+
type ContactDeleteParams as ContactDeleteParams,
|
|
817
972
|
};
|
|
818
973
|
|
|
819
974
|
export {
|
|
820
|
-
|
|
821
|
-
type
|
|
822
|
-
type
|
|
975
|
+
Me as Me,
|
|
976
|
+
type ProfileSettings as ProfileSettings,
|
|
977
|
+
type MeRetrieveResponse as MeRetrieveResponse,
|
|
978
|
+
type MeRetrieveParams as MeRetrieveParams,
|
|
823
979
|
};
|
|
824
980
|
}
|
|
@@ -107,7 +107,6 @@ export const formatRequestDetails = (details: {
|
|
|
107
107
|
name,
|
|
108
108
|
(
|
|
109
109
|
name.toLowerCase() === 'x-api-key' ||
|
|
110
|
-
name.toLowerCase() === 'x-sender-id' ||
|
|
111
110
|
name.toLowerCase() === 'authorization' ||
|
|
112
111
|
name.toLowerCase() === 'cookie' ||
|
|
113
112
|
name.toLowerCase() === 'set-cookie'
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { SentDmError } from '../../core/error';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Basic re-implementation of `qs.stringify` for primitive types.
|
|
7
|
+
*/
|
|
8
|
+
export function stringifyQuery(query: object | Record<string, unknown>) {
|
|
9
|
+
return Object.entries(query)
|
|
10
|
+
.filter(([_, value]) => typeof value !== 'undefined')
|
|
11
|
+
.map(([key, value]) => {
|
|
12
|
+
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
13
|
+
return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
|
|
14
|
+
}
|
|
15
|
+
if (value === null) {
|
|
16
|
+
return `${encodeURIComponent(key)}=`;
|
|
17
|
+
}
|
|
18
|
+
throw new SentDmError(
|
|
19
|
+
`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`,
|
|
20
|
+
);
|
|
21
|
+
})
|
|
22
|
+
.join('&');
|
|
23
|
+
}
|
package/src/internal/utils.ts
CHANGED