temp-disposable-email 1.16.2 → 2.0.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/.eslintrc.json +28 -0
- package/.prettierignore +6 -0
- package/.prettierrc.json +10 -0
- package/README.md +40 -6
- package/dist/cjs/api.d.ts +5 -4
- package/dist/cjs/api.d.ts.map +1 -1
- package/dist/cjs/api.js +30 -15
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/cypress.d.ts +20 -0
- package/dist/cjs/cypress.d.ts.map +1 -1
- package/dist/cjs/cypress.js +3 -0
- package/dist/cjs/cypress.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +54 -39
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/playwright.d.ts +27 -0
- package/dist/cjs/playwright.d.ts.map +1 -0
- package/dist/cjs/playwright.js +29 -0
- package/dist/cjs/playwright.js.map +1 -0
- package/dist/esm/api.d.ts +5 -4
- package/dist/esm/api.d.ts.map +1 -1
- package/dist/esm/api.js +30 -15
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/cypress.d.ts +20 -0
- package/dist/esm/cypress.d.ts.map +1 -1
- package/dist/esm/cypress.js +4 -1
- package/dist/esm/cypress.js.map +1 -1
- package/dist/esm/index.d.ts +7 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +56 -39
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/playwright.d.ts +27 -0
- package/dist/esm/playwright.d.ts.map +1 -0
- package/dist/esm/playwright.js +25 -0
- package/dist/esm/playwright.js.map +1 -0
- package/package.json +14 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { generateEmail, getRecentEmail, getVerificationCode, GeneratedEmail, MessageContent, GetEmailOptions } from './index';
|
|
2
|
+
/**
|
|
3
|
+
* Email helper fixtures for Playwright tests.
|
|
4
|
+
* Provides easy access to email generation and retrieval functions.
|
|
5
|
+
*/
|
|
6
|
+
export interface EmailFixtures {
|
|
7
|
+
emailHelper: {
|
|
8
|
+
generateEmail: typeof generateEmail;
|
|
9
|
+
getRecentEmail: typeof getRecentEmail;
|
|
10
|
+
getVerificationCode: typeof getVerificationCode;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Extended Playwright test with email helper fixtures.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { test, expect } from 'temp-disposable-email/playwright';
|
|
18
|
+
*
|
|
19
|
+
* test('sign up flow', async ({ page, emailHelper }) => {
|
|
20
|
+
* const { emailAddress } = await emailHelper.generateEmail();
|
|
21
|
+
* // ... your test code
|
|
22
|
+
* });
|
|
23
|
+
*/
|
|
24
|
+
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & EmailFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
25
|
+
export { expect } from '@playwright/test';
|
|
26
|
+
export type { GeneratedEmail, MessageContent, GetEmailOptions };
|
|
27
|
+
//# sourceMappingURL=playwright.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../src/playwright.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,aAAa,EAAE,OAAO,aAAa,CAAC;QACpC,cAAc,EAAE,OAAO,cAAc,CAAC;QACtC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;KACjD,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,6PASf,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expect = exports.test = void 0;
|
|
4
|
+
const test_1 = require("@playwright/test");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
/**
|
|
7
|
+
* Extended Playwright test with email helper fixtures.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* import { test, expect } from 'temp-disposable-email/playwright';
|
|
11
|
+
*
|
|
12
|
+
* test('sign up flow', async ({ page, emailHelper }) => {
|
|
13
|
+
* const { emailAddress } = await emailHelper.generateEmail();
|
|
14
|
+
* // ... your test code
|
|
15
|
+
* });
|
|
16
|
+
*/
|
|
17
|
+
exports.test = test_1.test.extend({
|
|
18
|
+
// eslint-disable-next-line no-empty-pattern
|
|
19
|
+
emailHelper: async ({}, use) => {
|
|
20
|
+
await use({
|
|
21
|
+
generateEmail: index_1.generateEmail,
|
|
22
|
+
getRecentEmail: index_1.getRecentEmail,
|
|
23
|
+
getVerificationCode: index_1.getVerificationCode,
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
var test_2 = require("@playwright/test");
|
|
28
|
+
Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return test_2.expect; } });
|
|
29
|
+
//# sourceMappingURL=playwright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../src/playwright.ts"],"names":[],"mappings":";;;AAAA,2CAAgD;AAChD,mCAOiB;AAcjB;;;;;;;;;;GAUG;AACU,QAAA,IAAI,GAAG,WAAI,CAAC,MAAM,CAAgB;IAC7C,4CAA4C;IAC5C,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,GAAG,CAAC;YACR,aAAa,EAAb,qBAAa;YACb,cAAc,EAAd,sBAAc;YACd,mBAAmB,EAAnB,2BAAmB;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,yCAA0C;AAAjC,8FAAA,MAAM,OAAA"}
|
package/dist/esm/api.d.ts
CHANGED
|
@@ -79,14 +79,15 @@ export declare const getAuthHeaders: () => {
|
|
|
79
79
|
Authorization: string;
|
|
80
80
|
};
|
|
81
81
|
export declare const getDomains: () => Promise<ListOfDomains[]>;
|
|
82
|
-
export declare const getMessages: () => Promise<EmailObject[]>;
|
|
82
|
+
export declare const getMessages: (maxRetries?: number, retryDelay?: number) => Promise<EmailObject[]>;
|
|
83
83
|
export declare const getMessagesContent: (messageId: string) => Promise<EmailResource>;
|
|
84
|
-
export declare const getMessageAttachments: (messageId: string, attachmentsId: string) => Promise<
|
|
85
|
-
export declare const deleteMessage: (messageId: string) => Promise<
|
|
84
|
+
export declare const getMessageAttachments: (messageId: string, attachmentsId: string) => Promise<Buffer>;
|
|
85
|
+
export declare const deleteMessage: (messageId: string) => Promise<number>;
|
|
86
86
|
export declare const createAccount: (payload: {
|
|
87
87
|
address: string;
|
|
88
88
|
password: string;
|
|
89
|
-
},
|
|
89
|
+
}, domain?: string, // Domain to use for fallback email generation
|
|
90
|
+
maxRetries?: number, delayMs?: number, infiniteRetry?: boolean) => Promise<EmailAccount>;
|
|
90
91
|
export declare const deleteAccount: (accountId: string) => Promise<void>;
|
|
91
92
|
export {};
|
|
92
93
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/esm/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAGA,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,OAAO;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,EAAE,EAAE,OAAO,EAAE,CAAC;IACd,GAAG,EAAE,OAAO,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAaD,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAKd,CAAC;AAGF,eAAO,MAAM,cAAc;;;CAQ1B,CAAC;AAoBF,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,aAAa,EAAE,CAS1D,CAAC;AAGF,eAAO,MAAM,WAAW,GACtB,mBAAc,EACd,mBAAkB,KACjB,OAAO,CAAC,WAAW,EAAE,CA4BvB,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,MAAM,KAChB,OAAO,CAAC,aAAa,CASvB,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,EACjB,eAAe,MAAM,KACpB,OAAO,CAAC,MAAM,CAehB,CAAC;AAGF,eAAO,MAAM,aAAa,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAUrE,CAAC;AAGF,eAAO,MAAM,aAAa,GACxB,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC9C,SAAS,MAAM,EAAE,8CAA8C;AAC/D,mBAAe,EACf,gBAAc,EACd,uBAAqB,KACpB,OAAO,CAAC,YAAY,CA2CtB,CAAC;AAGF,eAAO,MAAM,aAAa,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAQnE,CAAC"}
|
package/dist/esm/api.js
CHANGED
|
@@ -33,7 +33,7 @@ apiClient.interceptors.response.use((response) => response, async (error) => {
|
|
|
33
33
|
error.config.headers = getAuthHeaders(); // Update headers with new token
|
|
34
34
|
return apiClient.request(error.config); // Retry request
|
|
35
35
|
}
|
|
36
|
-
catch (
|
|
36
|
+
catch (_authError) {
|
|
37
37
|
throw new Error('Authentication failed. Please check credentials.');
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -47,28 +47,36 @@ export const getDomains = async () => {
|
|
|
47
47
|
});
|
|
48
48
|
return data;
|
|
49
49
|
}
|
|
50
|
-
catch (
|
|
50
|
+
catch (_error) {
|
|
51
51
|
throw new Error('Failed to fetch domains. Please try again later.');
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
|
-
// Function to fetch messages
|
|
55
|
-
export const getMessages = async () => {
|
|
56
|
-
|
|
54
|
+
// Function to fetch messages with retry logic and timeout
|
|
55
|
+
export const getMessages = async (maxRetries = 5, retryDelay = 10000) => {
|
|
56
|
+
let attempt = 0;
|
|
57
|
+
while (attempt < maxRetries) {
|
|
57
58
|
try {
|
|
58
59
|
const { data } = await apiClient.get('/messages?page=1', {
|
|
59
60
|
headers: getAuthHeaders(),
|
|
60
61
|
});
|
|
61
62
|
return data;
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
64
|
}
|
|
63
65
|
catch (error) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
attempt++;
|
|
67
|
+
if (error.response?.status === 429 && attempt < maxRetries) {
|
|
68
|
+
console.warn(`Rate limited. Retrying in ${retryDelay / 1000}s... (Attempt ${attempt}/${maxRetries})`);
|
|
69
|
+
await delay(retryDelay);
|
|
70
|
+
}
|
|
71
|
+
else if (attempt >= maxRetries) {
|
|
72
|
+
throw new Error(`Failed to fetch messages after ${maxRetries} attempts. Please try again later.`);
|
|
66
73
|
}
|
|
67
74
|
else {
|
|
68
75
|
throw new Error('Failed to fetch messages. Please try again later.');
|
|
69
76
|
}
|
|
70
77
|
}
|
|
71
78
|
}
|
|
79
|
+
throw new Error('Failed to fetch messages after maximum retries.');
|
|
72
80
|
};
|
|
73
81
|
// Function to fetch message content
|
|
74
82
|
export const getMessagesContent = async (messageId) => {
|
|
@@ -78,7 +86,7 @@ export const getMessagesContent = async (messageId) => {
|
|
|
78
86
|
});
|
|
79
87
|
return data;
|
|
80
88
|
}
|
|
81
|
-
catch (
|
|
89
|
+
catch (_error) {
|
|
82
90
|
throw new Error('Failed to fetch message content. Please try again later.');
|
|
83
91
|
}
|
|
84
92
|
};
|
|
@@ -91,7 +99,7 @@ export const getMessageAttachments = async (messageId, attachmentsId) => {
|
|
|
91
99
|
});
|
|
92
100
|
return data;
|
|
93
101
|
}
|
|
94
|
-
catch (
|
|
102
|
+
catch (_error) {
|
|
95
103
|
throw new Error('Failed to fetch message attachment. Please try again later.');
|
|
96
104
|
}
|
|
97
105
|
};
|
|
@@ -103,13 +111,14 @@ export const deleteMessage = async (messageId) => {
|
|
|
103
111
|
});
|
|
104
112
|
return status;
|
|
105
113
|
}
|
|
106
|
-
catch (
|
|
107
|
-
console.warn(`Error deleting message for ID ${messageId}
|
|
114
|
+
catch (_error) {
|
|
115
|
+
console.warn(`Error deleting message for ID ${messageId}`);
|
|
116
|
+
return 0;
|
|
108
117
|
}
|
|
109
118
|
};
|
|
110
119
|
// Function to create an email account
|
|
111
|
-
export const createAccount = async (payload,
|
|
112
|
-
delayMs = 6000, infiniteRetry = false // Optional: Keep retrying forever
|
|
120
|
+
export const createAccount = async (payload, domain, // Domain to use for fallback email generation
|
|
121
|
+
maxRetries = 10, delayMs = 6000, infiniteRetry = false // Optional: Keep retrying forever
|
|
113
122
|
) => {
|
|
114
123
|
let attempt = 1;
|
|
115
124
|
while (attempt <= maxRetries || infiniteRetry) {
|
|
@@ -118,18 +127,24 @@ delayMs = 6000, infiniteRetry = false // Optional: Keep retrying forever
|
|
|
118
127
|
headers: { accept: 'application/json' },
|
|
119
128
|
});
|
|
120
129
|
return data;
|
|
130
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
121
131
|
}
|
|
122
132
|
catch (error) {
|
|
123
133
|
const status = error.response?.status;
|
|
124
134
|
const isNetworkError = error.code === 'ECONNABORTED' || !error.response;
|
|
125
135
|
if (status === 409 || status === 422) {
|
|
126
|
-
|
|
136
|
+
// Use provided domain or extract from original address
|
|
137
|
+
const domainToUse = domain || payload.address.split('@')[1];
|
|
138
|
+
payload.address = `${Date.now()}-${Math.floor(Math.random() * 100000)}@${domainToUse}`;
|
|
139
|
+
console.warn(`Address already exists or invalid. Retrying with: ${payload.address}`);
|
|
127
140
|
}
|
|
128
141
|
else if (status === 429) {
|
|
142
|
+
console.warn(`Rate limited. Waiting 30 seconds before retry... (Attempt ${attempt}/${maxRetries})`);
|
|
129
143
|
await delay(30000);
|
|
130
144
|
}
|
|
131
145
|
else if (status === 500 || isNetworkError) {
|
|
132
146
|
const waitTime = Math.min(30000, delayMs * attempt);
|
|
147
|
+
console.warn(`Server error or network issue. Waiting ${waitTime / 1000}s... (Attempt ${attempt}/${maxRetries})`);
|
|
133
148
|
await delay(waitTime);
|
|
134
149
|
}
|
|
135
150
|
else {
|
|
@@ -147,7 +162,7 @@ export const deleteAccount = async (accountId) => {
|
|
|
147
162
|
headers: getAuthHeaders(),
|
|
148
163
|
});
|
|
149
164
|
}
|
|
150
|
-
catch (
|
|
165
|
+
catch (_error) {
|
|
151
166
|
console.warn(`Failed to delete account ${accountId}, ignoring error.`);
|
|
152
167
|
}
|
|
153
168
|
};
|
package/dist/esm/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAmF1B,uCAAuC;AACvC,IAAI,KAAK,GAAkB,IAAI,CAAC;AAChC,IAAI,KAAa,CAAC;AAClB,IAAI,QAAgB,CAAC;AAErB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,qBAAqB;IAC9B,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;CACxC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,EACd,SAAiB,EACF,EAAE;IACjB,KAAK,GAAG,MAAM,CAAC;IACf,QAAQ,GAAG,SAAS,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9E,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,CAAC,CAAC;AAEF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,UAAU,KAAK,EAAE;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,2DAA2D;AAC3D,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACjC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,KAAK,EAAE,KAAK,EAAE,EAAE;IACd,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,kBAAkB;YACvD,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,cAAc,EAAE,CAAC,CAAC,gCAAgC;YACzE,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,MAA4B,CAAC,CAAC,CAAC,gBAAgB;QAChF,CAAC;QAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/cypress.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ declare global {
|
|
|
21
21
|
* Retrieves the latest message from the inbox.
|
|
22
22
|
*
|
|
23
23
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
24
|
+
* @param {string} [options.accountId] - Account ID to cleanup after reading.
|
|
24
25
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
25
26
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
|
26
27
|
* @param {boolean} [options.logPolling=false] - Whether to log polling attempts. Default is `false`.
|
|
@@ -56,6 +57,25 @@ declare global {
|
|
|
56
57
|
}
|
|
57
58
|
*/
|
|
58
59
|
getRecentEmail(options: GetEmailOptions): Chainable<MessageContent | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Extracts a verification code from email content.
|
|
62
|
+
*
|
|
63
|
+
* This function scans the given text for a sequence of 5 or more
|
|
64
|
+
* consecutive digits and returns the first valid verification code.
|
|
65
|
+
*
|
|
66
|
+
* @param {string} text - The content of the email, typically the body or HTML.
|
|
67
|
+
* @returns {Promise<string>} The first verification code found.
|
|
68
|
+
*
|
|
69
|
+
* @throws {Error} If no valid verification code is found.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* cy.getRecentEmail().then((email) => {
|
|
73
|
+
* cy.getVerificationCode(email?.text).then((code) => {
|
|
74
|
+
* cy.log(code); // Output: "123456"
|
|
75
|
+
* });
|
|
76
|
+
* });
|
|
77
|
+
*/
|
|
78
|
+
getVerificationCode(text?: string): Chainable<string>;
|
|
59
79
|
}
|
|
60
80
|
}
|
|
61
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypress.d.ts","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,eAAe,
|
|
1
|
+
{"version":3,"file":"cypress.d.ts","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,eAAe,EAGf,cAAc,EACf,MAAM,SAAS,CAAC;AAcjB,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,OAAO,CAAC;QAChB,UAAU,SAAS;YACjB;;;;;;;;;;;;;eAaG;YACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;YAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAsCG;YACH,cAAc,CACZ,OAAO,EAAE,eAAe,GACvB,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YAEpC;;;;;;;;;;;;;;;;;eAiBG;YACH,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;SACvD;KACF;CACF"}
|
package/dist/esm/cypress.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import { generateEmail, getRecentEmail, } from './index';
|
|
1
|
+
import { generateEmail, getRecentEmail, getVerificationCode, } from './index';
|
|
2
2
|
Cypress.Commands.add('generateEmail', function (prefix) {
|
|
3
3
|
return cy.wrap(generateEmail(prefix));
|
|
4
4
|
});
|
|
5
5
|
Cypress.Commands.add('getRecentEmail', function (options) {
|
|
6
6
|
return cy.wrap(getRecentEmail(options));
|
|
7
7
|
});
|
|
8
|
+
Cypress.Commands.add('getVerificationCode', function (text) {
|
|
9
|
+
return cy.wrap(getVerificationCode(text));
|
|
10
|
+
});
|
|
8
11
|
//# sourceMappingURL=cypress.js.map
|
package/dist/esm/cypress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,cAAc,
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,cAAc,EACd,mBAAmB,GAEpB,MAAM,SAAS,CAAC;AAEjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAe;IAC7D,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,OAAwB;IACvE,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,IAAa;IACjE,OAAO,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC,CAAC"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface MessageContent {
|
|
|
17
17
|
updatedAt: string;
|
|
18
18
|
attachments: Attachment[];
|
|
19
19
|
}
|
|
20
|
-
interface Attachment {
|
|
20
|
+
export interface Attachment {
|
|
21
21
|
title: string;
|
|
22
22
|
data: Buffer;
|
|
23
23
|
}
|
|
@@ -26,8 +26,10 @@ export interface GetEmailOptions {
|
|
|
26
26
|
waitInterval?: number;
|
|
27
27
|
logPolling?: boolean;
|
|
28
28
|
deleteAfterRead?: boolean;
|
|
29
|
+
accountId?: string;
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
+
declare const delay: (ms: number) => Promise<void>;
|
|
32
|
+
export { delay };
|
|
31
33
|
/**
|
|
32
34
|
* Creates a new email inbox with a unique address.
|
|
33
35
|
*
|
|
@@ -47,6 +49,7 @@ export declare const generateEmail: (emailPrefix?: string) => Promise<GeneratedE
|
|
|
47
49
|
* Retrieves the latest message from the inbox.
|
|
48
50
|
*
|
|
49
51
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
52
|
+
* @param {string} [options.accountId] - Account ID to cleanup after reading. If not provided, account won't be deleted.
|
|
50
53
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
51
54
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
|
52
55
|
* @param {boolean} [options.logPolling=false] - Whether to log polling attempts. Default is `false`.
|
|
@@ -56,7 +59,8 @@ export declare const generateEmail: (emailPrefix?: string) => Promise<GeneratedE
|
|
|
56
59
|
* @throws {Error} If no messages are available within the polling timeout or authentication fails.
|
|
57
60
|
*
|
|
58
61
|
* @example
|
|
59
|
-
* const
|
|
62
|
+
* const { accountId } = await generateEmail();
|
|
63
|
+
* const message = await getRecentEmail({ accountId, maxWaitTime: 5000, waitInterval: 1000, logPolling: true });
|
|
60
64
|
* console.log(message.subject); // Outputs: "Hello!"
|
|
61
65
|
*/
|
|
62
66
|
export declare const getRecentEmail: (options?: GetEmailOptions) => Promise<MessageContent | null>;
|
|
@@ -76,5 +80,4 @@ export declare const getRecentEmail: (options?: GetEmailOptions) => Promise<Mess
|
|
|
76
80
|
* console.log(verificationCode); // Output: "123456"
|
|
77
81
|
*/
|
|
78
82
|
export declare const getVerificationCode: (text: string | undefined) => Promise<string>;
|
|
79
|
-
export {};
|
|
80
83
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AACD,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACW,CAAC;AAKpD,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GACxB,cAAc,MAAM,KACnB,OAAO,CAAC,cAAc,CA+BxB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,eAAe,KACxB,OAAO,CAAC,cAAc,GAAG,IAAI,CA4F/B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,MAAM,CAYhB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { authenticate, getMessageAttachments } from './api';
|
|
2
2
|
import { createAccount, deleteAccount, deleteMessage, getDomains, getMessages, getMessagesContent, } from './api';
|
|
3
|
-
|
|
4
|
-
export const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
3
|
+
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
5
4
|
const generateRandomName = () => Math.random().toString(36).substring(2, 15);
|
|
5
|
+
// Export delay for testing purposes
|
|
6
|
+
export { delay };
|
|
6
7
|
/**
|
|
7
8
|
* Creates a new email inbox with a unique address.
|
|
8
9
|
*
|
|
@@ -26,15 +27,17 @@ export const generateEmail = async (emailPrefix) => {
|
|
|
26
27
|
throw new Error('No available domains.');
|
|
27
28
|
const emailAddress = `${emailPrefix || generateRandomName()}@${domains[0]}`;
|
|
28
29
|
const password = generateRandomName();
|
|
30
|
+
// eslint-disable-next-line no-constant-condition
|
|
29
31
|
while (true) {
|
|
30
32
|
try {
|
|
31
33
|
const accountResponse = await createAccount({
|
|
32
34
|
address: emailAddress,
|
|
33
35
|
password,
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
+
}, domains[0] // Pass the first active domain for fallback
|
|
37
|
+
);
|
|
36
38
|
await authenticate(emailAddress, password);
|
|
37
39
|
return { emailAddress, accountId: accountResponse.id };
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
38
41
|
}
|
|
39
42
|
catch (error) {
|
|
40
43
|
if (error.response?.status === 429) {
|
|
@@ -50,6 +53,7 @@ export const generateEmail = async (emailPrefix) => {
|
|
|
50
53
|
* Retrieves the latest message from the inbox.
|
|
51
54
|
*
|
|
52
55
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
56
|
+
* @param {string} [options.accountId] - Account ID to cleanup after reading. If not provided, account won't be deleted.
|
|
53
57
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
54
58
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
|
55
59
|
* @param {boolean} [options.logPolling=false] - Whether to log polling attempts. Default is `false`.
|
|
@@ -59,52 +63,62 @@ export const generateEmail = async (emailPrefix) => {
|
|
|
59
63
|
* @throws {Error} If no messages are available within the polling timeout or authentication fails.
|
|
60
64
|
*
|
|
61
65
|
* @example
|
|
62
|
-
* const
|
|
66
|
+
* const { accountId } = await generateEmail();
|
|
67
|
+
* const message = await getRecentEmail({ accountId, maxWaitTime: 5000, waitInterval: 1000, logPolling: true });
|
|
63
68
|
* console.log(message.subject); // Outputs: "Hello!"
|
|
64
69
|
*/
|
|
65
70
|
export const getRecentEmail = async (options) => {
|
|
66
|
-
const { maxWaitTime = 30000, waitInterval = 2000, logPolling = false, deleteAfterRead = false, } = options || {};
|
|
71
|
+
const { maxWaitTime = 30000, waitInterval = 2000, logPolling = false, deleteAfterRead = false, accountId, } = options || {};
|
|
67
72
|
const startTime = Date.now();
|
|
68
73
|
const logger = (message) => logPolling && console.log(message);
|
|
69
74
|
logger(`Polling started with a timeout of ${maxWaitTime / 1000}sec and interval of ${waitInterval / 1000}sec.`);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
|
|
75
|
+
try {
|
|
76
|
+
while (Date.now() - startTime < maxWaitTime) {
|
|
77
|
+
const messages = await getMessages();
|
|
78
|
+
if (messages.length > 0) {
|
|
79
|
+
logger(`Found ${messages.length} message(s), fetching details...`);
|
|
80
|
+
// Sort by newest first (descending order)
|
|
81
|
+
const sortedMessages = messages.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
|
|
82
|
+
const messageId = sortedMessages[0].id;
|
|
83
|
+
logger(`Found ${messageId}`);
|
|
84
|
+
const { from, to, subject, intro, text, html, createdAt, updatedAt, hasAttachments, attachments, } = await getMessagesContent(messageId);
|
|
85
|
+
const attachmentArray = [];
|
|
86
|
+
if (hasAttachments) {
|
|
87
|
+
for (const { id, filename } of attachments) {
|
|
88
|
+
logger(`Fetching attachment ID: ${id}`);
|
|
89
|
+
const attachmentData = await getMessageAttachments(messageId, id);
|
|
90
|
+
attachmentArray.push({ title: filename, data: attachmentData });
|
|
91
|
+
}
|
|
84
92
|
}
|
|
93
|
+
if (deleteAfterRead) {
|
|
94
|
+
await deleteMessage(messageId);
|
|
95
|
+
logger(`Deleted message ${messageId}`);
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
from: from,
|
|
99
|
+
to: to,
|
|
100
|
+
subject,
|
|
101
|
+
intro,
|
|
102
|
+
text,
|
|
103
|
+
html,
|
|
104
|
+
createdAt,
|
|
105
|
+
updatedAt,
|
|
106
|
+
attachments: attachmentArray,
|
|
107
|
+
};
|
|
85
108
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
109
|
+
await new Promise((resolve) => setTimeout(resolve, waitInterval));
|
|
110
|
+
logger(`No messages found, waiting for ${waitInterval / 1000} seconds...`);
|
|
111
|
+
}
|
|
112
|
+
logger(`Waiting timeout of ${maxWaitTime / 1000} seconds reached. No messages found.`);
|
|
113
|
+
throw new Error(`No messages available within ${maxWaitTime / 1000} seconds timeout`);
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
// Cleanup account if accountId is provided
|
|
117
|
+
if (accountId) {
|
|
89
118
|
await deleteAccount(accountId);
|
|
90
|
-
|
|
91
|
-
from: from,
|
|
92
|
-
to: to,
|
|
93
|
-
subject,
|
|
94
|
-
intro,
|
|
95
|
-
text,
|
|
96
|
-
html,
|
|
97
|
-
createdAt,
|
|
98
|
-
updatedAt,
|
|
99
|
-
attachments: attachmentArray,
|
|
100
|
-
};
|
|
119
|
+
logger(`Deleted account ${accountId}`);
|
|
101
120
|
}
|
|
102
|
-
await new Promise((resolve) => setTimeout(resolve, waitInterval));
|
|
103
|
-
logger(`No messages found, waiting for ${waitInterval / 1000} seconds...`);
|
|
104
121
|
}
|
|
105
|
-
logger(`Waiting timeout of ${maxWaitTime / 1000} seconds reached. No messages found.`);
|
|
106
|
-
await deleteAccount(accountId);
|
|
107
|
-
throw new Error(`No messages available within ${maxWaitTime / 1000} seconds timeout`);
|
|
108
122
|
};
|
|
109
123
|
/**
|
|
110
124
|
* Extracts a verification code from the provided email content.
|
|
@@ -123,6 +137,9 @@ export const getRecentEmail = async (options) => {
|
|
|
123
137
|
*/
|
|
124
138
|
export const getVerificationCode = async (text) => {
|
|
125
139
|
console.log('Extracting the verification code from the email content...');
|
|
140
|
+
if (!text) {
|
|
141
|
+
throw new Error('No text provided to extract verification code from.');
|
|
142
|
+
}
|
|
126
143
|
const matches = text.match(/\b\d{5,}\b/);
|
|
127
144
|
if (matches) {
|
|
128
145
|
return matches[0];
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,kBAAkB,GACnB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { generateEmail, getRecentEmail, getVerificationCode, GeneratedEmail, MessageContent, GetEmailOptions } from './index';
|
|
2
|
+
/**
|
|
3
|
+
* Email helper fixtures for Playwright tests.
|
|
4
|
+
* Provides easy access to email generation and retrieval functions.
|
|
5
|
+
*/
|
|
6
|
+
export interface EmailFixtures {
|
|
7
|
+
emailHelper: {
|
|
8
|
+
generateEmail: typeof generateEmail;
|
|
9
|
+
getRecentEmail: typeof getRecentEmail;
|
|
10
|
+
getVerificationCode: typeof getVerificationCode;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Extended Playwright test with email helper fixtures.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* import { test, expect } from 'temp-disposable-email/playwright';
|
|
18
|
+
*
|
|
19
|
+
* test('sign up flow', async ({ page, emailHelper }) => {
|
|
20
|
+
* const { emailAddress } = await emailHelper.generateEmail();
|
|
21
|
+
* // ... your test code
|
|
22
|
+
* });
|
|
23
|
+
*/
|
|
24
|
+
export declare const test: import("@playwright/test").TestType<import("@playwright/test").PlaywrightTestArgs & import("@playwright/test").PlaywrightTestOptions & EmailFixtures, import("@playwright/test").PlaywrightWorkerArgs & import("@playwright/test").PlaywrightWorkerOptions>;
|
|
25
|
+
export { expect } from '@playwright/test';
|
|
26
|
+
export type { GeneratedEmail, MessageContent, GetEmailOptions };
|
|
27
|
+
//# sourceMappingURL=playwright.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright.d.ts","sourceRoot":"","sources":["../../src/playwright.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,aAAa,EAAE,OAAO,aAAa,CAAC;QACpC,cAAc,EAAE,OAAO,cAAc,CAAC;QACtC,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;KACjD,CAAC;CACH;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,6PASf,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { test as base } from '@playwright/test';
|
|
2
|
+
import { generateEmail, getRecentEmail, getVerificationCode, } from './index';
|
|
3
|
+
/**
|
|
4
|
+
* Extended Playwright test with email helper fixtures.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* import { test, expect } from 'temp-disposable-email/playwright';
|
|
8
|
+
*
|
|
9
|
+
* test('sign up flow', async ({ page, emailHelper }) => {
|
|
10
|
+
* const { emailAddress } = await emailHelper.generateEmail();
|
|
11
|
+
* // ... your test code
|
|
12
|
+
* });
|
|
13
|
+
*/
|
|
14
|
+
export const test = base.extend({
|
|
15
|
+
// eslint-disable-next-line no-empty-pattern
|
|
16
|
+
emailHelper: async ({}, use) => {
|
|
17
|
+
await use({
|
|
18
|
+
generateEmail,
|
|
19
|
+
getRecentEmail,
|
|
20
|
+
getVerificationCode,
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
export { expect } from '@playwright/test';
|
|
25
|
+
//# sourceMappingURL=playwright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright.js","sourceRoot":"","sources":["../../src/playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EACL,aAAa,EACb,cAAc,EACd,mBAAmB,GAIpB,MAAM,SAAS,CAAC;AAcjB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAgB;IAC7C,4CAA4C;IAC5C,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,GAAG,CAAC;YACR,aAAa;YACb,cAAc;YACd,mBAAmB;SACpB,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC"}
|