@typetron/framework 0.5.34 → 0.5.36
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/Framework/Readme.md +3 -0
- package/Mail/Readme.md +84 -2
- package/Storage/Readme.md +17 -13
- package/build/Framework/Config/MailConfig.d.ts +2 -0
- package/build/Framework/Config/MailConfig.d.ts.map +1 -1
- package/build/Framework/Config/MailConfig.js.map +1 -1
- package/build/Framework/Providers/MailProvider.d.ts.map +1 -1
- package/build/Framework/Providers/MailProvider.js +9 -2
- package/build/Framework/Providers/MailProvider.js.map +1 -1
- package/build/Mail/MailError.d.ts +12 -0
- package/build/Mail/MailError.d.ts.map +1 -0
- package/build/Mail/MailError.js +17 -0
- package/build/Mail/MailError.js.map +1 -0
- package/build/Mail/SentMessage.d.ts +5 -0
- package/build/Mail/SentMessage.d.ts.map +1 -1
- package/build/Mail/SentMessage.js +5 -0
- package/build/Mail/SentMessage.js.map +1 -1
- package/build/Mail/Transports/CloudflareTransport.d.ts +13 -0
- package/build/Mail/Transports/CloudflareTransport.d.ts.map +1 -0
- package/build/Mail/Transports/CloudflareTransport.js +86 -0
- package/build/Mail/Transports/CloudflareTransport.js.map +1 -0
- package/build/Mail/Transports/SendGridTransport.d.ts.map +1 -1
- package/build/Mail/Transports/SendGridTransport.js +13 -2
- package/build/Mail/Transports/SendGridTransport.js.map +1 -1
- package/build/Mail/index.d.ts +3 -0
- package/build/Mail/index.d.ts.map +1 -1
- package/build/Mail/index.js +3 -0
- package/build/Mail/index.js.map +1 -1
- package/build/Router/Http/Request.d.ts.map +1 -1
- package/build/Router/Http/Request.js +3 -1
- package/build/Router/Http/Request.js.map +1 -1
- package/build/Router/Servers/uNetworking.js +3 -1
- package/build/Router/Servers/uNetworking.js.map +1 -1
- package/build/Storage/Drivers/LocalDriver.d.ts +4 -0
- package/build/Storage/Drivers/LocalDriver.d.ts.map +1 -1
- package/build/Storage/Drivers/LocalDriver.js +38 -16
- package/build/Storage/Drivers/LocalDriver.js.map +1 -1
- package/build/Storage/errors.d.ts +3 -0
- package/build/Storage/errors.d.ts.map +1 -1
- package/build/Storage/errors.js +7 -1
- package/build/Storage/errors.js.map +1 -1
- package/package.json +1 -1
package/Framework/Readme.md
CHANGED
|
@@ -60,6 +60,9 @@ the application loads each file.
|
|
|
60
60
|
`AppConfig.server` selects the Node or uWebSockets HTTP server. A configured `websocketsPort` starts the separate WebSocket provider. Static
|
|
61
61
|
assets are served when `staticAssets` entries are present.
|
|
62
62
|
|
|
63
|
+
`MailConfig.default` supports `memory`, `SendGrid`, and `Cloudflare`. Cloudflare requires `mailers.Cloudflare.accountId` and
|
|
64
|
+
`mailers.Cloudflare.apiToken`; see [Mail configuration](../Mail/Readme.md#cloudflare).
|
|
65
|
+
|
|
63
66
|
Authentication configuration must provide a signing `signature`. If it is missing, application creation throws an error stating that
|
|
64
67
|
`APP_SECRET` is not set up.
|
|
65
68
|
|
package/Mail/Readme.md
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
- [Sending Mail](#sending-mail)
|
|
7
7
|
- [Recipients and Message Details](#recipients-and-message-details)
|
|
8
8
|
- [Transports and Testing](#transports-and-testing)
|
|
9
|
+
- [Delivery Outcomes](#delivery-outcomes)
|
|
10
|
+
- [Cloudflare](#cloudflare)
|
|
11
|
+
- [Delivery Errors](#delivery-errors)
|
|
9
12
|
|
|
10
13
|
## Introduction
|
|
11
14
|
|
|
@@ -14,7 +17,8 @@ performs the delivery.
|
|
|
14
17
|
|
|
15
18
|
## Configuration
|
|
16
19
|
|
|
17
|
-
Applications normally register `MailProvider` and configure `MailConfig`. The `default` mailer may be `memory
|
|
20
|
+
Applications normally register `MailProvider` and configure `MailConfig`. The `default` mailer may be `memory`, `SendGrid`, or `Cloudflare`,
|
|
21
|
+
and `from`
|
|
18
22
|
supplies the default sender.
|
|
19
23
|
|
|
20
24
|
```ts
|
|
@@ -89,7 +93,7 @@ await mail
|
|
|
89
93
|
## Transports and Testing
|
|
90
94
|
|
|
91
95
|
`MemoryTransport` stores sent messages in its public `messages` array and is suitable for tests and local development. `SendGridTransport`
|
|
92
|
-
sends through `@sendgrid/mail`
|
|
96
|
+
sends through `@sendgrid/mail`. `CloudflareTransport` uses Node's built-in `fetch` to send through Cloudflare's REST API.
|
|
93
97
|
|
|
94
98
|
```ts
|
|
95
99
|
const [message] = transport.messages
|
|
@@ -97,3 +101,81 @@ const [message] = transport.messages
|
|
|
97
101
|
console.log(message.to)
|
|
98
102
|
console.log(message.body)
|
|
99
103
|
```
|
|
104
|
+
|
|
105
|
+
## Delivery Outcomes
|
|
106
|
+
|
|
107
|
+
Every transport returns the shared `SentMessage` type, exported from `@Typetron/Mail`. In addition to the original message details,
|
|
108
|
+
it has optional `messageId`, `delivered`, `queued`, `permanentBounces`, and `suppressedRecipients` fields.
|
|
109
|
+
|
|
110
|
+
Providers populate only the information they report. An `undefined` address array means the outcome was not reported; an empty array
|
|
111
|
+
means the provider reported no recipients with that outcome. A successful send means the transport accepted the request, and does not
|
|
112
|
+
guarantee delivery to every recipient. Outcomes describe the send response and are not updated later.
|
|
113
|
+
|
|
114
|
+
Cloudflare reports delivery, queue, and permanent bounce address arrays, plus suppressed recipients and a message ID when provided.
|
|
115
|
+
SendGrid exposes its [X-Message-ID response header](https://www.twilio.com/docs/sendgrid/glossary/x-message-id) as `messageId`,
|
|
116
|
+
leaving delivery outcomes undefined. Memory transport leaves all delivery metadata undefined.
|
|
117
|
+
|
|
118
|
+
```ts
|
|
119
|
+
const sent = await mail.to('john@example.com').subject('Welcome').send('Welcome!')
|
|
120
|
+
if (sent.permanentBounces?.length) {
|
|
121
|
+
console.warn('Recipients bounced:', sent.permanentBounces)
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Cloudflare
|
|
126
|
+
|
|
127
|
+
Configure a Cloudflare account ID, an API token with email sending permission, and a sender on a domain configured for
|
|
128
|
+
[Cloudflare Email Service](https://developers.cloudflare.com/email-service/get-started/send-emails/):
|
|
129
|
+
|
|
130
|
+
```ts
|
|
131
|
+
import { MailConfig } from '@Typetron/Framework'
|
|
132
|
+
|
|
133
|
+
export default new MailConfig({
|
|
134
|
+
default: 'Cloudflare',
|
|
135
|
+
from: {email: 'hello@example.com', name: 'Example'},
|
|
136
|
+
mailers: {
|
|
137
|
+
memory: {},
|
|
138
|
+
Cloudflare: {
|
|
139
|
+
accountId: process.env.CLOUDFLARE_ACCOUNT_ID!,
|
|
140
|
+
apiToken: process.env.CLOUDFLARE_API_TOKEN!,
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
})
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Registration throws `MailError` if either credential is missing or blank. For manual setup, use
|
|
147
|
+
`new CloudflareTransport({accountId, apiToken})` from `@Typetron/Mail` and pass it to `Mailer`.
|
|
148
|
+
|
|
149
|
+
A string body is sent as HTML, matching SendGrid. An `{html, text}` body sends both alternatives. Strings, named addresses, and address
|
|
150
|
+
arrays on `Mailable` are converted to Cloudflare's REST format for the sender, recipients, CC, BCC, and reply-to fields.
|
|
151
|
+
|
|
152
|
+
Delivery outcomes are available on the shared `SentMessage`; queued recipients may be delivered later. A successful API response
|
|
153
|
+
resolves even if some or all recipients permanently bounced or were suppressed.
|
|
154
|
+
|
|
155
|
+
Each send makes one request. The transport does not automatically retry failed or ambiguous requests, since an email may have already
|
|
156
|
+
been accepted before a network failure. Applications decide whether to retry.
|
|
157
|
+
|
|
158
|
+
## Delivery Errors
|
|
159
|
+
|
|
160
|
+
Cloudflare and SendGrid throw `MailError` for API rejections and network failures. `provider` identifies the service, `status` contains
|
|
161
|
+
the upstream HTTP status when available, `context` holds provider-specific response details, and `cause` preserves an underlying error
|
|
162
|
+
when available. Cloudflare also throws `MailError` for malformed responses. A network failure leaves delivery uncertain.
|
|
163
|
+
|
|
164
|
+
For Cloudflare API rejections, `context` contains the response envelope, including its `errors` array. For non-JSON responses, it
|
|
165
|
+
contains the response text. For SendGrid API rejections, it contains `error.response.body`.
|
|
166
|
+
|
|
167
|
+
```ts
|
|
168
|
+
import { MailError } from '@Typetron/Mail'
|
|
169
|
+
|
|
170
|
+
try {
|
|
171
|
+
await mail.to('john@example.com').send('Hello')
|
|
172
|
+
} catch (error) {
|
|
173
|
+
if (error instanceof MailError) {
|
|
174
|
+
console.error(error.provider, error.status, error.context)
|
|
175
|
+
}
|
|
176
|
+
throw error
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
SendGrid failures now throw `MailError` instead of Router's `HttpError`. Applications choose how to translate provider failures into
|
|
181
|
+
their own HTTP responses.
|
package/Storage/Readme.md
CHANGED
|
@@ -57,6 +57,9 @@ export default new StorageConfig({
|
|
|
57
57
|
AWS disks use the SDK's default credential chain when `credentials` is omitted. The S3 driver is loaded only when an S3 disk is resolved;
|
|
58
58
|
applications using it must install `@aws-sdk/client-s3` and `@aws-sdk/s3-request-presigner`.
|
|
59
59
|
|
|
60
|
+
Local disks refuse keys that pass through a symbolic link inside the root and throw `StorageSymbolicLink`, so a link
|
|
61
|
+
created in the disk can't redirect reads or writes outside of it.
|
|
62
|
+
|
|
60
63
|
## Using Disks
|
|
61
64
|
|
|
62
65
|
Register `StorageProvider`, then inject or resolve `Storage`. Methods on `Storage` target the default disk; `disk` selects another
|
|
@@ -108,7 +111,8 @@ Directories are logical prefixes. Writing `users/1/avatar.jpg` creates required
|
|
|
108
111
|
|
|
109
112
|
## Uploads and Metadata
|
|
110
113
|
|
|
111
|
-
HTTP multipart parsing produces `UploadedFile` instances backed by temporary local files
|
|
114
|
+
HTTP multipart parsing produces `UploadedFile` instances backed by temporary local files, with `size` set once the upload is
|
|
115
|
+
written. `putFile` streams the upload to its destination.
|
|
112
116
|
|
|
113
117
|
```ts
|
|
114
118
|
const avatar = request.files.avatar as UploadedFile
|
|
@@ -149,27 +153,27 @@ A scoped disk exposes only keys below its prefix. Mutating a read-only disk thro
|
|
|
149
153
|
|
|
150
154
|
## Testing
|
|
151
155
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
```ts
|
|
155
|
-
const avatars = storage.fake('avatars')
|
|
156
|
-
await service.uploadAvatar(upload)
|
|
157
|
-
await avatars.assertExists('users/1.jpg')
|
|
158
|
-
await avatars.assertCount('users', 1, true)
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Services can inject a disk with `@Disk(name)`, or `@Disk()` for the default disk. The disk is resolved on every
|
|
162
|
-
access, so faking a disk also affects services that were already built:
|
|
156
|
+
Services can inject a disk with `@Disk(name)`, or `@Disk()` for the default disk:
|
|
163
157
|
|
|
164
158
|
```ts
|
|
165
159
|
class AvatarService {
|
|
166
160
|
@Disk('avatars')
|
|
167
161
|
avatars: StorageDisk
|
|
162
|
+
|
|
163
|
+
async uploadAvatar(userId: number, upload: UploadedFile) {
|
|
164
|
+
await this.avatars.putFile(`users/${userId}.jpg`, upload)
|
|
165
|
+
}
|
|
168
166
|
}
|
|
167
|
+
```
|
|
169
168
|
|
|
169
|
+
`fake` replaces a named disk with an isolated in-memory driver. `@Disk` resolves the disk on every access, so the fake
|
|
170
|
+
also applies to services that were already built:
|
|
171
|
+
|
|
172
|
+
```ts
|
|
170
173
|
const avatars = storage.fake('avatars')
|
|
171
|
-
await app.get(AvatarService).uploadAvatar(upload)
|
|
174
|
+
await app.get(AvatarService).uploadAvatar(1, upload)
|
|
172
175
|
await avatars.assertExists('users/1.jpg')
|
|
176
|
+
await avatars.assertCount('users', 1, true)
|
|
173
177
|
storage.forget('avatars') // back to the configured disk
|
|
174
178
|
```
|
|
175
179
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseConfig } from './BaseConfig';
|
|
2
|
+
import type { CloudflareTransportConfig } from '@Typetron/Mail';
|
|
2
3
|
export type Mailers = keyof MailConfig['mailers'];
|
|
3
4
|
export declare class MailConfig extends BaseConfig<MailConfig> {
|
|
4
5
|
default: Mailers;
|
|
@@ -11,6 +12,7 @@ export declare class MailConfig extends BaseConfig<MailConfig> {
|
|
|
11
12
|
SendGrid?: {
|
|
12
13
|
key: string;
|
|
13
14
|
};
|
|
15
|
+
Cloudflare?: CloudflareTransportConfig;
|
|
14
16
|
SES?: {};
|
|
15
17
|
Mailgun?: {};
|
|
16
18
|
Postmark?: {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailConfig.d.ts","sourceRoot":"","sources":["../../../Framework/Config/MailConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"MailConfig.d.ts","sourceRoot":"","sources":["../../../Framework/Config/MailConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAE/D,MAAM,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAA;AAEjD,qBAAa,UAAW,SAAQ,UAAU,CAAC,UAAU,CAAC;IAClD,OAAO,EAAE,OAAO,CAA6C;IAE7D,IAAI,EAAE;QACF,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAA;IAED,OAAO,EAAE;QACL,MAAM,EAAE,GAAG,CAAC;QAEZ,QAAQ,CAAC,EAAE;YACP,GAAG,EAAE,MAAM,CAAC;SACf,CAAC;QACF,UAAU,CAAC,EAAE,yBAAyB,CAAC;QACvC,GAAG,CAAC,EAAE,EAEL,CAAC;QACF,OAAO,CAAC,EAAE,EAET,CAAC;QACF,QAAQ,CAAC,EAAE,EAEV,CAAC;KAEL,CAAA;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailConfig.js","sourceRoot":"","sources":["../../../Framework/Config/MailConfig.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;
|
|
1
|
+
{"version":3,"file":"MailConfig.js","sourceRoot":"","sources":["../../../Framework/Config/MailConfig.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AAKzC,MAAa,UAAW,SAAQ,uBAAsB;IAClD,OAAO,GAAY,OAAO,CAAC,GAAG,EAAE,MAAiB,IAAI,QAAQ,CAAA;IAE7D,IAAI,CAGH;IAED,OAAO,CAiBN;CACJ;AA1BD,gCA0BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailProvider.d.ts","sourceRoot":"","sources":["../../../Framework/Providers/MailProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAW,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"MailProvider.d.ts","sourceRoot":"","sources":["../../../Framework/Providers/MailProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,UAAU,EAAW,MAAM,WAAW,CAAA;AAyB/C,qBAAa,YAAa,SAAQ,QAAQ;IAEtC,MAAM,EAAE,UAAU,CAAA;IAEX,QAAQ;CAIlB"}
|
|
@@ -20,11 +20,18 @@ const mailers = {
|
|
|
20
20
|
return new Mail_1.MemoryTransport();
|
|
21
21
|
},
|
|
22
22
|
SendGrid: (app, config) => {
|
|
23
|
-
if (!config.mailers
|
|
24
|
-
throw new
|
|
23
|
+
if (!config.mailers?.SendGrid?.key) {
|
|
24
|
+
throw new Mail_1.MailError('SendGrid key is not set', { provider: 'SendGrid' });
|
|
25
25
|
}
|
|
26
26
|
return new SendGridTransport_1.SendGridTransport(config.mailers.SendGrid?.key);
|
|
27
27
|
},
|
|
28
|
+
Cloudflare: (app, config) => {
|
|
29
|
+
const options = config.mailers?.Cloudflare;
|
|
30
|
+
if (!options) {
|
|
31
|
+
throw new Mail_1.MailError('Cloudflare accountId and apiToken are required', { provider: 'Cloudflare' });
|
|
32
|
+
}
|
|
33
|
+
return new Mail_1.CloudflareTransport(options);
|
|
34
|
+
},
|
|
28
35
|
};
|
|
29
36
|
class MailProvider extends Provider_1.Provider {
|
|
30
37
|
config;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MailProvider.js","sourceRoot":"","sources":["../../../Framework/Providers/MailProvider.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;AAEZ,mDAAuD;AACvD,0CAAsC;AACtC,sCAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"MailProvider.js","sourceRoot":"","sources":["../../../Framework/Providers/MailProvider.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;;;;;;;;AAEZ,mDAAuD;AACvD,0CAAsC;AACtC,sCAA+C;AAC/C,yCAAwF;AAExF,mFAA+E;AAE/E,MAAM,OAAO,GAAgE;IACzE,MAAM,EAAE,CAAC,GAAc,EAAE,MAAkB,EAAE,EAAE;QAC3C,OAAO,IAAI,sBAAe,EAAE,CAAA;IAChC,CAAC;IACD,QAAQ,EAAE,CAAC,GAAc,EAAE,MAAkB,EAAE,EAAE;QAC7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;YACjC,MAAM,IAAI,gBAAS,CAAC,yBAAyB,EAAE,EAAC,QAAQ,EAAE,UAAU,EAAC,CAAC,CAAA;QAC1E,CAAC;QAED,OAAO,IAAI,qCAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IAC9D,CAAC;IACD,UAAU,EAAE,CAAC,GAAc,EAAE,MAAkB,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAA;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,gBAAS,CAAC,gDAAgD,EAAE,EAAC,QAAQ,EAAE,YAAY,EAAC,CAAC,CAAA;QACnG,CAAC;QACD,OAAO,IAAI,0BAAmB,CAAC,OAAO,CAAC,CAAA;IAC3C,CAAC;CACJ,CAAA;AAED,MAAa,YAAa,SAAQ,mBAAQ;IAEtC,MAAM,CAAY;IAEX,QAAQ;QACX,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACvE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAM,EAAE,IAAI,aAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IACjE,CAAC;CACJ;AARD,oCAQC;AANG;IADC,IAAA,kBAAM,GAAE;8BACD,mBAAU;4CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface MailErrorOptions extends ErrorOptions {
|
|
2
|
+
provider: string;
|
|
3
|
+
status?: number;
|
|
4
|
+
context?: unknown;
|
|
5
|
+
}
|
|
6
|
+
export declare class MailError extends Error {
|
|
7
|
+
readonly provider: string;
|
|
8
|
+
readonly status?: number;
|
|
9
|
+
readonly context?: unknown;
|
|
10
|
+
constructor(message: string, options: MailErrorOptions);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=MailError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MailError.d.ts","sourceRoot":"","sources":["../../Mail/MailError.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IAClD,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,SAAU,SAAQ,KAAK;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;gBAEd,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB;CAOzD"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MailError = void 0;
|
|
4
|
+
class MailError extends Error {
|
|
5
|
+
provider;
|
|
6
|
+
status;
|
|
7
|
+
context;
|
|
8
|
+
constructor(message, options) {
|
|
9
|
+
super(message, { cause: options.cause });
|
|
10
|
+
this.name = 'MailError';
|
|
11
|
+
this.provider = options.provider;
|
|
12
|
+
this.status = options.status;
|
|
13
|
+
this.context = options.context;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.MailError = MailError;
|
|
17
|
+
//# sourceMappingURL=MailError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MailError.js","sourceRoot":"","sources":["../../Mail/MailError.ts"],"names":[],"mappings":";;;AAMA,MAAa,SAAU,SAAQ,KAAK;IACvB,QAAQ,CAAQ;IAChB,MAAM,CAAS;IACf,OAAO,CAAU;IAE1B,YAAY,OAAe,EAAE,OAAyB;QAClD,KAAK,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC,CAAA;QACtC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAClC,CAAC;CACJ;AAZD,8BAYC"}
|
|
@@ -11,6 +11,11 @@ export declare class SentMessage {
|
|
|
11
11
|
readonly replyTo?: string | MailAddress | (string | MailAddress)[];
|
|
12
12
|
readonly cc?: string | MailAddress | (string | MailAddress)[];
|
|
13
13
|
readonly bcc?: string | MailAddress | (string | MailAddress)[];
|
|
14
|
+
messageId?: string;
|
|
15
|
+
delivered?: string[];
|
|
16
|
+
queued?: string[];
|
|
17
|
+
permanentBounces?: string[];
|
|
18
|
+
suppressedRecipients?: string[];
|
|
14
19
|
constructor(mail: Mailable);
|
|
15
20
|
}
|
|
16
21
|
//# sourceMappingURL=SentMessage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentMessage.d.ts","sourceRoot":"","sources":["../../Mail/SentMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,qBAAa,WAAW;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAClE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"SentMessage.d.ts","sourceRoot":"","sources":["../../Mail/SentMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAElD,qBAAa,WAAW;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAA;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAC7D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAClE,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAA;IAE9D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;gBAEnB,IAAI,EAAE,QAAQ;CAO7B"}
|
|
@@ -9,6 +9,11 @@ class SentMessage {
|
|
|
9
9
|
replyTo;
|
|
10
10
|
cc;
|
|
11
11
|
bcc;
|
|
12
|
+
messageId;
|
|
13
|
+
delivered;
|
|
14
|
+
queued;
|
|
15
|
+
permanentBounces;
|
|
16
|
+
suppressedRecipients;
|
|
12
17
|
constructor(mail) {
|
|
13
18
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
14
19
|
const { content, ...mailDetails } = mail;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentMessage.js","sourceRoot":"","sources":["../../Mail/SentMessage.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IACX,IAAI,CAAsB;IAC1B,OAAO,CAAS;IAChB,IAAI,CAAwC;IAC5C,EAAE,CAAkD;IACpD,OAAO,CAAkD;IACzD,EAAE,CAAkD;IACpD,GAAG,CAAkD;IAE9D,YAAY,IAAc;QACtB,6DAA6D;QAC7D,MAAM,EAAC,OAAO,EAAE,GAAG,WAAW,EAAC,GAAG,IAAI,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAA;IAC3C,CAAC;CAEJ;
|
|
1
|
+
{"version":3,"file":"SentMessage.js","sourceRoot":"","sources":["../../Mail/SentMessage.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IACX,IAAI,CAAsB;IAC1B,OAAO,CAAS;IAChB,IAAI,CAAwC;IAC5C,EAAE,CAAkD;IACpD,OAAO,CAAkD;IACzD,EAAE,CAAkD;IACpD,GAAG,CAAkD;IAE9D,SAAS,CAAS;IAClB,SAAS,CAAW;IACpB,MAAM,CAAW;IACjB,gBAAgB,CAAW;IAC3B,oBAAoB,CAAW;IAE/B,YAAY,IAAc;QACtB,6DAA6D;QAC7D,MAAM,EAAC,OAAO,EAAE,GAAG,WAAW,EAAC,GAAG,IAAI,CAAA;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAA;IAC3C,CAAC;CAEJ;AAtBD,kCAsBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Mailable } from '../Mailable';
|
|
2
|
+
import { MailTransport } from '../MailTransport';
|
|
3
|
+
import { SentMessage } from '../SentMessage';
|
|
4
|
+
export interface CloudflareTransportConfig {
|
|
5
|
+
accountId: string;
|
|
6
|
+
apiToken: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class CloudflareTransport extends MailTransport {
|
|
9
|
+
private config;
|
|
10
|
+
constructor(config: CloudflareTransportConfig);
|
|
11
|
+
send(message: Mailable): Promise<SentMessage>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=CloudflareTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloudflareTransport.d.ts","sourceRoot":"","sources":["../../../Mail/Transports/CloudflareTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,WAAW,yBAAyB;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;CACnB;AAUD,qBAAa,mBAAoB,SAAQ,aAAa;IACtC,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,yBAAyB;IAO/C,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;CAoEtD"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudflareTransport = void 0;
|
|
4
|
+
const MailError_1 = require("../MailError");
|
|
5
|
+
const MailTransport_1 = require("../MailTransport");
|
|
6
|
+
const SentMessage_1 = require("../SentMessage");
|
|
7
|
+
function address(value) {
|
|
8
|
+
return typeof value === 'string' ? value : { address: value.email, name: value.name };
|
|
9
|
+
}
|
|
10
|
+
function addresses(value) {
|
|
11
|
+
return Array.isArray(value) ? value.map(address) : value === undefined ? undefined : address(value);
|
|
12
|
+
}
|
|
13
|
+
class CloudflareTransport extends MailTransport_1.MailTransport {
|
|
14
|
+
config;
|
|
15
|
+
constructor(config) {
|
|
16
|
+
super();
|
|
17
|
+
this.config = config;
|
|
18
|
+
if (!config.accountId?.trim() || !config.apiToken?.trim()) {
|
|
19
|
+
throw new MailError_1.MailError('Cloudflare accountId and apiToken are required', { provider: 'Cloudflare' });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
async send(message) {
|
|
23
|
+
const sentMessage = new SentMessage_1.SentMessage(message);
|
|
24
|
+
const content = typeof sentMessage.body === 'string' ? { html: sentMessage.body } : sentMessage.body;
|
|
25
|
+
let response;
|
|
26
|
+
let body;
|
|
27
|
+
try {
|
|
28
|
+
response = await globalThis.fetch(`https://api.cloudflare.com/client/v4/accounts/${encodeURIComponent(this.config.accountId)}/email/sending/send`, {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
headers: {
|
|
31
|
+
Authorization: `Bearer ${this.config.apiToken}`,
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
},
|
|
34
|
+
body: JSON.stringify({
|
|
35
|
+
from: address(sentMessage.from),
|
|
36
|
+
to: addresses(sentMessage.to),
|
|
37
|
+
cc: addresses(sentMessage.cc),
|
|
38
|
+
bcc: addresses(sentMessage.bcc),
|
|
39
|
+
reply_to: addresses(sentMessage.replyTo),
|
|
40
|
+
subject: sentMessage.subject,
|
|
41
|
+
...content,
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
catch (cause) {
|
|
46
|
+
throw new MailError_1.MailError('Cloudflare mail request failed', { provider: 'Cloudflare', cause });
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
body = await response.text();
|
|
50
|
+
}
|
|
51
|
+
catch (cause) {
|
|
52
|
+
throw new MailError_1.MailError('Could not read Cloudflare mail response', { provider: 'Cloudflare', status: response.status, cause });
|
|
53
|
+
}
|
|
54
|
+
let data;
|
|
55
|
+
try {
|
|
56
|
+
data = JSON.parse(body);
|
|
57
|
+
}
|
|
58
|
+
catch (cause) {
|
|
59
|
+
throw new MailError_1.MailError('Cloudflare returned an invalid mail response', {
|
|
60
|
+
provider: 'Cloudflare', status: response.status, context: body, cause,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (!response.ok || data?.success !== true) {
|
|
64
|
+
throw new MailError_1.MailError('Cloudflare rejected the mail request', {
|
|
65
|
+
provider: 'Cloudflare', status: response.status, context: data,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const result = data.result;
|
|
69
|
+
const isAddresses = (value) => Array.isArray(value) && value.every(item => typeof item === 'string');
|
|
70
|
+
if (!result || !isAddresses(result.delivered) || !isAddresses(result.queued) || !isAddresses(result.permanent_bounces)
|
|
71
|
+
|| (result.suppressed_recipients !== undefined && !isAddresses(result.suppressed_recipients))
|
|
72
|
+
|| (result.message_id !== undefined && typeof result.message_id !== 'string')) {
|
|
73
|
+
throw new MailError_1.MailError('Cloudflare returned an invalid mail delivery result', {
|
|
74
|
+
provider: 'Cloudflare', status: response.status, context: data,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
sentMessage.delivered = result.delivered;
|
|
78
|
+
sentMessage.queued = result.queued;
|
|
79
|
+
sentMessage.permanentBounces = result.permanent_bounces;
|
|
80
|
+
sentMessage.suppressedRecipients = result.suppressed_recipients;
|
|
81
|
+
sentMessage.messageId = result.message_id;
|
|
82
|
+
return sentMessage;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.CloudflareTransport = CloudflareTransport;
|
|
86
|
+
//# sourceMappingURL=CloudflareTransport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CloudflareTransport.js","sourceRoot":"","sources":["../../../Mail/Transports/CloudflareTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendGridTransport.d.ts","sourceRoot":"","sources":["../../../Mail/Transports/SendGridTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,QAAQ,EAAE,WAAW,EAAE,CAAK;IAG5B,MAAM,EAAE,UAAU,CAAA;gBAEN,GAAG,EAAE,MAAM;IAMjB,IAAI,CAAC,OAAO,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"SendGridTransport.d.ts","sourceRoot":"","sources":["../../../Mail/Transports/SendGridTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAI5C,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,QAAQ,EAAE,WAAW,EAAE,CAAK;IAG5B,MAAM,EAAE,UAAU,CAAA;gBAEN,GAAG,EAAE,MAAM;IAMjB,IAAI,CAAC,OAAO,EAAE,QAAQ;CAsF/B"}
|
|
@@ -18,7 +18,7 @@ const SentMessage_1 = require("../SentMessage");
|
|
|
18
18
|
const Container_1 = require("../../Container");
|
|
19
19
|
const Framework_1 = require("../../Framework");
|
|
20
20
|
const mail_1 = __importDefault(require("@sendgrid/mail"));
|
|
21
|
-
const
|
|
21
|
+
const MailError_1 = require("../MailError");
|
|
22
22
|
class SendGridTransport extends MailTransport_1.MailTransport {
|
|
23
23
|
messages = [];
|
|
24
24
|
config;
|
|
@@ -94,7 +94,18 @@ class SendGridTransport extends MailTransport_1.MailTransport {
|
|
|
94
94
|
};
|
|
95
95
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
96
96
|
/* @ts-ignore */ // SendGrid has TS issues
|
|
97
|
-
await mail_1.default.send(sendGridMessage).catch(error => {
|
|
97
|
+
const [response] = await mail_1.default.send(sendGridMessage).catch(error => {
|
|
98
|
+
throw new MailError_1.MailError('SendGrid mail request failed', {
|
|
99
|
+
provider: 'SendGrid',
|
|
100
|
+
status: typeof error.code === 'number' ? error.code : undefined,
|
|
101
|
+
context: error.response?.body,
|
|
102
|
+
cause: error,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
const messageId = response.headers['x-message-id'];
|
|
106
|
+
if (typeof messageId === 'string') {
|
|
107
|
+
sentMessage.messageId = messageId;
|
|
108
|
+
}
|
|
98
109
|
return sentMessage;
|
|
99
110
|
}
|
|
100
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendGridTransport.js","sourceRoot":"","sources":["../../../Mail/Transports/SendGridTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAgD;AAChD,gDAA4C;AAE5C,+CAAwC;AACxC,+CAA4C;AAC5C,0DAAmC;AACnC,
|
|
1
|
+
{"version":3,"file":"SendGridTransport.js","sourceRoot":"","sources":["../../../Mail/Transports/SendGridTransport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,oDAAgD;AAChD,gDAA4C;AAE5C,+CAAwC;AACxC,+CAA4C;AAC5C,0DAAmC;AACnC,4CAAwC;AAExC,MAAa,iBAAkB,SAAQ,6BAAa;IAChD,QAAQ,GAAkB,EAAE,CAAA;IAG5B,MAAM,CAAY;IAElB,YAAY,GAAW;QACnB,KAAK,EAAE,CAAA;QAEP,cAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAiB;QACxB,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,eAAe,GAAG;YACpB,gBAAgB,EAAE;gBACd;oBACI,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,GAAG,EAAE,WAAW,CAAC,GAAG;iBACvB;aACJ;YACD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW,CAAC,IAAI;iBAC1B;aACJ;YACD,iBAAiB;YACjB,QAAQ;YACR,2HAA2H;YAC3H,kCAAkC;YAClC,6BAA6B;YAC7B,oCAAoC;YACpC,QAAQ;YACR,KAAK;YACL,gBAAgB;YAChB,cAAc;YACd,aAAa;YACb,eAAe;YACf,KAAK;YACL,sBAAsB;YACtB,6EAA6E;YAC7E,SAAS;YACT,sBAAsB;YACtB,yBAAyB;YACzB,gBAAgB;YAChB,QAAQ;YACR,KAAK;YACL,qCAAqC;YACrC,kBAAkB;YAClB,8BAA8B;YAC9B,wBAAwB;YACxB,SAAS;YACT,gBAAgB;YAChB,wBAAwB;YACxB,SAAS;YACT,qBAAqB;YACrB,wBAAwB;YACxB,QAAQ;YACR,KAAK;YACL,sBAAsB;YACtB,uBAAuB;YACvB,wBAAwB;YACxB,4BAA4B;YAC5B,SAAS;YACT,sBAAsB;YACtB,wBAAwB;YACxB,0CAA0C;YAC1C,SAAS;YACT,8BAA8B;YAC9B,wBAAwB;YACxB,QAAQ;YACR,IAAI;SACP,CAAA;QAED,6DAA6D;QAC7D,gBAAgB,CAAC,yBAAyB;QAC1C,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,cAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAChE,MAAM,IAAI,qBAAS,CAAC,8BAA8B,EAAE;gBAChD,QAAQ,EAAE,UAAU;gBACpB,MAAM,EAAE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC/D,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI;gBAC7B,KAAK,EAAE,KAAK;aACf,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;QAEF,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAChC,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;QACrC,CAAC;QAED,OAAO,WAAW,CAAA;IACtB,CAAC;CACJ;AAlGD,8CAkGC;AA9FG;IADC,IAAA,kBAAM,GAAE;8BACD,sBAAU;iDAAA"}
|
package/build/Mail/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Mail/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../Mail/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kCAAkC,CAAA;AAChD,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA"}
|
package/build/Mail/index.js
CHANGED
|
@@ -15,6 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./Transports/MemoryTransport"), exports);
|
|
18
|
+
__exportStar(require("./Transports/CloudflareTransport"), exports);
|
|
19
|
+
__exportStar(require("./SentMessage"), exports);
|
|
20
|
+
__exportStar(require("./MailError"), exports);
|
|
18
21
|
__exportStar(require("./Mailer"), exports);
|
|
19
22
|
__exportStar(require("./Mailable"), exports);
|
|
20
23
|
//# sourceMappingURL=index.js.map
|
package/build/Mail/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Mail/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,2CAAwB;AACxB,6CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../Mail/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA4C;AAC5C,mEAAgD;AAChD,gDAA6B;AAC7B,8CAA2B;AAC3B,2CAAwB;AACxB,6CAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../Router/Http/Request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAA;AAQlD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAIjE,qBAAa,OAAQ,SAAQ,WAAW;IAG7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAK;IAEvD,UAAkB,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;KACnC,CAAA;IAID,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,cAAc,CAAC;KACzB,CAAK;IAEN,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;gBAG/F,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,EAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAQzC,IAAI,OAAO,IAAI,mBAAmB,CAEjC;IAED,IAAI,GAAG,IAAI,MAAM,CAKhB;IAED,IAAI,GAAG,IAAI,MAAM,CAchB;IAED,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,cAAc,CAU1B;IAED,IAAI,IAAI,
|
|
1
|
+
{"version":3,"file":"Request.d.ts","sourceRoot":"","sources":["../../../Router/Http/Request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAgB,MAAM,eAAe,CAAA;AAQlD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAIjE,qBAAa,OAAQ,SAAQ,WAAW;IAG7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAK;IAEvD,UAAkB,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG;QACxC,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;KACnC,CAAA;IAID,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG;QACxC,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,cAAc,CAAC;KACzB,CAAK;IAEN,SAAS,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,mBAAmB,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,CAAA;gBAG/F,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,EAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,EAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC;IAQzC,IAAI,OAAO,IAAI,mBAAmB,CAEjC;IAED,IAAI,GAAG,IAAI,MAAM,CAKhB;IAED,IAAI,GAAG,IAAI,MAAM,CAchB;IAED,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,CAExB;IAED,IAAI,KAAK,IAAI,cAAc,CAU1B;IAED,IAAI,IAAI,IA6CO,MAAM,GAAG,MAAM,GAAG,SAAS,CAzCzC;IAED,IAAI,OAAO,IAAI,UAAU,CAIxB;WAEY,oBAAoB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAiC9H,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAEzC;IAED,IAAI,KAAK,IAIQ,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAF7C;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,EAE7C;IAuBD,OAAO,CAAC,MAAM,CAAC,aAAa;WAIf,iBAAiB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IA6BtG,gBAAgB,CAAC,MAAM,EAAE,MAAM,mBAAmB,GAAG,IAAI;IAUzD,kBAAkB;CAGrB"}
|
|
@@ -115,7 +115,9 @@ class Request extends Request_1.Request {
|
|
|
115
115
|
const extension = filename.split('.').pop();
|
|
116
116
|
const temporaryPath = node_path_1.default.join(os.tmpdir(), `upload_${new Date().getTime().toString()}_${String.randomAlphaNum(9)}.${extension}`);
|
|
117
117
|
const fileInstance = new Storage_1.UploadedFile(temporaryPath, filename, mimeType);
|
|
118
|
-
writes.push((0, promises_1.pipeline)(file, fs.createWriteStream(fileInstance.path)))
|
|
118
|
+
writes.push((0, promises_1.pipeline)(file, fs.createWriteStream(fileInstance.path)).then(async () => {
|
|
119
|
+
fileInstance.size = (await fs.promises.stat(fileInstance.path)).size;
|
|
120
|
+
}));
|
|
119
121
|
file.on('end', function () {
|
|
120
122
|
const field = files[fieldName];
|
|
121
123
|
files[fieldName] = field instanceof Array ? [...field, fileInstance] : field ? [field, fileInstance] : fileInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../Router/Http/Request.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Request.js","sourceRoot":"","sources":["../../../Router/Http/Request.ts"],"names":[],"mappings":"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"}
|
|
@@ -147,7 +147,9 @@ function readForm(response, headers) {
|
|
|
147
147
|
const extension = filename.split('.').pop();
|
|
148
148
|
const temporaryPath = node_path_1.default.join(os_1.default.tmpdir(), `upload_${new Date().getTime().toString()}_${String.randomAlphaNum(9)}.${extension}`);
|
|
149
149
|
const fileInstance = new Storage_1.UploadedFile(temporaryPath, filename, mimeType);
|
|
150
|
-
writes.push((0, promises_1.pipeline)(file, fs_1.default.createWriteStream(fileInstance.path)))
|
|
150
|
+
writes.push((0, promises_1.pipeline)(file, fs_1.default.createWriteStream(fileInstance.path)).then(async () => {
|
|
151
|
+
fileInstance.size = (await fs_1.default.promises.stat(fileInstance.path)).size;
|
|
152
|
+
}));
|
|
151
153
|
file.on('end', function () {
|
|
152
154
|
const field = files[fieldName];
|
|
153
155
|
files[fieldName] = field instanceof Array ? [...field, fileInstance] : field ? [field, fileInstance] : fileInstance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uNetworking.js","sourceRoot":"","sources":["../../../Router/Servers/uNetworking.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"uNetworking.js","sourceRoot":"","sources":["../../../Router/Servers/uNetworking.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,10 @@ export declare class LocalDriver extends StorageDriver {
|
|
|
18
18
|
visibility(key: string): Promise<Visibility>;
|
|
19
19
|
setVisibility(key: string, visibility: Visibility): Promise<void>;
|
|
20
20
|
url(key: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Resolves a key to its local path and refuses any symbolic link along it, so a link created inside the root
|
|
23
|
+
* can't redirect reads or writes outside of it.
|
|
24
|
+
*/
|
|
21
25
|
private path;
|
|
22
26
|
private listDirectory;
|
|
23
27
|
private visibilityFromMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDriver.d.ts","sourceRoot":"","sources":["../../../Storage/Drivers/LocalDriver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE7H,qBAAa,WAAY,SAAQ,aAAa;IAG9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAEjB,MAAM,EAAE,eAAe;IAI9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB3C,IAAI,CAAC,MAAM,SAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,aAAa,CAAC,YAAY,CAAC;IAS1E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOxB,
|
|
1
|
+
{"version":3,"file":"LocalDriver.d.ts","sourceRoot":"","sources":["../../../Storage/Drivers/LocalDriver.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE7H,qBAAa,WAAY,SAAQ,aAAa;IAG9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;gBAEjB,MAAM,EAAE,eAAe;IAI9C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWlC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO1C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB3C,IAAI,CAAC,MAAM,SAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,aAAa,CAAC,YAAY,CAAC;IAS1E,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAaxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAW5C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAOxB;;;OAGG;YACW,IAAI;YAsBH,aAAa;IAgB5B,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;CAGpB"}
|
|
@@ -53,7 +53,7 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
53
53
|
this.config = config;
|
|
54
54
|
}
|
|
55
55
|
async write(key, content, options = {}) {
|
|
56
|
-
const destination = this.path(key);
|
|
56
|
+
const destination = await this.path(key);
|
|
57
57
|
await fileSystem.mkdir(node_path_1.default.dirname(destination), { recursive: true });
|
|
58
58
|
if (content instanceof node_stream_1.Readable) {
|
|
59
59
|
await (0, promises_1.pipeline)(content, node_fs_1.default.createWriteStream(destination));
|
|
@@ -65,7 +65,7 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
65
65
|
}
|
|
66
66
|
async read(key) {
|
|
67
67
|
try {
|
|
68
|
-
return await fileSystem.readFile(this.path(key));
|
|
68
|
+
return await fileSystem.readFile(await this.path(key));
|
|
69
69
|
}
|
|
70
70
|
catch (error) {
|
|
71
71
|
if (error.code === 'ENOENT') {
|
|
@@ -78,11 +78,11 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
78
78
|
if (!(await this.exists(key))) {
|
|
79
79
|
throw new errors_1.StorageFileNotFound(key);
|
|
80
80
|
}
|
|
81
|
-
return node_fs_1.default.createReadStream(this.path(key));
|
|
81
|
+
return node_fs_1.default.createReadStream(await this.path(key));
|
|
82
82
|
}
|
|
83
83
|
async exists(key) {
|
|
84
84
|
try {
|
|
85
|
-
return (await fileSystem.stat(this.path(key))).isFile();
|
|
85
|
+
return (await fileSystem.stat(await this.path(key))).isFile();
|
|
86
86
|
}
|
|
87
87
|
catch {
|
|
88
88
|
return false;
|
|
@@ -90,7 +90,7 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
90
90
|
}
|
|
91
91
|
async metadata(key) {
|
|
92
92
|
try {
|
|
93
|
-
const stats = await fileSystem.stat(this.path(key));
|
|
93
|
+
const stats = await fileSystem.stat(await this.path(key));
|
|
94
94
|
if (!stats.isFile()) {
|
|
95
95
|
throw new errors_1.StorageFileNotFound(key);
|
|
96
96
|
}
|
|
@@ -109,27 +109,27 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
109
109
|
}
|
|
110
110
|
async *list(prefix = '', options = {}) {
|
|
111
111
|
const normalizedPrefix = this.prefixer.normalize(prefix, true);
|
|
112
|
-
const directory = normalizedPrefix ? this.path(normalizedPrefix) : node_path_1.default.resolve(this.config.root);
|
|
112
|
+
const directory = normalizedPrefix ? await this.path(normalizedPrefix) : node_path_1.default.resolve(this.config.root);
|
|
113
113
|
if (!(await fileSystem.stat(directory).catch(() => undefined))?.isDirectory()) {
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
116
|
yield* this.listDirectory(directory, normalizedPrefix, options.recursive ?? false);
|
|
117
117
|
}
|
|
118
118
|
async delete(key) {
|
|
119
|
-
await fileSystem.unlink(this.path(key)).catch((error) => {
|
|
119
|
+
await fileSystem.unlink(await this.path(key)).catch((error) => {
|
|
120
120
|
if (error.code !== 'ENOENT') {
|
|
121
121
|
throw error;
|
|
122
122
|
}
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
async deleteDirectory(prefix) {
|
|
126
|
-
await fileSystem.rm(this.path(prefix), { recursive: true, force: true });
|
|
126
|
+
await fileSystem.rm(await this.path(prefix), { recursive: true, force: true });
|
|
127
127
|
}
|
|
128
128
|
async copy(source, destination) {
|
|
129
|
-
const destinationPath = this.path(destination);
|
|
129
|
+
const destinationPath = await this.path(destination);
|
|
130
130
|
await fileSystem.mkdir(node_path_1.default.dirname(destinationPath), { recursive: true });
|
|
131
131
|
try {
|
|
132
|
-
await fileSystem.copyFile(this.path(source), destinationPath);
|
|
132
|
+
await fileSystem.copyFile(await this.path(source), destinationPath);
|
|
133
133
|
}
|
|
134
134
|
catch (error) {
|
|
135
135
|
if (error.code === 'ENOENT') {
|
|
@@ -139,10 +139,10 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
async move(source, destination) {
|
|
142
|
-
const destinationPath = this.path(destination);
|
|
142
|
+
const destinationPath = await this.path(destination);
|
|
143
143
|
await fileSystem.mkdir(node_path_1.default.dirname(destinationPath), { recursive: true });
|
|
144
144
|
try {
|
|
145
|
-
await fileSystem.rename(this.path(source), destinationPath);
|
|
145
|
+
await fileSystem.rename(await this.path(source), destinationPath);
|
|
146
146
|
}
|
|
147
147
|
catch (error) {
|
|
148
148
|
if (error.code === 'ENOENT') {
|
|
@@ -153,7 +153,7 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
153
153
|
}
|
|
154
154
|
async visibility(key) {
|
|
155
155
|
try {
|
|
156
|
-
return this.visibilityFromMode((await fileSystem.stat(this.path(key))).mode);
|
|
156
|
+
return this.visibilityFromMode((await fileSystem.stat(await this.path(key))).mode);
|
|
157
157
|
}
|
|
158
158
|
catch (error) {
|
|
159
159
|
if (error.code === 'ENOENT') {
|
|
@@ -164,7 +164,7 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
164
164
|
}
|
|
165
165
|
async setVisibility(key, visibility) {
|
|
166
166
|
try {
|
|
167
|
-
await fileSystem.chmod(this.path(key), visibility === 'public' ? 0o644 : 0o600);
|
|
167
|
+
await fileSystem.chmod(await this.path(key), visibility === 'public' ? 0o644 : 0o600);
|
|
168
168
|
}
|
|
169
169
|
catch (error) {
|
|
170
170
|
if (error.code === 'ENOENT') {
|
|
@@ -179,8 +179,30 @@ class LocalDriver extends StorageDriver_1.StorageDriver {
|
|
|
179
179
|
}
|
|
180
180
|
return `${this.config.url.replace(/\/$/, '')}/${this.encodeKey(key)}`;
|
|
181
181
|
}
|
|
182
|
-
|
|
183
|
-
|
|
182
|
+
/**
|
|
183
|
+
* Resolves a key to its local path and refuses any symbolic link along it, so a link created inside the root
|
|
184
|
+
* can't redirect reads or writes outside of it.
|
|
185
|
+
*/
|
|
186
|
+
async path(key) {
|
|
187
|
+
const resolved = this.prefixer.resolve(this.config.root, key);
|
|
188
|
+
const root = node_path_1.default.resolve(this.config.root);
|
|
189
|
+
let current = root;
|
|
190
|
+
for (const segment of node_path_1.default.relative(root, resolved).split(node_path_1.default.sep).filter(Boolean)) {
|
|
191
|
+
current = node_path_1.default.join(current, segment);
|
|
192
|
+
const stats = await fileSystem.lstat(current).catch((error) => {
|
|
193
|
+
if (error.code === 'ENOENT') {
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
throw error;
|
|
197
|
+
});
|
|
198
|
+
if (!stats) {
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
if (stats.isSymbolicLink()) {
|
|
202
|
+
throw new errors_1.StorageSymbolicLink(key);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return resolved;
|
|
184
206
|
}
|
|
185
207
|
async *listDirectory(directory, prefix, recursive) {
|
|
186
208
|
const entries = await fileSystem.readdir(directory, { withFileTypes: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDriver.js","sourceRoot":"","sources":["../../../Storage/Drivers/LocalDriver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAwB;AACxB,6DAA8C;AAC9C,0DAA4B;AAC5B,mDAA+C;AAC/C,6CAAsC;AACtC,kDAA8C;AAC9C,oDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"LocalDriver.js","sourceRoot":"","sources":["../../../Storage/Drivers/LocalDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,4 +18,7 @@ export declare class UnsupportedStorageOperation extends StorageError {
|
|
|
18
18
|
export declare class ReadOnlyStorage extends StorageError {
|
|
19
19
|
constructor();
|
|
20
20
|
}
|
|
21
|
+
export declare class StorageSymbolicLink extends StorageError {
|
|
22
|
+
constructor(key: string);
|
|
23
|
+
}
|
|
21
24
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../Storage/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,IAAI,EAAE,MAAM;CAG3B;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBAC3C,IAAI,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,GAAG,EAAE,MAAM;CAG1B;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACnC,GAAG,EAAE,MAAM;CAG1B;AAED,qBAAa,2BAA4B,SAAQ,YAAY;gBAC7C,SAAS,EAAE,MAAM;CAGhC;AAED,qBAAa,eAAgB,SAAQ,YAAY;;CAIhD"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../Storage/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;CAAG;AAE1C,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,IAAI,EAAE,MAAM;CAG3B;AAED,qBAAa,yBAA0B,SAAQ,YAAY;gBAC3C,IAAI,EAAE,MAAM;CAG3B;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,GAAG,EAAE,MAAM;CAG1B;AAED,qBAAa,iBAAkB,SAAQ,YAAY;gBACnC,GAAG,EAAE,MAAM;CAG1B;AAED,qBAAa,2BAA4B,SAAQ,YAAY;gBAC7C,SAAS,EAAE,MAAM;CAGhC;AAED,qBAAa,eAAgB,SAAQ,YAAY;;CAIhD;AAED,qBAAa,mBAAoB,SAAQ,YAAY;gBACrC,GAAG,EAAE,MAAM;CAG1B"}
|
package/build/Storage/errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReadOnlyStorage = exports.UnsupportedStorageOperation = exports.InvalidStorageKey = exports.StorageFileNotFound = exports.StorageDriverNotSupported = exports.StorageDiskNotFound = exports.StorageError = void 0;
|
|
3
|
+
exports.StorageSymbolicLink = exports.ReadOnlyStorage = exports.UnsupportedStorageOperation = exports.InvalidStorageKey = exports.StorageFileNotFound = exports.StorageDriverNotSupported = exports.StorageDiskNotFound = exports.StorageError = void 0;
|
|
4
4
|
class StorageError extends Error {
|
|
5
5
|
}
|
|
6
6
|
exports.StorageError = StorageError;
|
|
@@ -40,4 +40,10 @@ class ReadOnlyStorage extends StorageError {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
exports.ReadOnlyStorage = ReadOnlyStorage;
|
|
43
|
+
class StorageSymbolicLink extends StorageError {
|
|
44
|
+
constructor(key) {
|
|
45
|
+
super(`Storage key '${key}' resolves through a symbolic link.`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.StorageSymbolicLink = StorageSymbolicLink;
|
|
43
49
|
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../Storage/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;CAAG;AAA1C,oCAA0C;AAE1C,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,IAAY;QACpB,KAAK,CAAC,iBAAiB,IAAI,sBAAsB,CAAC,CAAA;IACtD,CAAC;CACJ;AAJD,kDAIC;AAED,MAAa,yBAA0B,SAAQ,YAAY;IACvD,YAAY,IAAY;QACpB,KAAK,CAAC,mBAAmB,IAAI,qBAAqB,CAAC,CAAA;IACvD,CAAC;CACJ;AAJD,8DAIC;AAED,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,GAAW;QACnB,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAA;IACjD,CAAC;CACJ;AAJD,kDAIC;AAED,MAAa,iBAAkB,SAAQ,YAAY;IAC/C,YAAY,GAAW;QACnB,KAAK,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAA;IAC7C,CAAC;CACJ;AAJD,8CAIC;AAED,MAAa,2BAA4B,SAAQ,YAAY;IACzD,YAAY,SAAiB;QACzB,KAAK,CAAC,wCAAwC,SAAS,IAAI,CAAC,CAAA;IAChE,CAAC;CACJ;AAJD,kEAIC;AAED,MAAa,eAAgB,SAAQ,YAAY;IAC7C;QACI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC3C,CAAC;CACJ;AAJD,0CAIC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../Storage/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAa,SAAQ,KAAK;CAAG;AAA1C,oCAA0C;AAE1C,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,IAAY;QACpB,KAAK,CAAC,iBAAiB,IAAI,sBAAsB,CAAC,CAAA;IACtD,CAAC;CACJ;AAJD,kDAIC;AAED,MAAa,yBAA0B,SAAQ,YAAY;IACvD,YAAY,IAAY;QACpB,KAAK,CAAC,mBAAmB,IAAI,qBAAqB,CAAC,CAAA;IACvD,CAAC;CACJ;AAJD,8DAIC;AAED,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,GAAW;QACnB,KAAK,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,CAAA;IACjD,CAAC;CACJ;AAJD,kDAIC;AAED,MAAa,iBAAkB,SAAQ,YAAY;IAC/C,YAAY,GAAW;QACnB,KAAK,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAA;IAC7C,CAAC;CACJ;AAJD,8CAIC;AAED,MAAa,2BAA4B,SAAQ,YAAY;IACzD,YAAY,SAAiB;QACzB,KAAK,CAAC,wCAAwC,SAAS,IAAI,CAAC,CAAA;IAChE,CAAC;CACJ;AAJD,kEAIC;AAED,MAAa,eAAgB,SAAQ,YAAY;IAC7C;QACI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC3C,CAAC;CACJ;AAJD,0CAIC;AAED,MAAa,mBAAoB,SAAQ,YAAY;IACjD,YAAY,GAAW;QACnB,KAAK,CAAC,gBAAgB,GAAG,qCAAqC,CAAC,CAAA;IACnE,CAAC;CACJ;AAJD,kDAIC"}
|