@effect/platform 0.85.2 → 0.87.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/HttpApiBuilder.js +15 -5
- package/dist/cjs/HttpApiBuilder.js.map +1 -1
- package/dist/cjs/HttpApiClient.js +17 -8
- package/dist/cjs/HttpApiClient.js.map +1 -1
- package/dist/cjs/HttpApiSchema.js +6 -6
- package/dist/cjs/HttpApiSchema.js.map +1 -1
- package/dist/cjs/HttpIncomingMessage.js +7 -5
- package/dist/cjs/HttpIncomingMessage.js.map +1 -1
- package/dist/cjs/HttpServerRequest.js +10 -4
- package/dist/cjs/HttpServerRequest.js.map +1 -1
- package/dist/cjs/Multipart.js +400 -47
- package/dist/cjs/Multipart.js.map +1 -1
- package/dist/dts/HttpApiBuilder.d.ts.map +1 -1
- package/dist/dts/HttpApiClient.d.ts +28 -15
- package/dist/dts/HttpApiClient.d.ts.map +1 -1
- package/dist/dts/HttpApiSchema.d.ts +19 -4
- package/dist/dts/HttpApiSchema.d.ts.map +1 -1
- package/dist/dts/HttpIncomingMessage.d.ts +5 -2
- package/dist/dts/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/dts/HttpServerRequest.d.ts +6 -1
- package/dist/dts/HttpServerRequest.d.ts.map +1 -1
- package/dist/dts/Multipart.d.ts +167 -88
- package/dist/dts/Multipart.d.ts.map +1 -1
- package/dist/esm/HttpApiBuilder.js +15 -5
- package/dist/esm/HttpApiBuilder.js.map +1 -1
- package/dist/esm/HttpApiClient.js +14 -6
- package/dist/esm/HttpApiClient.js.map +1 -1
- package/dist/esm/HttpApiSchema.js +6 -6
- package/dist/esm/HttpApiSchema.js.map +1 -1
- package/dist/esm/HttpIncomingMessage.js +5 -4
- package/dist/esm/HttpIncomingMessage.js.map +1 -1
- package/dist/esm/HttpServerRequest.js +6 -1
- package/dist/esm/HttpServerRequest.js.map +1 -1
- package/dist/esm/Multipart.js +385 -46
- package/dist/esm/Multipart.js.map +1 -1
- package/package.json +2 -2
- package/src/HttpApiBuilder.ts +16 -5
- package/src/HttpApiClient.ts +63 -32
- package/src/HttpApiSchema.ts +23 -7
- package/src/HttpIncomingMessage.ts +5 -7
- package/src/HttpServerRequest.ts +6 -1
- package/src/Multipart.ts +632 -128
- package/dist/cjs/internal/multipart.js +0 -364
- package/dist/cjs/internal/multipart.js.map +0 -1
- package/dist/dts/internal/multipart.d.ts +0 -2
- package/dist/dts/internal/multipart.d.ts.map +0 -1
- package/dist/esm/internal/multipart.js +0 -347
- package/dist/esm/internal/multipart.js.map +0 -1
- package/src/internal/multipart.ts +0 -491
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import * as Channel from "effect/Channel";
|
|
2
|
-
import * as Chunk from "effect/Chunk";
|
|
3
|
-
import * as Effect from "effect/Effect";
|
|
4
|
-
import * as Exit from "effect/Exit";
|
|
5
|
-
import * as FiberRef from "effect/FiberRef";
|
|
6
|
-
import { dual } from "effect/Function";
|
|
7
|
-
import { globalValue } from "effect/GlobalValue";
|
|
8
|
-
import * as Inspectable from "effect/Inspectable";
|
|
9
|
-
import * as Mailbox from "effect/Mailbox";
|
|
10
|
-
import * as Option from "effect/Option";
|
|
11
|
-
import * as Predicate from "effect/Predicate";
|
|
12
|
-
import * as Schema from "effect/Schema";
|
|
13
|
-
import * as Stream from "effect/Stream";
|
|
14
|
-
import * as MP from "multipasta";
|
|
15
|
-
import { TypeIdError } from "../Error.js";
|
|
16
|
-
import * as FileSystem from "../FileSystem.js";
|
|
17
|
-
import * as IncomingMessage from "../HttpIncomingMessage.js";
|
|
18
|
-
import * as Path from "../Path.js";
|
|
19
|
-
/** @internal */
|
|
20
|
-
export const TypeId = /*#__PURE__*/Symbol.for("@effect/platform/Multipart");
|
|
21
|
-
/** @internal */
|
|
22
|
-
export const isPart = u => Predicate.hasProperty(u, TypeId);
|
|
23
|
-
/** @internal */
|
|
24
|
-
export const isField = u => isPart(u) && u._tag === "Field";
|
|
25
|
-
/** @internal */
|
|
26
|
-
export const isFile = u => isPart(u) && u._tag === "File";
|
|
27
|
-
/** @internal */
|
|
28
|
-
export const isPersistedFile = u => Predicate.hasProperty(u, TypeId) && Predicate.isTagged(u, "PersistedFile");
|
|
29
|
-
/** @internal */
|
|
30
|
-
export const ErrorTypeId = /*#__PURE__*/Symbol.for("@effect/platform/Multipart/MultipartError");
|
|
31
|
-
/** @internal */
|
|
32
|
-
export class MultipartError extends /*#__PURE__*/TypeIdError(ErrorTypeId, "MultipartError") {
|
|
33
|
-
get message() {
|
|
34
|
-
return this.reason;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/** @internal */
|
|
38
|
-
export const maxParts = /*#__PURE__*/globalValue("@effect/platform/Multipart/maxParts", () => FiberRef.unsafeMake(Option.none()));
|
|
39
|
-
/** @internal */
|
|
40
|
-
export const withMaxParts = /*#__PURE__*/dual(2, (effect, count) => Effect.locally(effect, maxParts, count));
|
|
41
|
-
/** @internal */
|
|
42
|
-
export const maxFieldSize = /*#__PURE__*/globalValue("@effect/platform/Multipart/maxFieldSize", () => FiberRef.unsafeMake(FileSystem.Size(10 * 1024 * 1024)));
|
|
43
|
-
/** @internal */
|
|
44
|
-
export const withMaxFieldSize = /*#__PURE__*/dual(2, (effect, size) => Effect.locally(effect, maxFieldSize, FileSystem.Size(size)));
|
|
45
|
-
/** @internal */
|
|
46
|
-
export const maxFileSize = /*#__PURE__*/globalValue("@effect/platform/Multipart/maxFileSize", () => FiberRef.unsafeMake(Option.none()));
|
|
47
|
-
/** @internal */
|
|
48
|
-
export const withMaxFileSize = /*#__PURE__*/dual(2, (effect, size) => Effect.locally(effect, maxFileSize, Option.map(size, FileSystem.Size)));
|
|
49
|
-
/** @internal */
|
|
50
|
-
export const fieldMimeTypes = /*#__PURE__*/globalValue("@effect/platform/Multipart/fieldMimeTypes", () => FiberRef.unsafeMake(Chunk.make("application/json")));
|
|
51
|
-
/** @internal */
|
|
52
|
-
export const withFieldMimeTypes = /*#__PURE__*/dual(2, (effect, mimeTypes) => Effect.locally(effect, fieldMimeTypes, Chunk.fromIterable(mimeTypes)));
|
|
53
|
-
/** @internal */
|
|
54
|
-
export const FileSchema = /*#__PURE__*/Schema.declare(isPersistedFile, {
|
|
55
|
-
identifier: "PersistedFile",
|
|
56
|
-
jsonSchema: {
|
|
57
|
-
type: "string",
|
|
58
|
-
format: "binary"
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
/** @internal */
|
|
62
|
-
export const FilesSchema = /*#__PURE__*/Schema.Array(FileSchema);
|
|
63
|
-
/** @internal */
|
|
64
|
-
export const SingleFileSchema = /*#__PURE__*/Schema.transform(/*#__PURE__*/FilesSchema.pipe(/*#__PURE__*/Schema.itemsCount(1)), FileSchema, {
|
|
65
|
-
strict: true,
|
|
66
|
-
decode: ([file]) => file,
|
|
67
|
-
encode: file => [file]
|
|
68
|
-
});
|
|
69
|
-
/** @internal */
|
|
70
|
-
export const schemaPersisted = (schema, options) => {
|
|
71
|
-
const parse = Schema.decodeUnknown(schema, options);
|
|
72
|
-
return persisted => parse(persisted);
|
|
73
|
-
};
|
|
74
|
-
/** @internal */
|
|
75
|
-
export const schemaJson = (schema, options) => {
|
|
76
|
-
const fromJson = Schema.parseJson(schema);
|
|
77
|
-
return dual(2, (persisted, field) => Effect.map(Schema.decodeUnknown(Schema.Struct({
|
|
78
|
-
[field]: fromJson
|
|
79
|
-
}), options)(persisted), _ => _[field]));
|
|
80
|
-
};
|
|
81
|
-
/** @internal */
|
|
82
|
-
export const makeConfig = headers => Effect.withFiberRuntime(fiber => {
|
|
83
|
-
const mimeTypes = fiber.getFiberRef(fieldMimeTypes);
|
|
84
|
-
return Effect.succeed({
|
|
85
|
-
headers,
|
|
86
|
-
maxParts: Option.getOrUndefined(fiber.getFiberRef(maxParts)),
|
|
87
|
-
maxFieldSize: Number(fiber.getFiberRef(maxFieldSize)),
|
|
88
|
-
maxPartSize: fiber.getFiberRef(maxFileSize).pipe(Option.map(Number), Option.getOrUndefined),
|
|
89
|
-
maxTotalSize: fiber.getFiberRef(IncomingMessage.maxBodySize).pipe(Option.map(Number), Option.getOrUndefined),
|
|
90
|
-
isFile: mimeTypes.length === 0 ? undefined : info => !Chunk.some(mimeTypes, _ => info.contentType.includes(_)) && MP.defaultIsFile(info)
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
/** @internal */
|
|
94
|
-
export const makeChannel = (headers, bufferSize = 16) => Channel.acquireUseRelease(Effect.all([makeConfig(headers), Mailbox.make(bufferSize)]), ([config, mailbox]) => {
|
|
95
|
-
let partsBuffer = [];
|
|
96
|
-
let exit = Option.none();
|
|
97
|
-
const input = {
|
|
98
|
-
awaitRead: () => Effect.void,
|
|
99
|
-
emit(element) {
|
|
100
|
-
return mailbox.offer(element);
|
|
101
|
-
},
|
|
102
|
-
error(cause) {
|
|
103
|
-
exit = Option.some(Exit.failCause(cause));
|
|
104
|
-
return mailbox.end;
|
|
105
|
-
},
|
|
106
|
-
done(_value) {
|
|
107
|
-
return mailbox.end;
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
const parser = MP.make({
|
|
111
|
-
...config,
|
|
112
|
-
onField(info, value) {
|
|
113
|
-
partsBuffer.push(new FieldImpl(info.name, info.contentType, MP.decodeField(info, value)));
|
|
114
|
-
},
|
|
115
|
-
onFile(info) {
|
|
116
|
-
let chunks = [];
|
|
117
|
-
let finished = false;
|
|
118
|
-
const take = Channel.suspend(() => {
|
|
119
|
-
if (chunks.length === 0) {
|
|
120
|
-
return finished ? Channel.void : Channel.zipRight(pump, take);
|
|
121
|
-
}
|
|
122
|
-
const chunk = Chunk.unsafeFromArray(chunks);
|
|
123
|
-
chunks = [];
|
|
124
|
-
return finished ? Channel.write(chunk) : Channel.zipRight(Channel.write(chunk), Channel.zipRight(pump, take));
|
|
125
|
-
});
|
|
126
|
-
partsBuffer.push(new FileImpl(info, take));
|
|
127
|
-
return function (chunk) {
|
|
128
|
-
if (chunk === null) {
|
|
129
|
-
finished = true;
|
|
130
|
-
} else {
|
|
131
|
-
chunks.push(chunk);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
},
|
|
135
|
-
onError(error_) {
|
|
136
|
-
exit = Option.some(Exit.fail(convertError(error_)));
|
|
137
|
-
},
|
|
138
|
-
onDone() {
|
|
139
|
-
exit = Option.some(Exit.void);
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
const pump = Channel.flatMap(mailbox.takeAll, ([chunks, done]) => Channel.sync(() => {
|
|
143
|
-
Chunk.forEach(chunks, Chunk.forEach(parser.write));
|
|
144
|
-
if (done) {
|
|
145
|
-
parser.end();
|
|
146
|
-
}
|
|
147
|
-
}));
|
|
148
|
-
const partsChannel = Channel.flatMap(pump, () => {
|
|
149
|
-
if (partsBuffer.length === 0) {
|
|
150
|
-
return exit._tag === "None" ? partsChannel : writeExit(exit.value);
|
|
151
|
-
}
|
|
152
|
-
const chunk = Chunk.unsafeFromArray(partsBuffer);
|
|
153
|
-
partsBuffer = [];
|
|
154
|
-
return Channel.zipRight(Channel.write(chunk), exit._tag === "None" ? partsChannel : writeExit(exit.value));
|
|
155
|
-
});
|
|
156
|
-
return Channel.embedInput(partsChannel, input);
|
|
157
|
-
}, ([, mailbox]) => mailbox.shutdown);
|
|
158
|
-
const writeExit = self => self._tag === "Success" ? Channel.void : Channel.failCause(self.cause);
|
|
159
|
-
function convertError(cause) {
|
|
160
|
-
switch (cause._tag) {
|
|
161
|
-
case "ReachedLimit":
|
|
162
|
-
{
|
|
163
|
-
switch (cause.limit) {
|
|
164
|
-
case "MaxParts":
|
|
165
|
-
{
|
|
166
|
-
return new MultipartError({
|
|
167
|
-
reason: "TooManyParts",
|
|
168
|
-
cause
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
case "MaxFieldSize":
|
|
172
|
-
{
|
|
173
|
-
return new MultipartError({
|
|
174
|
-
reason: "FieldTooLarge",
|
|
175
|
-
cause
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
case "MaxPartSize":
|
|
179
|
-
{
|
|
180
|
-
return new MultipartError({
|
|
181
|
-
reason: "FileTooLarge",
|
|
182
|
-
cause
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
case "MaxTotalSize":
|
|
186
|
-
{
|
|
187
|
-
return new MultipartError({
|
|
188
|
-
reason: "BodyTooLarge",
|
|
189
|
-
cause
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
default:
|
|
195
|
-
{
|
|
196
|
-
return new MultipartError({
|
|
197
|
-
reason: "Parse",
|
|
198
|
-
cause
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
class PartBase extends Inspectable.Class {
|
|
204
|
-
[TypeId];
|
|
205
|
-
constructor() {
|
|
206
|
-
super();
|
|
207
|
-
this[TypeId] = TypeId;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
class FieldImpl extends PartBase {
|
|
211
|
-
key;
|
|
212
|
-
contentType;
|
|
213
|
-
value;
|
|
214
|
-
_tag = "Field";
|
|
215
|
-
constructor(key, contentType, value) {
|
|
216
|
-
super();
|
|
217
|
-
this.key = key;
|
|
218
|
-
this.contentType = contentType;
|
|
219
|
-
this.value = value;
|
|
220
|
-
}
|
|
221
|
-
toJSON() {
|
|
222
|
-
return {
|
|
223
|
-
_id: "@effect/platform/Multipart/Part",
|
|
224
|
-
_tag: "Field",
|
|
225
|
-
key: this.key,
|
|
226
|
-
contentType: this.contentType,
|
|
227
|
-
value: this.value
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
class FileImpl extends PartBase {
|
|
232
|
-
_tag = "File";
|
|
233
|
-
key;
|
|
234
|
-
name;
|
|
235
|
-
contentType;
|
|
236
|
-
content;
|
|
237
|
-
contentEffect;
|
|
238
|
-
constructor(info, channel) {
|
|
239
|
-
super();
|
|
240
|
-
this.key = info.name;
|
|
241
|
-
this.name = info.filename ?? info.name;
|
|
242
|
-
this.contentType = info.contentType;
|
|
243
|
-
this.content = Stream.fromChannel(channel);
|
|
244
|
-
this.contentEffect = channel.pipe(Channel.pipeTo(collectUint8Array), Channel.run, Effect.mapError(cause => new MultipartError({
|
|
245
|
-
reason: "InternalError",
|
|
246
|
-
cause
|
|
247
|
-
})));
|
|
248
|
-
}
|
|
249
|
-
toJSON() {
|
|
250
|
-
return {
|
|
251
|
-
_id: "@effect/platform/Multipart/Part",
|
|
252
|
-
_tag: "File",
|
|
253
|
-
key: this.key,
|
|
254
|
-
name: this.name,
|
|
255
|
-
contentType: this.contentType
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
const defaultWriteFile = (path, file) => Effect.flatMap(FileSystem.FileSystem, fs => Effect.mapError(Stream.run(file.content, fs.sink(path)), cause => new MultipartError({
|
|
260
|
-
reason: "InternalError",
|
|
261
|
-
cause
|
|
262
|
-
})));
|
|
263
|
-
/** @internal */
|
|
264
|
-
export const collectUint8Array = /*#__PURE__*/Channel.suspend(() => {
|
|
265
|
-
let accumulator = new Uint8Array(0);
|
|
266
|
-
const loop = Channel.readWithCause({
|
|
267
|
-
onInput(chunk) {
|
|
268
|
-
for (const element of chunk) {
|
|
269
|
-
const newAccumulator = new Uint8Array(accumulator.length + element.length);
|
|
270
|
-
newAccumulator.set(accumulator, 0);
|
|
271
|
-
newAccumulator.set(element, accumulator.length);
|
|
272
|
-
accumulator = newAccumulator;
|
|
273
|
-
}
|
|
274
|
-
return loop;
|
|
275
|
-
},
|
|
276
|
-
onFailure: cause => Channel.failCause(cause),
|
|
277
|
-
onDone: () => Channel.succeed(accumulator)
|
|
278
|
-
});
|
|
279
|
-
return loop;
|
|
280
|
-
});
|
|
281
|
-
/** @internal */
|
|
282
|
-
export const toPersisted = (stream, writeFile = defaultWriteFile) => Effect.gen(function* () {
|
|
283
|
-
const fs = yield* FileSystem.FileSystem;
|
|
284
|
-
const path_ = yield* Path.Path;
|
|
285
|
-
const dir = yield* fs.makeTempDirectoryScoped();
|
|
286
|
-
const persisted = Object.create(null);
|
|
287
|
-
yield* Stream.runForEach(stream, part => {
|
|
288
|
-
if (part._tag === "Field") {
|
|
289
|
-
if (!(part.key in persisted)) {
|
|
290
|
-
persisted[part.key] = part.value;
|
|
291
|
-
} else if (typeof persisted[part.key] === "string") {
|
|
292
|
-
persisted[part.key] = [persisted[part.key], part.value];
|
|
293
|
-
} else {
|
|
294
|
-
;
|
|
295
|
-
persisted[part.key].push(part.value);
|
|
296
|
-
}
|
|
297
|
-
return Effect.void;
|
|
298
|
-
} else if (part.name === "") {
|
|
299
|
-
return Effect.void;
|
|
300
|
-
}
|
|
301
|
-
const file = part;
|
|
302
|
-
const path = path_.join(dir, path_.basename(file.name).slice(-128));
|
|
303
|
-
const filePart = new PersistedFileImpl(file.key, file.name, file.contentType, path);
|
|
304
|
-
if (Array.isArray(persisted[part.key])) {
|
|
305
|
-
;
|
|
306
|
-
persisted[part.key].push(filePart);
|
|
307
|
-
} else {
|
|
308
|
-
persisted[part.key] = [filePart];
|
|
309
|
-
}
|
|
310
|
-
return writeFile(path, file);
|
|
311
|
-
});
|
|
312
|
-
return persisted;
|
|
313
|
-
}).pipe(Effect.catchTags({
|
|
314
|
-
SystemError: cause => Effect.fail(new MultipartError({
|
|
315
|
-
reason: "InternalError",
|
|
316
|
-
cause
|
|
317
|
-
})),
|
|
318
|
-
BadArgument: cause => Effect.fail(new MultipartError({
|
|
319
|
-
reason: "InternalError",
|
|
320
|
-
cause
|
|
321
|
-
}))
|
|
322
|
-
}));
|
|
323
|
-
class PersistedFileImpl extends PartBase {
|
|
324
|
-
key;
|
|
325
|
-
name;
|
|
326
|
-
contentType;
|
|
327
|
-
path;
|
|
328
|
-
_tag = "PersistedFile";
|
|
329
|
-
constructor(key, name, contentType, path) {
|
|
330
|
-
super();
|
|
331
|
-
this.key = key;
|
|
332
|
-
this.name = name;
|
|
333
|
-
this.contentType = contentType;
|
|
334
|
-
this.path = path;
|
|
335
|
-
}
|
|
336
|
-
toJSON() {
|
|
337
|
-
return {
|
|
338
|
-
_id: "@effect/platform/Multipart/Part",
|
|
339
|
-
_tag: "PersistedFile",
|
|
340
|
-
key: this.key,
|
|
341
|
-
name: this.name,
|
|
342
|
-
contentType: this.contentType,
|
|
343
|
-
path: this.path
|
|
344
|
-
};
|
|
345
|
-
}
|
|
346
|
-
}
|
|
347
|
-
//# sourceMappingURL=multipart.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"multipart.js","names":["Channel","Chunk","Effect","Exit","FiberRef","dual","globalValue","Inspectable","Mailbox","Option","Predicate","Schema","Stream","MP","TypeIdError","FileSystem","IncomingMessage","Path","TypeId","Symbol","for","isPart","u","hasProperty","isField","_tag","isFile","isPersistedFile","isTagged","ErrorTypeId","MultipartError","message","reason","maxParts","unsafeMake","none","withMaxParts","effect","count","locally","maxFieldSize","Size","withMaxFieldSize","size","maxFileSize","withMaxFileSize","map","fieldMimeTypes","make","withFieldMimeTypes","mimeTypes","fromIterable","FileSchema","declare","identifier","jsonSchema","type","format","FilesSchema","Array","SingleFileSchema","transform","pipe","itemsCount","strict","decode","file","encode","schemaPersisted","schema","options","parse","decodeUnknown","persisted","schemaJson","fromJson","parseJson","field","Struct","_","makeConfig","headers","withFiberRuntime","fiber","getFiberRef","succeed","getOrUndefined","Number","maxPartSize","maxTotalSize","maxBodySize","length","undefined","info","some","contentType","includes","defaultIsFile","makeChannel","bufferSize","acquireUseRelease","all","config","mailbox","partsBuffer","exit","input","awaitRead","void","emit","element","offer","error","cause","failCause","end","done","_value","parser","onField","value","push","FieldImpl","name","decodeField","onFile","chunks","finished","take","suspend","zipRight","pump","chunk","unsafeFromArray","write","FileImpl","onError","error_","fail","convertError","onDone","flatMap","takeAll","sync","forEach","partsChannel","writeExit","embedInput","shutdown","self","limit","PartBase","Class","constructor","key","toJSON","_id","content","contentEffect","channel","filename","fromChannel","pipeTo","collectUint8Array","run","mapError","defaultWriteFile","path","fs","sink","accumulator","Uint8Array","loop","readWithCause","onInput","newAccumulator","set","onFailure","toPersisted","stream","writeFile","gen","path_","dir","makeTempDirectoryScoped","Object","create","runForEach","part","join","basename","slice","filePart","PersistedFileImpl","isArray","catchTags","SystemError","BadArgument"],"sources":["../../../src/internal/multipart.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|