inngest 1.9.6 → 1.9.7

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/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # inngest
2
2
 
3
+ ## 1.9.7
4
+
5
+ ### Patch Changes
6
+
7
+ - cec3265: Harden error serialization to ensure uncaught exceptions don't slip through during function runs
8
+
3
9
  ## 1.9.6
4
10
 
5
11
  ### Patch Changes
@@ -1,17 +1,15 @@
1
+ import { type SerializedError as CjsSerializedError } from "serialize-error-cjs";
1
2
  declare const SERIALIZED_KEY = "__serialized";
2
3
  declare const SERIALIZED_VALUE = true;
3
- export interface SerializedError {
4
+ export interface SerializedError extends Readonly<CjsSerializedError> {
4
5
  readonly [SERIALIZED_KEY]: typeof SERIALIZED_VALUE;
5
- readonly name: string;
6
- readonly message: string;
7
- readonly stack: string;
8
6
  }
9
7
  /**
10
- * Serialise an error to a plain object.
8
+ * Serialise an error to a serialized JSON string.
11
9
  *
12
10
  * Errors do not serialise nicely to JSON, so we use this function to convert
13
- * them to a plain object. Doing this is also non-trivial for some errors, so
14
- * we use the `serialize-error` package to do it for us.
11
+ * them to a serialized JSON string. Doing this is also non-trivial for some
12
+ * errors, so we use the `serialize-error` package to do it for us.
15
13
  *
16
14
  * See {@link https://www.npmjs.com/package/serialize-error}
17
15
  *
@@ -23,9 +21,10 @@ export interface SerializedError {
23
21
  */
24
22
  export declare const serializeError: (subject: unknown) => SerializedError;
25
23
  /**
26
- * Check if an object is a serialised error created by {@link serializeError}.
24
+ * Check if an object or a string is a serialised error created by
25
+ * {@link serializeError}.
27
26
  */
28
- export declare const isSerializedError: (value: unknown) => boolean;
27
+ export declare const isSerializedError: (value: unknown) => SerializedError | undefined;
29
28
  /**
30
29
  * Deserialise an error created by {@link serializeError}.
31
30
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,cAAc,iBAAiB,CAAC;AACtC,QAAA,MAAM,gBAAgB,OAAO,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,YAAa,OAAO,KAAG,eASjD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,UAAW,OAAO,KAAG,OAWlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAAa,QAAQ,eAAe,CAAC,KAAG,KAwBpE,CAAC;AAEF,oBAAY,OAAO;IACjB,iCAAiC,sCAAsC;IACvE,gCAAgC,qCAAqC;IACrE,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,8FAUrB,WAAW,KAAG,MAqDhB,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAAU,OAAO,WAatD,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAMnC,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,eAAe,IAAI,kBAAkB,EAC3C,MAAM,qBAAqB,CAAC;AAM7B,QAAA,MAAM,cAAc,iBAAiB,CAAC;AACtC,QAAA,MAAM,gBAAgB,OAAO,CAAC;AAkB9B,MAAM,WAAW,eAAgB,SAAQ,QAAQ,CAAC,kBAAkB,CAAC;IACnE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,gBAAgB,CAAC;CACpD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,cAAc,YAAa,OAAO,KAAG,eAuDjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UACrB,OAAO,KACb,eAAe,GAAG,SAiCpB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAAa,QAAQ,eAAe,CAAC,KAAG,KAwBpE,CAAC;AAEF,oBAAY,OAAO;IACjB,iCAAiC,sCAAsC;IACvE,gCAAgC,qCAAqC;IACrE,qBAAqB,0BAA0B;IAC/C,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE7B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,8FAUrB,WAAW,KAAG,MAqDhB,CAAC;AAEF,eAAO,MAAM,yBAAyB,SAAU,OAAO,WAatD,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAMnC,CAAC"}
package/helpers/errors.js CHANGED
@@ -5,15 +5,30 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fixEventKeyMissingSteps = exports.functionStoppedRunningErr = exports.prettyError = exports.ErrCode = exports.deserializeError = exports.isSerializedError = exports.serializeError = void 0;
7
7
  const chalk_1 = __importDefault(require("chalk"));
8
+ const json_stringify_safe_1 = __importDefault(require("json-stringify-safe"));
8
9
  const serialize_error_cjs_1 = require("serialize-error-cjs");
10
+ const zod_1 = require("zod");
11
+ const NonRetriableError_1 = require("../components/NonRetriableError");
9
12
  const SERIALIZED_KEY = "__serialized";
10
13
  const SERIALIZED_VALUE = true;
11
14
  /**
12
- * Serialise an error to a plain object.
15
+ * Add first-class support for certain errors that we control, in addition to
16
+ * built-in errors such as `TypeError`.
17
+ *
18
+ * Adding these allows these non-standard errors to be correctly serialized,
19
+ * sent to Inngest, then deserialized back into the correct error type for users
20
+ * to react to correctly.
21
+ *
22
+ * Note that these errors only support `message?: string | undefined` as the
23
+ * input; more custom errors are not supported with this current strategy.
24
+ */
25
+ serialize_error_cjs_1.errorConstructors.set("NonRetriableError", NonRetriableError_1.NonRetriableError);
26
+ /**
27
+ * Serialise an error to a serialized JSON string.
13
28
  *
14
29
  * Errors do not serialise nicely to JSON, so we use this function to convert
15
- * them to a plain object. Doing this is also non-trivial for some errors, so
16
- * we use the `serialize-error` package to do it for us.
30
+ * them to a serialized JSON string. Doing this is also non-trivial for some
31
+ * errors, so we use the `serialize-error` package to do it for us.
17
32
  *
18
33
  * See {@link https://www.npmjs.com/package/serialize-error}
19
34
  *
@@ -24,24 +39,87 @@ const SERIALIZED_VALUE = true;
24
39
  * Will not reserialise existing serialised errors.
25
40
  */
26
41
  const serializeError = (subject) => {
27
- if ((0, exports.isSerializedError)(subject)) {
28
- return subject;
42
+ try {
43
+ // Try to understand if this is already done.
44
+ // Will handle stringified errors.
45
+ const existingSerializedError = (0, exports.isSerializedError)(subject);
46
+ if (existingSerializedError) {
47
+ return existingSerializedError;
48
+ }
49
+ if (typeof subject === "object" && subject !== null) {
50
+ // Is an object, so let's try and serialize it.
51
+ const serializedErr = (0, serialize_error_cjs_1.serializeError)(subject);
52
+ // Serialization can succeed but assign no name or message, so we'll
53
+ // map over the result here to ensure we have everything.
54
+ // We'll just stringify the entire subject for the message, as this at
55
+ // least provides some context for the user.
56
+ return {
57
+ name: serializedErr.name || "Error",
58
+ message: serializedErr.message ||
59
+ (0, json_stringify_safe_1.default)(subject) ||
60
+ "Unknown error; error serialization could not find a message.",
61
+ stack: serializedErr.stack || "",
62
+ [SERIALIZED_KEY]: SERIALIZED_VALUE,
63
+ };
64
+ }
65
+ // If it's not an object, it's hard to parse this as an Error. In this case,
66
+ // we'll throw an error to start attempting backup strategies.
67
+ throw new Error("Error is not an object; strange throw value.");
68
+ }
69
+ catch (err) {
70
+ try {
71
+ // If serialization fails, fall back to a regular Error and use the
72
+ // original object as the message for an Error. We don't know what this
73
+ // object looks like, so we can't do anything else with it.
74
+ return Object.assign(Object.assign({}, (0, exports.serializeError)(new Error(typeof subject === "string" ? subject : (0, json_stringify_safe_1.default)(subject)))), { [SERIALIZED_KEY]: SERIALIZED_VALUE });
75
+ }
76
+ catch (err) {
77
+ // If this failed, then stringifying the object also failed, so we'll just
78
+ // return a completely generic error.
79
+ // Failing to stringify the object is very unlikely.
80
+ return {
81
+ name: "Could not serialize source error",
82
+ message: "Serializing the source error failed.",
83
+ stack: "",
84
+ [SERIALIZED_KEY]: SERIALIZED_VALUE,
85
+ };
86
+ }
29
87
  }
30
- return Object.assign(Object.assign({}, (0, serialize_error_cjs_1.serializeError)(subject)), { [SERIALIZED_KEY]: SERIALIZED_VALUE });
31
88
  };
32
89
  exports.serializeError = serializeError;
33
90
  /**
34
- * Check if an object is a serialised error created by {@link serializeError}.
91
+ * Check if an object or a string is a serialised error created by
92
+ * {@link serializeError}.
35
93
  */
36
94
  const isSerializedError = (value) => {
37
95
  try {
38
- return (Object.prototype.hasOwnProperty.call(value, SERIALIZED_KEY) &&
39
- // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
40
- value[SERIALIZED_KEY] ===
41
- SERIALIZED_VALUE);
96
+ if (typeof value === "string") {
97
+ const parsed = zod_1.z
98
+ .object({
99
+ [SERIALIZED_KEY]: zod_1.z.literal(SERIALIZED_VALUE),
100
+ name: zod_1.z.enum([...serialize_error_cjs_1.errorConstructors.keys()]),
101
+ message: zod_1.z.string(),
102
+ stack: zod_1.z.string(),
103
+ })
104
+ .passthrough()
105
+ .safeParse(JSON.parse(value));
106
+ if (parsed.success) {
107
+ return parsed.data;
108
+ }
109
+ }
110
+ if (typeof value === "object" && value !== null) {
111
+ const objIsSerializedErr = Object.prototype.hasOwnProperty.call(value, SERIALIZED_KEY) &&
112
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
113
+ value[SERIALIZED_KEY] ===
114
+ SERIALIZED_VALUE;
115
+ if (objIsSerializedErr) {
116
+ return value;
117
+ }
118
+ }
42
119
  }
43
120
  catch (_a) {
44
- return false;
121
+ // no-op; we'll return undefined if parsing failed, as it isn't a serialized
122
+ // error
45
123
  }
46
124
  };
47
125
  exports.isSerializedError = isSerializedError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/helpers/errors.ts"],"names":[],"mappings":"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"}