@effect/platform 0.28.3 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Http/FormData.js +21 -26
- package/dist/cjs/Http/FormData.js.map +1 -1
- package/dist/cjs/Http/ServerRequest.js +3 -3
- package/dist/cjs/Http/ServerRequest.js.map +1 -1
- package/dist/cjs/Terminal.js.map +1 -1
- package/dist/cjs/internal/http/formData.js +212 -31
- package/dist/cjs/internal/http/formData.js.map +1 -1
- package/dist/cjs/internal/http/serverRequest.js +4 -4
- package/dist/cjs/internal/http/serverRequest.js.map +1 -1
- package/dist/cjs/internal/worker.js +6 -5
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/dts/Http/FormData.d.ts +46 -35
- package/dist/dts/Http/FormData.d.ts.map +1 -1
- package/dist/dts/Http/ServerRequest.d.ts +3 -3
- package/dist/dts/Http/ServerRequest.d.ts.map +1 -1
- package/dist/dts/Terminal.d.ts +4 -0
- package/dist/dts/Terminal.d.ts.map +1 -1
- package/dist/dts/WorkerRunner.d.ts +1 -1
- package/dist/dts/WorkerRunner.d.ts.map +1 -1
- package/dist/esm/Http/FormData.js +20 -25
- package/dist/esm/Http/FormData.js.map +1 -1
- package/dist/esm/Http/ServerRequest.js +1 -1
- package/dist/esm/Http/ServerRequest.js.map +1 -1
- package/dist/esm/Terminal.js.map +1 -1
- package/dist/esm/internal/http/formData.js +207 -29
- package/dist/esm/internal/http/formData.js.map +1 -1
- package/dist/esm/internal/http/serverRequest.js +3 -3
- package/dist/esm/internal/http/serverRequest.js.map +1 -1
- package/dist/esm/internal/worker.js +2 -1
- package/dist/esm/internal/worker.js.map +1 -1
- package/package.json +2 -1
- package/src/Http/FormData.ts +62 -41
- package/src/Http/ServerRequest.ts +9 -5
- package/src/Terminal.ts +4 -0
- package/src/WorkerRunner.ts +1 -1
- package/src/internal/http/formData.ts +320 -62
- package/src/internal/http/serverRequest.ts +4 -10
- package/src/internal/worker.ts +2 -1
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import * as Schema from "@effect/schema/Schema";
|
|
2
|
+
import * as Cause from "effect/Cause";
|
|
3
|
+
import * as Channel from "effect/Channel";
|
|
2
4
|
import * as Chunk from "effect/Chunk";
|
|
3
5
|
import * as Data from "effect/Data";
|
|
4
6
|
import * as Effect from "effect/Effect";
|
|
5
7
|
import * as FiberRef from "effect/FiberRef";
|
|
6
|
-
import { dual, pipe } from "effect/Function";
|
|
8
|
+
import { dual, flow, pipe } from "effect/Function";
|
|
7
9
|
import { globalValue } from "effect/GlobalValue";
|
|
8
10
|
import * as Option from "effect/Option";
|
|
9
11
|
import * as Predicate from "effect/Predicate";
|
|
10
|
-
import * as
|
|
12
|
+
import * as Queue from "effect/Queue";
|
|
13
|
+
import * as Stream from "effect/Stream";
|
|
14
|
+
import * as MP from "multipasta";
|
|
11
15
|
import * as FileSystem from "../../FileSystem.js";
|
|
16
|
+
import * as IncomingMessage from "../../Http/IncomingMessage.js";
|
|
17
|
+
import * as Path from "../../Path.js";
|
|
12
18
|
/** @internal */
|
|
13
19
|
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/FormData");
|
|
14
20
|
/** @internal */
|
|
@@ -21,6 +27,8 @@ export const FormDataError = (reason, error) => Data.struct({
|
|
|
21
27
|
error
|
|
22
28
|
});
|
|
23
29
|
/** @internal */
|
|
30
|
+
export const isField = u => Predicate.hasProperty(u, TypeId) && Predicate.isTagged(u, "Field");
|
|
31
|
+
/** @internal */
|
|
24
32
|
export const maxParts = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxParts", () => FiberRef.unsafeMake(Option.none()));
|
|
25
33
|
/** @internal */
|
|
26
34
|
export const withMaxParts = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxParts, count));
|
|
@@ -29,14 +37,6 @@ export const maxFieldSize = /*#__PURE__*/globalValue("@effect/platform/Http/Form
|
|
|
29
37
|
/** @internal */
|
|
30
38
|
export const withMaxFieldSize = /*#__PURE__*/dual(2, (effect, size) => Effect.locally(effect, maxFieldSize, FileSystem.Size(size)));
|
|
31
39
|
/** @internal */
|
|
32
|
-
export const maxFields = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFields", () => FiberRef.unsafeMake(Option.none()));
|
|
33
|
-
/** @internal */
|
|
34
|
-
export const withMaxFields = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxFields, count));
|
|
35
|
-
/** @internal */
|
|
36
|
-
export const maxFiles = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFiles", () => FiberRef.unsafeMake(Option.none()));
|
|
37
|
-
/** @internal */
|
|
38
|
-
export const withMaxFiles = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxFiles, count));
|
|
39
|
-
/** @internal */
|
|
40
40
|
export const maxFileSize = /*#__PURE__*/globalValue("@effect/platform/Http/FormData/maxFileSize", () => FiberRef.unsafeMake(Option.none()));
|
|
41
41
|
/** @internal */
|
|
42
42
|
export const withMaxFileSize = /*#__PURE__*/dual(2, (effect, size) => Effect.locally(effect, maxFileSize, Option.map(size, FileSystem.Size)));
|
|
@@ -45,32 +45,210 @@ export const fieldMimeTypes = /*#__PURE__*/globalValue("@effect/platform/Http/Fo
|
|
|
45
45
|
/** @internal */
|
|
46
46
|
export const withFieldMimeTypes = /*#__PURE__*/dual(2, (effect, mimeTypes) => Effect.locally(effect, fieldMimeTypes, Chunk.fromIterable(mimeTypes)));
|
|
47
47
|
/** @internal */
|
|
48
|
-
export const
|
|
49
|
-
if (Predicate.isString(value)) {
|
|
50
|
-
acc[key] = value;
|
|
51
|
-
} else {
|
|
52
|
-
const existing = acc[key];
|
|
53
|
-
if (Array.isArray(existing)) {
|
|
54
|
-
existing.push(value);
|
|
55
|
-
} else {
|
|
56
|
-
acc[key] = [value];
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
return acc;
|
|
60
|
-
});
|
|
61
|
-
/** @internal */
|
|
62
|
-
export const filesSchema = /*#__PURE__*/Schema.array( /*#__PURE__*/pipe( /*#__PURE__*/Schema.instanceOf(Blob), /*#__PURE__*/Schema.filter(blob => "name" in blob)));
|
|
48
|
+
export const filesSchema = /*#__PURE__*/Schema.array( /*#__PURE__*/pipe(Schema.object, /*#__PURE__*/Schema.filter(file => TypeId in file && "_tag" in file && file._tag === "PersistedFile")));
|
|
63
49
|
/** @internal */
|
|
64
|
-
export const
|
|
50
|
+
export const schemaPersisted = schema => {
|
|
65
51
|
const parse = Schema.parse(schema);
|
|
66
|
-
return formData => parse(
|
|
52
|
+
return formData => parse(formData);
|
|
67
53
|
};
|
|
68
54
|
/** @internal */
|
|
69
55
|
export const schemaJson = schema => {
|
|
70
56
|
const parse = Schema.parse(schema);
|
|
71
|
-
return dual(2, (formData, field) => pipe(Effect.succeed(formData
|
|
72
|
-
try: field => JSON.parse(field),
|
|
57
|
+
return dual(2, (formData, field) => pipe(Effect.succeed(formData[field]), Effect.filterOrFail(isField, () => FormDataError("Parse", `schemaJson: was not a field`)), Effect.tryMap({
|
|
58
|
+
try: field => JSON.parse(field.value),
|
|
73
59
|
catch: error => FormDataError("Parse", `schemaJson: field was not valid json: ${error}`)
|
|
74
60
|
}), Effect.flatMap(parse)));
|
|
75
61
|
};
|
|
62
|
+
/** @internal */
|
|
63
|
+
export const makeConfig = headers => Effect.map(Effect.all({
|
|
64
|
+
maxParts: Effect.map(FiberRef.get(maxParts), Option.getOrUndefined),
|
|
65
|
+
maxFieldSize: Effect.map(FiberRef.get(maxFieldSize), Number),
|
|
66
|
+
maxPartSize: Effect.map(FiberRef.get(maxFileSize), flow(Option.map(Number), Option.getOrUndefined)),
|
|
67
|
+
maxTotalSize: Effect.map(FiberRef.get(IncomingMessage.maxBodySize), flow(Option.map(Number), Option.getOrUndefined)),
|
|
68
|
+
isFile: Effect.map(FiberRef.get(fieldMimeTypes), mimeTypes => {
|
|
69
|
+
if (mimeTypes.length === 0) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return info => Chunk.some(mimeTypes, _ => info.contentType.includes(_)) || MP.defaultIsFile(info);
|
|
73
|
+
})
|
|
74
|
+
}), _ => ({
|
|
75
|
+
..._,
|
|
76
|
+
headers
|
|
77
|
+
}));
|
|
78
|
+
/** @internal */
|
|
79
|
+
export const makeChannel = (headers, bufferSize = 16) => Channel.acquireUseRelease(Effect.all([makeConfig(headers), Queue.bounded(bufferSize)]), ([config, queue]) => makeFromQueue(config, queue), ([, queue]) => Queue.shutdown(queue));
|
|
80
|
+
const makeFromQueue = (config, queue) => Channel.suspend(() => {
|
|
81
|
+
let error = Option.none();
|
|
82
|
+
let partsBuffer = [];
|
|
83
|
+
let partsFinished = false;
|
|
84
|
+
const input = {
|
|
85
|
+
awaitRead: () => Effect.unit,
|
|
86
|
+
emit(element) {
|
|
87
|
+
return Queue.offer(queue, element);
|
|
88
|
+
},
|
|
89
|
+
error(cause) {
|
|
90
|
+
error = Option.some(cause);
|
|
91
|
+
return Queue.offer(queue, null);
|
|
92
|
+
},
|
|
93
|
+
done(_value) {
|
|
94
|
+
return Queue.offer(queue, null);
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
const parser = MP.make({
|
|
98
|
+
...config,
|
|
99
|
+
onField(info, value) {
|
|
100
|
+
partsBuffer.push(new FieldImpl(info.name, info.contentType, MP.decodeField(info, value)));
|
|
101
|
+
},
|
|
102
|
+
onFile(info) {
|
|
103
|
+
let chunks = [];
|
|
104
|
+
let finished = false;
|
|
105
|
+
const take = Channel.suspend(() => {
|
|
106
|
+
if (finished) {
|
|
107
|
+
return Channel.unit;
|
|
108
|
+
} else if (chunks.length === 0) {
|
|
109
|
+
return Channel.zipRight(pump, take);
|
|
110
|
+
}
|
|
111
|
+
const chunk = Chunk.unsafeFromArray(chunks);
|
|
112
|
+
chunks = [];
|
|
113
|
+
return Channel.zipRight(Channel.write(chunk), Channel.zipRight(pump, take));
|
|
114
|
+
});
|
|
115
|
+
partsBuffer.push(new FileImpl(info, take));
|
|
116
|
+
return function (chunk) {
|
|
117
|
+
if (chunk === null) {
|
|
118
|
+
finished = true;
|
|
119
|
+
} else {
|
|
120
|
+
chunks.push(chunk);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
},
|
|
124
|
+
onError(error_) {
|
|
125
|
+
error = Option.some(Cause.fail(convertError(error_)));
|
|
126
|
+
},
|
|
127
|
+
onDone() {
|
|
128
|
+
partsFinished = true;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
const pump = Channel.flatMap(Queue.take(queue), chunk => Channel.sync(() => {
|
|
132
|
+
if (chunk === null) {
|
|
133
|
+
parser.end();
|
|
134
|
+
} else {
|
|
135
|
+
Chunk.forEach(chunk, function (buf) {
|
|
136
|
+
parser.write(buf);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}));
|
|
140
|
+
const takeParts = Channel.zipRight(pump, Channel.suspend(() => {
|
|
141
|
+
if (partsBuffer.length === 0) {
|
|
142
|
+
return Channel.unit;
|
|
143
|
+
}
|
|
144
|
+
const parts = Chunk.unsafeFromArray(partsBuffer);
|
|
145
|
+
partsBuffer = [];
|
|
146
|
+
return Channel.write(parts);
|
|
147
|
+
}));
|
|
148
|
+
const partsChannel = Channel.suspend(() => {
|
|
149
|
+
if (error._tag === "Some") {
|
|
150
|
+
return Channel.failCause(error.value);
|
|
151
|
+
} else if (partsFinished) {
|
|
152
|
+
return Channel.unit;
|
|
153
|
+
}
|
|
154
|
+
return Channel.zipRight(takeParts, partsChannel);
|
|
155
|
+
});
|
|
156
|
+
return Channel.embedInput(partsChannel, input);
|
|
157
|
+
});
|
|
158
|
+
function convertError(error) {
|
|
159
|
+
switch (error._tag) {
|
|
160
|
+
case "ReachedLimit":
|
|
161
|
+
{
|
|
162
|
+
switch (error.limit) {
|
|
163
|
+
case "MaxParts":
|
|
164
|
+
{
|
|
165
|
+
return FormDataError("TooManyParts", error);
|
|
166
|
+
}
|
|
167
|
+
case "MaxFieldSize":
|
|
168
|
+
{
|
|
169
|
+
return FormDataError("FieldTooLarge", error);
|
|
170
|
+
}
|
|
171
|
+
case "MaxPartSize":
|
|
172
|
+
{
|
|
173
|
+
return FormDataError("FileTooLarge", error);
|
|
174
|
+
}
|
|
175
|
+
case "MaxTotalSize":
|
|
176
|
+
{
|
|
177
|
+
return FormDataError("BodyTooLarge", error);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
default:
|
|
182
|
+
{
|
|
183
|
+
return FormDataError("Parse", error);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
class FieldImpl {
|
|
188
|
+
key;
|
|
189
|
+
contentType;
|
|
190
|
+
value;
|
|
191
|
+
[TypeId];
|
|
192
|
+
_tag = "Field";
|
|
193
|
+
constructor(key, contentType, value) {
|
|
194
|
+
this.key = key;
|
|
195
|
+
this.contentType = contentType;
|
|
196
|
+
this.value = value;
|
|
197
|
+
this[TypeId] = TypeId;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
class FileImpl {
|
|
201
|
+
_tag = "File";
|
|
202
|
+
[TypeId];
|
|
203
|
+
key;
|
|
204
|
+
name;
|
|
205
|
+
contentType;
|
|
206
|
+
content;
|
|
207
|
+
constructor(info, channel) {
|
|
208
|
+
this[TypeId] = TypeId;
|
|
209
|
+
this.key = info.name;
|
|
210
|
+
this.name = info.filename ?? info.name;
|
|
211
|
+
this.contentType = info.contentType;
|
|
212
|
+
this.content = Stream.fromChannel(channel);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
const defaultWriteFile = (path, file) => Effect.flatMap(FileSystem.FileSystem, fs => Effect.mapError(Stream.run(file.content, fs.sink(path)), error => FormDataError("InternalError", error)));
|
|
216
|
+
/** @internal */
|
|
217
|
+
export const formData = (stream, writeFile = defaultWriteFile) => pipe(Effect.Do, Effect.bind("fs", () => FileSystem.FileSystem), Effect.bind("path", () => Path.Path), Effect.bind("dir", ({
|
|
218
|
+
fs
|
|
219
|
+
}) => fs.makeTempDirectoryScoped()), Effect.flatMap(({
|
|
220
|
+
dir,
|
|
221
|
+
path: path_
|
|
222
|
+
}) => Stream.runFoldEffect(stream, Object.create(null), (formData, part) => {
|
|
223
|
+
if (part._tag === "Field") {
|
|
224
|
+
formData[part.key] = part.value;
|
|
225
|
+
return Effect.succeed(formData);
|
|
226
|
+
}
|
|
227
|
+
const file = part;
|
|
228
|
+
const path = path_.join(dir, path_.basename(file.name).slice(-128));
|
|
229
|
+
if (!Array.isArray(formData[part.key])) {
|
|
230
|
+
formData[part.key] = [];
|
|
231
|
+
}
|
|
232
|
+
;
|
|
233
|
+
formData[part.key].push(new PersistedFileImpl(file.key, file.name, file.contentType, path));
|
|
234
|
+
return Effect.as(writeFile(path, file), formData);
|
|
235
|
+
})), Effect.catchTags({
|
|
236
|
+
SystemError: err => Effect.fail(FormDataError("InternalError", err)),
|
|
237
|
+
BadArgument: err => Effect.fail(FormDataError("InternalError", err))
|
|
238
|
+
}));
|
|
239
|
+
class PersistedFileImpl {
|
|
240
|
+
key;
|
|
241
|
+
name;
|
|
242
|
+
contentType;
|
|
243
|
+
path;
|
|
244
|
+
[TypeId];
|
|
245
|
+
_tag = "PersistedFile";
|
|
246
|
+
constructor(key, name, contentType, path) {
|
|
247
|
+
this.key = key;
|
|
248
|
+
this.name = name;
|
|
249
|
+
this.contentType = contentType;
|
|
250
|
+
this.path = path;
|
|
251
|
+
this[TypeId] = TypeId;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
76
254
|
//# sourceMappingURL=formData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formData.js","names":["Schema","Chunk","Data","Effect","FiberRef","dual","pipe","globalValue","Option","Predicate","ReadonlyArray","FileSystem","TypeId","Symbol","for","ErrorTypeId","FormDataError","reason","error","struct","_tag","maxParts","unsafeMake","none","withMaxParts","effect","count","locally","maxFieldSize","Size","withMaxFieldSize","size","maxFields","withMaxFields","maxFiles","withMaxFiles","maxFileSize","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","toRecord","formData","reduce","entries","acc","key","value","isString","existing","Array","isArray","push","filesSchema","array","instanceOf","Blob","filter","blob","schemaRecord","schema","parse","schemaJson","field","succeed","get","filterOrFail","tryMap","try","JSON","catch","flatMap"],"sources":["../../../../src/internal/http/formData.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formData.js","names":["Schema","Cause","Channel","Chunk","Data","Effect","FiberRef","dual","flow","pipe","globalValue","Option","Predicate","Queue","Stream","MP","FileSystem","IncomingMessage","Path","TypeId","Symbol","for","ErrorTypeId","FormDataError","reason","error","struct","_tag","isField","u","hasProperty","isTagged","maxParts","unsafeMake","none","withMaxParts","effect","count","locally","maxFieldSize","Size","withMaxFieldSize","size","maxFileSize","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","filesSchema","array","object","filter","file","schemaPersisted","schema","parse","formData","schemaJson","field","succeed","filterOrFail","tryMap","try","JSON","value","catch","flatMap","makeConfig","headers","all","get","getOrUndefined","Number","maxPartSize","maxTotalSize","maxBodySize","isFile","length","undefined","info","some","_","contentType","includes","defaultIsFile","makeChannel","bufferSize","acquireUseRelease","bounded","config","queue","makeFromQueue","shutdown","suspend","partsBuffer","partsFinished","input","awaitRead","unit","emit","element","offer","cause","done","_value","parser","onField","push","FieldImpl","name","decodeField","onFile","chunks","finished","take","zipRight","pump","chunk","unsafeFromArray","write","FileImpl","onError","error_","fail","convertError","onDone","sync","end","forEach","buf","takeParts","parts","partsChannel","failCause","embedInput","limit","key","constructor","content","channel","filename","fromChannel","defaultWriteFile","path","fs","mapError","run","sink","stream","writeFile","Do","bind","makeTempDirectoryScoped","dir","path_","runFoldEffect","Object","create","part","join","basename","slice","Array","isArray","PersistedFileImpl","as","catchTags","SystemError","err","BadArgument"],"sources":["../../../../src/internal/http/formData.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Http/ServerReque
|
|
|
8
8
|
/** @internal */
|
|
9
9
|
export const serverRequestTag = /*#__PURE__*/Context.Tag(TypeId);
|
|
10
10
|
/** @internal */
|
|
11
|
-
export const
|
|
11
|
+
export const persistedFormData = /*#__PURE__*/Effect.flatMap(serverRequestTag, request => request.formData);
|
|
12
12
|
/** @internal */
|
|
13
13
|
export const schemaHeaders = schema => {
|
|
14
14
|
const parse = IncomingMessage.schemaHeaders(schema);
|
|
@@ -26,8 +26,8 @@ export const schemaBodyUrlParams = schema => {
|
|
|
26
26
|
};
|
|
27
27
|
/** @internal */
|
|
28
28
|
export const schemaFormData = schema => {
|
|
29
|
-
const parse = FormData.
|
|
30
|
-
return Effect.flatMap(
|
|
29
|
+
const parse = FormData.schemaPersisted(schema);
|
|
30
|
+
return Effect.flatMap(persistedFormData, parse);
|
|
31
31
|
};
|
|
32
32
|
/** @internal */
|
|
33
33
|
export const schemaFormDataJson = schema => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverRequest.js","names":["Context","Effect","FormData","IncomingMessage","Error","TypeId","Symbol","for","serverRequestTag","Tag","
|
|
1
|
+
{"version":3,"file":"serverRequest.js","names":["Context","Effect","FormData","IncomingMessage","Error","TypeId","Symbol","for","serverRequestTag","Tag","persistedFormData","flatMap","request","formData","schemaHeaders","schema","parse","schemaBodyJson","schemaBodyUrlParams","schemaFormData","schemaPersisted","schemaFormDataJson","schemaJson","field","catchTag","error","fail","RequestError","reason"],"sources":["../../../../src/internal/http/serverRequest.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAClD,OAAO,KAAKC,eAAe,MAAM,+BAA+B;AAChE,OAAO,KAAKC,KAAK,MAAM,2BAA2B;AAGlD;AACA,OAAO,MAAMC,MAAM,gBAAyBC,MAAM,CAACC,GAAG,CAAC,qCAAqC,CAAyB;AAErH;AACA,OAAO,MAAMC,gBAAgB,gBAAGR,OAAO,CAACS,GAAG,CAA8BJ,MAAM,CAAC;AAEhF;AACA,OAAO,MAAMK,iBAAiB,gBAAGT,MAAM,CAACU,OAAO,CAACH,gBAAgB,EAAGI,OAAO,IAAKA,OAAO,CAACC,QAAQ,CAAC;AAEhG;AACA,OAAO,MAAMC,aAAa,GAAmDC,MAA2B,IAAI;EAC1G,MAAMC,KAAK,GAAGb,eAAe,CAACW,aAAa,CAACC,MAAM,CAAC;EACnD,OAAOd,MAAM,CAACU,OAAO,CAACH,gBAAgB,EAAEQ,KAAK,CAAC;AAChD,CAAC;AAED;AACA,OAAO,MAAMC,cAAc,GAAUF,MAA2B,IAAI;EAClE,MAAMC,KAAK,GAAGb,eAAe,CAACc,cAAc,CAACF,MAAM,CAAC;EACpD,OAAOd,MAAM,CAACU,OAAO,CAACH,gBAAgB,EAAEQ,KAAK,CAAC;AAChD,CAAC;AAED;AACA,OAAO,MAAME,mBAAmB,GAAmDH,MAA2B,IAAI;EAChH,MAAMC,KAAK,GAAGb,eAAe,CAACe,mBAAmB,CAACH,MAAM,CAAC;EACzD,OAAOd,MAAM,CAACU,OAAO,CAACH,gBAAgB,EAAEQ,KAAK,CAAC;AAChD,CAAC;AAED;AACA,OAAO,MAAMG,cAAc,GACzBJ,MAA2B,IACzB;EACF,MAAMC,KAAK,GAAGd,QAAQ,CAACkB,eAAe,CAACL,MAAM,CAAC;EAC9C,OAAOd,MAAM,CAACU,OAAO,CAACD,iBAAiB,EAAEM,KAAK,CAAC;AACjD,CAAC;AAED;AACA,OAAO,MAAMK,kBAAkB,GAAUN,MAA2B,IAAI;EACtE,MAAMC,KAAK,GAAGd,QAAQ,CAACoB,UAAU,CAACP,MAAM,CAAC;EACzC,OAAQQ,KAAa,IACnBtB,MAAM,CAACU,OAAO,CAACH,gBAAgB,EAAGI,OAAO,IACvCX,MAAM,CAACU,OAAO,CACZC,OAAO,CAACC,QAAQ,EACfA,QAAQ,IACPZ,MAAM,CAACuB,QAAQ,CACbR,KAAK,CAACH,QAAQ,EAAEU,KAAK,CAAC,EACtB,eAAe,EACdE,KAAK,IACJxB,MAAM,CAACyB,IAAI,CACTtB,KAAK,CAACuB,YAAY,CAAC;IACjBC,MAAM,EAAE,QAAQ;IAChBhB,OAAO;IACPa,KAAK,EAAEA,KAAK,CAACA;GACd,CAAC,CACH,CACJ,CACJ,CAAC;AACR,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as Cause from "effect/Cause";
|
|
2
2
|
import * as Channel from "effect/Channel";
|
|
3
|
+
import * as Chunk from "effect/Chunk";
|
|
3
4
|
import * as Context from "effect/Context";
|
|
4
5
|
import * as Deferred from "effect/Deferred";
|
|
5
6
|
import * as Effect from "effect/Effect";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","names":["Cause","
|
|
1
|
+
{"version":3,"file":"worker.js","names":["Cause","Channel","Chunk","Context","Deferred","Effect","Exit","Fiber","identity","pipe","Layer","Pool","Queue","Stream","defaultQueue","map","unbounded","queue","offer","id","item","take","shutdown","PlatformWorkerTypeId","Symbol","for","PlatformWorker","Tag","WorkerManagerTypeId","WorkerManager","makeManager","gen","_","platform","idCounter","of","spawn","encode","permits","transfers","requestIdCounter","readyLatch","make","semaphore","makeSemaphore","requestMap","Map","outbound","addFinalizer","backing","zipRight","forEach","values","failCause","empty","discard","sync","clear","handleMessage","msg","suspend","complete","unit","response","get","succeed","length","fail","die","executeAcquire","request","tap","all","deferred","set","executeRelease","exit","release","delete","isInterrupted","send","execute","flatMap","acquireRelease","loop","match","onFailure","cause","isEmpty","onSuccess","value","write","fromChannel","executeEffect","acquireUseRelease","flatten","handleMessages","forever","interruptible","forkScoped","postMessages","result","transferables","payload","await","ensuring","fork","join","joinAll","fiber","parallelFinalizers","layerManager","effect","makePool","options","manager","workers","Set","acquire","worker","add","onCreate","makeWithTTL","min","minSize","max","maxSize","timeToLive","size","pool","broadcast","message","concurrency","unwrap","scoped","makePoolLayer","managerLayer","tag","provide"],"sources":["../../../src/internal/worker.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"author": "Effect contributors",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"find-my-way": "^7.7.0",
|
|
14
|
+
"multipasta": "^0.1.11",
|
|
14
15
|
"path-browserify": "^1.0.1"
|
|
15
16
|
},
|
|
16
17
|
"peerDependencies": {
|
package/src/Http/FormData.ts
CHANGED
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type * as ParseResult from "@effect/schema/ParseResult"
|
|
5
5
|
import type * as Schema from "@effect/schema/Schema"
|
|
6
|
+
import type * as Channel from "effect/Channel"
|
|
6
7
|
import type * as Chunk from "effect/Chunk"
|
|
7
8
|
import type * as Data from "effect/Data"
|
|
8
9
|
import type * as Effect from "effect/Effect"
|
|
9
10
|
import type * as FiberRef from "effect/FiberRef"
|
|
10
11
|
import type * as Option from "effect/Option"
|
|
12
|
+
import type * as Scope from "effect/Scope"
|
|
11
13
|
import type * as Stream from "effect/Stream"
|
|
14
|
+
import type * as Multipasta from "multipasta"
|
|
12
15
|
import type * as FileSystem from "../FileSystem.js"
|
|
13
16
|
import * as internal from "../internal/http/formData.js"
|
|
17
|
+
import type * as Path from "../Path.js"
|
|
14
18
|
|
|
15
19
|
/**
|
|
16
20
|
* @since 1.0.0
|
|
@@ -67,6 +71,26 @@ export interface File extends Part.Proto {
|
|
|
67
71
|
readonly content: Stream.Stream<never, FormDataError, Uint8Array>
|
|
68
72
|
}
|
|
69
73
|
|
|
74
|
+
/**
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @category models
|
|
77
|
+
*/
|
|
78
|
+
export interface PersistedFile extends Part.Proto {
|
|
79
|
+
readonly _tag: "PersistedFile"
|
|
80
|
+
readonly key: string
|
|
81
|
+
readonly name: string
|
|
82
|
+
readonly contentType: string
|
|
83
|
+
readonly path: string
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @since 1.0.0
|
|
88
|
+
* @category models
|
|
89
|
+
*/
|
|
90
|
+
export interface PersistedFormData {
|
|
91
|
+
readonly [key: string]: ReadonlyArray<PersistedFile> | string
|
|
92
|
+
}
|
|
93
|
+
|
|
70
94
|
/**
|
|
71
95
|
* @since 1.0.0
|
|
72
96
|
* @category type ids
|
|
@@ -86,7 +110,7 @@ export type ErrorTypeId = typeof ErrorTypeId
|
|
|
86
110
|
export interface FormDataError extends Data.Case {
|
|
87
111
|
readonly [ErrorTypeId]: ErrorTypeId
|
|
88
112
|
readonly _tag: "FormDataError"
|
|
89
|
-
readonly reason: "FileTooLarge" | "FieldTooLarge" | "InternalError" | "Parse"
|
|
113
|
+
readonly reason: "FileTooLarge" | "FieldTooLarge" | "BodyTooLarge" | "TooManyParts" | "InternalError" | "Parse"
|
|
90
114
|
readonly error: unknown
|
|
91
115
|
}
|
|
92
116
|
|
|
@@ -101,33 +125,24 @@ export const FormDataError: (
|
|
|
101
125
|
|
|
102
126
|
/**
|
|
103
127
|
* @since 1.0.0
|
|
104
|
-
* @category
|
|
105
|
-
*/
|
|
106
|
-
export const maxParts: FiberRef.FiberRef<Option.Option<number>> = internal.maxParts
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* @since 1.0.0
|
|
110
|
-
* @category fiber refs
|
|
128
|
+
* @category refinements
|
|
111
129
|
*/
|
|
112
|
-
export const
|
|
113
|
-
(count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
|
|
114
|
-
<R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
|
|
115
|
-
} = internal.withMaxParts
|
|
130
|
+
export const isField: (u: unknown) => u is Field = internal.isField
|
|
116
131
|
|
|
117
132
|
/**
|
|
118
133
|
* @since 1.0.0
|
|
119
134
|
* @category fiber refs
|
|
120
135
|
*/
|
|
121
|
-
export const
|
|
136
|
+
export const maxParts: FiberRef.FiberRef<Option.Option<number>> = internal.maxParts
|
|
122
137
|
|
|
123
138
|
/**
|
|
124
139
|
* @since 1.0.0
|
|
125
140
|
* @category fiber refs
|
|
126
141
|
*/
|
|
127
|
-
export const
|
|
142
|
+
export const withMaxParts: {
|
|
128
143
|
(count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
|
|
129
144
|
<R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
|
|
130
|
-
} = internal.
|
|
145
|
+
} = internal.withMaxParts
|
|
131
146
|
|
|
132
147
|
/**
|
|
133
148
|
* @since 1.0.0
|
|
@@ -144,21 +159,6 @@ export const withMaxFieldSize: {
|
|
|
144
159
|
<R, E, A>(effect: Effect.Effect<R, E, A>, size: FileSystem.SizeInput): Effect.Effect<R, E, A>
|
|
145
160
|
} = internal.withMaxFieldSize
|
|
146
161
|
|
|
147
|
-
/**
|
|
148
|
-
* @since 1.0.0
|
|
149
|
-
* @category fiber refs
|
|
150
|
-
*/
|
|
151
|
-
export const maxFiles: FiberRef.FiberRef<Option.Option<number>> = internal.maxFiles
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* @since 1.0.0
|
|
155
|
-
* @category fiber refs
|
|
156
|
-
*/
|
|
157
|
-
export const withMaxFiles: {
|
|
158
|
-
(count: Option.Option<number>): <R, E, A>(effect: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A>
|
|
159
|
-
<R, E, A>(effect: Effect.Effect<R, E, A>, count: Option.Option<number>): Effect.Effect<R, E, A>
|
|
160
|
-
} = internal.withMaxFiles
|
|
161
|
-
|
|
162
162
|
/**
|
|
163
163
|
* @since 1.0.0
|
|
164
164
|
* @category fiber refs
|
|
@@ -189,17 +189,11 @@ export const withFieldMimeTypes: {
|
|
|
189
189
|
<R, E, A>(effect: Effect.Effect<R, E, A>, mimeTypes: ReadonlyArray<string>): Effect.Effect<R, E, A>
|
|
190
190
|
} = internal.withFieldMimeTypes
|
|
191
191
|
|
|
192
|
-
/**
|
|
193
|
-
* @since 1.0.0
|
|
194
|
-
* @category conversions
|
|
195
|
-
*/
|
|
196
|
-
export const toRecord: (formData: FormData) => Record<string, string | Array<globalThis.File>> = internal.toRecord
|
|
197
|
-
|
|
198
192
|
/**
|
|
199
193
|
* @since 1.0.0
|
|
200
194
|
* @category schema
|
|
201
195
|
*/
|
|
202
|
-
export const filesSchema: Schema.Schema<ReadonlyArray<
|
|
196
|
+
export const filesSchema: Schema.Schema<ReadonlyArray<PersistedFile>, ReadonlyArray<PersistedFile>> =
|
|
203
197
|
internal.filesSchema
|
|
204
198
|
|
|
205
199
|
/**
|
|
@@ -209,14 +203,41 @@ export const filesSchema: Schema.Schema<ReadonlyArray<globalThis.File>, Readonly
|
|
|
209
203
|
export const schemaJson: <I, A>(
|
|
210
204
|
schema: Schema.Schema<I, A>
|
|
211
205
|
) => {
|
|
212
|
-
(field: string): (formData:
|
|
213
|
-
(formData:
|
|
206
|
+
(field: string): (formData: PersistedFormData) => Effect.Effect<never, FormDataError | ParseResult.ParseError, A>
|
|
207
|
+
(formData: PersistedFormData, field: string): Effect.Effect<never, FormDataError | ParseResult.ParseError, A>
|
|
214
208
|
} = internal.schemaJson
|
|
215
209
|
|
|
216
210
|
/**
|
|
217
211
|
* @since 1.0.0
|
|
218
212
|
* @category schema
|
|
219
213
|
*/
|
|
220
|
-
export const
|
|
214
|
+
export const schemaPersisted: <I extends PersistedFormData, A>(
|
|
221
215
|
schema: Schema.Schema<I, A>
|
|
222
|
-
) => (formData:
|
|
216
|
+
) => (formData: PersistedFormData) => Effect.Effect<never, ParseResult.ParseError, A> = internal.schemaPersisted
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* @since 1.0.0
|
|
220
|
+
* @category constructors
|
|
221
|
+
*/
|
|
222
|
+
export const makeChannel: <IE>(
|
|
223
|
+
headers: Record<string, string>,
|
|
224
|
+
bufferSize?: number
|
|
225
|
+
) => Channel.Channel<never, IE, Chunk.Chunk<Uint8Array>, unknown, FormDataError | IE, Chunk.Chunk<Part>, unknown> =
|
|
226
|
+
internal.makeChannel
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* @since 1.0.0
|
|
230
|
+
* @category constructors
|
|
231
|
+
*/
|
|
232
|
+
export const makeConfig: (headers: Record<string, string>) => Effect.Effect<never, never, Multipasta.BaseConfig> =
|
|
233
|
+
internal.makeConfig
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* @since 1.0.0
|
|
237
|
+
* @category constructors
|
|
238
|
+
*/
|
|
239
|
+
export const formData: (
|
|
240
|
+
stream: Stream.Stream<never, FormDataError, Part>,
|
|
241
|
+
writeFile?: (path: string, file: File) => Effect.Effect<FileSystem.FileSystem, FormDataError, void>
|
|
242
|
+
) => Effect.Effect<FileSystem.FileSystem | Path.Path | Scope.Scope, FormDataError, PersistedFormData> =
|
|
243
|
+
internal.formData
|
|
@@ -46,7 +46,11 @@ export interface ServerRequest extends IncomingMessage.IncomingMessage<Error.Req
|
|
|
46
46
|
readonly originalUrl: string
|
|
47
47
|
readonly method: Method
|
|
48
48
|
|
|
49
|
-
readonly formData: Effect.Effect<
|
|
49
|
+
readonly formData: Effect.Effect<
|
|
50
|
+
Scope.Scope | FileSystem.FileSystem | Path.Path,
|
|
51
|
+
FormData.FormDataError,
|
|
52
|
+
FormData.PersistedFormData
|
|
53
|
+
>
|
|
50
54
|
readonly formDataStream: Stream.Stream<never, FormData.FormDataError, FormData.Part>
|
|
51
55
|
|
|
52
56
|
readonly modify: (
|
|
@@ -68,11 +72,11 @@ export const ServerRequest: Context.Tag<ServerRequest, ServerRequest> = internal
|
|
|
68
72
|
* @since 1.0.0
|
|
69
73
|
* @category accessors
|
|
70
74
|
*/
|
|
71
|
-
export const
|
|
75
|
+
export const persistedFormData: Effect.Effect<
|
|
72
76
|
Scope.Scope | FileSystem.FileSystem | Path.Path | ServerRequest,
|
|
73
77
|
FormData.FormDataError,
|
|
74
|
-
|
|
75
|
-
> = internal.
|
|
78
|
+
unknown
|
|
79
|
+
> = internal.persistedFormData
|
|
76
80
|
|
|
77
81
|
/**
|
|
78
82
|
* @since 1.0.0
|
|
@@ -102,7 +106,7 @@ export const schemaBodyUrlParams: <I extends Readonly<Record<string, string>>, A
|
|
|
102
106
|
* @since 1.0.0
|
|
103
107
|
* @category schema
|
|
104
108
|
*/
|
|
105
|
-
export const schemaFormData: <I extends
|
|
109
|
+
export const schemaFormData: <I extends FormData.PersistedFormData, A>(
|
|
106
110
|
schema: Schema.Schema<I, A>
|
|
107
111
|
) => Effect.Effect<
|
|
108
112
|
ServerRequest | Scope.Scope | FileSystem.FileSystem | Path.Path,
|