@remix-run/node 0.0.0-experimental-8d8ac4a52 → 0.0.0-experimental-e48b44da5

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.
@@ -44,13 +44,14 @@ export type FileUploadHandlerOptions = {
44
44
  filter?(args: FileUploadHandlerFilterArgs): boolean | Promise<boolean>;
45
45
  };
46
46
  export declare function createFileUploadHandler({ directory, avoidFileConflicts, file, filter, maxPartSize, }?: FileUploadHandlerOptions): UploadHandler;
47
- export declare class NodeOnDiskFile implements File {
47
+ export declare class NodeOnDiskFile implements Omit<File, "constructor"> {
48
48
  private filepath;
49
49
  type: string;
50
50
  private slicer?;
51
51
  name: string;
52
52
  lastModified: number;
53
53
  webkitRelativePath: string;
54
+ prototype: File;
54
55
  constructor(filepath: string, type: string, slicer?: {
55
56
  start: number;
56
57
  end: number;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/node v0.0.0-experimental-8d8ac4a52
2
+ * @remix-run/node v0.0.0-experimental-e48b44da5
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -12,16 +12,16 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var crypto = require('crypto');
16
- var fs = require('fs');
17
- var promises = require('fs/promises');
18
- var os = require('os');
19
- var path = require('path');
20
- var stream = require('stream');
21
- var util = require('util');
15
+ var crypto = require('node:crypto');
16
+ var node_fs = require('node:fs');
17
+ var promises = require('node:fs/promises');
18
+ var node_os = require('node:os');
19
+ var path = require('node:path');
20
+ var node_stream = require('node:stream');
21
+ var node_util = require('node:util');
22
22
  var serverRuntime = require('@remix-run/server-runtime');
23
23
  var streamSlice = require('stream-slice');
24
- var stream$1 = require('../stream.js');
24
+ var stream = require('../stream.js');
25
25
 
26
26
  function _interopNamespace(e) {
27
27
  if (e && e.__esModule) return e;
@@ -43,6 +43,11 @@ function _interopNamespace(e) {
43
43
 
44
44
  var streamSlice__namespace = /*#__PURE__*/_interopNamespace(streamSlice);
45
45
 
46
+ /**
47
+ * Chooses the path of the file to be uploaded. If a string is not
48
+ * returned the file will not be written.
49
+ */
50
+
46
51
  let defaultFilePathResolver = ({
47
52
  filename
48
53
  }) => {
@@ -58,7 +63,7 @@ async function uniqueFile(filepath) {
58
63
  return uniqueFilepath;
59
64
  }
60
65
  function createFileUploadHandler({
61
- directory = os.tmpdir(),
66
+ directory = node_os.tmpdir(),
62
67
  avoidFileConflicts = true,
63
68
  file = defaultFilePathResolver,
64
69
  filter,
@@ -101,7 +106,7 @@ function createFileUploadHandler({
101
106
  await promises.mkdir(path.dirname(filepath), {
102
107
  recursive: true
103
108
  }).catch(() => {});
104
- let writeFileStream = fs.createWriteStream(filepath);
109
+ let writeFileStream = node_fs.createWriteStream(filepath);
105
110
  let size = 0;
106
111
  let deleteFile = false;
107
112
  try {
@@ -115,17 +120,27 @@ function createFileUploadHandler({
115
120
  }
116
121
  } finally {
117
122
  writeFileStream.end();
118
- await util.promisify(stream.finished)(writeFileStream);
123
+ await node_util.promisify(node_stream.finished)(writeFileStream);
119
124
  if (deleteFile) {
120
125
  await promises.rm(filepath).catch(() => {});
121
126
  }
122
127
  }
128
+
129
+ // TODO: remove this typecast once TS fixed File class regression
130
+ // https://github.com/microsoft/TypeScript/issues/52166
123
131
  return new NodeOnDiskFile(filepath, contentType);
124
132
  };
125
133
  }
134
+
135
+ // TODO: remove this `Omit` usage once TS fixed File class regression
136
+ // https://github.com/microsoft/TypeScript/issues/52166
126
137
  class NodeOnDiskFile {
127
138
  lastModified = 0;
128
139
  webkitRelativePath = "";
140
+
141
+ // TODO: remove this property once TS fixed File class regression
142
+ // https://github.com/microsoft/TypeScript/issues/52166
143
+ prototype = File.prototype;
129
144
  constructor(filepath, type, slicer) {
130
145
  this.filepath = filepath;
131
146
  this.type = type;
@@ -133,7 +148,7 @@ class NodeOnDiskFile {
133
148
  this.name = path.basename(filepath);
134
149
  }
135
150
  get size() {
136
- let stats = fs.statSync(this.filepath);
151
+ let stats = node_fs.statSync(this.filepath);
137
152
  if (this.slicer) {
138
153
  let slice = this.slicer.end - this.slicer.start;
139
154
  return slice < 0 ? 0 : slice > stats.size ? stats.size : slice;
@@ -150,10 +165,14 @@ class NodeOnDiskFile {
150
165
  return new NodeOnDiskFile(this.filepath, typeof type === "string" ? type : this.type, {
151
166
  start,
152
167
  end
153
- });
168
+ }
169
+ // TODO: remove this typecast once TS fixed File class regression
170
+ // https://github.com/microsoft/TypeScript/issues/52166
171
+ );
154
172
  }
173
+
155
174
  async arrayBuffer() {
156
- let stream = fs.createReadStream(this.filepath);
175
+ let stream = node_fs.createReadStream(this.filepath);
157
176
  if (this.slicer) {
158
177
  stream = stream.pipe(streamSlice__namespace.slice(this.slicer.start, this.slicer.end));
159
178
  }
@@ -165,14 +184,14 @@ class NodeOnDiskFile {
165
184
  });
166
185
  }
167
186
  stream() {
168
- let stream = fs.createReadStream(this.filepath);
187
+ let stream$1 = node_fs.createReadStream(this.filepath);
169
188
  if (this.slicer) {
170
- stream = stream.pipe(streamSlice__namespace.slice(this.slicer.start, this.slicer.end));
189
+ stream$1 = stream$1.pipe(streamSlice__namespace.slice(this.slicer.start, this.slicer.end));
171
190
  }
172
- return stream$1.createReadableStreamFromReadable(stream);
191
+ return stream.createReadableStreamFromReadable(stream$1);
173
192
  }
174
193
  async text() {
175
- return stream$1.readableStreamToString(this.stream());
194
+ return stream.readableStreamToString(this.stream());
176
195
  }
177
196
  get [Symbol.toStringTag]() {
178
197
  return "File";
package/install.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/install.js ADDED
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ "use strict";
3
+
4
+ var globals = require("./dist/globals.js");
5
+
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+
8
+ globals.installGlobals();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remix-run/node",
3
- "version": "0.0.0-experimental-8d8ac4a52",
3
+ "version": "0.0.0-experimental-e48b44da5",
4
4
  "description": "Node.js platform abstractions for Remix",
5
5
  "bugs": {
6
6
  "url": "https://github.com/remix-run/remix/issues"
@@ -13,28 +13,40 @@
13
13
  "license": "MIT",
14
14
  "main": "dist/index.js",
15
15
  "typings": "dist/index.d.ts",
16
- "sideEffects": false,
16
+ "sideEffects": [
17
+ "./install.js"
18
+ ],
17
19
  "dependencies": {
18
- "@remix-run/server-runtime": "0.0.0-experimental-8d8ac4a52",
19
- "@remix-run/web-fetch": "^4.3.2",
20
- "@remix-run/web-file": "^3.0.2",
21
- "@remix-run/web-stream": "^1.0.3",
20
+ "@remix-run/server-runtime": "0.0.0-experimental-e48b44da5",
21
+ "@remix-run/web-fetch": "^4.4.1",
22
+ "@remix-run/web-file": "^3.1.0",
23
+ "@remix-run/web-stream": "^1.1.0",
22
24
  "@web3-storage/multipart-parser": "^1.0.0",
23
- "abort-controller": "^3.0.0",
24
25
  "cookie-signature": "^1.1.0",
25
26
  "source-map-support": "^0.5.21",
26
27
  "stream-slice": "^0.1.2"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/cookie-signature": "^1.0.3",
30
- "@types/source-map-support": "^0.5.4"
31
+ "@types/source-map-support": "^0.5.4",
32
+ "typescript": "^5.1.6"
33
+ },
34
+ "peerDependencies": {
35
+ "typescript": "^5.1.0"
36
+ },
37
+ "peerDependenciesMeta": {
38
+ "typescript": {
39
+ "optional": true
40
+ }
31
41
  },
32
42
  "engines": {
33
- "node": ">=14"
43
+ "node": ">=18.0.0"
34
44
  },
35
45
  "files": [
36
46
  "dist/",
37
47
  "globals.d.ts",
48
+ "install.d.ts",
49
+ "install.js",
38
50
  "CHANGELOG.md",
39
51
  "LICENSE.md",
40
52
  "README.md"
package/dist/base64.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare function atob(a: string): string;
2
- export declare function btoa(b: string): string;
package/dist/base64.js DELETED
@@ -1,23 +0,0 @@
1
- /**
2
- * @remix-run/node v0.0.0-experimental-8d8ac4a52
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
- function atob(a) {
16
- return Buffer.from(a, "base64").toString("binary");
17
- }
18
- function btoa(b) {
19
- return Buffer.from(b, "binary").toString("base64");
20
- }
21
-
22
- exports.atob = atob;
23
- exports.btoa = btoa;
package/dist/fetch.d.ts DELETED
@@ -1,23 +0,0 @@
1
- /// <reference types="node" />
2
- import type { Readable } from "stream";
3
- import { fetch as webFetch, Headers as WebHeaders, Request as WebRequest, Response as WebResponse } from "@remix-run/web-fetch";
4
- export { FormData } from "@remix-run/web-fetch";
5
- export { File, Blob } from "@remix-run/web-file";
6
- type NodeHeadersInit = ConstructorParameters<typeof WebHeaders>[0];
7
- type NodeResponseInit = NonNullable<ConstructorParameters<typeof WebResponse>[1]>;
8
- type NodeRequestInfo = ConstructorParameters<typeof WebRequest>[0] | NodeRequest;
9
- type NodeRequestInit = Omit<NonNullable<ConstructorParameters<typeof WebRequest>[1]>, "body"> & {
10
- body?: NonNullable<ConstructorParameters<typeof WebRequest>[1]>["body"] | Readable;
11
- };
12
- export type { NodeHeadersInit as HeadersInit, NodeRequestInfo as RequestInfo, NodeRequestInit as RequestInit, NodeResponseInit as ResponseInit, };
13
- declare class NodeRequest extends WebRequest {
14
- constructor(info: NodeRequestInfo, init?: NodeRequestInit);
15
- get headers(): WebHeaders;
16
- clone(): NodeRequest;
17
- }
18
- declare class NodeResponse extends WebResponse {
19
- get headers(): WebHeaders;
20
- clone(): NodeResponse;
21
- }
22
- export { WebHeaders as Headers, NodeRequest as Request, NodeResponse as Response, };
23
- export declare const fetch: typeof webFetch;
package/dist/fetch.js DELETED
@@ -1,65 +0,0 @@
1
- /**
2
- * @remix-run/node v0.0.0-experimental-8d8ac4a52
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 webFetch = require('@remix-run/web-fetch');
16
- var webFile = require('@remix-run/web-file');
17
-
18
- class NodeRequest extends webFetch.Request {
19
- constructor(info, init) {
20
- super(info, init);
21
- }
22
- get headers() {
23
- return super.headers;
24
- }
25
- clone() {
26
- return super.clone();
27
- }
28
- }
29
- class NodeResponse extends webFetch.Response {
30
- get headers() {
31
- return super.headers;
32
- }
33
- clone() {
34
- return super.clone();
35
- }
36
- }
37
- const fetch = (info, init) => {
38
- init = {
39
- // Disable compression handling so people can return the result of a fetch
40
- // directly in the loader without messing with the Content-Encoding header.
41
- compress: false,
42
- ...init
43
- };
44
- return webFetch.fetch(info, init);
45
- };
46
-
47
- Object.defineProperty(exports, 'FormData', {
48
- enumerable: true,
49
- get: function () { return webFetch.FormData; }
50
- });
51
- Object.defineProperty(exports, 'Headers', {
52
- enumerable: true,
53
- get: function () { return webFetch.Headers; }
54
- });
55
- Object.defineProperty(exports, 'Blob', {
56
- enumerable: true,
57
- get: function () { return webFile.Blob; }
58
- });
59
- Object.defineProperty(exports, 'File', {
60
- enumerable: true,
61
- get: function () { return webFile.File; }
62
- });
63
- exports.Request = NodeRequest;
64
- exports.Response = NodeResponse;
65
- exports.fetch = fetch;
@@ -1,11 +0,0 @@
1
- /**
2
- * @remix-run/node v0.0.0-experimental-8d8ac4a52
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
- export { createCookie, createCookieSessionStorage, createFileSessionStorage, createMemorySessionStorage, createSessionStorage, unstable_createFileUploadHandler, unstable_createMemoryUploadHandler, unstable_parseMultipartFormData } from '@remix-run/node';
@@ -1,42 +0,0 @@
1
- /**
2
- * @remix-run/node v0.0.0-experimental-8d8ac4a52
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
- import * as node from '@remix-run/node';
12
-
13
- /** @deprecated Import `createCookie` from `@remix-run/node` instead. */
14
- export declare const createCookie: typeof node.createCookie;
15
-
16
- /** @deprecated Import `createCookieSessionStorage` from `@remix-run/node` instead. */
17
- export declare const createCookieSessionStorage: typeof node.createCookieSessionStorage;
18
-
19
- /** @deprecated Import `createFileSessionStorage` from `@remix-run/node` instead. */
20
- export declare const createFileSessionStorage: typeof node.createFileSessionStorage;
21
-
22
- /** @deprecated Import `createMemorySessionStorage` from `@remix-run/node` instead. */
23
- export declare const createMemorySessionStorage: typeof node.createMemorySessionStorage;
24
-
25
- /** @deprecated Import `createSessionStorage` from `@remix-run/node` instead. */
26
- export declare const createSessionStorage: typeof node.createSessionStorage;
27
-
28
- /** @deprecated Import `unstable_createFileUploadHandler` from `@remix-run/node` instead. */
29
- export declare const unstable_createFileUploadHandler: typeof node.unstable_createFileUploadHandler;
30
-
31
- /** @deprecated Import `unstable_createMemoryUploadHandler` from `@remix-run/node` instead. */
32
- export declare const unstable_createMemoryUploadHandler: typeof node.unstable_createMemoryUploadHandler;
33
-
34
- /** @deprecated Import `unstable_parseMultipartFormData` from `@remix-run/node` instead. */
35
- export declare const unstable_parseMultipartFormData: typeof node.unstable_parseMultipartFormData;
36
- import * as NodeTypes from '@remix-run/node';
37
-
38
- /** @deprecated Import type `UploadHandler` from `@remix-run/node` instead. */
39
- export declare type UploadHandler = NodeTypes.UploadHandler;
40
-
41
- /** @deprecated Import type `UploadHandlerPart` from `@remix-run/node` instead. */
42
- export declare type UploadHandlerPart = NodeTypes.UploadHandlerPart;
@@ -1,36 +0,0 @@
1
- /**
2
- * @remix-run/node v0.0.0-experimental-8d8ac4a52
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
- Object.defineProperty(exports, '__esModule', { value: true });
13
- var node = require('@remix-run/node');
14
- /** @deprecated Import `createCookie` from `@remix-run/node` instead. */
15
- exports.createCookie = node.createCookie;
16
-
17
- /** @deprecated Import `createCookieSessionStorage` from `@remix-run/node` instead. */
18
- exports.createCookieSessionStorage = node.createCookieSessionStorage;
19
-
20
- /** @deprecated Import `createFileSessionStorage` from `@remix-run/node` instead. */
21
- exports.createFileSessionStorage = node.createFileSessionStorage;
22
-
23
- /** @deprecated Import `createMemorySessionStorage` from `@remix-run/node` instead. */
24
- exports.createMemorySessionStorage = node.createMemorySessionStorage;
25
-
26
- /** @deprecated Import `createSessionStorage` from `@remix-run/node` instead. */
27
- exports.createSessionStorage = node.createSessionStorage;
28
-
29
- /** @deprecated Import `unstable_createFileUploadHandler` from `@remix-run/node` instead. */
30
- exports.unstable_createFileUploadHandler = node.unstable_createFileUploadHandler;
31
-
32
- /** @deprecated Import `unstable_createMemoryUploadHandler` from `@remix-run/node` instead. */
33
- exports.unstable_createMemoryUploadHandler = node.unstable_createMemoryUploadHandler;
34
-
35
- /** @deprecated Import `unstable_parseMultipartFormData` from `@remix-run/node` instead. */
36
- exports.unstable_parseMultipartFormData = node.unstable_parseMultipartFormData;