temp-disposable-email 1.13.0 → 1.13.2
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 +4 -48
- package/dist/cjs/api.d.ts.map +1 -1
- package/dist/cjs/api.js +18 -10
- package/dist/cjs/api.js.map +1 -1
- package/dist/cjs/cypress.d.ts +62 -0
- package/dist/cjs/cypress.d.ts.map +1 -0
- package/dist/cjs/cypress.js +10 -0
- package/dist/cjs/cypress.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -5
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -50
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/api.d.ts.map +1 -1
- package/dist/esm/api.js +18 -10
- package/dist/esm/api.js.map +1 -1
- package/dist/esm/cypress.d.ts +62 -0
- package/dist/esm/cypress.d.ts.map +1 -0
- package/dist/esm/cypress.js +8 -0
- package/dist/esm/cypress.js.map +1 -0
- package/dist/esm/index.d.ts +1 -5
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -17
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -5
- package/tsconfig.json +1 -1
package/README.md
CHANGED
|
@@ -61,21 +61,13 @@ To use the package, import the functions in your TypeScript or JavaScript projec
|
|
|
61
61
|
#### Using ES Modules (Recommended)
|
|
62
62
|
|
|
63
63
|
```typescript
|
|
64
|
-
import {
|
|
65
|
-
generateEmail,
|
|
66
|
-
getRecentEmail,
|
|
67
|
-
deleteAccount,
|
|
68
|
-
} from 'temp-disposable-email';
|
|
64
|
+
import { generateEmail, getRecentEmail } from 'temp-disposable-email';
|
|
69
65
|
```
|
|
70
66
|
|
|
71
67
|
#### Using CommonJS
|
|
72
68
|
|
|
73
69
|
```javascript
|
|
74
|
-
const {
|
|
75
|
-
generateEmail,
|
|
76
|
-
getRecentEmail,
|
|
77
|
-
deleteAccount,
|
|
78
|
-
} = require('temp-disposable-email');
|
|
70
|
+
const { generateEmail, getRecentEmail } = require('temp-disposable-email');
|
|
79
71
|
```
|
|
80
72
|
|
|
81
73
|
### 2\. Create an Inbox
|
|
@@ -116,23 +108,6 @@ console.log('Message received:', message);
|
|
|
116
108
|
|
|
117
109
|
- `Promise<object | null>`: An object containing email details like `from`, `to`, `subject`, `intro`, `text`, `html`, `createdAt`, and `updatedAt`.
|
|
118
110
|
|
|
119
|
-
### 4\. Delete the Created Account
|
|
120
|
-
|
|
121
|
-
Once you're done with the email inbox, you can delete the account to clean up resources.
|
|
122
|
-
|
|
123
|
-
```typescript
|
|
124
|
-
const res = await deleteAccount('accountId');
|
|
125
|
-
console.log(res); // status code
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
#### Parameters
|
|
129
|
-
|
|
130
|
-
- `accountId`: `accountId` from `generateEmail()`
|
|
131
|
-
|
|
132
|
-
#### Returns
|
|
133
|
-
|
|
134
|
-
- `Promise<number>`: status code.
|
|
135
|
-
|
|
136
111
|
<p id="example"></p>
|
|
137
112
|
|
|
138
113
|
## Example Workflow
|
|
@@ -150,16 +125,12 @@ For using temp-disposable-email with Cypress, see the example in the [Cypress fo
|
|
|
150
125
|
Here's a complete example of creating an inbox, retrieving a message, and deleting the account:
|
|
151
126
|
|
|
152
127
|
```typescript
|
|
153
|
-
import {
|
|
154
|
-
generateEmail,
|
|
155
|
-
getRecentEmail,
|
|
156
|
-
deleteAccount,
|
|
157
|
-
} from 'temp-disposable-email';
|
|
128
|
+
import { generateEmail, getRecentEmail } from 'temp-disposable-email';
|
|
158
129
|
|
|
159
130
|
async function run() {
|
|
160
131
|
try {
|
|
161
132
|
// Create a new inbox
|
|
162
|
-
const { emailAddress
|
|
133
|
+
const { emailAddress } = await generateEmail();
|
|
163
134
|
console.log('Created email:', emailAddress);
|
|
164
135
|
|
|
165
136
|
// Get the first available message from the inbox
|
|
@@ -169,14 +140,6 @@ async function run() {
|
|
|
169
140
|
logPolling: true,
|
|
170
141
|
});
|
|
171
142
|
console.log('Received message:', message);
|
|
172
|
-
|
|
173
|
-
// Delete the inbox
|
|
174
|
-
const res = await deleteAccount(accountId);
|
|
175
|
-
if (res === 204) {
|
|
176
|
-
console.log('Account deleted successfully');
|
|
177
|
-
} else {
|
|
178
|
-
console.log('Account deleted failed');
|
|
179
|
-
}
|
|
180
143
|
} catch (error) {
|
|
181
144
|
console.error('Error:', error);
|
|
182
145
|
}
|
|
@@ -203,13 +166,6 @@ run();
|
|
|
203
166
|
- `options` (Optional): Polling configuration for waiting for messages. See GetEmailOptions.
|
|
204
167
|
- **Returns**: A promise that resolves to the message content (or `null` if no messages are found).
|
|
205
168
|
|
|
206
|
-
### `deleteAccount(): Promise<void>`
|
|
207
|
-
|
|
208
|
-
- **Description**: Deletes the inbox and its associated account.
|
|
209
|
-
- **Parameters**:
|
|
210
|
-
- `accountId` accountId from `generateEmail()`
|
|
211
|
-
- **Returns**: A promise that resolves when the account is successfully deleted.
|
|
212
|
-
|
|
213
169
|
## Get Email Options
|
|
214
170
|
|
|
215
171
|
You can configure polling behavior by passing an options object to `getRecentEmail`. The available options are:
|
package/dist/cjs/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/api.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.deleteAccount = exports.createAccount = exports.deleteMessage = exports.getMessageAttachments = exports.getMessagesContent = exports.getMessages = exports.getDomains = exports.getAuthHeaders = exports.authenticate = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const _1 = require(".");
|
|
8
9
|
let token = null;
|
|
9
10
|
const apiClient = axios_1.default.create({
|
|
10
11
|
baseURL: process.env.BASE_URL || 'https://api.mail.tm',
|
|
@@ -44,15 +45,22 @@ const getDomains = async () => {
|
|
|
44
45
|
};
|
|
45
46
|
exports.getDomains = getDomains;
|
|
46
47
|
const getMessages = async () => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
48
|
+
while (true) {
|
|
49
|
+
try {
|
|
50
|
+
const { data } = await apiClient.get('/messages?page=1', {
|
|
51
|
+
headers: (0, exports.getAuthHeaders)(),
|
|
52
|
+
});
|
|
53
|
+
return data;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
if (error.response?.status === 429) {
|
|
57
|
+
await (0, _1.delay)(10 * 1000);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.error('Error fetching messages:', error);
|
|
61
|
+
throw new Error('Failed to fetch messages. Please try again later.');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
56
64
|
}
|
|
57
65
|
};
|
|
58
66
|
exports.getMessages = getMessages;
|
|
@@ -64,7 +72,7 @@ const getMessagesContent = async (messageId) => {
|
|
|
64
72
|
return data;
|
|
65
73
|
}
|
|
66
74
|
catch (error) {
|
|
67
|
-
console.error(`Error fetching message content for ID ${messageId}:`, error);
|
|
75
|
+
console.error(`Error fetching message content for ID ${messageId}:`, error.message);
|
|
68
76
|
throw new Error('Failed to fetch message content. Please try again later.');
|
|
69
77
|
}
|
|
70
78
|
};
|
package/dist/cjs/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AA8E1B,IAAI,KAAK,GAAkB,IAAI,CAAC;AAChC,MAAM,SAAS,GAAG,eAAK,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,qBAAqB;IACtD,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;CACxC,CAAC,CAAC;AACI,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAa,EACb,QAAgB,EACD,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CACnC,QAAQ,EACR,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAC5B;QACE,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC;KACF,CACF,CAAC;IACF,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB;AACK,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;AARW,QAAA,cAAc,kBAQzB;AAEK,MAAM,UAAU,GAAG,KAAK,IAA8B,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE;YAC/C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,UAAU,cAUrB;AAEK,MAAM,WAAW,GAAG,KAAK,IAA4B,EAAE;IAC5D,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { GeneratedEmail, GetEmailOptions, MessageContent } from './index';
|
|
2
|
+
declare global {
|
|
3
|
+
namespace Cypress {
|
|
4
|
+
interface Chainable {
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new email inbox with a unique address.
|
|
7
|
+
*
|
|
8
|
+
* This function generates an temp inbox & email address
|
|
9
|
+
*
|
|
10
|
+
* @param {string} [emailPrefix] - Optional emailPrefix; a random one is generated if not provided.
|
|
11
|
+
* @returns {Promise<GeneratedEmail>} The generated email address & account ID.
|
|
12
|
+
*
|
|
13
|
+
* @throws {Error} If no domains are available or account creation fails.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* cy.generateEmail("customUser");
|
|
17
|
+
* Outputs: {"emailAddress": "customUser@mail.tm" , "accountId": "1234"}
|
|
18
|
+
*/
|
|
19
|
+
generateEmail(prefix?: string): Chainable<GeneratedEmail>;
|
|
20
|
+
/**
|
|
21
|
+
* Retrieves the latest message from the inbox.
|
|
22
|
+
*
|
|
23
|
+
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
24
|
+
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
25
|
+
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
|
26
|
+
* @param {boolean} [options.logPolling=false] - Whether to log polling attempts. Default is `false`.
|
|
27
|
+
* @param {boolean} [options.deleteAfterRead=false] - Whether to delete the message after reading. Default is `false`.
|
|
28
|
+
* @returns {Promise<MessageContent | null>} The email content (sender, recipient, subject, text, HTML), or `null` if no messages are found.
|
|
29
|
+
*
|
|
30
|
+
* @throws {Error} If no messages are available within the polling timeout or authentication fails.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* cy.getRecentEmail({ maxWaitTime: 5000, waitInterval: 1000, logPolling: true });
|
|
34
|
+
* Outputs: {
|
|
35
|
+
"from": { "address": "sender@example.com" },
|
|
36
|
+
"to": [
|
|
37
|
+
{ "address": "recipient1@example.com" },
|
|
38
|
+
{ "address": "recipient2@example.com" }
|
|
39
|
+
],
|
|
40
|
+
"subject": "Welcome to Our Service",
|
|
41
|
+
"intro": "Thank you for signing up!",
|
|
42
|
+
"text": "Hello,\n\nThank you for joining our service. We're excited to have you on board!\n\nBest regards,\nThe Team",
|
|
43
|
+
"html": [
|
|
44
|
+
"<html>",
|
|
45
|
+
"<body>",
|
|
46
|
+
"<h1>Welcome to Our Service</h1>",
|
|
47
|
+
"<p>Thank you for signing up!</p>",
|
|
48
|
+
"<p>We're excited to have you on board!</p>",
|
|
49
|
+
"<p>Best regards,</p>",
|
|
50
|
+
"<p>The Team</p>",
|
|
51
|
+
"</body>",
|
|
52
|
+
"</html>"
|
|
53
|
+
],
|
|
54
|
+
"createdAt": "2024-12-05T10:00:00Z",
|
|
55
|
+
"updatedAt": "2024-12-05T10:05:00Z"
|
|
56
|
+
}
|
|
57
|
+
*/
|
|
58
|
+
getRecentEmail(options: GetEmailOptions): Chainable<MessageContent | null>;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=cypress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypress.d.ts","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,eAAe,EAEf,cAAc,EACf,MAAM,SAAS,CAAC;AAUjB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,SAAS;YACjB;;;;;;;;;;;;;eAaG;YACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;YAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAqCG;YACH,cAAc,CACZ,OAAO,EAAE,eAAe,GACvB,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;SACrC;KACF;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const index_1 = require("./index");
|
|
4
|
+
Cypress.Commands.add('generateEmail', function (prefix) {
|
|
5
|
+
return cy.wrap((0, index_1.generateEmail)(prefix));
|
|
6
|
+
});
|
|
7
|
+
Cypress.Commands.add('getRecentEmail', function (options) {
|
|
8
|
+
return cy.wrap((0, index_1.getRecentEmail)(options));
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=cypress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":";;AAAA,mCAMiB;AAEjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAe;IAC7D,OAAO,EAAE,CAAC,IAAI,CAAC,IAAA,qBAAa,EAAC,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,IAAA,sBAAc,EAAC,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface GetEmailOptions {
|
|
|
22
22
|
logPolling?: boolean;
|
|
23
23
|
deleteAfterRead?: boolean;
|
|
24
24
|
}
|
|
25
|
+
export declare const delay: (ms: number) => Promise<void>;
|
|
25
26
|
/**
|
|
26
27
|
* Creates a new email inbox with a unique address.
|
|
27
28
|
*
|
|
@@ -40,11 +41,6 @@ export declare const generateEmail: (emailPrefix?: string) => Promise<GeneratedE
|
|
|
40
41
|
/**
|
|
41
42
|
* Retrieves the latest message from the inbox.
|
|
42
43
|
*
|
|
43
|
-
* If messages are available, this function fetches the first one and
|
|
44
|
-
* returns its details. Polling options can be specified to wait for
|
|
45
|
-
* messages if the inbox is empty. Optionally, the message can be
|
|
46
|
-
* deleted after reading.
|
|
47
|
-
*
|
|
48
44
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
49
45
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
50
46
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
package/dist/cjs/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":"AAYA,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;CACnB;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;CAC3B;AAED,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAC;AAIpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,iBACV,MAAM,KACnB,OAAO,CAAC,cAAc,CA2BxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,aACf,eAAe,KACxB,OAAO,CAAC,cAAc,GAAG,IAAI,CA4D/B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,mBAAmB,SACxB,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,MAAM,CAOhB,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,45 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.getVerificationCode = exports.getRecentEmail = exports.generateEmail = void 0;
|
|
37
|
-
const dotenv = __importStar(require("dotenv"));
|
|
38
|
-
dotenv.config();
|
|
3
|
+
exports.getVerificationCode = exports.getRecentEmail = exports.generateEmail = exports.delay = void 0;
|
|
39
4
|
const api_1 = require("./api");
|
|
40
5
|
const api_2 = require("./api");
|
|
41
6
|
let accountId;
|
|
42
7
|
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
8
|
+
exports.delay = delay;
|
|
43
9
|
const generateRandomName = () => Math.random().toString(36).substring(2, 15);
|
|
44
10
|
/**
|
|
45
11
|
* Creates a new email inbox with a unique address.
|
|
@@ -64,9 +30,7 @@ const generateEmail = async (emailPrefix) => {
|
|
|
64
30
|
throw new Error('No available domains.');
|
|
65
31
|
const emailAddress = `${emailPrefix || generateRandomName()}@${domains[0]}`;
|
|
66
32
|
const password = generateRandomName();
|
|
67
|
-
|
|
68
|
-
const maxRetries = 5;
|
|
69
|
-
while (attempts < maxRetries) {
|
|
33
|
+
while (true) {
|
|
70
34
|
try {
|
|
71
35
|
const accountResponse = await (0, api_2.createAccount)({
|
|
72
36
|
address: emailAddress,
|
|
@@ -78,28 +42,18 @@ const generateEmail = async (emailPrefix) => {
|
|
|
78
42
|
}
|
|
79
43
|
catch (error) {
|
|
80
44
|
if (error.response?.status === 429) {
|
|
81
|
-
|
|
82
|
-
const retryAfter = error.response.headers['retry-after']
|
|
83
|
-
? parseInt(error.response.headers['retry-after'])
|
|
84
|
-
: 5;
|
|
85
|
-
await delay(retryAfter * 1000);
|
|
45
|
+
await (0, exports.delay)(5 * 1000);
|
|
86
46
|
}
|
|
87
47
|
else {
|
|
88
48
|
throw error;
|
|
89
49
|
}
|
|
90
50
|
}
|
|
91
51
|
}
|
|
92
|
-
throw new Error('Failed to create account after multiple retries.');
|
|
93
52
|
};
|
|
94
53
|
exports.generateEmail = generateEmail;
|
|
95
54
|
/**
|
|
96
55
|
* Retrieves the latest message from the inbox.
|
|
97
56
|
*
|
|
98
|
-
* If messages are available, this function fetches the first one and
|
|
99
|
-
* returns its details. Polling options can be specified to wait for
|
|
100
|
-
* messages if the inbox is empty. Optionally, the message can be
|
|
101
|
-
* deleted after reading.
|
|
102
|
-
*
|
|
103
57
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
104
58
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
105
59
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/api.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
+
import { delay } from '.';
|
|
2
3
|
let token = null;
|
|
3
4
|
const apiClient = axios.create({
|
|
4
5
|
baseURL: process.env.BASE_URL || 'https://api.mail.tm',
|
|
@@ -35,15 +36,22 @@ export const getDomains = async () => {
|
|
|
35
36
|
}
|
|
36
37
|
};
|
|
37
38
|
export const getMessages = async () => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
while (true) {
|
|
40
|
+
try {
|
|
41
|
+
const { data } = await apiClient.get('/messages?page=1', {
|
|
42
|
+
headers: getAuthHeaders(),
|
|
43
|
+
});
|
|
44
|
+
return data;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error.response?.status === 429) {
|
|
48
|
+
await delay(10 * 1000);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
console.error('Error fetching messages:', error);
|
|
52
|
+
throw new Error('Failed to fetch messages. Please try again later.');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
}
|
|
48
56
|
};
|
|
49
57
|
export const getMessagesContent = async (messageId) => {
|
|
@@ -54,7 +62,7 @@ export const getMessagesContent = async (messageId) => {
|
|
|
54
62
|
return data;
|
|
55
63
|
}
|
|
56
64
|
catch (error) {
|
|
57
|
-
console.error(`Error fetching message content for ID ${messageId}:`, error);
|
|
65
|
+
console.error(`Error fetching message content for ID ${messageId}:`, error.message);
|
|
58
66
|
throw new Error('Failed to fetch message content. Please try again later.');
|
|
59
67
|
}
|
|
60
68
|
};
|
package/dist/esm/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA8E1B,IAAI,KAAK,GAAkB,IAAI,CAAC;AAChC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,qBAAqB;IACtD,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;CACxC,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAa,EACb,QAAgB,EACD,EAAE;IACjB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CACnC,QAAQ,EACR,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAC5B;QACE,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC;KACF,CACF,CAAC;IACF,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B,CAAC,CAAC;AACF,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,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,IAA8B,EAAE;IAC7D,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE;YAC/C,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,IAA4B,EAAE;IAC5D,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { GeneratedEmail, GetEmailOptions, MessageContent } from './index';
|
|
2
|
+
declare global {
|
|
3
|
+
namespace Cypress {
|
|
4
|
+
interface Chainable {
|
|
5
|
+
/**
|
|
6
|
+
* Creates a new email inbox with a unique address.
|
|
7
|
+
*
|
|
8
|
+
* This function generates an temp inbox & email address
|
|
9
|
+
*
|
|
10
|
+
* @param {string} [emailPrefix] - Optional emailPrefix; a random one is generated if not provided.
|
|
11
|
+
* @returns {Promise<GeneratedEmail>} The generated email address & account ID.
|
|
12
|
+
*
|
|
13
|
+
* @throws {Error} If no domains are available or account creation fails.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* cy.generateEmail("customUser");
|
|
17
|
+
* Outputs: {"emailAddress": "customUser@mail.tm" , "accountId": "1234"}
|
|
18
|
+
*/
|
|
19
|
+
generateEmail(prefix?: string): Chainable<GeneratedEmail>;
|
|
20
|
+
/**
|
|
21
|
+
* Retrieves the latest message from the inbox.
|
|
22
|
+
*
|
|
23
|
+
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
24
|
+
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
25
|
+
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
|
26
|
+
* @param {boolean} [options.logPolling=false] - Whether to log polling attempts. Default is `false`.
|
|
27
|
+
* @param {boolean} [options.deleteAfterRead=false] - Whether to delete the message after reading. Default is `false`.
|
|
28
|
+
* @returns {Promise<MessageContent | null>} The email content (sender, recipient, subject, text, HTML), or `null` if no messages are found.
|
|
29
|
+
*
|
|
30
|
+
* @throws {Error} If no messages are available within the polling timeout or authentication fails.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* cy.getRecentEmail({ maxWaitTime: 5000, waitInterval: 1000, logPolling: true });
|
|
34
|
+
* Outputs: {
|
|
35
|
+
"from": { "address": "sender@example.com" },
|
|
36
|
+
"to": [
|
|
37
|
+
{ "address": "recipient1@example.com" },
|
|
38
|
+
{ "address": "recipient2@example.com" }
|
|
39
|
+
],
|
|
40
|
+
"subject": "Welcome to Our Service",
|
|
41
|
+
"intro": "Thank you for signing up!",
|
|
42
|
+
"text": "Hello,\n\nThank you for joining our service. We're excited to have you on board!\n\nBest regards,\nThe Team",
|
|
43
|
+
"html": [
|
|
44
|
+
"<html>",
|
|
45
|
+
"<body>",
|
|
46
|
+
"<h1>Welcome to Our Service</h1>",
|
|
47
|
+
"<p>Thank you for signing up!</p>",
|
|
48
|
+
"<p>We're excited to have you on board!</p>",
|
|
49
|
+
"<p>Best regards,</p>",
|
|
50
|
+
"<p>The Team</p>",
|
|
51
|
+
"</body>",
|
|
52
|
+
"</html>"
|
|
53
|
+
],
|
|
54
|
+
"createdAt": "2024-12-05T10:00:00Z",
|
|
55
|
+
"updatedAt": "2024-12-05T10:05:00Z"
|
|
56
|
+
}
|
|
57
|
+
*/
|
|
58
|
+
getRecentEmail(options: GetEmailOptions): Chainable<MessageContent | null>;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=cypress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypress.d.ts","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,eAAe,EAEf,cAAc,EACf,MAAM,SAAS,CAAC;AAUjB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,SAAS;YACjB;;;;;;;;;;;;;eAaG;YACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;YAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAqCG;YACH,cAAc,CACZ,OAAO,EAAE,eAAe,GACvB,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;SACrC;KACF;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { generateEmail, getRecentEmail, } from './index';
|
|
2
|
+
Cypress.Commands.add('generateEmail', function (prefix) {
|
|
3
|
+
return cy.wrap(generateEmail(prefix));
|
|
4
|
+
});
|
|
5
|
+
Cypress.Commands.add('getRecentEmail', function (options) {
|
|
6
|
+
return cy.wrap(getRecentEmail(options));
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=cypress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cypress.js","sourceRoot":"","sources":["../../src/cypress.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAEb,cAAc,GAEf,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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export interface GetEmailOptions {
|
|
|
22
22
|
logPolling?: boolean;
|
|
23
23
|
deleteAfterRead?: boolean;
|
|
24
24
|
}
|
|
25
|
+
export declare const delay: (ms: number) => Promise<void>;
|
|
25
26
|
/**
|
|
26
27
|
* Creates a new email inbox with a unique address.
|
|
27
28
|
*
|
|
@@ -40,11 +41,6 @@ export declare const generateEmail: (emailPrefix?: string) => Promise<GeneratedE
|
|
|
40
41
|
/**
|
|
41
42
|
* Retrieves the latest message from the inbox.
|
|
42
43
|
*
|
|
43
|
-
* If messages are available, this function fetches the first one and
|
|
44
|
-
* returns its details. Polling options can be specified to wait for
|
|
45
|
-
* messages if the inbox is empty. Optionally, the message can be
|
|
46
|
-
* deleted after reading.
|
|
47
|
-
*
|
|
48
44
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
49
45
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
50
46
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
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":"AAYA,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;CACnB;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;CAC3B;AAED,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CACI,CAAC;AAIpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,iBACV,MAAM,KACnB,OAAO,CAAC,cAAc,CA2BxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,cAAc,aACf,eAAe,KACxB,OAAO,CAAC,cAAc,GAAG,IAAI,CA4D/B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,mBAAmB,SACxB,MAAM,GAAG,SAAS,KACvB,OAAO,CAAC,MAAM,CAOhB,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import * as dotenv from 'dotenv';
|
|
2
|
-
dotenv.config();
|
|
3
1
|
import { authenticate } from './api';
|
|
4
2
|
import { createAccount, deleteAccount, deleteMessage, getDomains, getMessages, getMessagesContent, } from './api';
|
|
5
3
|
let accountId;
|
|
6
|
-
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
4
|
+
export const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
7
5
|
const generateRandomName = () => Math.random().toString(36).substring(2, 15);
|
|
8
6
|
/**
|
|
9
7
|
* Creates a new email inbox with a unique address.
|
|
@@ -28,9 +26,7 @@ export const generateEmail = async (emailPrefix) => {
|
|
|
28
26
|
throw new Error('No available domains.');
|
|
29
27
|
const emailAddress = `${emailPrefix || generateRandomName()}@${domains[0]}`;
|
|
30
28
|
const password = generateRandomName();
|
|
31
|
-
|
|
32
|
-
const maxRetries = 5;
|
|
33
|
-
while (attempts < maxRetries) {
|
|
29
|
+
while (true) {
|
|
34
30
|
try {
|
|
35
31
|
const accountResponse = await createAccount({
|
|
36
32
|
address: emailAddress,
|
|
@@ -42,27 +38,17 @@ export const generateEmail = async (emailPrefix) => {
|
|
|
42
38
|
}
|
|
43
39
|
catch (error) {
|
|
44
40
|
if (error.response?.status === 429) {
|
|
45
|
-
|
|
46
|
-
const retryAfter = error.response.headers['retry-after']
|
|
47
|
-
? parseInt(error.response.headers['retry-after'])
|
|
48
|
-
: 5;
|
|
49
|
-
await delay(retryAfter * 1000);
|
|
41
|
+
await delay(5 * 1000);
|
|
50
42
|
}
|
|
51
43
|
else {
|
|
52
44
|
throw error;
|
|
53
45
|
}
|
|
54
46
|
}
|
|
55
47
|
}
|
|
56
|
-
throw new Error('Failed to create account after multiple retries.');
|
|
57
48
|
};
|
|
58
49
|
/**
|
|
59
50
|
* Retrieves the latest message from the inbox.
|
|
60
51
|
*
|
|
61
|
-
* If messages are available, this function fetches the first one and
|
|
62
|
-
* returns its details. Polling options can be specified to wait for
|
|
63
|
-
* messages if the inbox is empty. Optionally, the message can be
|
|
64
|
-
* deleted after reading.
|
|
65
|
-
*
|
|
66
52
|
* @param {GetEmailOptions} [options] - Optional settings for polling and deletion.
|
|
67
53
|
* @param {number} [options.maxWaitTime=30000] - Maximum time to wait for messages (in milliseconds). Default is 30 seconds.
|
|
68
54
|
* @param {number} [options.waitInterval=2000] - Time interval between polling attempts (in milliseconds). Default is 2 seconds.
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "temp-disposable-email",
|
|
3
|
-
"version": "1.13.
|
|
3
|
+
"version": "1.13.2",
|
|
4
4
|
"description": "Generating Temporary email address for testing, retrieving email from the temporary email address",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -39,10 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"homepage": "https://github.com/pirasanthan-jesugeevegan/temp-disposable-email#readme",
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"axios": "^1.7.8"
|
|
43
|
-
"dotenv": "^16.4.5",
|
|
44
|
-
"temp-disposable-email": "^1.11.5",
|
|
45
|
-
"tslib": "^2.8.1"
|
|
42
|
+
"axios": "^1.7.8"
|
|
46
43
|
},
|
|
47
44
|
"devDependencies": {
|
|
48
45
|
"@playwright/test": "^1.49.0",
|