@remix-run/node 0.0.0-experimental-5ddceecc → 0.0.0-experimental-9aba8b51

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/base64.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/crypto.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { SignFunction, UnsignFunction } from "@remix-run/server-runtime";
2
+ export declare const sign: SignFunction;
3
+ export declare const unsign: UnsignFunction;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/fetch.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -96,7 +96,7 @@ class NodeRequest extends nodeFetch.Request {
96
96
  async formData(uploadHandler) {
97
97
  let contentType = this.headers.get("Content-Type");
98
98
 
99
- if (contentType) {
99
+ if (contentType && (/application\/x-www-form-urlencoded/.test(contentType) || /multipart\/form-data/.test(contentType))) {
100
100
  return await parseMultipartFormData.internalParseFormData(contentType, this.body, this.abortController, uploadHandler);
101
101
  }
102
102
 
package/formData.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/globals.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import type { InternalSignFunctionDoNotUseMe, InternalUnsignFunctionDoNotUseMe } from "@remix-run/server-runtime/cookieSigning";
2
1
  import { atob, btoa } from "./base64";
3
2
  declare global {
4
3
  namespace NodeJS {
@@ -15,8 +14,6 @@ declare global {
15
14
  Response: typeof Response;
16
15
  fetch: typeof fetch;
17
16
  FormData: typeof FormData;
18
- sign: InternalSignFunctionDoNotUseMe;
19
- unsign: InternalUnsignFunctionDoNotUseMe;
20
17
  }
21
18
  }
22
19
  }
package/globals.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -14,7 +14,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var file = require('@web-std/file');
16
16
  var base64 = require('./base64.js');
17
- var cookieSigning = require('./cookieSigning.js');
18
17
  var fetch = require('./fetch.js');
19
18
  var formData = require('./formData.js');
20
19
  var nodeFetch = require('node-fetch');
@@ -29,8 +28,6 @@ function installGlobals() {
29
28
  global.Response = nodeFetch.Response;
30
29
  global.fetch = fetch.fetch;
31
30
  global.FormData = formData.FormData;
32
- global.sign = cookieSigning.sign;
33
- global.unsign = cookieSigning.unsign;
34
31
  }
35
32
 
36
33
  exports.installGlobals = installGlobals;
@@ -0,0 +1,4 @@
1
+ export declare const createCookie: import("@remix-run/server-runtime").CreateCookieFunction;
2
+ export declare const createCookieSessionStorage: import("@remix-run/server-runtime").CreateCookieSessionStorageFunction;
3
+ export declare const createSessionStorage: import("@remix-run/server-runtime").CreateSessionStorageFunction;
4
+ export declare const createMemorySessionStorage: import("@remix-run/server-runtime").CreateMemorySessionStorageFunction;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
+ *
4
+ * Copyright (c) Remix Software Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE.md file in the root directory of this source tree.
8
+ *
9
+ * @license MIT
10
+ */
11
+ 'use strict';
12
+
13
+ Object.defineProperty(exports, '__esModule', { value: true });
14
+
15
+ var serverRuntime = require('@remix-run/server-runtime');
16
+ var crypto = require('./crypto.js');
17
+
18
+ const createCookie = serverRuntime.createCookieFactory({
19
+ sign: crypto.sign,
20
+ unsign: crypto.unsign
21
+ });
22
+ const createCookieSessionStorage = serverRuntime.createCookieSessionStorageFactory(createCookie);
23
+ const createSessionStorage = serverRuntime.createSessionStorageFactory(createCookie);
24
+ const createMemorySessionStorage = serverRuntime.createMemorySessionStorageFactory(createSessionStorage);
25
+
26
+ exports.createCookie = createCookie;
27
+ exports.createCookieSessionStorage = createCookieSessionStorage;
28
+ exports.createMemorySessionStorage = createMemorySessionStorage;
29
+ exports.createSessionStorage = createSessionStorage;
package/index.d.ts CHANGED
@@ -8,3 +8,6 @@ export { parseMultipartFormData as unstable_parseMultipartFormData } from "./par
8
8
  export { createFileSessionStorage } from "./sessions/fileStorage";
9
9
  export { createFileUploadHandler as unstable_createFileUploadHandler, NodeOnDiskFile, } from "./upload/fileUploadHandler";
10
10
  export { createMemoryUploadHandler as unstable_createMemoryUploadHandler } from "./upload/memoryUploadHandler";
11
+ export { createCookie, createCookieSessionStorage, createMemorySessionStorage, createSessionStorage, } from "./implementations";
12
+ export { createRequestHandler, createSession, isCookie, isSession, json, redirect, } from "@remix-run/server-runtime";
13
+ export type { ActionFunction, AppData, AppLoadContext, CreateRequestHandlerFunction, Cookie, CookieOptions, CookieParseOptions, CookieSerializeOptions, CookieSignatureOptions, DataFunctionArgs, EntryContext, ErrorBoundaryComponent, HandleDataRequestFunction, HandleDocumentRequestFunction, HeadersFunction, HtmlLinkDescriptor, HtmlMetaDescriptor, LinkDescriptor, LinksFunction, LoaderFunction, MetaDescriptor, MetaFunction, PageLinkDescriptor, RequestHandler, RouteComponent, RouteHandle, ServerBuild, ServerEntryModule, Session, SessionData, SessionIdStorageStrategy, SessionStorage, } from "@remix-run/server-runtime";
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -21,6 +21,8 @@ var parseMultipartFormData = require('./parseMultipartFormData.js');
21
21
  var fileStorage = require('./sessions/fileStorage.js');
22
22
  var fileUploadHandler = require('./upload/fileUploadHandler.js');
23
23
  var memoryUploadHandler = require('./upload/memoryUploadHandler.js');
24
+ var implementations = require('./implementations.js');
25
+ var serverRuntime = require('@remix-run/server-runtime');
24
26
  var nodeFetch = require('node-fetch');
25
27
 
26
28
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -42,6 +44,34 @@ exports.createFileSessionStorage = fileStorage.createFileSessionStorage;
42
44
  exports.NodeOnDiskFile = fileUploadHandler.NodeOnDiskFile;
43
45
  exports.unstable_createFileUploadHandler = fileUploadHandler.createFileUploadHandler;
44
46
  exports.unstable_createMemoryUploadHandler = memoryUploadHandler.createMemoryUploadHandler;
47
+ exports.createCookie = implementations.createCookie;
48
+ exports.createCookieSessionStorage = implementations.createCookieSessionStorage;
49
+ exports.createMemorySessionStorage = implementations.createMemorySessionStorage;
50
+ exports.createSessionStorage = implementations.createSessionStorage;
51
+ Object.defineProperty(exports, 'createRequestHandler', {
52
+ enumerable: true,
53
+ get: function () { return serverRuntime.createRequestHandler; }
54
+ });
55
+ Object.defineProperty(exports, 'createSession', {
56
+ enumerable: true,
57
+ get: function () { return serverRuntime.createSession; }
58
+ });
59
+ Object.defineProperty(exports, 'isCookie', {
60
+ enumerable: true,
61
+ get: function () { return serverRuntime.isCookie; }
62
+ });
63
+ Object.defineProperty(exports, 'isSession', {
64
+ enumerable: true,
65
+ get: function () { return serverRuntime.isSession; }
66
+ });
67
+ Object.defineProperty(exports, 'json', {
68
+ enumerable: true,
69
+ get: function () { return serverRuntime.json; }
70
+ });
71
+ Object.defineProperty(exports, 'redirect', {
72
+ enumerable: true,
73
+ get: function () { return serverRuntime.redirect; }
74
+ });
45
75
  Object.defineProperty(exports, 'Headers', {
46
76
  enumerable: true,
47
77
  get: function () { return nodeFetch.Headers; }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -8,4 +8,4 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
- export { createFileSessionStorage, unstable_createFileUploadHandler, unstable_createMemoryUploadHandler, unstable_parseMultipartFormData } from '@remix-run/node';
11
+ export { createCookie, createCookieSessionStorage, createFileSessionStorage, createMemorySessionStorage, createSessionStorage, unstable_createFileUploadHandler, unstable_createMemoryUploadHandler, unstable_parseMultipartFormData } from '@remix-run/node';
@@ -1,2 +1,2 @@
1
- export { createFileSessionStorage, unstable_createFileUploadHandler, unstable_createMemoryUploadHandler, unstable_parseMultipartFormData, } from "@remix-run/node";
1
+ export { createCookie, createSessionStorage, createCookieSessionStorage, createMemorySessionStorage, createFileSessionStorage, unstable_createFileUploadHandler, unstable_createMemoryUploadHandler, unstable_parseMultipartFormData, } from "@remix-run/node";
2
2
  export type { UploadHandler, UploadHandlerArgs } from "@remix-run/node";
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -16,10 +16,26 @@ var node = require('@remix-run/node');
16
16
 
17
17
 
18
18
 
19
+ Object.defineProperty(exports, 'createCookie', {
20
+ enumerable: true,
21
+ get: function () { return node.createCookie; }
22
+ });
23
+ Object.defineProperty(exports, 'createCookieSessionStorage', {
24
+ enumerable: true,
25
+ get: function () { return node.createCookieSessionStorage; }
26
+ });
19
27
  Object.defineProperty(exports, 'createFileSessionStorage', {
20
28
  enumerable: true,
21
29
  get: function () { return node.createFileSessionStorage; }
22
30
  });
31
+ Object.defineProperty(exports, 'createMemorySessionStorage', {
32
+ enumerable: true,
33
+ get: function () { return node.createMemorySessionStorage; }
34
+ });
35
+ Object.defineProperty(exports, 'createSessionStorage', {
36
+ enumerable: true,
37
+ get: function () { return node.createSessionStorage; }
38
+ });
23
39
  Object.defineProperty(exports, 'unstable_createFileUploadHandler', {
24
40
  enumerable: true,
25
41
  get: function () { return node.unstable_createFileUploadHandler; }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@remix-run/node",
3
3
  "description": "Node.js platform abstractions for Remix",
4
- "version": "0.0.0-experimental-5ddceecc",
4
+ "version": "0.0.0-experimental-9aba8b51",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -12,7 +12,7 @@
12
12
  "url": "https://github.com/remix-run/remix/issues"
13
13
  },
14
14
  "dependencies": {
15
- "@remix-run/server-runtime": "0.0.0-experimental-5ddceecc",
15
+ "@remix-run/server-runtime": "0.0.0-experimental-9aba8b51",
16
16
  "@types/busboy": "^0.3.1",
17
17
  "@types/node-fetch": "^2.5.12",
18
18
  "@web-std/file": "^3.0.0",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -35,72 +35,76 @@ async function internalParseFormData(contentType, body, abortController, uploadH
35
35
  let stream$1;
36
36
 
37
37
  if (typeof body === "string" || Buffer.isBuffer(body)) {
38
- stream$1 = stream.Readable.from(body.toString());
38
+ stream$1 = stream.Readable.from(body);
39
39
  } else {
40
40
  stream$1 = body;
41
41
  }
42
42
 
43
43
  await new Promise(async (resolve, reject) => {
44
- let busboy = new Busboy__default["default"]({
45
- highWaterMark: 2 * 1024 * 1024,
46
- headers: {
47
- "content-type": contentType
44
+ try {
45
+ let busboy = new Busboy__default["default"]({
46
+ highWaterMark: 2 * 1024 * 1024,
47
+ headers: {
48
+ "content-type": contentType
49
+ }
50
+ });
51
+ let aborted = false;
52
+
53
+ function abort(error) {
54
+ if (aborted) return;
55
+ aborted = true;
56
+ stream$1.unpipe();
57
+ stream$1.removeAllListeners();
58
+ busboy.removeAllListeners();
59
+ abortController === null || abortController === void 0 ? void 0 : abortController.abort();
60
+ reject(error || new Error("failed to parse form data"));
48
61
  }
49
- });
50
- let aborted = false;
51
62
 
52
- function abort(error) {
53
- if (aborted) return;
54
- aborted = true;
55
- stream$1.unpipe();
56
- stream$1.removeAllListeners();
57
- busboy.removeAllListeners();
58
- abortController === null || abortController === void 0 ? void 0 : abortController.abort();
59
- reject(error || new Error("failed to parse form data"));
60
- }
63
+ busboy.on("field", (name, value) => {
64
+ formData$1.append(name, value);
65
+ });
66
+ busboy.on("file", (name, filestream, filename, encoding, mimetype) => {
67
+ if (uploadHandler) {
68
+ fileWorkQueue.push((async () => {
69
+ try {
70
+ let value = await uploadHandler({
71
+ name,
72
+ stream: filestream,
73
+ filename,
74
+ encoding,
75
+ mimetype
76
+ });
61
77
 
62
- busboy.on("field", (name, value) => {
63
- formData$1.append(name, value);
64
- });
65
- busboy.on("file", (name, filestream, filename, encoding, mimetype) => {
66
- if (uploadHandler) {
67
- fileWorkQueue.push((async () => {
68
- try {
69
- let value = await uploadHandler({
70
- name,
71
- stream: filestream,
72
- filename,
73
- encoding,
74
- mimetype
75
- });
78
+ if (typeof value !== "undefined") {
79
+ formData$1.append(name, value);
80
+ }
81
+ } catch (error) {
82
+ // Emit error to busboy to bail early if possible
83
+ busboy.emit("error", error); // It's possible that the handler is doing stuff and fails
84
+ // *after* busboy has finished. Rethrow the error for surfacing
85
+ // in the Promise.all(fileWorkQueue) below.
76
86
 
77
- if (typeof value !== "undefined") {
78
- formData$1.append(name, value);
87
+ throw error;
88
+ } finally {
89
+ filestream.resume();
79
90
  }
80
- } catch (error) {
81
- // Emit error to busboy to bail early if possible
82
- busboy.emit("error", error); // It's possible that the handler is doing stuff and fails
83
- // *after* busboy has finished. Rethrow the error for surfacing
84
- // in the Promise.all(fileWorkQueue) below.
85
-
86
- throw error;
87
- } finally {
88
- filestream.resume();
89
- }
90
- })());
91
- } else {
92
- filestream.resume();
93
- }
91
+ })());
92
+ } else {
93
+ filestream.resume();
94
+ }
94
95
 
95
- if (!uploadHandler) {
96
- console.warn(`Tried to parse multipart file upload for field "${name}" but no uploadHandler was provided.` + " Read more here: https://remix.run/api/remix#parseMultipartFormData-node");
97
- }
98
- });
99
- stream$1.on("error", abort);
100
- stream$1.on("aborted", abort);
101
- busboy.on("error", abort);
102
- busboy.on("finish", resolve);
103
- stream$1.pipe(busboy);
96
+ if (!uploadHandler) {
97
+ console.warn(`Tried to parse multipart file upload for field "${name}" but no uploadHandler was provided.` + " Read more here: https://remix.run/api/remix#parseMultipartFormData-node");
98
+ }
99
+ });
100
+ stream$1.on("error", abort);
101
+ stream$1.on("aborted", abort);
102
+ busboy.on("error", abort);
103
+ busboy.on("finish", resolve);
104
+ stream$1.pipe(busboy);
105
+ } catch (err) {
106
+ reject(err);
107
+ }
104
108
  });
105
109
  await Promise.all(fileWorkQueue);
106
110
  return formData$1;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -15,7 +15,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var crypto = require('crypto');
16
16
  var fs = require('fs');
17
17
  var path = require('path');
18
- var serverRuntime = require('@remix-run/server-runtime');
18
+ var implementations = require('../implementations.js');
19
19
 
20
20
  function _interopNamespace(e) {
21
21
  if (e && e.__esModule) return e;
@@ -50,7 +50,7 @@ function createFileSessionStorage({
50
50
  cookie,
51
51
  dir
52
52
  }) {
53
- return serverRuntime.createSessionStorage({
53
+ return implementations.createSessionStorage({
54
54
  cookie,
55
55
 
56
56
  async createData(data, expires) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/upload/meter.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-5ddceecc
2
+ * @remix-run/node v0.0.0-experimental-9aba8b51
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,3 +0,0 @@
1
- import type { InternalSignFunctionDoNotUseMe, InternalUnsignFunctionDoNotUseMe } from "@remix-run/server-runtime/cookieSigning";
2
- export declare const sign: InternalSignFunctionDoNotUseMe;
3
- export declare const unsign: InternalUnsignFunctionDoNotUseMe;