@bleedingdev/modern-js-plugin-data-loader 3.2.0-ultramodern.120 → 3.2.0-ultramodern.121

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.
@@ -37,12 +37,28 @@ __webpack_require__.d(__webpack_exports__, {
37
37
  const router_namespaceObject = require("@modern-js/runtime-utils/router");
38
38
  function sanitizeError(error) {
39
39
  if (error instanceof Error && 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV) {
40
- const sanitized = new Error(error.message || 'Unexpected Server Error');
40
+ const sanitized = new Error('Unexpected Server Error');
41
41
  sanitized.stack = void 0;
42
42
  return sanitized;
43
43
  }
44
44
  return error;
45
45
  }
46
+ function shouldRedactRouteErrorResponse(error) {
47
+ return error.status >= 500 && 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV;
48
+ }
49
+ function serializeRouteErrorResponse(error) {
50
+ if (!shouldRedactRouteErrorResponse(error)) return {
51
+ ...error,
52
+ __type: 'RouteErrorResponse'
53
+ };
54
+ return {
55
+ status: error.status,
56
+ statusText: 'Internal Server Error',
57
+ internal: error.internal,
58
+ data: 'Unexpected Server Error',
59
+ __type: 'RouteErrorResponse'
60
+ };
61
+ }
46
62
  function sanitizeErrors(errors) {
47
63
  return Object.entries(errors).reduce((acc, [routeId, error])=>Object.assign(acc, {
48
64
  [routeId]: sanitizeError(error)
@@ -59,10 +75,7 @@ function serializeErrors(errors) {
59
75
  if (!errors) return null;
60
76
  const entries = Object.entries(errors);
61
77
  const serialized = {};
62
- for (const [key, val] of entries)if ((0, router_namespaceObject.isRouteErrorResponse)(val)) serialized[key] = {
63
- ...val,
64
- __type: 'RouteErrorResponse'
65
- };
78
+ for (const [key, val] of entries)if ((0, router_namespaceObject.isRouteErrorResponse)(val)) serialized[key] = serializeRouteErrorResponse(val);
66
79
  else if (val instanceof Error) {
67
80
  const sanitized = sanitizeError(val);
68
81
  serialized[key] = {
@@ -77,9 +90,10 @@ function serializeErrors(errors) {
77
90
  return serialized;
78
91
  }
79
92
  function errorResponseToJson(errorResponse) {
93
+ const serializedErrorResponse = serializeRouteErrorResponse(errorResponse);
80
94
  return Response.json(serializeError(errorResponse.error || new Error('Unexpected Server Error')), {
81
95
  status: errorResponse.status,
82
- statusText: errorResponse.statusText,
96
+ statusText: serializedErrorResponse.statusText,
83
97
  headers: {
84
98
  'X-Modernjs-Error': 'yes'
85
99
  }
@@ -36,6 +36,16 @@ function isTrackedPromise(value) {
36
36
  return null != value && 'function' == typeof value.then && true === value._tracked;
37
37
  }
38
38
  const DEFERRED_VALUE_PLACEHOLDER_PREFIX = '__deferred_promise:';
39
+ function serializeDeferredError(error) {
40
+ if ('development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV) return {
41
+ message: 'Unexpected Server Error',
42
+ stack: void 0
43
+ };
44
+ return {
45
+ message: error.message,
46
+ stack: error.stack
47
+ };
48
+ }
39
49
  function createDeferredReadableStream(deferredData, signal) {
40
50
  const encoder = new external_util_namespaceObject.TextEncoder();
41
51
  const stream = new ReadableStream({
@@ -62,10 +72,7 @@ function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
62
72
  if ('_error' in promise) {
63
73
  const { _error } = promise;
64
74
  controller.enqueue(encoder.encode(`error:${(0, node_namespaceObject.serializeJson)({
65
- [settledKey]: {
66
- message: _error.message,
67
- stack: _error.stack
68
- }
75
+ [settledKey]: serializeDeferredError(_error)
69
76
  })}\n\n`));
70
77
  } else controller.enqueue(encoder.encode(`data:${JSON.stringify({
71
78
  [settledKey]: promise._data ?? null
@@ -1,12 +1,28 @@
1
1
  import { isRouteErrorResponse } from "@modern-js/runtime-utils/router";
2
2
  function sanitizeError(error) {
3
3
  if (error instanceof Error && 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV) {
4
- const sanitized = new Error(error.message || 'Unexpected Server Error');
4
+ const sanitized = new Error('Unexpected Server Error');
5
5
  sanitized.stack = void 0;
6
6
  return sanitized;
7
7
  }
8
8
  return error;
9
9
  }
10
+ function shouldRedactRouteErrorResponse(error) {
11
+ return error.status >= 500 && 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV;
12
+ }
13
+ function serializeRouteErrorResponse(error) {
14
+ if (!shouldRedactRouteErrorResponse(error)) return {
15
+ ...error,
16
+ __type: 'RouteErrorResponse'
17
+ };
18
+ return {
19
+ status: error.status,
20
+ statusText: 'Internal Server Error',
21
+ internal: error.internal,
22
+ data: 'Unexpected Server Error',
23
+ __type: 'RouteErrorResponse'
24
+ };
25
+ }
10
26
  function sanitizeErrors(errors) {
11
27
  return Object.entries(errors).reduce((acc, [routeId, error])=>Object.assign(acc, {
12
28
  [routeId]: sanitizeError(error)
@@ -23,10 +39,7 @@ function serializeErrors(errors) {
23
39
  if (!errors) return null;
24
40
  const entries = Object.entries(errors);
25
41
  const serialized = {};
26
- for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = {
27
- ...val,
28
- __type: 'RouteErrorResponse'
29
- };
42
+ for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = serializeRouteErrorResponse(val);
30
43
  else if (val instanceof Error) {
31
44
  const sanitized = sanitizeError(val);
32
45
  serialized[key] = {
@@ -41,9 +54,10 @@ function serializeErrors(errors) {
41
54
  return serialized;
42
55
  }
43
56
  function errorResponseToJson(errorResponse) {
57
+ const serializedErrorResponse = serializeRouteErrorResponse(errorResponse);
44
58
  return Response.json(serializeError(errorResponse.error || new Error('Unexpected Server Error')), {
45
59
  status: errorResponse.status,
46
- statusText: errorResponse.statusText,
60
+ statusText: serializedErrorResponse.statusText,
47
61
  headers: {
48
62
  'X-Modernjs-Error': 'yes'
49
63
  }
@@ -4,6 +4,16 @@ function isTrackedPromise(value) {
4
4
  return null != value && 'function' == typeof value.then && true === value._tracked;
5
5
  }
6
6
  const DEFERRED_VALUE_PLACEHOLDER_PREFIX = '__deferred_promise:';
7
+ function serializeDeferredError(error) {
8
+ if ('development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV) return {
9
+ message: 'Unexpected Server Error',
10
+ stack: void 0
11
+ };
12
+ return {
13
+ message: error.message,
14
+ stack: error.stack
15
+ };
16
+ }
7
17
  function createDeferredReadableStream(deferredData, signal) {
8
18
  const encoder = new TextEncoder();
9
19
  const stream = new ReadableStream({
@@ -30,10 +40,7 @@ function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
30
40
  if ('_error' in promise) {
31
41
  const { _error } = promise;
32
42
  controller.enqueue(encoder.encode(`error:${serializeJson({
33
- [settledKey]: {
34
- message: _error.message,
35
- stack: _error.stack
36
- }
43
+ [settledKey]: serializeDeferredError(_error)
37
44
  })}\n\n`));
38
45
  } else controller.enqueue(encoder.encode(`data:${JSON.stringify({
39
46
  [settledKey]: promise._data ?? null
@@ -2,12 +2,28 @@ import "node:module";
2
2
  import { isRouteErrorResponse } from "@modern-js/runtime-utils/router";
3
3
  function sanitizeError(error) {
4
4
  if (error instanceof Error && 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV) {
5
- const sanitized = new Error(error.message || 'Unexpected Server Error');
5
+ const sanitized = new Error('Unexpected Server Error');
6
6
  sanitized.stack = void 0;
7
7
  return sanitized;
8
8
  }
9
9
  return error;
10
10
  }
11
+ function shouldRedactRouteErrorResponse(error) {
12
+ return error.status >= 500 && 'development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV;
13
+ }
14
+ function serializeRouteErrorResponse(error) {
15
+ if (!shouldRedactRouteErrorResponse(error)) return {
16
+ ...error,
17
+ __type: 'RouteErrorResponse'
18
+ };
19
+ return {
20
+ status: error.status,
21
+ statusText: 'Internal Server Error',
22
+ internal: error.internal,
23
+ data: 'Unexpected Server Error',
24
+ __type: 'RouteErrorResponse'
25
+ };
26
+ }
11
27
  function sanitizeErrors(errors) {
12
28
  return Object.entries(errors).reduce((acc, [routeId, error])=>Object.assign(acc, {
13
29
  [routeId]: sanitizeError(error)
@@ -24,10 +40,7 @@ function serializeErrors(errors) {
24
40
  if (!errors) return null;
25
41
  const entries = Object.entries(errors);
26
42
  const serialized = {};
27
- for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = {
28
- ...val,
29
- __type: 'RouteErrorResponse'
30
- };
43
+ for (const [key, val] of entries)if (isRouteErrorResponse(val)) serialized[key] = serializeRouteErrorResponse(val);
31
44
  else if (val instanceof Error) {
32
45
  const sanitized = sanitizeError(val);
33
46
  serialized[key] = {
@@ -42,9 +55,10 @@ function serializeErrors(errors) {
42
55
  return serialized;
43
56
  }
44
57
  function errorResponseToJson(errorResponse) {
58
+ const serializedErrorResponse = serializeRouteErrorResponse(errorResponse);
45
59
  return Response.json(serializeError(errorResponse.error || new Error('Unexpected Server Error')), {
46
60
  status: errorResponse.status,
47
- statusText: errorResponse.statusText,
61
+ statusText: serializedErrorResponse.statusText,
48
62
  headers: {
49
63
  'X-Modernjs-Error': 'yes'
50
64
  }
@@ -5,6 +5,16 @@ function isTrackedPromise(value) {
5
5
  return null != value && 'function' == typeof value.then && true === value._tracked;
6
6
  }
7
7
  const DEFERRED_VALUE_PLACEHOLDER_PREFIX = '__deferred_promise:';
8
+ function serializeDeferredError(error) {
9
+ if ('development' !== process.env.NODE_ENV && 'test' !== process.env.NODE_ENV) return {
10
+ message: 'Unexpected Server Error',
11
+ stack: void 0
12
+ };
13
+ return {
14
+ message: error.message,
15
+ stack: error.stack
16
+ };
17
+ }
8
18
  function createDeferredReadableStream(deferredData, signal) {
9
19
  const encoder = new TextEncoder();
10
20
  const stream = new ReadableStream({
@@ -31,10 +41,7 @@ function enqueueTrackedPromise(controller, encoder, settledKey, promise) {
31
41
  if ('_error' in promise) {
32
42
  const { _error } = promise;
33
43
  controller.enqueue(encoder.encode(`error:${serializeJson({
34
- [settledKey]: {
35
- message: _error.message,
36
- stack: _error.stack
37
- }
44
+ [settledKey]: serializeDeferredError(_error)
38
45
  })}\n\n`));
39
46
  } else controller.enqueue(encoder.encode(`data:${JSON.stringify({
40
47
  [settledKey]: promise._data ?? null
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.2.0-ultramodern.120",
20
+ "version": "3.2.0-ultramodern.121",
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
@@ -46,8 +46,8 @@
46
46
  "dependencies": {
47
47
  "@swc/helpers": "^0.5.23",
48
48
  "path-to-regexp": "^8.4.2",
49
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.2.0-ultramodern.120",
50
- "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.2.0-ultramodern.120"
49
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.2.0-ultramodern.121",
50
+ "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.2.0-ultramodern.121"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@rsbuild/core": "2.0.11",
@@ -59,8 +59,8 @@
59
59
  "react": "^19.2.7",
60
60
  "react-dom": "^19.2.7",
61
61
  "supertest": "^7.2.2",
62
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.2.0-ultramodern.120",
63
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.2.0-ultramodern.120",
62
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.2.0-ultramodern.121",
63
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.2.0-ultramodern.121",
64
64
  "@scripts/rstest-config": "2.66.0"
65
65
  },
66
66
  "peerDependencies": {