@mailwurf/e2e 1.0.0-9561ffb → 1.0.0-b2d078a
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 +20 -5
- package/dist/client.d.ts +9 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +30 -33
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +9 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -9,9 +9,9 @@ npm install @mailwurf/e2e
|
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
```ts
|
|
12
|
-
import {
|
|
12
|
+
import { createMailwurf } from "@mailwurf/e2e";
|
|
13
13
|
|
|
14
|
-
const mailwurf =
|
|
14
|
+
const mailwurf = createMailwurf(process.env.MAILWURF_API_KEY!); // API key (mw_live_…) from Dashboard → API keys
|
|
15
15
|
const inbox = await mailwurf.createInbox();
|
|
16
16
|
|
|
17
17
|
await page.fill("[name=email]", inbox.address);
|
|
@@ -22,10 +22,25 @@ await page.goto(mail.links[0]!);
|
|
|
22
22
|
// mail.otp → "482193"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
The
|
|
25
|
+
The first argument is the organization key (`mw_live_…`) and is required; `createMailwurf()` throws when it is empty. The package reads no environment variables. It talks to `https://api.mailwurf.io`; pass `apiUrl` only for a self-hosted Mailwurf. A bare host is treated as `https://`:
|
|
26
26
|
|
|
27
27
|
```ts
|
|
28
|
-
|
|
28
|
+
createMailwurf("mw_live_…", { apiUrl: "mailwurf.example.com" });
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
`
|
|
31
|
+
`subject` is a case-insensitive substring. `timeout` is milliseconds.
|
|
32
|
+
|
|
33
|
+
## Send from an inbox
|
|
34
|
+
|
|
35
|
+
Inboxes send too, for tests of an app that reads mail (support replies, mail-to-import):
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
const alice = await mailwurf.createInbox();
|
|
39
|
+
const bob = await mailwurf.createInbox();
|
|
40
|
+
await alice.send({ to: bob.address, subject: "Hello", text: "Hi Bob" });
|
|
41
|
+
const mail = await bob.waitFor({ subject: "Hello" });
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`inbox.senderAddress` is what recipients see as sender. It equals `inbox.address`, except for a permanent address on a [sending domain](https://mailwurf.io/help/dashboard/domains#sending-domains): `billing@send.acme.com` sends as `billing@acme.com`.
|
|
45
|
+
|
|
46
|
+
To send transactional mail from an app (receipts, notifications), use [`@mailwurf/transactional`](https://www.npmjs.com/package/@mailwurf/transactional).
|
package/dist/client.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { CreateInboxInput, Inbox, ListMessagesOptions, MailwurfOptions, Message, SendMessageInput, SentMessage, WaitForOptions } from "./types.js";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const DEFAULT_API_URL = "https://api.mailwurf.io";
|
|
3
3
|
export declare class Mailwurf {
|
|
4
4
|
#private;
|
|
5
|
-
readonly
|
|
6
|
-
constructor(options?: MailwurfOptions);
|
|
5
|
+
readonly apiUrl: string;
|
|
6
|
+
constructor(apiKey: string, options?: MailwurfOptions);
|
|
7
7
|
health(): Promise<void>;
|
|
8
8
|
createInbox(input?: CreateInboxInput): Promise<MailwurfInbox>;
|
|
9
9
|
getInbox(id: string): Promise<MailwurfInbox>;
|
|
@@ -18,6 +18,7 @@ export declare class MailwurfInbox implements Inbox {
|
|
|
18
18
|
#private;
|
|
19
19
|
readonly id: string;
|
|
20
20
|
readonly address: string;
|
|
21
|
+
readonly senderAddress: string;
|
|
21
22
|
readonly createdAt: Date;
|
|
22
23
|
readonly expiresAt: Date | null;
|
|
23
24
|
constructor(client: Mailwurf, inbox: Inbox);
|
|
@@ -26,5 +27,9 @@ export declare class MailwurfInbox implements Inbox {
|
|
|
26
27
|
messages(options?: ListMessagesOptions): Promise<Message[]>;
|
|
27
28
|
delete(): Promise<void>;
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
/**
|
|
31
|
+
* `apiKey` is the organization key (`mw_live_…`) and is required.
|
|
32
|
+
* `apiUrl` is only needed for a self-hosted Mailwurf.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createMailwurf(apiKey: string, options?: MailwurfOptions): Mailwurf;
|
|
30
35
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,OAAO,EAGP,gBAAgB,EAChB,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,OAAO,EAGP,gBAAgB,EAChB,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,eAAe,4BAA4B,CAAC;AAsDzD,qBAAa,QAAQ;;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAIZ,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB;IAYnD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,WAAW,CAAC,KAAK,GAAE,gBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC;IAWjE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ5C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAQvD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQxC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IASpF,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBxE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAkBpE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAqC7C;AAED,qBAAa,aAAc,YAAW,KAAK;;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;gBAGpB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK;IAS1C,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAInD,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAInD,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGxB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,QAAQ,CAEtF"}
|
package/dist/client.js
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
import { MailwurfError, MailwurfTimeoutError } from "./errors.js";
|
|
2
|
-
export const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (env && env.length > 0) {
|
|
6
|
-
return env;
|
|
7
|
-
}
|
|
8
|
-
return DEFAULT_BASE_URL;
|
|
9
|
-
}
|
|
10
|
-
/** Accepts `api.mailwurf.io` as well as `https://api.mailwurf.io/`. */
|
|
11
|
-
function normalizeBaseUrl(url) {
|
|
2
|
+
export const DEFAULT_API_URL = "https://api.mailwurf.io";
|
|
3
|
+
/** Accepts `mailwurf.example.com` as well as `https://mailwurf.example.com/`. */
|
|
4
|
+
function normalizeApiUrl(url) {
|
|
12
5
|
const trimmed = url.trim().replace(/\/+$/, "");
|
|
13
6
|
return /^https?:\/\//i.test(trimmed) ? trimmed : `https://${trimmed}`;
|
|
14
7
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return env;
|
|
8
|
+
function requireApiKey(apiKey) {
|
|
9
|
+
if (typeof apiKey !== "string" || apiKey.trim().length === 0) {
|
|
10
|
+
throw new TypeError("Mailwurf: apiKey is required. Pass the organization key (mw_live_…) from the dashboard.");
|
|
19
11
|
}
|
|
20
|
-
return
|
|
12
|
+
return apiKey;
|
|
21
13
|
}
|
|
22
14
|
function asInbox(raw) {
|
|
23
15
|
return {
|
|
24
16
|
id: raw.id,
|
|
25
17
|
address: raw.address,
|
|
18
|
+
senderAddress: raw.sender_address ?? raw.address,
|
|
26
19
|
createdAt: new Date(raw.created_at),
|
|
27
20
|
expiresAt: raw.expires_at ? new Date(raw.expires_at) : null,
|
|
28
21
|
};
|
|
@@ -53,23 +46,21 @@ function query(params) {
|
|
|
53
46
|
return s ? `?${s}` : "";
|
|
54
47
|
}
|
|
55
48
|
export class Mailwurf {
|
|
56
|
-
|
|
49
|
+
apiUrl;
|
|
57
50
|
#fetch;
|
|
58
51
|
#apiKey;
|
|
59
|
-
constructor(options = {}) {
|
|
60
|
-
this
|
|
52
|
+
constructor(apiKey, options = {}) {
|
|
53
|
+
this.#apiKey = requireApiKey(apiKey);
|
|
54
|
+
this.apiUrl = normalizeApiUrl(options.apiUrl ?? DEFAULT_API_URL);
|
|
61
55
|
this.#fetch = options.fetch ?? fetch;
|
|
62
|
-
this.#apiKey = options.apiKey ?? defaultApiKey();
|
|
63
56
|
}
|
|
64
57
|
#headers(extra) {
|
|
65
58
|
const headers = new Headers(extra);
|
|
66
|
-
|
|
67
|
-
headers.set("authorization", `Bearer ${this.#apiKey}`);
|
|
68
|
-
}
|
|
59
|
+
headers.set("authorization", `Bearer ${this.#apiKey}`);
|
|
69
60
|
return headers;
|
|
70
61
|
}
|
|
71
62
|
async health() {
|
|
72
|
-
const res = await this.#fetch(`${this.
|
|
63
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/health`);
|
|
73
64
|
await this.#read(res);
|
|
74
65
|
}
|
|
75
66
|
async createInbox(input = {}) {
|
|
@@ -78,39 +69,39 @@ export class Mailwurf {
|
|
|
78
69
|
init.headers = this.#headers({ "content-type": "application/json" });
|
|
79
70
|
init.body = JSON.stringify({ address: input.address });
|
|
80
71
|
}
|
|
81
|
-
const res = await this.#fetch(`${this.
|
|
72
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes`, init);
|
|
82
73
|
const raw = await this.#read(res);
|
|
83
74
|
return this.#wrap(asInbox(raw));
|
|
84
75
|
}
|
|
85
76
|
async getInbox(id) {
|
|
86
|
-
const res = await this.#fetch(`${this.
|
|
77
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes/${encodeURIComponent(id)}`, {
|
|
87
78
|
headers: this.#headers(),
|
|
88
79
|
});
|
|
89
80
|
const raw = await this.#read(res);
|
|
90
81
|
return this.#wrap(asInbox(raw));
|
|
91
82
|
}
|
|
92
83
|
async inboxByAddress(address) {
|
|
93
|
-
const res = await this.#fetch(`${this.
|
|
84
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes${query({ address })}`, {
|
|
94
85
|
headers: this.#headers(),
|
|
95
86
|
});
|
|
96
87
|
const raw = await this.#read(res);
|
|
97
88
|
return this.#wrap(asInbox(raw));
|
|
98
89
|
}
|
|
99
90
|
async getMessage(id) {
|
|
100
|
-
const res = await this.#fetch(`${this.
|
|
91
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/messages/${encodeURIComponent(id)}`, {
|
|
101
92
|
headers: this.#headers(),
|
|
102
93
|
});
|
|
103
94
|
const raw = await this.#read(res);
|
|
104
95
|
return asMessage(raw);
|
|
105
96
|
}
|
|
106
97
|
async listMessages(inboxId, options = {}) {
|
|
107
|
-
const res = await this.#fetch(`${this.
|
|
98
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes/${encodeURIComponent(inboxId)}/messages${query(options)}`, { headers: this.#headers() });
|
|
108
99
|
const raw = await this.#read(res);
|
|
109
100
|
return (raw.messages ?? []).map(asMessage);
|
|
110
101
|
}
|
|
111
102
|
async waitFor(inboxId, options = {}) {
|
|
112
103
|
const timeout = options.timeout ?? 15_000;
|
|
113
|
-
const res = await this.#fetch(`${this.
|
|
104
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes/${encodeURIComponent(inboxId)}/messages/wait${query({
|
|
114
105
|
subject: options.subject,
|
|
115
106
|
after: options.after,
|
|
116
107
|
timeout,
|
|
@@ -122,7 +113,7 @@ export class Mailwurf {
|
|
|
122
113
|
return asMessage(raw);
|
|
123
114
|
}
|
|
124
115
|
async send(inboxId, input) {
|
|
125
|
-
const res = await this.#fetch(`${this.
|
|
116
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes/${encodeURIComponent(inboxId)}/messages`, {
|
|
126
117
|
method: "POST",
|
|
127
118
|
headers: this.#headers({ "content-type": "application/json" }),
|
|
128
119
|
body: JSON.stringify({
|
|
@@ -136,7 +127,7 @@ export class Mailwurf {
|
|
|
136
127
|
return this.#read(res);
|
|
137
128
|
}
|
|
138
129
|
async deleteInbox(id) {
|
|
139
|
-
const res = await this.#fetch(`${this.
|
|
130
|
+
const res = await this.#fetch(`${this.apiUrl}/v1/inboxes/${encodeURIComponent(id)}`, {
|
|
140
131
|
method: "DELETE",
|
|
141
132
|
headers: this.#headers(),
|
|
142
133
|
});
|
|
@@ -174,6 +165,7 @@ export class Mailwurf {
|
|
|
174
165
|
export class MailwurfInbox {
|
|
175
166
|
id;
|
|
176
167
|
address;
|
|
168
|
+
senderAddress;
|
|
177
169
|
createdAt;
|
|
178
170
|
expiresAt;
|
|
179
171
|
#client;
|
|
@@ -181,6 +173,7 @@ export class MailwurfInbox {
|
|
|
181
173
|
this.#client = client;
|
|
182
174
|
this.id = inbox.id;
|
|
183
175
|
this.address = inbox.address;
|
|
176
|
+
this.senderAddress = inbox.senderAddress;
|
|
184
177
|
this.createdAt = inbox.createdAt;
|
|
185
178
|
this.expiresAt = inbox.expiresAt;
|
|
186
179
|
}
|
|
@@ -197,7 +190,11 @@ export class MailwurfInbox {
|
|
|
197
190
|
return this.#client.deleteInbox(this.id);
|
|
198
191
|
}
|
|
199
192
|
}
|
|
200
|
-
|
|
201
|
-
|
|
193
|
+
/**
|
|
194
|
+
* `apiKey` is the organization key (`mw_live_…`) and is required.
|
|
195
|
+
* `apiUrl` is only needed for a self-hosted Mailwurf.
|
|
196
|
+
*/
|
|
197
|
+
export function createMailwurf(apiKey, options = {}) {
|
|
198
|
+
return new Mailwurf(apiKey, options);
|
|
202
199
|
}
|
|
203
200
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAclE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createMailwurf, DEFAULT_API_URL, Mailwurf, MailwurfInbox } from "./client.js";
|
|
2
2
|
export { MailwurfError, MailwurfTimeoutError } from "./errors.js";
|
|
3
3
|
export type { CreateInboxInput, Inbox, ListMessagesOptions, MailwurfOptions, Message, SendMessageInput, SentMessage, WaitForOptions, } from "./types.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
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,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAClE,YAAY,EACV,gBAAgB,EAChB,KAAK,EACL,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createMailwurf, DEFAULT_API_URL, Mailwurf, MailwurfInbox } from "./client.js";
|
|
2
2
|
export { MailwurfError, MailwurfTimeoutError } from "./errors.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
export type MailwurfOptions = {
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Defaults to `
|
|
5
|
-
* A bare host such as `
|
|
3
|
+
* Origin of a self-hosted Mailwurf API. Calls are made under `/v1`.
|
|
4
|
+
* Defaults to `https://api.mailwurf.io`.
|
|
5
|
+
* A bare host such as `mailwurf.example.com` is treated as `https://`.
|
|
6
6
|
*/
|
|
7
|
-
|
|
8
|
-
/** Organization API key. Defaults to `MAILWURF_API_KEY`. */
|
|
9
|
-
apiKey?: string;
|
|
7
|
+
apiUrl?: string;
|
|
10
8
|
/** Injected in tests. Defaults to global `fetch`. */
|
|
11
9
|
fetch?: typeof fetch;
|
|
12
10
|
};
|
|
@@ -39,7 +37,10 @@ export type SentMessage = {
|
|
|
39
37
|
};
|
|
40
38
|
export type Inbox = {
|
|
41
39
|
id: string;
|
|
40
|
+
/** Receives mail. On a sending domain this is `name@send.{domain}`. */
|
|
42
41
|
address: string;
|
|
42
|
+
/** What recipients see as sender: `address`, or `name@{domain}` on a sending domain. */
|
|
43
|
+
senderAddress: string;
|
|
43
44
|
createdAt: Date;
|
|
44
45
|
expiresAt: Date | null;
|
|
45
46
|
};
|
|
@@ -58,6 +59,8 @@ export type Message = {
|
|
|
58
59
|
export type RawInbox = {
|
|
59
60
|
id: string;
|
|
60
61
|
address: string;
|
|
62
|
+
/** Absent from APIs older than sending domains. */
|
|
63
|
+
sender_address?: string;
|
|
61
64
|
created_at: string;
|
|
62
65
|
expires_at: string | null;
|
|
63
66
|
};
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mailwurf/e2e",
|
|
3
|
-
"version": "1.0.0-
|
|
3
|
+
"version": "1.0.0-b2d078a",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Fetch client for the Mailwurf wait API",
|
|
6
6
|
"keywords": [
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"url": "https://github.com/wemogy/mailwurf/issues"
|
|
17
17
|
},
|
|
18
18
|
"license": "MIT",
|
|
19
|
+
"author": "wemogy IT",
|
|
19
20
|
"repository": {
|
|
20
21
|
"type": "git",
|
|
21
22
|
"url": "git+https://github.com/wemogy/mailwurf.git",
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@types/node": "^24.0.0",
|
|
39
40
|
"typescript": "^5.9.2",
|
|
40
|
-
"vitest": "^
|
|
41
|
+
"vitest": "^4.1.11",
|
|
41
42
|
"@mailwurf/config": "0.0.0"
|
|
42
43
|
},
|
|
43
44
|
"engines": {
|