@trpc/server 10.41.0 → 10.43.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.
Files changed (35) hide show
  1. package/dist/adapters/fastify/index.js +1 -0
  2. package/dist/adapters/fastify/index.mjs +1 -0
  3. package/dist/adapters/node-http/content-type/form-data/index.d.ts +8 -4
  4. package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +1 -1
  5. package/dist/adapters/node-http/content-type/form-data/index.js +127 -66
  6. package/dist/adapters/node-http/content-type/form-data/index.mjs +103 -63
  7. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +1 -1
  8. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +5 -1
  9. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +1 -1
  10. package/dist/adapters/ws.d.ts +0 -3
  11. package/dist/adapters/ws.d.ts.map +1 -1
  12. package/dist/adapters/ws.js +3 -55
  13. package/dist/adapters/ws.mjs +4 -55
  14. package/dist/core/internals/procedureBuilder.d.ts +1 -1
  15. package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
  16. package/dist/core/middleware.d.ts +3 -3
  17. package/dist/core/middleware.d.ts.map +1 -1
  18. package/dist/parseTRPCMessage-1377f305.js +56 -0
  19. package/dist/parseTRPCMessage-95955211.js +63 -0
  20. package/dist/parseTRPCMessage-a0f17853.mjs +54 -0
  21. package/dist/rpc/index.d.ts +1 -0
  22. package/dist/rpc/index.d.ts.map +1 -1
  23. package/dist/rpc/index.js +2 -0
  24. package/dist/rpc/index.mjs +1 -0
  25. package/dist/rpc/parseTRPCMessage.d.ts +5 -0
  26. package/dist/rpc/parseTRPCMessage.d.ts.map +1 -0
  27. package/package.json +2 -2
  28. package/src/adapters/node-http/content-type/form-data/index.ts +71 -16
  29. package/src/adapters/node-http/content-type/form-data/memoryUploadHandler.ts +1 -5
  30. package/src/adapters/node-http/content-type/form-data/uploadHandler.ts +9 -7
  31. package/src/adapters/ws.ts +3 -79
  32. package/src/core/internals/procedureBuilder.ts +3 -1
  33. package/src/core/middleware.ts +7 -2
  34. package/src/rpc/index.ts +1 -0
  35. package/src/rpc/parseTRPCMessage.ts +84 -0
@@ -5,62 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var config = require('../config-3ab6b85e.js');
6
6
  var TRPCError = require('../TRPCError-ae7b67e8.js');
7
7
  var observable = require('../observable-464116ac.js');
8
+ require('../codes-87f6824b.js');
9
+ var parseTRPCMessage = require('../parseTRPCMessage-1377f305.js');
8
10
  var transformTRPCResponse = require('../transformTRPCResponse-e65f34e9.js');
9
11
  require('../index-784ff647.js');
10
- require('../codes-87f6824b.js');
11
12
 
12
- /* istanbul ignore next -- @preserve */ function assertIsObject(obj) {
13
- if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
14
- throw new Error('Not an object');
15
- }
16
- }
17
- /* istanbul ignore next -- @preserve */ function assertIsProcedureType(obj) {
18
- if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
19
- throw new Error('Invalid procedure type');
20
- }
21
- }
22
- /* istanbul ignore next -- @preserve */ function assertIsRequestId(obj) {
23
- if (obj !== null && typeof obj === 'number' && isNaN(obj) && typeof obj !== 'string') {
24
- throw new Error('Invalid request id');
25
- }
26
- }
27
- /* istanbul ignore next -- @preserve */ function assertIsString(obj) {
28
- if (typeof obj !== 'string') {
29
- throw new Error('Invalid string');
30
- }
31
- }
32
- /* istanbul ignore next -- @preserve */ function assertIsJSONRPC2OrUndefined(obj) {
33
- if (typeof obj !== 'undefined' && obj !== '2.0') {
34
- throw new Error('Must be JSONRPC 2.0');
35
- }
36
- }
37
- function parseMessage(obj, transformer) {
38
- assertIsObject(obj);
39
- const { method , params , id , jsonrpc } = obj;
40
- assertIsRequestId(id);
41
- assertIsJSONRPC2OrUndefined(jsonrpc);
42
- if (method === 'subscription.stop') {
43
- return {
44
- id,
45
- jsonrpc,
46
- method
47
- };
48
- }
49
- assertIsProcedureType(method);
50
- assertIsObject(params);
51
- const { input: rawInput , path } = params;
52
- assertIsString(path);
53
- const input = transformer.input.deserialize(rawInput);
54
- return {
55
- id,
56
- jsonrpc,
57
- method,
58
- params: {
59
- input,
60
- path
61
- }
62
- };
63
- }
64
13
  function applyWSSHandler(opts) {
65
14
  const { wss , createContext , router } = opts;
66
15
  const { transformer } = router._def._config;
@@ -235,7 +184,7 @@ function applyWSSHandler(opts) {
235
184
  const msgs = Array.isArray(msgJSON) ? msgJSON : [
236
185
  msgJSON
237
186
  ];
238
- const promises = msgs.map((raw)=>parseMessage(raw, transformer)).map(handleRequest);
187
+ const promises = msgs.map((raw)=>parseTRPCMessage.parseTRPCMessage(raw, transformer)).map(handleRequest);
239
188
  await Promise.all(promises);
240
189
  } catch (cause) {
241
190
  const error = new TRPCError.TRPCError({
@@ -324,4 +273,3 @@ function applyWSSHandler(opts) {
324
273
  }
325
274
 
326
275
  exports.applyWSSHandler = applyWSSHandler;
327
- exports.parseMessage = parseMessage;
@@ -1,62 +1,11 @@
1
1
  import { b as callProcedure } from '../config-4c0f8e88.mjs';
2
2
  import { T as TRPCError, g as getTRPCErrorFromUnknown } from '../TRPCError-816ff32e.mjs';
3
3
  import { i as isObservable } from '../observable-ade1bad8.mjs';
4
+ import '../codes-c924c3db.mjs';
5
+ import { p as parseTRPCMessage } from '../parseTRPCMessage-a0f17853.mjs';
4
6
  import { g as getErrorShape, t as transformTRPCResponse } from '../transformTRPCResponse-1153b421.mjs';
5
7
  import '../index-f91d720c.mjs';
6
- import '../codes-c924c3db.mjs';
7
8
 
8
- /* istanbul ignore next -- @preserve */ function assertIsObject(obj) {
9
- if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
10
- throw new Error('Not an object');
11
- }
12
- }
13
- /* istanbul ignore next -- @preserve */ function assertIsProcedureType(obj) {
14
- if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
15
- throw new Error('Invalid procedure type');
16
- }
17
- }
18
- /* istanbul ignore next -- @preserve */ function assertIsRequestId(obj) {
19
- if (obj !== null && typeof obj === 'number' && isNaN(obj) && typeof obj !== 'string') {
20
- throw new Error('Invalid request id');
21
- }
22
- }
23
- /* istanbul ignore next -- @preserve */ function assertIsString(obj) {
24
- if (typeof obj !== 'string') {
25
- throw new Error('Invalid string');
26
- }
27
- }
28
- /* istanbul ignore next -- @preserve */ function assertIsJSONRPC2OrUndefined(obj) {
29
- if (typeof obj !== 'undefined' && obj !== '2.0') {
30
- throw new Error('Must be JSONRPC 2.0');
31
- }
32
- }
33
- function parseMessage(obj, transformer) {
34
- assertIsObject(obj);
35
- const { method , params , id , jsonrpc } = obj;
36
- assertIsRequestId(id);
37
- assertIsJSONRPC2OrUndefined(jsonrpc);
38
- if (method === 'subscription.stop') {
39
- return {
40
- id,
41
- jsonrpc,
42
- method
43
- };
44
- }
45
- assertIsProcedureType(method);
46
- assertIsObject(params);
47
- const { input: rawInput , path } = params;
48
- assertIsString(path);
49
- const input = transformer.input.deserialize(rawInput);
50
- return {
51
- id,
52
- jsonrpc,
53
- method,
54
- params: {
55
- input,
56
- path
57
- }
58
- };
59
- }
60
9
  function applyWSSHandler(opts) {
61
10
  const { wss , createContext , router } = opts;
62
11
  const { transformer } = router._def._config;
@@ -231,7 +180,7 @@ function applyWSSHandler(opts) {
231
180
  const msgs = Array.isArray(msgJSON) ? msgJSON : [
232
181
  msgJSON
233
182
  ];
234
- const promises = msgs.map((raw)=>parseMessage(raw, transformer)).map(handleRequest);
183
+ const promises = msgs.map((raw)=>parseTRPCMessage(raw, transformer)).map(handleRequest);
235
184
  await Promise.all(promises);
236
185
  } catch (cause) {
237
186
  const error = new TRPCError({
@@ -319,4 +268,4 @@ function applyWSSHandler(opts) {
319
268
  };
320
269
  }
321
270
 
322
- export { applyWSSHandler, parseMessage };
271
+ export { applyWSSHandler };
@@ -10,7 +10,7 @@ type CreateProcedureReturnInput<TPrev extends ProcedureParams, TNext extends Pro
10
10
  _meta: TPrev['_meta'];
11
11
  _ctx_out: Overwrite<TPrev['_ctx_out'], TNext['_ctx_out']>;
12
12
  _input_in: FallbackValue<TNext['_input_in'], TPrev['_input_in']>;
13
- _input_out: FallbackValue<TNext['_input_out'], TPrev['_input_out']>;
13
+ _input_out: UnsetMarker extends TNext['_input_out'] ? TPrev['_input_out'] : Overwrite<TPrev['_input_out'], TNext['_input_out']>;
14
14
  _output_in: FallbackValue<TNext['_output_in'], TPrev['_output_in']>;
15
15
  _output_out: FallbackValue<TNext['_output_out'], TPrev['_output_out']>;
16
16
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../../src/core/internals/procedureBuilder.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Simplify } from '../types';
3
3
  import { AnyRootConfig, RootConfig } from './internals/config';
4
4
  import { ParseFn } from './internals/getParseFn';
5
5
  import { ProcedureBuilderMiddleware } from './internals/procedureBuilder';
6
- import { DefaultValue as FallbackValue, MiddlewareMarker, Overwrite } from './internals/utils';
6
+ import { DefaultValue as FallbackValue, MiddlewareMarker, Overwrite, UnsetMarker } from './internals/utils';
7
7
  import { ProcedureParams } from './procedure';
8
8
  import { ProcedureType } from './types';
9
9
  /**
@@ -46,7 +46,7 @@ export interface MiddlewareBuilder<TRoot extends ProcedureParams, TNewParams ext
46
46
  _meta: TRoot['_meta'];
47
47
  _ctx_out: Overwrite<TRoot['_ctx_out'], TNewParams['_ctx_out']>;
48
48
  _input_in: FallbackValue<TRoot['_input_in'], TNewParams['_input_in']>;
49
- _input_out: FallbackValue<TRoot['_input_out'], TNewParams['_input_out']>;
49
+ _input_out: UnsetMarker extends TNewParams['_input_out'] ? TRoot['_input_out'] : Overwrite<TRoot['_input_out'], TNewParams['_input_out']>;
50
50
  _output_in: FallbackValue<TRoot['_output_in'], TNewParams['_output_in']>;
51
51
  _output_out: FallbackValue<TRoot['_output_out'], TNewParams['_output_out']>;
52
52
  } extends infer OParams extends ProcedureParams ? MiddlewareBuilder<OParams, $Params> | MiddlewareFunction<OParams, $Params> : never): CreateMiddlewareReturnInput<TRoot, TNewParams, Overwrite<TNewParams, $Params>>;
@@ -64,7 +64,7 @@ type CreateMiddlewareReturnInput<TRoot extends ProcedureParams, TPrev extends Pr
64
64
  _meta: TPrev['_meta'];
65
65
  _ctx_out: Overwrite<TPrev['_ctx_out'], TNext['_ctx_out']>;
66
66
  _input_in: FallbackValue<TNext['_input_in'], TPrev['_input_in']>;
67
- _input_out: FallbackValue<TNext['_input_out'], TPrev['_input_out']>;
67
+ _input_out: UnsetMarker extends TNext['_input_out'] ? TPrev['_input_out'] : Overwrite<TPrev['_input_out'], TNext['_input_out']>;
68
68
  _output_in: FallbackValue<TNext['_output_in'], TPrev['_output_in']>;
69
69
  _output_out: FallbackValue<TNext['_output_out'], TPrev['_output_out']>;
70
70
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/core/middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ /* istanbul ignore next -- @preserve */ function assertIsObject(obj) {
4
+ if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
5
+ throw new Error('Not an object');
6
+ }
7
+ }
8
+ /* istanbul ignore next -- @preserve */ function assertIsProcedureType(obj) {
9
+ if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
10
+ throw new Error('Invalid procedure type');
11
+ }
12
+ }
13
+ /* istanbul ignore next -- @preserve */ function assertIsRequestId(obj) {
14
+ if (obj !== null && typeof obj === 'number' && isNaN(obj) && typeof obj !== 'string') {
15
+ throw new Error('Invalid request id');
16
+ }
17
+ }
18
+ /* istanbul ignore next -- @preserve */ function assertIsString(obj) {
19
+ if (typeof obj !== 'string') {
20
+ throw new Error('Invalid string');
21
+ }
22
+ }
23
+ /* istanbul ignore next -- @preserve */ function assertIsJSONRPC2OrUndefined(obj) {
24
+ if (typeof obj !== 'undefined' && obj !== '2.0') {
25
+ throw new Error('Must be JSONRPC 2.0');
26
+ }
27
+ }
28
+ /** @public */ function parseTRPCMessage(obj, transformer) {
29
+ assertIsObject(obj);
30
+ const { id , jsonrpc , method , params } = obj;
31
+ assertIsRequestId(id);
32
+ assertIsJSONRPC2OrUndefined(jsonrpc);
33
+ if (method === 'subscription.stop') {
34
+ return {
35
+ id,
36
+ jsonrpc,
37
+ method
38
+ };
39
+ }
40
+ assertIsProcedureType(method);
41
+ assertIsObject(params);
42
+ const { input: rawInput , path } = params;
43
+ assertIsString(path);
44
+ const input = transformer.input.deserialize(rawInput);
45
+ return {
46
+ id,
47
+ jsonrpc,
48
+ method,
49
+ params: {
50
+ input,
51
+ path
52
+ }
53
+ };
54
+ }
55
+
56
+ exports.parseTRPCMessage = parseTRPCMessage;
@@ -0,0 +1,63 @@
1
+ /* istanbul ignore next -- @preserve */
2
+ function assertIsObject(obj) {
3
+ if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
4
+ throw new Error('Not an object');
5
+ }
6
+ }
7
+ /* istanbul ignore next -- @preserve */
8
+ function assertIsProcedureType(obj) {
9
+ if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
10
+ throw new Error('Invalid procedure type');
11
+ }
12
+ }
13
+ /* istanbul ignore next -- @preserve */
14
+ function assertIsRequestId(obj) {
15
+ if (obj !== null &&
16
+ typeof obj === 'number' &&
17
+ isNaN(obj) &&
18
+ typeof obj !== 'string') {
19
+ throw new Error('Invalid request id');
20
+ }
21
+ }
22
+ /* istanbul ignore next -- @preserve */
23
+ function assertIsString(obj) {
24
+ if (typeof obj !== 'string') {
25
+ throw new Error('Invalid string');
26
+ }
27
+ }
28
+ /* istanbul ignore next -- @preserve */
29
+ function assertIsJSONRPC2OrUndefined(obj) {
30
+ if (typeof obj !== 'undefined' && obj !== '2.0') {
31
+ throw new Error('Must be JSONRPC 2.0');
32
+ }
33
+ }
34
+ /** @public */
35
+ function parseTRPCMessage(obj, transformer) {
36
+ assertIsObject(obj);
37
+ const { id, jsonrpc, method, params } = obj;
38
+ assertIsRequestId(id);
39
+ assertIsJSONRPC2OrUndefined(jsonrpc);
40
+ if (method === 'subscription.stop') {
41
+ return {
42
+ id,
43
+ jsonrpc,
44
+ method,
45
+ };
46
+ }
47
+ assertIsProcedureType(method);
48
+ assertIsObject(params);
49
+ const { input: rawInput, path } = params;
50
+ assertIsString(path);
51
+ const input = transformer.input.deserialize(rawInput);
52
+ return {
53
+ id,
54
+ jsonrpc,
55
+ method,
56
+ params: {
57
+ input,
58
+ path,
59
+ },
60
+ };
61
+ }
62
+
63
+ export { parseTRPCMessage as p };
@@ -0,0 +1,54 @@
1
+ /* istanbul ignore next -- @preserve */ function assertIsObject(obj) {
2
+ if (typeof obj !== 'object' || Array.isArray(obj) || !obj) {
3
+ throw new Error('Not an object');
4
+ }
5
+ }
6
+ /* istanbul ignore next -- @preserve */ function assertIsProcedureType(obj) {
7
+ if (obj !== 'query' && obj !== 'subscription' && obj !== 'mutation') {
8
+ throw new Error('Invalid procedure type');
9
+ }
10
+ }
11
+ /* istanbul ignore next -- @preserve */ function assertIsRequestId(obj) {
12
+ if (obj !== null && typeof obj === 'number' && isNaN(obj) && typeof obj !== 'string') {
13
+ throw new Error('Invalid request id');
14
+ }
15
+ }
16
+ /* istanbul ignore next -- @preserve */ function assertIsString(obj) {
17
+ if (typeof obj !== 'string') {
18
+ throw new Error('Invalid string');
19
+ }
20
+ }
21
+ /* istanbul ignore next -- @preserve */ function assertIsJSONRPC2OrUndefined(obj) {
22
+ if (typeof obj !== 'undefined' && obj !== '2.0') {
23
+ throw new Error('Must be JSONRPC 2.0');
24
+ }
25
+ }
26
+ /** @public */ function parseTRPCMessage(obj, transformer) {
27
+ assertIsObject(obj);
28
+ const { id , jsonrpc , method , params } = obj;
29
+ assertIsRequestId(id);
30
+ assertIsJSONRPC2OrUndefined(jsonrpc);
31
+ if (method === 'subscription.stop') {
32
+ return {
33
+ id,
34
+ jsonrpc,
35
+ method
36
+ };
37
+ }
38
+ assertIsProcedureType(method);
39
+ assertIsObject(params);
40
+ const { input: rawInput , path } = params;
41
+ assertIsString(path);
42
+ const input = transformer.input.deserialize(rawInput);
43
+ return {
44
+ id,
45
+ jsonrpc,
46
+ method,
47
+ params: {
48
+ input,
49
+ path
50
+ }
51
+ };
52
+ }
53
+
54
+ export { parseTRPCMessage as p };
@@ -1,3 +1,4 @@
1
1
  export * from './codes';
2
2
  export * from './envelopes';
3
+ export * from './parseTRPCMessage';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
package/dist/rpc/index.js CHANGED
@@ -3,8 +3,10 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var codes = require('../codes-87f6824b.js');
6
+ var parseTRPCMessage = require('../parseTRPCMessage-1377f305.js');
6
7
 
7
8
 
8
9
 
9
10
  exports.TRPC_ERROR_CODES_BY_KEY = codes.TRPC_ERROR_CODES_BY_KEY;
10
11
  exports.TRPC_ERROR_CODES_BY_NUMBER = codes.TRPC_ERROR_CODES_BY_NUMBER;
12
+ exports.parseTRPCMessage = parseTRPCMessage.parseTRPCMessage;
@@ -1 +1,2 @@
1
1
  export { T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../codes-c924c3db.mjs';
2
+ export { p as parseTRPCMessage } from '../parseTRPCMessage-a0f17853.mjs';
@@ -0,0 +1,5 @@
1
+ import type { CombinedDataTransformer } from '../transformer';
2
+ import type { TRPCClientOutgoingMessage } from './envelopes';
3
+ /** @public */
4
+ export declare function parseTRPCMessage(obj: unknown, transformer: CombinedDataTransformer): TRPCClientOutgoingMessage;
5
+ //# sourceMappingURL=parseTRPCMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseTRPCMessage.d.ts","sourceRoot":"","sources":["../../src/rpc/parseTRPCMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AA8C7D,cAAc;AACd,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,EACZ,WAAW,EAAE,uBAAuB,GACnC,yBAAyB,CA+B3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "10.41.0",
3
+ "version": "10.43.0",
4
4
  "description": "The tRPC server library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -173,5 +173,5 @@
173
173
  "funding": [
174
174
  "https://trpc.io/sponsor"
175
175
  ],
176
- "gitHead": "39bc62187bfc50e9afe7ffca037053b3af26e455"
176
+ "gitHead": "0d505fd7415f537bd3e263971686b13a78584167"
177
177
  }
@@ -8,23 +8,36 @@
8
8
  /**
9
9
  * @see https://github.com/remix-run/remix/blob/0bcb4a304dd2f08f6032c3bf0c3aa7eb5b976901/packages/remix-server-runtime/formData.ts
10
10
  */
11
+ import * as fs from 'fs/promises';
11
12
  import { Readable } from 'node:stream';
12
13
  import { streamMultipart } from '@web3-storage/multipart-parser';
13
14
  import { CombinedDataTransformer } from '../../../../transformer';
14
15
  import { createNodeHTTPContentTypeHandler } from '../../internals/contentType';
15
16
  import { NodeHTTPRequest } from '../../types';
16
- import { UploadHandler, UploadHandlerPart } from './uploadHandler';
17
+ import { NodeOnDiskFile } from './fileUploadHandler';
18
+ import {
19
+ MaxBodySizeExceededError,
20
+ UploadHandler,
21
+ UploadHandlerPart,
22
+ } from './uploadHandler';
23
+
24
+ const utfTextDecoder = new TextDecoder('utf-8');
17
25
 
18
26
  /**
19
27
  * Allows you to handle multipart forms (file uploads) for your app.
28
+ * Request body parts with a 'filename' property will be treated as files.
29
+ * The rest will be treated as text.
30
+ * @param request The incoming Node HTTP request
31
+ * @param uploadHandler A function that handles file uploads and returns a value to be used in the request body. If uploaded to disk, the returned value is a NodeOnDiskFile. If uploaded to memory, the returned value is a File.
32
+ * @param maxBodySize The maximum size of the request body in bytes. Defaults to Infinity.
20
33
  *
21
- * TODO: Update this comment
22
34
  * @see https://remix.run/utils/parse-multipart-form-data
23
35
  */
24
36
  async function parseMultipartFormData(
25
37
  request: NodeHTTPRequest,
26
38
  uploadHandler: UploadHandler,
27
- ): Promise<FormData> {
39
+ maxBodySize = Infinity,
40
+ ) {
28
41
  const contentType = request.headers['content-type'] ?? '';
29
42
  const [type, boundary] = contentType.split(/\s*;\s*boundary=/);
30
43
 
@@ -36,23 +49,61 @@ async function parseMultipartFormData(
36
49
  const parts: AsyncIterable<UploadHandlerPart & { done?: true }> =
37
50
  streamMultipart(Readable.toWeb(request), boundary);
38
51
 
39
- for await (const part of parts) {
40
- if (part.done) break;
52
+ let currentBodySize = 0;
41
53
 
42
- if (typeof part.filename === 'string') {
43
- // only pass basename as the multipart/form-data spec recommends
44
- // https://datatracker.ietf.org/doc/html/rfc7578#section-4.2
45
- part.filename = part.filename.split(/[/\\]/).pop();
46
- }
54
+ const nodeOnDiskFiles: NodeOnDiskFile[] = [];
55
+
56
+ try {
57
+ for await (const part of parts) {
58
+ if (part.done) break;
59
+
60
+ if (typeof part.filename === 'string') {
61
+ // This is a file, so the uploadHandler function will be called
47
62
 
48
- const value = await uploadHandler(part);
63
+ // only pass basename as the multipart/form-data spec recommends
64
+ // https://datatracker.ietf.org/doc/html/rfc7578#section-4.2
65
+ part.filename = part.filename.split(/[/\\]/).pop();
66
+ const value = await uploadHandler(part as Required<typeof part>);
49
67
 
50
- if (typeof value !== 'undefined' && value !== null) {
51
- formData.append(part.name, value as any);
68
+ if (typeof value === 'undefined' || value === null) {
69
+ continue;
70
+ }
71
+ // add to cleanup array in case of error
72
+ if (value instanceof NodeOnDiskFile) {
73
+ nodeOnDiskFiles.push(value);
74
+ }
75
+
76
+ // if the combined size of the body exceeds the max size, throw an error
77
+ currentBodySize += value.size;
78
+ if (currentBodySize > maxBodySize) {
79
+ throw new MaxBodySizeExceededError(maxBodySize);
80
+ }
81
+ // add the file to the form data
82
+ formData.append(part.name, value as any);
83
+ } else {
84
+ // This is text, so we'll decode it and add it to the form data
85
+ let textualPart = '';
86
+ for await (const chunk of part.data) {
87
+ // if the combined size of the body exceeds the max size, throw an error
88
+ currentBodySize += chunk.length;
89
+ if (currentBodySize > maxBodySize) {
90
+ throw new MaxBodySizeExceededError(maxBodySize);
91
+ }
92
+ textualPart += utfTextDecoder.decode(chunk);
93
+ }
94
+ // add the text to the form data
95
+ formData.append(part.name, textualPart);
96
+ }
52
97
  }
53
- }
54
98
 
55
- return formData;
99
+ return formData;
100
+ } catch (e) {
101
+ // clean up any files that were uploaded to disk if an error occurs
102
+ await Promise.all(
103
+ nodeOnDiskFiles.map((file) => fs.unlink(file.getFilePath())),
104
+ );
105
+ throw e;
106
+ }
56
107
  }
57
108
 
58
109
  function isMultipartFormDataRequest(req: NodeHTTPRequest) {
@@ -99,10 +150,14 @@ export const nodeHTTPFormDataContentTypeHandler =
99
150
 
100
151
  export { parseMultipartFormData as experimental_parseMultipartFormData };
101
152
  export { createMemoryUploadHandler as experimental_createMemoryUploadHandler } from './memoryUploadHandler';
102
- export { createFileUploadHandler as experimental_createFileUploadHandler } from './fileUploadHandler';
153
+ export {
154
+ createFileUploadHandler as experimental_createFileUploadHandler,
155
+ NodeOnDiskFile as experimental_NodeOnDiskFile,
156
+ } from './fileUploadHandler';
103
157
  export {
104
158
  composeUploadHandlers as experimental_composeUploadHandlers,
105
159
  MaxPartSizeExceededError,
160
+ MaxBodySizeExceededError,
106
161
  } from './uploadHandler';
107
162
  export { type UploadHandler } from './uploadHandler';
108
163
  export { isMultipartFormDataRequest as experimental_isMultipartFormDataRequest };
@@ -50,10 +50,6 @@ export function createMemoryUploadHandler({
50
50
  chunks.push(chunk);
51
51
  }
52
52
 
53
- if (typeof filename === 'string') {
54
- return new File(chunks, filename, { type: contentType });
55
- }
56
-
57
- return await new Blob(chunks, { type: contentType }).text();
53
+ return new File(chunks, filename, { type: contentType });
58
54
  };
59
55
  }
@@ -11,8 +11,8 @@ export type UploadHandlerPart = {
11
11
  };
12
12
 
13
13
  export type UploadHandler = (
14
- part: UploadHandlerPart,
15
- ) => Promise<File | NodeOnDiskFile | string | null | undefined>;
14
+ part: Required<UploadHandlerPart>,
15
+ ) => Promise<File | NodeOnDiskFile | null | undefined>;
16
16
 
17
17
  export function composeUploadHandlers(
18
18
  ...handlers: UploadHandler[]
@@ -35,6 +35,12 @@ export class MaxPartSizeExceededError extends Error {
35
35
  }
36
36
  }
37
37
 
38
+ export class MaxBodySizeExceededError extends Error {
39
+ constructor(public maxBytes: number) {
40
+ super(`Body exceeded upload size of ${maxBytes} bytes.`);
41
+ }
42
+ }
43
+
38
44
  export type MemoryUploadHandlerFilterArgs = {
39
45
  filename?: string;
40
46
  contentType: string;
@@ -78,10 +84,6 @@ export function createMemoryUploadHandler({
78
84
  chunks.push(chunk);
79
85
  }
80
86
 
81
- if (typeof filename === 'string') {
82
- return new File(chunks, filename, { type: contentType });
83
- }
84
-
85
- return await new Blob(chunks, { type: contentType }).text();
87
+ return new File(chunks, filename, { type: contentType });
86
88
  };
87
89
  }