zerodrop-client 0.1.9 → 0.2.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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export interface ZeroDropEmail {
|
|
|
12
12
|
export interface WaitForLatestOptions {
|
|
13
13
|
timeout?: number;
|
|
14
14
|
pollInterval?: number;
|
|
15
|
+
sse?: boolean;
|
|
15
16
|
}
|
|
16
17
|
export interface ZeroDropOptions {
|
|
17
18
|
baseUrl?: string;
|
|
@@ -31,6 +32,7 @@ export declare class ZeroDrop {
|
|
|
31
32
|
constructor(apiKey?: string, options?: ZeroDropOptions);
|
|
32
33
|
generateInbox(): string;
|
|
33
34
|
fetchLatest(inbox: string): Promise<ZeroDropEmail | null>;
|
|
35
|
+
private waitForLatestSSE;
|
|
34
36
|
waitForLatest(inbox: string, options?: WaitForLatestOptions): Promise<ZeroDropEmail>;
|
|
35
37
|
onReceived(inbox: string, webhookUrl: string): Promise<{
|
|
36
38
|
registered: boolean;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,IAAI,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAO7C;AAED,qBAAa,iBAAkB,SAAQ,KAAK;;CAK3C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAO5B;AAmED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IAmB1D,aAAa,IAAI,MAAM;IAWjB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAwEjD,gBAAgB;IAoExB,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC;IAuCnB,UAAU,CACd,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAkCnC,OAAO,CAAC,KAAK;CAGd;AAMD,eAAe,QAAQ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ exports.ZeroDropAuthError = ZeroDropAuthError;
|
|
|
29
29
|
class ZeroDropNetworkError extends Error {
|
|
30
30
|
constructor(message) {
|
|
31
31
|
super(`ZeroDrop: Network error — ${message}. ` +
|
|
32
|
-
`Check https://
|
|
32
|
+
`Check https://zerodrop.instatus.com for service status.`);
|
|
33
33
|
this.name = "ZeroDropNetworkError";
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -52,6 +52,24 @@ function extractBody(raw) {
|
|
|
52
52
|
.substring(0, 5000);
|
|
53
53
|
}
|
|
54
54
|
// ============================================
|
|
55
|
+
// Parse raw Redis email string into ZeroDropEmail
|
|
56
|
+
// ============================================
|
|
57
|
+
function parseEmail(raw) {
|
|
58
|
+
var _a, _b;
|
|
59
|
+
const parsed = JSON.parse(raw);
|
|
60
|
+
return {
|
|
61
|
+
id: parsed.id,
|
|
62
|
+
from: parsed.from,
|
|
63
|
+
to: parsed.to,
|
|
64
|
+
subject: parsed.subject || "",
|
|
65
|
+
body: extractBody(parsed.raw),
|
|
66
|
+
rawBody: parsed.raw,
|
|
67
|
+
receivedAt: new Date(parsed.receivedAt),
|
|
68
|
+
otp: (_a = parsed.otp) !== null && _a !== void 0 ? _a : null,
|
|
69
|
+
magicLink: (_b = parsed.magicLink) !== null && _b !== void 0 ? _b : null,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// ============================================
|
|
55
73
|
// Random inbox generator (zero-auth)
|
|
56
74
|
// ============================================
|
|
57
75
|
function generateRandomInboxName() {
|
|
@@ -83,12 +101,11 @@ class ZeroDrop {
|
|
|
83
101
|
// ============================================
|
|
84
102
|
generateInbox() {
|
|
85
103
|
const name = generateRandomInboxName();
|
|
86
|
-
|
|
87
|
-
return `${name}@${domain}`;
|
|
104
|
+
return `${name}@${FREE_DOMAIN}`;
|
|
88
105
|
}
|
|
89
106
|
// ============================================
|
|
90
107
|
// fetchLatest()
|
|
91
|
-
// Fetches current emails for an inbox
|
|
108
|
+
// Fetches current emails for an inbox via REST
|
|
92
109
|
// Returns null if empty
|
|
93
110
|
// ============================================
|
|
94
111
|
async fetchLatest(inbox) {
|
|
@@ -136,15 +153,86 @@ class ZeroDrop {
|
|
|
136
153
|
};
|
|
137
154
|
}
|
|
138
155
|
// ============================================
|
|
156
|
+
// waitForLatestSSE()
|
|
157
|
+
// Uses SSE stream for sub-second email delivery
|
|
158
|
+
// Falls back to polling on error
|
|
159
|
+
// ============================================
|
|
160
|
+
async waitForLatestSSE(inbox, timeoutMs) {
|
|
161
|
+
var _a;
|
|
162
|
+
const inboxName = inbox.split("@")[0].toLowerCase();
|
|
163
|
+
const headers = {};
|
|
164
|
+
if (this.apiKey) {
|
|
165
|
+
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
166
|
+
}
|
|
167
|
+
let res;
|
|
168
|
+
try {
|
|
169
|
+
res = await fetch(`${this.baseUrl}/api/inbox/${inboxName}/stream`, {
|
|
170
|
+
headers,
|
|
171
|
+
signal: AbortSignal.timeout(timeoutMs + 1000),
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
catch (_b) {
|
|
175
|
+
return null; // Fall back to polling
|
|
176
|
+
}
|
|
177
|
+
if (!res.ok || !res.body)
|
|
178
|
+
return null;
|
|
179
|
+
const reader = res.body.getReader();
|
|
180
|
+
const decoder = new TextDecoder();
|
|
181
|
+
let buffer = "";
|
|
182
|
+
try {
|
|
183
|
+
while (true) {
|
|
184
|
+
const { done, value } = await reader.read();
|
|
185
|
+
if (done)
|
|
186
|
+
break;
|
|
187
|
+
buffer += decoder.decode(value, { stream: true });
|
|
188
|
+
const lines = buffer.split("\n");
|
|
189
|
+
buffer = (_a = lines.pop()) !== null && _a !== void 0 ? _a : "";
|
|
190
|
+
for (const line of lines) {
|
|
191
|
+
if (line.startsWith("data: ")) {
|
|
192
|
+
const data = line.slice(6).trim();
|
|
193
|
+
if (data === "__timeout__")
|
|
194
|
+
return null;
|
|
195
|
+
if (data) {
|
|
196
|
+
try {
|
|
197
|
+
return parseEmail(data);
|
|
198
|
+
}
|
|
199
|
+
catch (_c) {
|
|
200
|
+
return null;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
finally {
|
|
208
|
+
reader.cancel();
|
|
209
|
+
}
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
// ============================================
|
|
139
213
|
// waitForLatest()
|
|
140
|
-
//
|
|
141
|
-
//
|
|
214
|
+
// Uses SSE by default for sub-second delivery
|
|
215
|
+
// Falls back to polling if SSE fails
|
|
142
216
|
// Throws ZeroDropTimeoutError on timeout
|
|
143
217
|
// ============================================
|
|
144
218
|
async waitForLatest(inbox, options = {}) {
|
|
145
219
|
var _a, _b;
|
|
146
220
|
const timeout = (_a = options.timeout) !== null && _a !== void 0 ? _a : 10000;
|
|
147
221
|
const pollInterval = (_b = options.pollInterval) !== null && _b !== void 0 ? _b : POLL_INTERVAL;
|
|
222
|
+
const useSSE = options.sse !== false; // SSE on by default
|
|
223
|
+
// Try SSE first
|
|
224
|
+
if (useSSE) {
|
|
225
|
+
try {
|
|
226
|
+
const email = await this.waitForLatestSSE(inbox, timeout);
|
|
227
|
+
if (email)
|
|
228
|
+
return email;
|
|
229
|
+
}
|
|
230
|
+
catch (_c) {
|
|
231
|
+
// SSE failed — fall through to polling
|
|
232
|
+
console.warn("[ZeroDrop] SSE unavailable, falling back to polling");
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
// Polling fallback
|
|
148
236
|
const startTime = Date.now();
|
|
149
237
|
while (Date.now() - startTime < timeout) {
|
|
150
238
|
try {
|
|
@@ -153,11 +241,8 @@ class ZeroDrop {
|
|
|
153
241
|
return email;
|
|
154
242
|
}
|
|
155
243
|
catch (err) {
|
|
156
|
-
// Retry network errors until timeout
|
|
157
|
-
// Auth errors are re-thrown immediately
|
|
158
244
|
if (err instanceof ZeroDropAuthError)
|
|
159
245
|
throw err;
|
|
160
|
-
// Log network errors but keep polling
|
|
161
246
|
console.warn(`[ZeroDrop] Poll error (retrying): ${err.message}`);
|
|
162
247
|
}
|
|
163
248
|
await this.sleep(pollInterval);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,mBAAmB;AACnB,4CAA4C;AAC5C,+CAA+C;;;AAE/C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AACxC,MAAM,WAAW,GAAG,yBAAyB,CAAC;AAC9C,MAAM,aAAa,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|