millionsend 0.1.0 → 0.3.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/README.md +27 -14
- package/dist/http.d.ts +10 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +28 -5
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/resources/broadcasts.d.ts.map +1 -1
- package/dist/resources/broadcasts.js +0 -1
- package/dist/resources/broadcasts.js.map +1 -1
- package/dist/resources/contacts.d.ts +1 -3
- package/dist/resources/contacts.d.ts.map +1 -1
- package/dist/resources/contacts.js +4 -13
- package/dist/resources/contacts.js.map +1 -1
- package/dist/resources/deliverability.d.ts +14 -0
- package/dist/resources/deliverability.d.ts.map +1 -0
- package/dist/resources/deliverability.js +15 -0
- package/dist/resources/deliverability.js.map +1 -0
- package/dist/resources/emails.d.ts +3 -1
- package/dist/resources/emails.d.ts.map +1 -1
- package/dist/resources/emails.js +7 -0
- package/dist/resources/emails.js.map +1 -1
- package/dist/resources/segments.d.ts +1 -1
- package/dist/resources/segments.js +7 -7
- package/dist/resources/segments.js.map +1 -1
- package/dist/types.d.ts +42 -29
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/resources/audiences.d.ts +0 -17
- package/dist/resources/audiences.d.ts.map +0 -1
- package/dist/resources/audiences.js +0 -25
- package/dist/resources/audiences.js.map +0 -1
package/README.md
CHANGED
|
@@ -43,11 +43,14 @@ new MillionSend(apiKey?, {
|
|
|
43
43
|
baseUrl?, // your instance URL; defaults to MILLIONSEND_BASE_URL, then http://localhost:3001
|
|
44
44
|
fetch?, // custom fetch implementation (proxies, tests, custom agents)
|
|
45
45
|
userAgent?, // extra User-Agent suffix
|
|
46
|
+
timeoutMs?, // request deadline; defaults to 30,000 ms
|
|
47
|
+
allowInsecureHttp?, // accept a non-loopback http:// baseUrl (default: refused)
|
|
46
48
|
});
|
|
47
49
|
```
|
|
48
50
|
|
|
49
51
|
- `apiKey` falls back to `process.env.MILLIONSEND_API_KEY`. Missing key → throws at construction.
|
|
50
52
|
- `baseUrl` falls back to `process.env.MILLIONSEND_BASE_URL`. MillionSend is self-hosted, so **set this to your deployment in production.**
|
|
53
|
+
- Plain `http://` is only accepted for loopback hosts (`localhost`, `127.0.0.1`, `::1`); any other `http://` URL throws at construction, since the API key is sent as a bearer header. Pass `allowInsecureHttp: true` to talk to a non-TLS instance elsewhere (e.g. inside a private network).
|
|
51
54
|
|
|
52
55
|
## Errors
|
|
53
56
|
|
|
@@ -68,7 +71,8 @@ if (error?.name === "not_found") { /* … */ }
|
|
|
68
71
|
|
|
69
72
|
```ts
|
|
70
73
|
await ms.emails.send(payload, { idempotencyKey }); // POST /emails
|
|
71
|
-
await ms.emails.get(id); // GET /emails/:id
|
|
74
|
+
await ms.emails.get(id); // GET /emails/:id (includes a nullable `score`)
|
|
75
|
+
await ms.emails.getInsights(id); // GET /emails/:id/insights (best-practice report)
|
|
72
76
|
await ms.emails.cancel(id); // POST /emails/:id/cancel (scheduled only)
|
|
73
77
|
await ms.batch.send([payloadA, payloadB], { idempotencyKey }); // up to 100
|
|
74
78
|
```
|
|
@@ -76,21 +80,18 @@ await ms.batch.send([payloadA, payloadB], { idempotencyKey }); // up to 100
|
|
|
76
80
|
Send options are camelCase and mapped to the wire: `replyTo` → `reply_to`,
|
|
77
81
|
`scheduledAt` → `scheduled_at`. `to`/`cc`/`bcc`/`replyTo` accept a string or an array.
|
|
78
82
|
|
|
79
|
-
###
|
|
83
|
+
### Contacts
|
|
80
84
|
|
|
81
|
-
|
|
82
|
-
const { data: audience } = await ms.audiences.create({ name: "Registered users" });
|
|
83
|
-
await ms.audiences.list({ limit: 20, after });
|
|
84
|
-
await ms.audiences.get(id);
|
|
85
|
-
await ms.audiences.remove(id);
|
|
85
|
+
Contacts are team-global — one list per team, no audiences.
|
|
86
86
|
|
|
87
|
-
|
|
87
|
+
```ts
|
|
88
|
+
await ms.contacts.create({ email: "ada@acme.dev", firstName: "Ada",
|
|
88
89
|
properties: { plan: "pro" } });
|
|
89
|
-
await ms.contacts.get({
|
|
90
|
+
await ms.contacts.get({ email }); // by id or email (email wins)
|
|
90
91
|
await ms.contacts.get(contactId); // bare string works too
|
|
91
92
|
await ms.contacts.update({ id, unsubscribed: true, firstName: null }); // null clears
|
|
92
93
|
await ms.contacts.remove({ email });
|
|
93
|
-
await ms.contacts.list({
|
|
94
|
+
await ms.contacts.list({ limit: 50 });
|
|
94
95
|
|
|
95
96
|
// Topic subscriptions (granular unsubscribe)
|
|
96
97
|
await ms.contacts.topics.update({ email, topics: [{ id: topicId, subscription: "opt_out" }] });
|
|
@@ -107,9 +108,11 @@ await ms.topics.remove(id);
|
|
|
107
108
|
|
|
108
109
|
### Broadcasts
|
|
109
110
|
|
|
111
|
+
Target a `segmentId` and/or `topicId`; omit both to send to all contacts.
|
|
112
|
+
|
|
110
113
|
```ts
|
|
111
114
|
const { data } = await ms.broadcasts.create({
|
|
112
|
-
|
|
115
|
+
segmentId, from: "Acme <news@acme.dev>", subject: "Launch",
|
|
113
116
|
html: "<p>Hi {{{FIRST_NAME|there}}}</p>",
|
|
114
117
|
});
|
|
115
118
|
await ms.broadcasts.list();
|
|
@@ -122,13 +125,12 @@ await ms.broadcasts.remove(id); // draft only
|
|
|
122
125
|
|
|
123
126
|
### Segments (MillionSend extension)
|
|
124
127
|
|
|
125
|
-
Dynamic segments are a saved filter over
|
|
128
|
+
Dynamic segments are a saved filter over the team's contacts — a MillionSend
|
|
126
129
|
superset with no Resend equivalent.
|
|
127
130
|
|
|
128
131
|
```ts
|
|
129
132
|
await ms.segments.create({
|
|
130
133
|
name: "Pro plan",
|
|
131
|
-
audienceId,
|
|
132
134
|
filter: { match: "all", conditions: [{ field: "property:plan", op: "equals", value: "pro" }] },
|
|
133
135
|
});
|
|
134
136
|
await ms.segments.get(id); // includes a live contact_count
|
|
@@ -137,6 +139,17 @@ await ms.segments.update(id, { name: "Pro tier" });
|
|
|
137
139
|
await ms.segments.remove(id);
|
|
138
140
|
```
|
|
139
141
|
|
|
142
|
+
### Deliverability (MillionSend extension)
|
|
143
|
+
|
|
144
|
+
The account-level deliverability score over the trailing 30 days. Scores are
|
|
145
|
+
0–10 (`null` until there is enough data); per-email reports live on
|
|
146
|
+
`ms.emails.getInsights(id)`.
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
const { data } = await ms.deliverability.get();
|
|
150
|
+
// data.score, data.band, data.complaint_rate, data.guardrail_status, …
|
|
151
|
+
```
|
|
152
|
+
|
|
140
153
|
## Migrating from Resend
|
|
141
154
|
|
|
142
155
|
```diff
|
|
@@ -149,7 +162,7 @@ await ms.segments.remove(id);
|
|
|
149
162
|
Method names and payloads match. Notes:
|
|
150
163
|
|
|
151
164
|
- **Domains and API keys** are managed in the MillionSend dashboard, not via the API, so there are no `.domains`/`.apiKeys` resources here.
|
|
152
|
-
-
|
|
165
|
+
- **No audiences.** Contacts are team-global, so `.audiences` calls have no equivalent — drop them and call `.contacts` directly. For subsets of contacts, use `.segments` (dynamic filters) or topics.
|
|
153
166
|
|
|
154
167
|
## License
|
|
155
168
|
|
package/dist/http.d.ts
CHANGED
|
@@ -10,6 +10,14 @@ export interface MillionSendOptions {
|
|
|
10
10
|
fetch?: typeof fetch;
|
|
11
11
|
/** Extra User-Agent suffix appended after the SDK's own token. */
|
|
12
12
|
userAgent?: string;
|
|
13
|
+
/** Request deadline in milliseconds. Defaults to 30 seconds. */
|
|
14
|
+
timeoutMs?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Plain `http://` is only accepted for loopback hosts, since the API key
|
|
17
|
+
* travels as a bearer header. Set to `true` to talk to a non-TLS instance
|
|
18
|
+
* elsewhere (e.g. inside a private network).
|
|
19
|
+
*/
|
|
20
|
+
allowInsecureHttp?: boolean;
|
|
13
21
|
}
|
|
14
22
|
export interface RequestOptions {
|
|
15
23
|
/** POST-only idempotency key (emails.send, batch.send). */
|
|
@@ -23,9 +31,10 @@ interface DoRequest {
|
|
|
23
31
|
idempotencyKey?: string | undefined;
|
|
24
32
|
}
|
|
25
33
|
export declare class HttpClient {
|
|
26
|
-
private
|
|
34
|
+
#private;
|
|
27
35
|
private readonly baseUrl;
|
|
28
36
|
private readonly fetchImpl;
|
|
37
|
+
private readonly timeoutMs;
|
|
29
38
|
private readonly userAgent;
|
|
30
39
|
constructor(apiKey: string, options?: MillionSendOptions);
|
|
31
40
|
request<T>({ method, path, body, query, idempotencyKey }: DoRequest): Promise<Result<T>>;
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,MAAM,EAAmB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,MAAM,EAAmB,MAAM,YAAY,CAAC;AAM9E,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,SAAS;IACjB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IAChE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AA0BD,qBAAa,UAAU;;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;IA2BtD,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CA0C/F"}
|
package/dist/http.js
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import { toErrorResponse } from "./error.js";
|
|
2
2
|
const DEFAULT_BASE_URL = "http://localhost:3001";
|
|
3
|
-
const
|
|
3
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
4
|
+
const SDK_VERSION = "0.3.0";
|
|
5
|
+
const LOOPBACK_HOSTS = new Set(["localhost", "127.0.0.1", "[::1]"]);
|
|
6
|
+
/** True for an `http://` URL whose host is not loopback. Unparseable URLs are left to fetch. */
|
|
7
|
+
function isInsecureHttpUrl(url) {
|
|
8
|
+
let parsed;
|
|
9
|
+
try {
|
|
10
|
+
parsed = new URL(url);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (parsed.protocol !== "http:")
|
|
16
|
+
return false;
|
|
17
|
+
return !LOOPBACK_HOSTS.has(parsed.hostname) && !parsed.hostname.startsWith("127.");
|
|
18
|
+
}
|
|
4
19
|
function queryString(query) {
|
|
5
20
|
if (!query)
|
|
6
21
|
return "";
|
|
@@ -13,30 +28,38 @@ function queryString(query) {
|
|
|
13
28
|
return s ? `?${s}` : "";
|
|
14
29
|
}
|
|
15
30
|
export class HttpClient {
|
|
16
|
-
apiKey;
|
|
31
|
+
#apiKey;
|
|
17
32
|
baseUrl;
|
|
18
33
|
fetchImpl;
|
|
34
|
+
timeoutMs;
|
|
19
35
|
userAgent;
|
|
20
36
|
constructor(apiKey, options = {}) {
|
|
21
|
-
this
|
|
37
|
+
this.#apiKey = apiKey;
|
|
22
38
|
this.baseUrl = (options.baseUrl ?? process.env.MILLIONSEND_BASE_URL ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
|
|
39
|
+
if (!options.allowInsecureHttp && isInsecureHttpUrl(this.baseUrl)) {
|
|
40
|
+
throw new Error(`Refusing to send the API key over plain http to ${this.baseUrl}. Use https, or set allowInsecureHttp: true.`);
|
|
41
|
+
}
|
|
23
42
|
// Bind so a passed-in fetch keeps its own `this`; default to the global.
|
|
24
43
|
const chosen = options.fetch ?? globalThis.fetch;
|
|
25
44
|
if (!chosen) {
|
|
26
45
|
throw new Error("No fetch implementation found. Use Node 18+ or pass `fetch` in the client options.");
|
|
27
46
|
}
|
|
28
47
|
this.fetchImpl = chosen;
|
|
48
|
+
this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
49
|
+
if (!Number.isFinite(this.timeoutMs) || this.timeoutMs <= 0) {
|
|
50
|
+
throw new Error("timeoutMs must be a positive finite number.");
|
|
51
|
+
}
|
|
29
52
|
const base = `millionsend-node/${SDK_VERSION}`;
|
|
30
53
|
this.userAgent = options.userAgent ? `${base} ${options.userAgent}` : base;
|
|
31
54
|
}
|
|
32
55
|
async request({ method, path, body, query, idempotencyKey }) {
|
|
33
56
|
const url = `${this.baseUrl}${path}${queryString(query)}`;
|
|
34
57
|
const headers = {
|
|
35
|
-
Authorization: `Bearer ${this
|
|
58
|
+
Authorization: `Bearer ${this.#apiKey}`,
|
|
36
59
|
Accept: "application/json",
|
|
37
60
|
"User-Agent": this.userAgent,
|
|
38
61
|
};
|
|
39
|
-
const init = { method, headers };
|
|
62
|
+
const init = { method, headers, signal: AbortSignal.timeout(this.timeoutMs) };
|
|
40
63
|
if (body !== undefined && method !== "GET" && method !== "DELETE") {
|
|
41
64
|
headers["Content-Type"] = "application/json";
|
|
42
65
|
init.body = JSON.stringify(body);
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,WAAW,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,MAAM,WAAW,GAAG,OAAO,CAAC;AAoC5B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE,gGAAgG;AAChG,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,WAAW,CAAC,KAA8D;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC5B,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,OAAO,UAAU;IACZ,OAAO,CAAS;IACR,OAAO,CAAS;IAChB,SAAS,CAAe;IACxB,SAAS,CAAS;IAClB,SAAS,CAAS;IAEnC,YAAY,MAAc,EAAE,UAA8B,EAAE;QAC1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAC9F,MAAM,EACN,EAAE,CACH,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CACb,mDAAmD,IAAI,CAAC,OAAO,8CAA8C,CAC9G,CAAC;QACJ,CAAC;QACD,yEAAyE;QACzE,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,IAAI,GAAG,oBAAoB,WAAW,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAa;QACvE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAA2B;YACtC,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;YACvC,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,IAAI,CAAC,SAAS;SAC7B,CAAC;QACF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3F,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClE,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QACD,yEAAyE;QACzE,IAAI,cAAc,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,cAAc,CAAC;QAErF,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,GAAkB;gBAC3B,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/D,UAAU,EAAE,IAAI;aACjB,CAAC;YACF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,MAAM,GAAY,IAAI,CAAC;QAC3B,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type MillionSendOptions } from "./http.js";
|
|
2
|
-
import { Audiences } from "./resources/audiences.js";
|
|
3
2
|
import { Broadcasts } from "./resources/broadcasts.js";
|
|
4
3
|
import { Contacts } from "./resources/contacts.js";
|
|
4
|
+
import { Deliverability } from "./resources/deliverability.js";
|
|
5
5
|
import { Batch, Emails } from "./resources/emails.js";
|
|
6
6
|
import { Segments } from "./resources/segments.js";
|
|
7
7
|
import { Topics } from "./resources/topics.js";
|
|
@@ -26,11 +26,11 @@ import { Topics } from "./resources/topics.js";
|
|
|
26
26
|
export declare class MillionSend {
|
|
27
27
|
readonly emails: Emails;
|
|
28
28
|
readonly batch: Batch;
|
|
29
|
-
readonly audiences: Audiences;
|
|
30
29
|
readonly contacts: Contacts;
|
|
31
30
|
readonly broadcasts: Broadcasts;
|
|
32
31
|
readonly topics: Topics;
|
|
33
32
|
readonly segments: Segments;
|
|
33
|
+
readonly deliverability: Deliverability;
|
|
34
34
|
constructor(apiKey?: string, options?: MillionSendOptions);
|
|
35
35
|
}
|
|
36
36
|
export default MillionSend;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;gBAE5B,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;CAgB1D;AAED,eAAe,WAAW,CAAC;AAE3B,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpE,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HttpClient } from "./http.js";
|
|
2
|
-
import { Audiences } from "./resources/audiences.js";
|
|
3
2
|
import { Broadcasts } from "./resources/broadcasts.js";
|
|
4
3
|
import { Contacts } from "./resources/contacts.js";
|
|
4
|
+
import { Deliverability } from "./resources/deliverability.js";
|
|
5
5
|
import { Batch, Emails } from "./resources/emails.js";
|
|
6
6
|
import { Segments } from "./resources/segments.js";
|
|
7
7
|
import { Topics } from "./resources/topics.js";
|
|
@@ -26,11 +26,11 @@ import { Topics } from "./resources/topics.js";
|
|
|
26
26
|
export class MillionSend {
|
|
27
27
|
emails;
|
|
28
28
|
batch;
|
|
29
|
-
audiences;
|
|
30
29
|
contacts;
|
|
31
30
|
broadcasts;
|
|
32
31
|
topics;
|
|
33
32
|
segments;
|
|
33
|
+
deliverability;
|
|
34
34
|
constructor(apiKey, options) {
|
|
35
35
|
const key = apiKey ?? process.env.MILLIONSEND_API_KEY;
|
|
36
36
|
if (!key) {
|
|
@@ -39,11 +39,11 @@ export class MillionSend {
|
|
|
39
39
|
const http = new HttpClient(key, options);
|
|
40
40
|
this.emails = new Emails(http);
|
|
41
41
|
this.batch = new Batch(http);
|
|
42
|
-
this.audiences = new Audiences(http);
|
|
43
42
|
this.contacts = new Contacts(http);
|
|
44
43
|
this.broadcasts = new Broadcasts(http);
|
|
45
44
|
this.topics = new Topics(http);
|
|
46
45
|
this.segments = new Segments(http);
|
|
46
|
+
this.deliverability = new Deliverability(http);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
export default MillionSend;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA2B,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,WAAW;IACb,MAAM,CAAS;IACf,KAAK,CAAQ;IACb,QAAQ,CAAW;IACnB,UAAU,CAAa;IACvB,MAAM,CAAS;IACf,QAAQ,CAAW;IACnB,cAAc,CAAiB;IAExC,YAAY,MAAe,EAAE,OAA4B;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcasts.d.ts","sourceRoot":"","sources":["../../src/resources/broadcasts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,IAAI,EACJ,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"broadcasts.d.ts","sourceRoot":"","sources":["../../src/resources/broadcasts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,IAAI,EACJ,WAAW,EACX,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAerB,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,MAAM,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAIrE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAI3C,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAIrE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAQjF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAI5D,gEAAgE;IAChE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAQlF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;CAM7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcasts.js","sourceRoot":"","sources":["../../src/resources/broadcasts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAcxC,SAAS,MAAM,CAAC,CAAkD;IAChE,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,
|
|
1
|
+
{"version":3,"file":"broadcasts.js","sourceRoot":"","sources":["../../src/resources/broadcasts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAcxC,SAAS,MAAM,CAAC,CAAkD;IAChE,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,UAAU,EAAE,CAAC,CAAC,SAAS;QACvB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,QAAQ,EAAE,CAAC,CAAC,OAAO;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,MAAM,CAAC,OAA+B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC,OAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,OAA+B;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC7C,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,EAAU,EAAE,UAAgC,EAAE;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,OAAO;YAClD,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE;SAC5C,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe,kBAAkB,CAAC,EAAE,CAAC,SAAS;SACrD,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -15,8 +15,6 @@ export declare class Contacts {
|
|
|
15
15
|
get(address: string | ContactAddress): Promise<Result<Contact>>;
|
|
16
16
|
update(options: UpdateContactOptions): Promise<Result<ContactId>>;
|
|
17
17
|
remove(address: string | ContactAddress): Promise<Result<RemoveContactResponse>>;
|
|
18
|
-
list(options?: ListOptions
|
|
19
|
-
audienceId?: string;
|
|
20
|
-
}): Promise<Result<List<ContactListItem>>>;
|
|
18
|
+
list(options?: ListOptions): Promise<Result<List<ContactListItem>>>;
|
|
21
19
|
}
|
|
22
20
|
//# sourceMappingURL=contacts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,IAAI,EACJ,WAAW,EACX,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AA8BrB,+DAA+D;AAC/D,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,MAAM,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;CAQ1F;AAED,qBAAa,QAAQ;IAGP,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;gBAEF,IAAI,EAAE,UAAU;IAI7C,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAIjE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAI/D,MAAM,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAIjE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAIhF,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;CAGpE"}
|
|
@@ -2,12 +2,9 @@ import { listQuery } from "../query.js";
|
|
|
2
2
|
function normalize(address) {
|
|
3
3
|
return typeof address === "string" ? { id: address } : address;
|
|
4
4
|
}
|
|
5
|
-
/** Contact path: email wins over id
|
|
5
|
+
/** Contact path: email wins over id. */
|
|
6
6
|
function contactPath(addr) {
|
|
7
|
-
|
|
8
|
-
return addr.audienceId
|
|
9
|
-
? `/audiences/${encodeURIComponent(addr.audienceId)}/contacts/${key}`
|
|
10
|
-
: `/contacts/${key}`;
|
|
7
|
+
return `/contacts/${encodeURIComponent(addr.email ?? addr.id ?? "")}`;
|
|
11
8
|
}
|
|
12
9
|
function createBody(o) {
|
|
13
10
|
return {
|
|
@@ -49,10 +46,7 @@ export class Contacts {
|
|
|
49
46
|
this.topics = new ContactTopics(http);
|
|
50
47
|
}
|
|
51
48
|
create(payload) {
|
|
52
|
-
|
|
53
|
-
? `/audiences/${encodeURIComponent(payload.audienceId)}/contacts`
|
|
54
|
-
: "/contacts";
|
|
55
|
-
return this.http.request({ method: "POST", path, body: createBody(payload) });
|
|
49
|
+
return this.http.request({ method: "POST", path: "/contacts", body: createBody(payload) });
|
|
56
50
|
}
|
|
57
51
|
get(address) {
|
|
58
52
|
return this.http.request({ method: "GET", path: contactPath(normalize(address)) });
|
|
@@ -64,10 +58,7 @@ export class Contacts {
|
|
|
64
58
|
return this.http.request({ method: "DELETE", path: contactPath(normalize(address)) });
|
|
65
59
|
}
|
|
66
60
|
list(options) {
|
|
67
|
-
|
|
68
|
-
? `/audiences/${encodeURIComponent(options.audienceId)}/contacts`
|
|
69
|
-
: "/contacts";
|
|
70
|
-
return this.http.request({ method: "GET", path, query: listQuery(options) });
|
|
61
|
+
return this.http.request({ method: "GET", path: "/contacts", query: listQuery(options) });
|
|
71
62
|
}
|
|
72
63
|
}
|
|
73
64
|
//# sourceMappingURL=contacts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAexC,SAAS,SAAS,CAAC,OAAgC;IACjD,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACjE,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Result } from "../error.js";
|
|
2
|
+
import type { HttpClient } from "../http.js";
|
|
3
|
+
import type { Deliverability as DeliverabilityReport } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Account-level deliverability score over the trailing window (MillionSend
|
|
6
|
+
* extension, no Resend equivalent).
|
|
7
|
+
*/
|
|
8
|
+
export declare class Deliverability {
|
|
9
|
+
private readonly http;
|
|
10
|
+
constructor(http: HttpClient);
|
|
11
|
+
/** GET /deliverability */
|
|
12
|
+
get(): Promise<Result<DeliverabilityReport>>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=deliverability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverability.d.ts","sourceRoot":"","sources":["../../src/resources/deliverability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAE1E;;;GAGG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,0BAA0B;IAC1B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;CAG7C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account-level deliverability score over the trailing window (MillionSend
|
|
3
|
+
* extension, no Resend equivalent).
|
|
4
|
+
*/
|
|
5
|
+
export class Deliverability {
|
|
6
|
+
http;
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
/** GET /deliverability */
|
|
11
|
+
get() {
|
|
12
|
+
return this.http.request({ method: "GET", path: "/deliverability" });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=deliverability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliverability.js","sourceRoot":"","sources":["../../src/resources/deliverability.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,0BAA0B;IAC1B,GAAG;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvE,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Result } from "../error.js";
|
|
2
2
|
import type { HttpClient, RequestOptions } from "../http.js";
|
|
3
|
-
import type { CancelEmailResponse, CreateEmailResponse, Email, SendEmailOptions } from "../types.js";
|
|
3
|
+
import type { CancelEmailResponse, CreateEmailResponse, Email, EmailInsights, SendEmailOptions } from "../types.js";
|
|
4
4
|
export declare class Emails {
|
|
5
5
|
private readonly http;
|
|
6
6
|
constructor(http: HttpClient);
|
|
@@ -10,6 +10,8 @@ export declare class Emails {
|
|
|
10
10
|
create(payload: SendEmailOptions, options?: RequestOptions): Promise<Result<CreateEmailResponse>>;
|
|
11
11
|
/** GET /emails/:id */
|
|
12
12
|
get(id: string): Promise<Result<Email>>;
|
|
13
|
+
/** GET /emails/:id/insights — not_found until insights exist for the email. */
|
|
14
|
+
getInsights(id: string): Promise<Result<EmailInsights>>;
|
|
13
15
|
/** POST /emails/:id/cancel — only scheduled, unsent emails. */
|
|
14
16
|
cancel(id: string): Promise<Result<CancelEmailResponse>>;
|
|
15
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,EACL,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAiBrB,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,kDAAkD;IAClD,IAAI,CACF,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IASvC,+CAA+C;IAC/C,MAAM,CACJ,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAIvC,sBAAsB;IACtB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAIvC,+DAA+D;IAC/D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;CAMzD;AAED,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,kFAAkF;IAClF,IAAI,CACF,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC,CAAC;IASnD,+CAA+C;IAC/C,MAAM,CACJ,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC,CAAC;CAGpD"}
|
|
1
|
+
{"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,KAAK,EACL,aAAa,EACb,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAiBrB,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,kDAAkD;IAClD,IAAI,CACF,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IASvC,+CAA+C;IAC/C,MAAM,CACJ,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAIvC,sBAAsB;IACtB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAIvC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAOvD,+DAA+D;IAC/D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;CAMzD;AAED,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,kFAAkF;IAClF,IAAI,CACF,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC,CAAC;IASnD,+CAA+C;IAC/C,MAAM,CACJ,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,MAAM,CAAC;QAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC,CAAC;CAGpD"}
|
package/dist/resources/emails.js
CHANGED
|
@@ -34,6 +34,13 @@ export class Emails {
|
|
|
34
34
|
get(id) {
|
|
35
35
|
return this.http.request({ method: "GET", path: `/emails/${encodeURIComponent(id)}` });
|
|
36
36
|
}
|
|
37
|
+
/** GET /emails/:id/insights — not_found until insights exist for the email. */
|
|
38
|
+
getInsights(id) {
|
|
39
|
+
return this.http.request({
|
|
40
|
+
method: "GET",
|
|
41
|
+
path: `/emails/${encodeURIComponent(id)}/insights`,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
37
44
|
/** POST /emails/:id/cancel — only scheduled, unsent emails. */
|
|
38
45
|
cancel(id) {
|
|
39
46
|
return this.http.request({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emails.js","sourceRoot":"","sources":["../../src/resources/emails.ts"],"names":[],"mappings":"AAUA,SAAS,MAAM,CAAC,CAAmB;IACjC,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,QAAQ,EAAE,CAAC,CAAC,OAAO;QACnB,YAAY,EAAE,CAAC,CAAC,WAAW;QAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,MAAM;IACY;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,kDAAkD;IAClD,IAAI,CACF,OAAyB,EACzB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;YACrB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,MAAM,CACJ,OAAyB,EACzB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,sBAAsB;IACtB,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,+EAA+E;IAC/E,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,WAAW,kBAAkB,CAAC,EAAE,CAAC,WAAW;SACnD,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW,kBAAkB,CAAC,EAAE,CAAC,SAAS;SACjD,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IACa;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,kFAAkF;IAClF,IAAI,CACF,OAA2B,EAC3B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACzB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED,+CAA+C;IAC/C,MAAM,CACJ,OAA2B,EAC3B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import type { Result } from "../error.js";
|
|
|
2
2
|
import type { HttpClient } from "../http.js";
|
|
3
3
|
import type { CreateSegmentOptions, List, ListOptions, RemoveSegmentResponse, Segment, UpdateSegmentOptions } from "../types.js";
|
|
4
4
|
/**
|
|
5
|
-
* Dynamic segments — a saved filter over
|
|
5
|
+
* Dynamic segments — a saved filter over the team's contacts (MillionSend
|
|
6
6
|
* extension, no Resend equivalent). `get` returns a live `contact_count`.
|
|
7
7
|
*/
|
|
8
8
|
export declare class Segments {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { listQuery } from "../query.js";
|
|
2
2
|
/**
|
|
3
|
-
* Dynamic segments — a saved filter over
|
|
3
|
+
* Dynamic segments — a saved filter over the team's contacts (MillionSend
|
|
4
4
|
* extension, no Resend equivalent). `get` returns a live `contact_count`.
|
|
5
5
|
*/
|
|
6
6
|
export class Segments {
|
|
@@ -11,25 +11,25 @@ export class Segments {
|
|
|
11
11
|
create(payload) {
|
|
12
12
|
return this.http.request({
|
|
13
13
|
method: "POST",
|
|
14
|
-
path: "/
|
|
15
|
-
body: { name: payload.name,
|
|
14
|
+
path: "/segments",
|
|
15
|
+
body: { name: payload.name, filter: payload.filter },
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
get(id) {
|
|
19
|
-
return this.http.request({ method: "GET", path: `/
|
|
19
|
+
return this.http.request({ method: "GET", path: `/segments/${encodeURIComponent(id)}` });
|
|
20
20
|
}
|
|
21
21
|
list(options) {
|
|
22
|
-
return this.http.request({ method: "GET", path: "/
|
|
22
|
+
return this.http.request({ method: "GET", path: "/segments", query: listQuery(options) });
|
|
23
23
|
}
|
|
24
24
|
update(id, payload) {
|
|
25
25
|
return this.http.request({
|
|
26
26
|
method: "PATCH",
|
|
27
|
-
path: `/
|
|
27
|
+
path: `/segments/${encodeURIComponent(id)}`,
|
|
28
28
|
body: { name: payload.name, filter: payload.filter },
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
remove(id) {
|
|
32
|
-
return this.http.request({ method: "DELETE", path: `/
|
|
32
|
+
return this.http.request({ method: "DELETE", path: `/segments/${encodeURIComponent(id)}` });
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=segments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/resources/segments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,MAAM,CAAC,OAA6B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"segments.js","sourceRoot":"","sources":["../../src/resources/segments.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACU;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,MAAM,CAAC,OAA6B;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,CAAC,OAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,OAA6B;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YACvB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE;YAC3C,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACrD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -50,6 +50,8 @@ export interface Email {
|
|
|
50
50
|
scheduled_at: string | null;
|
|
51
51
|
message_id: string;
|
|
52
52
|
last_event: string;
|
|
53
|
+
/** Best-practice score (0–10, one decimal); null when the email has no insights. */
|
|
54
|
+
score: number | null;
|
|
53
55
|
}
|
|
54
56
|
export interface CancelEmailResponse {
|
|
55
57
|
object: "email";
|
|
@@ -58,32 +60,48 @@ export interface CancelEmailResponse {
|
|
|
58
60
|
export interface BatchResponse {
|
|
59
61
|
data: CreateEmailResponse[];
|
|
60
62
|
}
|
|
61
|
-
export
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
export
|
|
65
|
-
|
|
66
|
-
id
|
|
67
|
-
name: string;
|
|
68
|
-
created_at?: string;
|
|
69
|
-
}
|
|
70
|
-
export interface AudienceListItem {
|
|
63
|
+
export type ScoreBand = "excellent" | "good" | "needs_attention" | "at_risk" | (string & {});
|
|
64
|
+
export type CheckSeverity = "critical" | "major" | "minor" | "info" | (string & {});
|
|
65
|
+
export type CheckStatus = "pass" | "fail" | "passed_by_design" | "not_applicable" | "unknown" | (string & {});
|
|
66
|
+
export type GuardrailStatus = "ok" | "warning" | "paused" | (string & {});
|
|
67
|
+
export interface InsightsCheck {
|
|
68
|
+
/** Check id from the MillionSend check catalog — an open set. */
|
|
71
69
|
id: string;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
severity: CheckSeverity;
|
|
71
|
+
status: CheckStatus;
|
|
72
|
+
/** Points deducted from the score; 0 unless status is "fail". */
|
|
73
|
+
penalty: number;
|
|
74
|
+
detail?: Record<string, unknown>;
|
|
75
|
+
}
|
|
76
|
+
export interface EmailInsights {
|
|
77
|
+
object: "email_insights";
|
|
78
|
+
email_id: string;
|
|
79
|
+
/** Best-practice score, 0–10, one decimal. */
|
|
80
|
+
score: number;
|
|
81
|
+
score_version: number;
|
|
82
|
+
band: ScoreBand;
|
|
83
|
+
marketing: boolean;
|
|
84
|
+
html_size_bytes: number | null;
|
|
85
|
+
computed_at: string;
|
|
86
|
+
checks: InsightsCheck[];
|
|
87
|
+
}
|
|
88
|
+
/** Account score over the trailing window; null scores mean not enough data. */
|
|
89
|
+
export interface Deliverability {
|
|
90
|
+
object: "deliverability";
|
|
91
|
+
score: number | null;
|
|
92
|
+
band: ScoreBand | null;
|
|
93
|
+
content_score: number | null;
|
|
94
|
+
outcome_score: number | null;
|
|
95
|
+
complaint_rate: number;
|
|
96
|
+
hard_bounce_rate: number;
|
|
97
|
+
emails_sent: number;
|
|
98
|
+
scored_recipients: number;
|
|
99
|
+
window_days: number;
|
|
100
|
+
insufficient_outcome_data: boolean;
|
|
101
|
+
guardrail_status: GuardrailStatus;
|
|
102
|
+
score_version: number;
|
|
79
103
|
}
|
|
80
104
|
export interface CreateContactOptions {
|
|
81
|
-
/**
|
|
82
|
-
* The audience to create the contact in. The API requires it — omitting it
|
|
83
|
-
* posts to /contacts, which always answers 422 "audience_id is required"
|
|
84
|
-
* (kept optional here only to mirror resend's shape).
|
|
85
|
-
*/
|
|
86
|
-
audienceId?: string;
|
|
87
105
|
email: string;
|
|
88
106
|
firstName?: string;
|
|
89
107
|
lastName?: string;
|
|
@@ -92,7 +110,6 @@ export interface CreateContactOptions {
|
|
|
92
110
|
}
|
|
93
111
|
/** Address a contact by id or email (email wins if both are given). */
|
|
94
112
|
export interface ContactAddress {
|
|
95
|
-
audienceId?: string;
|
|
96
113
|
id?: string;
|
|
97
114
|
email?: string;
|
|
98
115
|
}
|
|
@@ -162,7 +179,6 @@ export interface RemoveTopicResponse {
|
|
|
162
179
|
}
|
|
163
180
|
export interface CreateBroadcastOptions {
|
|
164
181
|
name?: string;
|
|
165
|
-
audienceId?: string;
|
|
166
182
|
segmentId?: string;
|
|
167
183
|
from: string;
|
|
168
184
|
subject: string;
|
|
@@ -173,7 +189,6 @@ export interface CreateBroadcastOptions {
|
|
|
173
189
|
}
|
|
174
190
|
export interface UpdateBroadcastOptions {
|
|
175
191
|
name?: string;
|
|
176
|
-
audienceId?: string;
|
|
177
192
|
segmentId?: string;
|
|
178
193
|
from?: string;
|
|
179
194
|
subject?: string;
|
|
@@ -192,7 +207,6 @@ export interface BroadcastId {
|
|
|
192
207
|
export interface BroadcastListItem {
|
|
193
208
|
id: string;
|
|
194
209
|
name: string | null;
|
|
195
|
-
audience_id: string | null;
|
|
196
210
|
segment_id: string | null;
|
|
197
211
|
status: string;
|
|
198
212
|
created_at: string;
|
|
@@ -230,7 +244,6 @@ export interface SegmentFilter {
|
|
|
230
244
|
}
|
|
231
245
|
export interface CreateSegmentOptions {
|
|
232
246
|
name: string;
|
|
233
|
-
audienceId: string;
|
|
234
247
|
filter: SegmentFilter;
|
|
235
248
|
}
|
|
236
249
|
export interface UpdateSegmentOptions {
|
|
@@ -241,9 +254,9 @@ export interface Segment {
|
|
|
241
254
|
object: "segment";
|
|
242
255
|
id: string;
|
|
243
256
|
name: string;
|
|
244
|
-
audience_id: string;
|
|
245
257
|
filter: SegmentFilter;
|
|
246
258
|
created_at: string;
|
|
259
|
+
/** Present on `get` only — the live count of matching contacts. */
|
|
247
260
|
contact_count?: number;
|
|
248
261
|
}
|
|
249
262
|
export interface RemoveSegmentResponse {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAE3C,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,UAAU,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { Result } from "../error.js";
|
|
2
|
-
import type { HttpClient } from "../http.js";
|
|
3
|
-
import type { Audience, AudienceListItem, CreateAudienceOptions, List, ListOptions, RemoveAudienceResponse } from "../types.js";
|
|
4
|
-
/**
|
|
5
|
-
* Audiences — named contact lists. Resend-compatible: a migrating app's
|
|
6
|
-
* `audiences.*` calls map straight over. (MillionSend's dynamic-filter
|
|
7
|
-
* `segments` are a separate, richer resource — see `client.segments`.)
|
|
8
|
-
*/
|
|
9
|
-
export declare class Audiences {
|
|
10
|
-
private readonly http;
|
|
11
|
-
constructor(http: HttpClient);
|
|
12
|
-
create(payload: CreateAudienceOptions): Promise<Result<Audience>>;
|
|
13
|
-
get(id: string): Promise<Result<Audience>>;
|
|
14
|
-
list(options?: ListOptions): Promise<Result<List<AudienceListItem>>>;
|
|
15
|
-
remove(id: string): Promise<Result<RemoveAudienceResponse>>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=audiences.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audiences.d.ts","sourceRoot":"","sources":["../../src/resources/audiences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,qBAAqB,EACrB,IAAI,EACJ,WAAW,EACX,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAIjE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAI1C,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAIpE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;CAG5D"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { listQuery } from "../query.js";
|
|
2
|
-
/**
|
|
3
|
-
* Audiences — named contact lists. Resend-compatible: a migrating app's
|
|
4
|
-
* `audiences.*` calls map straight over. (MillionSend's dynamic-filter
|
|
5
|
-
* `segments` are a separate, richer resource — see `client.segments`.)
|
|
6
|
-
*/
|
|
7
|
-
export class Audiences {
|
|
8
|
-
http;
|
|
9
|
-
constructor(http) {
|
|
10
|
-
this.http = http;
|
|
11
|
-
}
|
|
12
|
-
create(payload) {
|
|
13
|
-
return this.http.request({ method: "POST", path: "/audiences", body: { name: payload.name } });
|
|
14
|
-
}
|
|
15
|
-
get(id) {
|
|
16
|
-
return this.http.request({ method: "GET", path: `/audiences/${encodeURIComponent(id)}` });
|
|
17
|
-
}
|
|
18
|
-
list(options) {
|
|
19
|
-
return this.http.request({ method: "GET", path: "/audiences", query: listQuery(options) });
|
|
20
|
-
}
|
|
21
|
-
remove(id) {
|
|
22
|
-
return this.http.request({ method: "DELETE", path: `/audiences/${encodeURIComponent(id)}` });
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=audiences.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audiences.js","sourceRoot":"","sources":["../../src/resources/audiences.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC;;;;GAIG;AACH,MAAM,OAAO,SAAS;IACS;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,MAAM,CAAC,OAA8B;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,CAAC,OAAqB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;CACF"}
|