@dxos/errors 0.1.58-main.ffbb8a1 → 0.7.5-labs.35b4b42

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/README.md CHANGED
@@ -1,21 +1 @@
1
- # @dxos/errors
2
-
3
- Error definitions and utilities.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- pnpm i @dxos/errors
9
- ```
10
-
11
- ## DXOS Resources
12
-
13
- - [Website](https://dxos.org)
14
- - [Developer Documentation](https://docs.dxos.org)
15
- - Talk to us on [Discord](https://discord.gg/eXVfryv3sW)
16
-
17
- ## Contributions
18
-
19
- Your ideas, issues, and code are most welcome. Please take a look at our [community code of conduct](https://github.com/dxos/dxos/blob/main/CODE_OF_CONDUCT.md), the [issue guide](https://github.com/dxos/dxos/blob/main/CONTRIBUTING.md#submitting-issues), and the [PR contribution guide](https://github.com/dxos/dxos/blob/main/CONTRIBUTING.md#submitting-prs).
20
-
21
- License: [MIT](./LICENSE) Copyright 2022 © DXOS
1
+ # errors
@@ -1,54 +1,54 @@
1
- // packages/sdk/errors/src/errors.ts
2
- var BaseError = class extends Error {
3
- constructor(code, message, context) {
4
- super(message ? `${code}: ${message}` : code.toString());
5
- this.code = code;
6
- this.context = context;
1
+ // packages/common/errors/src/base.ts
2
+ var BaseError = class _BaseError extends Error {
3
+ static extend(code) {
4
+ return class extends _BaseError {
5
+ static {
6
+ this.code = code;
7
+ }
8
+ static is(error) {
9
+ return typeof error === "object" && error !== null && "code" in error && error.code === code;
10
+ }
11
+ constructor(message, options) {
12
+ super(code, message, options);
13
+ }
14
+ };
15
+ }
16
+ #code;
17
+ #context;
18
+ constructor(code, message, options) {
19
+ super(message, options);
20
+ this.#code = code;
21
+ this.#context = options?.context ?? {};
7
22
  Object.setPrototypeOf(this, new.target.prototype);
8
23
  }
9
- };
10
- var ApiError = class extends BaseError {
11
- };
12
- var SystemError = class extends BaseError {
13
- };
14
- var CancelledError = class extends SystemError {
15
- constructor(message, context) {
16
- super("CANCELLED", message, context);
24
+ get name() {
25
+ return this.#code;
17
26
  }
18
- };
19
- var InvalidConfigError = class extends ApiError {
20
- constructor(message, context) {
21
- super("INVALID_CONFIG", message, context);
27
+ get code() {
28
+ return this.#code;
22
29
  }
23
- };
24
- var RemoteServiceConnectionError = class extends ApiError {
25
- constructor(message, context) {
26
- super("REMOTE_SERVICE_CONNECTION_ERROR", message, context);
30
+ get context() {
31
+ return this.#context;
27
32
  }
28
33
  };
29
- var RemoteServiceConnectionTimeout = class extends ApiError {
30
- constructor(message, context) {
31
- super("REMOTE_SERVICE_CONNECTION_TIMEOUT", message, context);
32
- }
34
+
35
+ // packages/common/errors/src/errors.ts
36
+ var TimeoutError = class extends BaseError.extend("TIMEOUT") {
33
37
  };
34
- var DataCorruptionError = class extends SystemError {
35
- constructor(message, context) {
36
- super("DATA_CORRUPTION", message, context);
37
- }
38
+ var AbortedError = class extends BaseError.extend("ABORTED") {
38
39
  };
39
- var InvalidInvitationExtensionRoleError = class extends SystemError {
40
- constructor(message, context) {
41
- super("INVALID_INVITATION_EXTENSION_ROLE", message, context);
42
- }
40
+ var UnimplementedError = class extends BaseError.extend("UNIMPLEMENTED") {
41
+ };
42
+ var ApiError = class extends BaseError.extend("API_ERROR") {
43
+ };
44
+ var SystemError = class extends BaseError.extend("SYSTEM_ERROR") {
43
45
  };
44
46
  export {
47
+ AbortedError,
45
48
  ApiError,
46
- CancelledError,
47
- DataCorruptionError,
48
- InvalidConfigError,
49
- InvalidInvitationExtensionRoleError,
50
- RemoteServiceConnectionError,
51
- RemoteServiceConnectionTimeout,
52
- SystemError
49
+ BaseError,
50
+ SystemError,
51
+ TimeoutError,
52
+ UnimplementedError
53
53
  };
54
54
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/errors.ts"],
4
- "sourcesContent": ["//\n// Copyright 2021 DXOS.org\n//\n\n/**\n * NOTE: Messages should be sentences (Start with a capital letter and end with a period).\n * Errors can optionally include a JSON context object.\n */\nclass BaseError extends Error {\n constructor(readonly code: string, message?: string, readonly context?: any) {\n super(message ? `${code}: ${message}` : code.toString());\n // NOTE: Restores prototype chain (https://stackoverflow.com/a/48342359).\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/**\n * User facing API Errors.\n * E.g., something was misconfigured.\n */\nexport class ApiError extends BaseError {}\n\n/**\n * Internal system errors.\n * E.g., unexpected/unrecoverable runtime error.\n */\nexport class SystemError extends BaseError {}\n\nexport class CancelledError extends SystemError {\n constructor(message?: string, context?: any) {\n super('CANCELLED', message, context);\n }\n}\n\nexport class InvalidConfigError extends ApiError {\n constructor(message: string, context?: any) {\n super('INVALID_CONFIG', message, context);\n }\n}\n\n/**\n * Explicit failure to connect with remote client services.\n */\nexport class RemoteServiceConnectionError extends ApiError {\n constructor(message?: string, context?: any) {\n super('REMOTE_SERVICE_CONNECTION_ERROR', message, context);\n }\n}\n\n/**\n * Failed to open a connection to remote client services.\n */\nexport class RemoteServiceConnectionTimeout extends ApiError {\n constructor(message?: string, context?: any) {\n super('REMOTE_SERVICE_CONNECTION_TIMEOUT', message, context);\n }\n}\n\nexport class DataCorruptionError extends SystemError {\n constructor(message?: string, context?: any) {\n super('DATA_CORRUPTION', message, context);\n }\n}\n\nexport class InvalidInvitationExtensionRoleError extends SystemError {\n constructor(message?: string, context?: any) {\n super('INVALID_INVITATION_EXTENSION_ROLE', message, context);\n }\n}\n"],
5
- "mappings": ";AAQA,IAAMA,YAAN,cAAwBC,MAAAA;EACtBC,YAAqBC,MAAcC,SAA2BC,SAAe;AAC3E,UAAMD,UAAU,GAAGD,IAAAA,KAASC,OAAAA,KAAYD,KAAKG,SAAQ,CAAA;gBADlCH;mBAAyCE;AAG5DE,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;AACF;AAMO,IAAMC,WAAN,cAAuBV,UAAAA;AAAW;AAMlC,IAAMW,cAAN,cAA0BX,UAAAA;AAAW;AAErC,IAAMY,iBAAN,cAA6BD,YAAAA;EAClCT,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,aAAaD,SAASC,OAAAA;EAC9B;AACF;AAEO,IAAMQ,qBAAN,cAAiCH,SAAAA;EACtCR,YAAYE,SAAiBC,SAAe;AAC1C,UAAM,kBAAkBD,SAASC,OAAAA;EACnC;AACF;AAKO,IAAMS,+BAAN,cAA2CJ,SAAAA;EAChDR,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,mCAAmCD,SAASC,OAAAA;EACpD;AACF;AAKO,IAAMU,iCAAN,cAA6CL,SAAAA;EAClDR,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,qCAAqCD,SAASC,OAAAA;EACtD;AACF;AAEO,IAAMW,sBAAN,cAAkCL,YAAAA;EACvCT,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,mBAAmBD,SAASC,OAAAA;EACpC;AACF;AAEO,IAAMY,sCAAN,cAAkDN,YAAAA;EACvDT,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,qCAAqCD,SAASC,OAAAA;EACtD;AACF;",
6
- "names": ["BaseError", "Error", "constructor", "code", "message", "context", "toString", "Object", "setPrototypeOf", "prototype", "ApiError", "SystemError", "CancelledError", "InvalidConfigError", "RemoteServiceConnectionError", "RemoteServiceConnectionTimeout", "DataCorruptionError", "InvalidInvitationExtensionRoleError"]
3
+ "sources": ["../../../src/base.ts", "../../../src/errors.ts"],
4
+ "sourcesContent": ["export type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\nexport class BaseError extends Error {\n static extend(code: string) {\n return class extends BaseError {\n static code = code;\n\n static is(error: unknown): error is BaseError {\n return typeof error === 'object' && error !== null && 'code' in error && error.code === code;\n }\n\n constructor(message: string, options?: BaseErrorOptions) {\n super(code, message, options);\n }\n };\n }\n\n #code: string;\n #context: Record<string, unknown>;\n\n constructor(code: string, message: string, options?: BaseErrorOptions) {\n super(message, options);\n\n this.#code = code;\n this.#context = options?.context ?? {};\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n override get name() {\n return this.#code;\n }\n\n get code() {\n return this.#code;\n }\n\n get context() {\n return this.#context;\n }\n}\n", "import { BaseError } from './base';\n\nexport class TimeoutError extends BaseError.extend('TIMEOUT') {}\n\nexport class AbortedError extends BaseError.extend('ABORTED') {}\n\nexport class UnimplementedError extends BaseError.extend('UNIMPLEMENTED') {}\n\nexport class ApiError extends BaseError.extend('API_ERROR') {}\n\nexport class SystemError extends BaseError.extend('SYSTEM_ERROR') {}\n"],
5
+ "mappings": ";AAaO,IAAMA,YAAN,MAAMA,mBAAkBC,MAAAA;EAC7B,OAAOC,OAAOC,MAAc;AAC1B,WAAO,cAAcH,WAAAA;MACnB;aAAOG,OAAOA;;MAEd,OAAOC,GAAGC,OAAoC;AAC5C,eAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,UAAUA,SAASA,MAAMF,SAASA;MAC1F;MAEAG,YAAYC,SAAiBC,SAA4B;AACvD,cAAML,MAAMI,SAASC,OAAAA;MACvB;IACF;EACF;EAEA;EACA;EAEAF,YAAYH,MAAcI,SAAiBC,SAA4B;AACrE,UAAMD,SAASC,OAAAA;AAEf,SAAK,QAAQL;AACb,SAAK,WAAWK,SAASC,WAAW,CAAC;AACrCC,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;EAEA,IAAaC,OAAO;AAClB,WAAO,KAAK;EACd;EAEA,IAAIV,OAAO;AACT,WAAO,KAAK;EACd;EAEA,IAAIM,UAAU;AACZ,WAAO,KAAK;EACd;AACF;;;AChDO,IAAMK,eAAN,cAA2BC,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAMC,eAAN,cAA2BF,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAME,qBAAN,cAAiCH,UAAUC,OAAO,eAAA,EAAA;AAAkB;AAEpE,IAAMG,WAAN,cAAuBJ,UAAUC,OAAO,WAAA,EAAA;AAAc;AAEtD,IAAMI,cAAN,cAA0BL,UAAUC,OAAO,cAAA,EAAA;AAAiB;",
6
+ "names": ["BaseError", "Error", "extend", "code", "is", "error", "constructor", "message", "options", "context", "Object", "setPrototypeOf", "prototype", "name", "TimeoutError", "BaseError", "extend", "AbortedError", "UnimplementedError", "ApiError", "SystemError"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/errors/src/errors.ts":{"bytes":6480,"imports":[],"format":"esm"},"packages/sdk/errors/src/index.ts":{"bytes":457,"imports":[{"path":"packages/sdk/errors/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"packages/sdk/errors/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3241},"packages/sdk/errors/dist/lib/browser/index.mjs":{"imports":[],"exports":["ApiError","CancelledError","DataCorruptionError","InvalidConfigError","InvalidInvitationExtensionRoleError","RemoteServiceConnectionError","RemoteServiceConnectionTimeout","SystemError"],"entryPoint":"packages/sdk/errors/src/index.ts","inputs":{"packages/sdk/errors/src/errors.ts":{"bytesInOutput":1267},"packages/sdk/errors/src/index.ts":{"bytesInOutput":0}},"bytes":1545}}}
1
+ {"inputs":{"packages/common/errors/src/base.ts":{"bytes":3711,"imports":[],"format":"esm"},"packages/common/errors/src/errors.ts":{"bytes":1666,"imports":[{"path":"packages/common/errors/src/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/errors/src/index.ts":{"bytes":439,"imports":[{"path":"packages/common/errors/src/base.ts","kind":"import-statement","original":"./base"},{"path":"packages/common/errors/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"packages/common/errors/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2700},"packages/common/errors/dist/lib/browser/index.mjs":{"imports":[],"exports":["AbortedError","ApiError","BaseError","SystemError","TimeoutError","UnimplementedError"],"entryPoint":"packages/common/errors/src/index.ts","inputs":{"packages/common/errors/src/base.ts":{"bytesInOutput":742},"packages/common/errors/src/index.ts":{"bytesInOutput":0},"packages/common/errors/src/errors.ts":{"bytesInOutput":344}},"bytes":1305}}}
@@ -16,73 +16,65 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // packages/sdk/errors/src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
19
+ var node_exports = {};
20
+ __export(node_exports, {
21
+ AbortedError: () => AbortedError,
23
22
  ApiError: () => ApiError,
24
- CancelledError: () => CancelledError,
25
- DataCorruptionError: () => DataCorruptionError,
26
- InvalidConfigError: () => InvalidConfigError,
27
- InvalidInvitationExtensionRoleError: () => InvalidInvitationExtensionRoleError,
28
- RemoteServiceConnectionError: () => RemoteServiceConnectionError,
29
- RemoteServiceConnectionTimeout: () => RemoteServiceConnectionTimeout,
30
- SystemError: () => SystemError
23
+ BaseError: () => BaseError,
24
+ SystemError: () => SystemError,
25
+ TimeoutError: () => TimeoutError,
26
+ UnimplementedError: () => UnimplementedError
31
27
  });
32
- module.exports = __toCommonJS(src_exports);
33
-
34
- // packages/sdk/errors/src/errors.ts
35
- var BaseError = class extends Error {
36
- constructor(code, message, context) {
37
- super(message ? `${code}: ${message}` : code.toString());
38
- this.code = code;
39
- this.context = context;
28
+ module.exports = __toCommonJS(node_exports);
29
+ var BaseError = class _BaseError extends Error {
30
+ static extend(code) {
31
+ return class extends _BaseError {
32
+ static {
33
+ this.code = code;
34
+ }
35
+ static is(error) {
36
+ return typeof error === "object" && error !== null && "code" in error && error.code === code;
37
+ }
38
+ constructor(message, options) {
39
+ super(code, message, options);
40
+ }
41
+ };
42
+ }
43
+ #code;
44
+ #context;
45
+ constructor(code, message, options) {
46
+ super(message, options);
47
+ this.#code = code;
48
+ this.#context = options?.context ?? {};
40
49
  Object.setPrototypeOf(this, new.target.prototype);
41
50
  }
42
- };
43
- var ApiError = class extends BaseError {
44
- };
45
- var SystemError = class extends BaseError {
46
- };
47
- var CancelledError = class extends SystemError {
48
- constructor(message, context) {
49
- super("CANCELLED", message, context);
51
+ get name() {
52
+ return this.#code;
50
53
  }
51
- };
52
- var InvalidConfigError = class extends ApiError {
53
- constructor(message, context) {
54
- super("INVALID_CONFIG", message, context);
54
+ get code() {
55
+ return this.#code;
55
56
  }
56
- };
57
- var RemoteServiceConnectionError = class extends ApiError {
58
- constructor(message, context) {
59
- super("REMOTE_SERVICE_CONNECTION_ERROR", message, context);
57
+ get context() {
58
+ return this.#context;
60
59
  }
61
60
  };
62
- var RemoteServiceConnectionTimeout = class extends ApiError {
63
- constructor(message, context) {
64
- super("REMOTE_SERVICE_CONNECTION_TIMEOUT", message, context);
65
- }
61
+ var TimeoutError = class extends BaseError.extend("TIMEOUT") {
66
62
  };
67
- var DataCorruptionError = class extends SystemError {
68
- constructor(message, context) {
69
- super("DATA_CORRUPTION", message, context);
70
- }
63
+ var AbortedError = class extends BaseError.extend("ABORTED") {
71
64
  };
72
- var InvalidInvitationExtensionRoleError = class extends SystemError {
73
- constructor(message, context) {
74
- super("INVALID_INVITATION_EXTENSION_ROLE", message, context);
75
- }
65
+ var UnimplementedError = class extends BaseError.extend("UNIMPLEMENTED") {
66
+ };
67
+ var ApiError = class extends BaseError.extend("API_ERROR") {
68
+ };
69
+ var SystemError = class extends BaseError.extend("SYSTEM_ERROR") {
76
70
  };
77
71
  // Annotate the CommonJS export names for ESM import in node:
78
72
  0 && (module.exports = {
73
+ AbortedError,
79
74
  ApiError,
80
- CancelledError,
81
- DataCorruptionError,
82
- InvalidConfigError,
83
- InvalidInvitationExtensionRoleError,
84
- RemoteServiceConnectionError,
85
- RemoteServiceConnectionTimeout,
86
- SystemError
75
+ BaseError,
76
+ SystemError,
77
+ TimeoutError,
78
+ UnimplementedError
87
79
  });
88
80
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/index.ts", "../../../src/errors.ts"],
4
- "sourcesContent": ["//\n// Copyright 2022 DXOS.org\n//\n\nexport * from './errors';\n", "//\n// Copyright 2021 DXOS.org\n//\n\n/**\n * NOTE: Messages should be sentences (Start with a capital letter and end with a period).\n * Errors can optionally include a JSON context object.\n */\nclass BaseError extends Error {\n constructor(readonly code: string, message?: string, readonly context?: any) {\n super(message ? `${code}: ${message}` : code.toString());\n // NOTE: Restores prototype chain (https://stackoverflow.com/a/48342359).\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\n/**\n * User facing API Errors.\n * E.g., something was misconfigured.\n */\nexport class ApiError extends BaseError {}\n\n/**\n * Internal system errors.\n * E.g., unexpected/unrecoverable runtime error.\n */\nexport class SystemError extends BaseError {}\n\nexport class CancelledError extends SystemError {\n constructor(message?: string, context?: any) {\n super('CANCELLED', message, context);\n }\n}\n\nexport class InvalidConfigError extends ApiError {\n constructor(message: string, context?: any) {\n super('INVALID_CONFIG', message, context);\n }\n}\n\n/**\n * Explicit failure to connect with remote client services.\n */\nexport class RemoteServiceConnectionError extends ApiError {\n constructor(message?: string, context?: any) {\n super('REMOTE_SERVICE_CONNECTION_ERROR', message, context);\n }\n}\n\n/**\n * Failed to open a connection to remote client services.\n */\nexport class RemoteServiceConnectionTimeout extends ApiError {\n constructor(message?: string, context?: any) {\n super('REMOTE_SERVICE_CONNECTION_TIMEOUT', message, context);\n }\n}\n\nexport class DataCorruptionError extends SystemError {\n constructor(message?: string, context?: any) {\n super('DATA_CORRUPTION', message, context);\n }\n}\n\nexport class InvalidInvitationExtensionRoleError extends SystemError {\n constructor(message?: string, context?: any) {\n super('INVALID_INVITATION_EXTENSION_ROLE', message, context);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;ACQA,IAAMA,YAAN,cAAwBC,MAAAA;EACtBC,YAAqBC,MAAcC,SAA2BC,SAAe;AAC3E,UAAMD,UAAU,GAAGD,IAAAA,KAASC,OAAAA,KAAYD,KAAKG,SAAQ,CAAA;gBADlCH;mBAAyCE;AAG5DE,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;AACF;AAMO,IAAMC,WAAN,cAAuBV,UAAAA;AAAW;AAMlC,IAAMW,cAAN,cAA0BX,UAAAA;AAAW;AAErC,IAAMY,iBAAN,cAA6BD,YAAAA;EAClCT,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,aAAaD,SAASC,OAAAA;EAC9B;AACF;AAEO,IAAMQ,qBAAN,cAAiCH,SAAAA;EACtCR,YAAYE,SAAiBC,SAAe;AAC1C,UAAM,kBAAkBD,SAASC,OAAAA;EACnC;AACF;AAKO,IAAMS,+BAAN,cAA2CJ,SAAAA;EAChDR,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,mCAAmCD,SAASC,OAAAA;EACpD;AACF;AAKO,IAAMU,iCAAN,cAA6CL,SAAAA;EAClDR,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,qCAAqCD,SAASC,OAAAA;EACtD;AACF;AAEO,IAAMW,sBAAN,cAAkCL,YAAAA;EACvCT,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,mBAAmBD,SAASC,OAAAA;EACpC;AACF;AAEO,IAAMY,sCAAN,cAAkDN,YAAAA;EACvDT,YAAYE,SAAkBC,SAAe;AAC3C,UAAM,qCAAqCD,SAASC,OAAAA;EACtD;AACF;",
6
- "names": ["BaseError", "Error", "constructor", "code", "message", "context", "toString", "Object", "setPrototypeOf", "prototype", "ApiError", "SystemError", "CancelledError", "InvalidConfigError", "RemoteServiceConnectionError", "RemoteServiceConnectionTimeout", "DataCorruptionError", "InvalidInvitationExtensionRoleError"]
3
+ "sources": ["../../../src/base.ts", "../../../src/errors.ts"],
4
+ "sourcesContent": ["export type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\nexport class BaseError extends Error {\n static extend(code: string) {\n return class extends BaseError {\n static code = code;\n\n static is(error: unknown): error is BaseError {\n return typeof error === 'object' && error !== null && 'code' in error && error.code === code;\n }\n\n constructor(message: string, options?: BaseErrorOptions) {\n super(code, message, options);\n }\n };\n }\n\n #code: string;\n #context: Record<string, unknown>;\n\n constructor(code: string, message: string, options?: BaseErrorOptions) {\n super(message, options);\n\n this.#code = code;\n this.#context = options?.context ?? {};\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n override get name() {\n return this.#code;\n }\n\n get code() {\n return this.#code;\n }\n\n get context() {\n return this.#context;\n }\n}\n", "import { BaseError } from './base';\n\nexport class TimeoutError extends BaseError.extend('TIMEOUT') {}\n\nexport class AbortedError extends BaseError.extend('ABORTED') {}\n\nexport class UnimplementedError extends BaseError.extend('UNIMPLEMENTED') {}\n\nexport class ApiError extends BaseError.extend('API_ERROR') {}\n\nexport class SystemError extends BaseError.extend('SYSTEM_ERROR') {}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,IAAMA,YAAN,MAAMA,mBAAkBC,MAAAA;EAC7B,OAAOC,OAAOC,MAAc;AAC1B,WAAO,cAAcH,WAAAA;MACnB,OAAA;aAAOG,OAAOA;;MAEd,OAAOC,GAAGC,OAAoC;AAC5C,eAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,UAAUA,SAASA,MAAMF,SAASA;MAC1F;MAEAG,YAAYC,SAAiBC,SAA4B;AACvD,cAAML,MAAMI,SAASC,OAAAA;MACvB;IACF;EACF;EAEA;EACA;EAEAF,YAAYH,MAAcI,SAAiBC,SAA4B;AACrE,UAAMD,SAASC,OAAAA;AAEf,SAAK,QAAQL;AACb,SAAK,WAAWK,SAASC,WAAW,CAAC;AACrCC,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;EAEA,IAAaC,OAAO;AAClB,WAAO,KAAK;EACd;EAEA,IAAIV,OAAO;AACT,WAAO,KAAK;EACd;EAEA,IAAIM,UAAU;AACZ,WAAO,KAAK;EACd;AACF;AChDO,IAAMK,eAAN,cAA2Bd,UAAUE,OAAO,SAAA,EAAA;AAAY;AAExD,IAAMa,eAAN,cAA2Bf,UAAUE,OAAO,SAAA,EAAA;AAAY;AAExD,IAAMc,qBAAN,cAAiChB,UAAUE,OAAO,eAAA,EAAA;AAAkB;AAEpE,IAAMe,WAAN,cAAuBjB,UAAUE,OAAO,WAAA,EAAA;AAAc;AAEtD,IAAMgB,cAAN,cAA0BlB,UAAUE,OAAO,cAAA,EAAA;AAAiB;",
6
+ "names": ["BaseError", "Error", "extend", "code", "is", "error", "constructor", "message", "options", "context", "Object", "setPrototypeOf", "prototype", "name", "TimeoutError", "AbortedError", "UnimplementedError", "ApiError", "SystemError"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/errors/src/errors.ts":{"bytes":6480,"imports":[],"format":"esm"},"packages/sdk/errors/src/index.ts":{"bytes":457,"imports":[{"path":"packages/sdk/errors/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"packages/sdk/errors/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3372},"packages/sdk/errors/dist/lib/node/index.cjs":{"imports":[],"exports":[],"entryPoint":"packages/sdk/errors/src/index.ts","inputs":{"packages/sdk/errors/src/index.ts":{"bytesInOutput":515},"packages/sdk/errors/src/errors.ts":{"bytesInOutput":1267}},"bytes":2976}}}
1
+ {"inputs":{"packages/common/errors/src/base.ts":{"bytes":3711,"imports":[],"format":"esm"},"packages/common/errors/src/errors.ts":{"bytes":1666,"imports":[{"path":"packages/common/errors/src/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/errors/src/index.ts":{"bytes":439,"imports":[{"path":"packages/common/errors/src/base.ts","kind":"import-statement","original":"./base"},{"path":"packages/common/errors/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"packages/common/errors/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2700},"packages/common/errors/dist/lib/node/index.cjs":{"imports":[],"exports":["AbortedError","ApiError","BaseError","SystemError","TimeoutError","UnimplementedError"],"entryPoint":"packages/common/errors/src/index.ts","inputs":{"packages/common/errors/src/base.ts":{"bytesInOutput":742},"packages/common/errors/src/index.ts":{"bytesInOutput":0},"packages/common/errors/src/errors.ts":{"bytesInOutput":344}},"bytes":1305}}}
@@ -0,0 +1,56 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // packages/common/errors/src/base.ts
4
+ var BaseError = class _BaseError extends Error {
5
+ static extend(code) {
6
+ return class extends _BaseError {
7
+ static {
8
+ this.code = code;
9
+ }
10
+ static is(error) {
11
+ return typeof error === "object" && error !== null && "code" in error && error.code === code;
12
+ }
13
+ constructor(message, options) {
14
+ super(code, message, options);
15
+ }
16
+ };
17
+ }
18
+ #code;
19
+ #context;
20
+ constructor(code, message, options) {
21
+ super(message, options);
22
+ this.#code = code;
23
+ this.#context = options?.context ?? {};
24
+ Object.setPrototypeOf(this, new.target.prototype);
25
+ }
26
+ get name() {
27
+ return this.#code;
28
+ }
29
+ get code() {
30
+ return this.#code;
31
+ }
32
+ get context() {
33
+ return this.#context;
34
+ }
35
+ };
36
+
37
+ // packages/common/errors/src/errors.ts
38
+ var TimeoutError = class extends BaseError.extend("TIMEOUT") {
39
+ };
40
+ var AbortedError = class extends BaseError.extend("ABORTED") {
41
+ };
42
+ var UnimplementedError = class extends BaseError.extend("UNIMPLEMENTED") {
43
+ };
44
+ var ApiError = class extends BaseError.extend("API_ERROR") {
45
+ };
46
+ var SystemError = class extends BaseError.extend("SYSTEM_ERROR") {
47
+ };
48
+ export {
49
+ AbortedError,
50
+ ApiError,
51
+ BaseError,
52
+ SystemError,
53
+ TimeoutError,
54
+ UnimplementedError
55
+ };
56
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/base.ts", "../../../src/errors.ts"],
4
+ "sourcesContent": ["export type BaseErrorOptions = {\n /**\n * The cause of the error.\n * An instance of Error.\n */\n cause?: unknown;\n\n /**\n * Structured details about the error.\n */\n context?: Record<string, unknown>;\n};\n\nexport class BaseError extends Error {\n static extend(code: string) {\n return class extends BaseError {\n static code = code;\n\n static is(error: unknown): error is BaseError {\n return typeof error === 'object' && error !== null && 'code' in error && error.code === code;\n }\n\n constructor(message: string, options?: BaseErrorOptions) {\n super(code, message, options);\n }\n };\n }\n\n #code: string;\n #context: Record<string, unknown>;\n\n constructor(code: string, message: string, options?: BaseErrorOptions) {\n super(message, options);\n\n this.#code = code;\n this.#context = options?.context ?? {};\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n override get name() {\n return this.#code;\n }\n\n get code() {\n return this.#code;\n }\n\n get context() {\n return this.#context;\n }\n}\n", "import { BaseError } from './base';\n\nexport class TimeoutError extends BaseError.extend('TIMEOUT') {}\n\nexport class AbortedError extends BaseError.extend('ABORTED') {}\n\nexport class UnimplementedError extends BaseError.extend('UNIMPLEMENTED') {}\n\nexport class ApiError extends BaseError.extend('API_ERROR') {}\n\nexport class SystemError extends BaseError.extend('SYSTEM_ERROR') {}\n"],
5
+ "mappings": ";;;AAaO,IAAMA,YAAN,MAAMA,mBAAkBC,MAAAA;EAC7B,OAAOC,OAAOC,MAAc;AAC1B,WAAO,cAAcH,WAAAA;MACnB;aAAOG,OAAOA;;MAEd,OAAOC,GAAGC,OAAoC;AAC5C,eAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,UAAUA,SAASA,MAAMF,SAASA;MAC1F;MAEAG,YAAYC,SAAiBC,SAA4B;AACvD,cAAML,MAAMI,SAASC,OAAAA;MACvB;IACF;EACF;EAEA;EACA;EAEAF,YAAYH,MAAcI,SAAiBC,SAA4B;AACrE,UAAMD,SAASC,OAAAA;AAEf,SAAK,QAAQL;AACb,SAAK,WAAWK,SAASC,WAAW,CAAC;AACrCC,WAAOC,eAAe,MAAM,WAAWC,SAAS;EAClD;EAEA,IAAaC,OAAO;AAClB,WAAO,KAAK;EACd;EAEA,IAAIV,OAAO;AACT,WAAO,KAAK;EACd;EAEA,IAAIM,UAAU;AACZ,WAAO,KAAK;EACd;AACF;;;AChDO,IAAMK,eAAN,cAA2BC,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAMC,eAAN,cAA2BF,UAAUC,OAAO,SAAA,EAAA;AAAY;AAExD,IAAME,qBAAN,cAAiCH,UAAUC,OAAO,eAAA,EAAA;AAAkB;AAEpE,IAAMG,WAAN,cAAuBJ,UAAUC,OAAO,WAAA,EAAA;AAAc;AAEtD,IAAMI,cAAN,cAA0BL,UAAUC,OAAO,cAAA,EAAA;AAAiB;",
6
+ "names": ["BaseError", "Error", "extend", "code", "is", "error", "constructor", "message", "options", "context", "Object", "setPrototypeOf", "prototype", "name", "TimeoutError", "BaseError", "extend", "AbortedError", "UnimplementedError", "ApiError", "SystemError"]
7
+ }
@@ -0,0 +1 @@
1
+ {"inputs":{"packages/common/errors/src/base.ts":{"bytes":3711,"imports":[],"format":"esm"},"packages/common/errors/src/errors.ts":{"bytes":1666,"imports":[{"path":"packages/common/errors/src/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"packages/common/errors/src/index.ts":{"bytes":439,"imports":[{"path":"packages/common/errors/src/base.ts","kind":"import-statement","original":"./base"},{"path":"packages/common/errors/src/errors.ts","kind":"import-statement","original":"./errors"}],"format":"esm"}},"outputs":{"packages/common/errors/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2702},"packages/common/errors/dist/lib/node-esm/index.mjs":{"imports":[],"exports":["AbortedError","ApiError","BaseError","SystemError","TimeoutError","UnimplementedError"],"entryPoint":"packages/common/errors/src/index.ts","inputs":{"packages/common/errors/src/base.ts":{"bytesInOutput":742},"packages/common/errors/src/index.ts":{"bytesInOutput":0},"packages/common/errors/src/errors.ts":{"bytesInOutput":344}},"bytes":1398}}}
@@ -0,0 +1,37 @@
1
+ export type BaseErrorOptions = {
2
+ /**
3
+ * The cause of the error.
4
+ * An instance of Error.
5
+ */
6
+ cause?: unknown;
7
+ /**
8
+ * Structured details about the error.
9
+ */
10
+ context?: Record<string, unknown>;
11
+ };
12
+ export declare class BaseError extends Error {
13
+ #private;
14
+ static extend(code: string): {
15
+ new (message: string, options?: BaseErrorOptions): {
16
+ "__#1@#code": string;
17
+ "__#1@#context": Record<string, unknown>;
18
+ readonly name: string;
19
+ readonly code: string;
20
+ readonly context: Record<string, unknown>;
21
+ message: string;
22
+ stack?: string;
23
+ cause?: unknown;
24
+ };
25
+ code: string;
26
+ is(error: unknown): error is BaseError;
27
+ extend(code: string): /*elided*/ any;
28
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
29
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
30
+ stackTraceLimit: number;
31
+ };
32
+ constructor(code: string, message: string, options?: BaseErrorOptions);
33
+ get name(): string;
34
+ get code(): string;
35
+ get context(): Record<string, unknown>;
36
+ }
37
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/base.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,qBAAa,SAAU,SAAQ,KAAK;;IAClC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;sBAQD,MAAM,YAAY,gBAAgB;0BAMpD,MAAM;6BACH,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;kBAXZ,OAAO,GAAG,KAAK,IAAI,SAAS;qBAJ7B,MAAM;;uDAqCkpJ,OAAQ,QAAQ;;;gBApBhrJ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAQrE,IAAa,IAAI,WAEhB;IAED,IAAI,IAAI,WAEP;IAED,IAAI,OAAO,4BAEV;CACF"}
@@ -1,47 +1,103 @@
1
- /**
2
- * NOTE: Messages should be sentences (Start with a capital letter and end with a period).
3
- * Errors can optionally include a JSON context object.
4
- */
5
- declare class BaseError extends Error {
6
- readonly code: string;
7
- readonly context?: any;
8
- constructor(code: string, message?: string, context?: any);
1
+ import { BaseError } from './base';
2
+ declare const TimeoutError_base: {
3
+ new (message: string, options?: import("./base").BaseErrorOptions): {
4
+ "__#1@#code": string;
5
+ "__#1@#context": Record<string, unknown>;
6
+ readonly name: string;
7
+ readonly code: string;
8
+ readonly context: Record<string, unknown>;
9
+ message: string;
10
+ stack?: string;
11
+ cause?: unknown;
12
+ };
13
+ code: string;
14
+ is(error: unknown): error is BaseError;
15
+ extend(code: string): /*elided*/ any;
16
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
17
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
18
+ stackTraceLimit: number;
19
+ };
20
+ export declare class TimeoutError extends TimeoutError_base {
9
21
  }
10
- /**
11
- * User facing API Errors.
12
- * E.g., something was misconfigured.
13
- */
14
- export declare class ApiError extends BaseError {
22
+ declare const AbortedError_base: {
23
+ new (message: string, options?: import("./base").BaseErrorOptions): {
24
+ "__#1@#code": string;
25
+ "__#1@#context": Record<string, unknown>;
26
+ readonly name: string;
27
+ readonly code: string;
28
+ readonly context: Record<string, unknown>;
29
+ message: string;
30
+ stack?: string;
31
+ cause?: unknown;
32
+ };
33
+ code: string;
34
+ is(error: unknown): error is BaseError;
35
+ extend(code: string): /*elided*/ any;
36
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
37
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
38
+ stackTraceLimit: number;
39
+ };
40
+ export declare class AbortedError extends AbortedError_base {
15
41
  }
16
- /**
17
- * Internal system errors.
18
- * E.g., unexpected/unrecoverable runtime error.
19
- */
20
- export declare class SystemError extends BaseError {
42
+ declare const UnimplementedError_base: {
43
+ new (message: string, options?: import("./base").BaseErrorOptions): {
44
+ "__#1@#code": string;
45
+ "__#1@#context": Record<string, unknown>;
46
+ readonly name: string;
47
+ readonly code: string;
48
+ readonly context: Record<string, unknown>;
49
+ message: string;
50
+ stack?: string;
51
+ cause?: unknown;
52
+ };
53
+ code: string;
54
+ is(error: unknown): error is BaseError;
55
+ extend(code: string): /*elided*/ any;
56
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
57
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
58
+ stackTraceLimit: number;
59
+ };
60
+ export declare class UnimplementedError extends UnimplementedError_base {
21
61
  }
22
- export declare class CancelledError extends SystemError {
23
- constructor(message?: string, context?: any);
62
+ declare const ApiError_base: {
63
+ new (message: string, options?: import("./base").BaseErrorOptions): {
64
+ "__#1@#code": string;
65
+ "__#1@#context": Record<string, unknown>;
66
+ readonly name: string;
67
+ readonly code: string;
68
+ readonly context: Record<string, unknown>;
69
+ message: string;
70
+ stack?: string;
71
+ cause?: unknown;
72
+ };
73
+ code: string;
74
+ is(error: unknown): error is BaseError;
75
+ extend(code: string): /*elided*/ any;
76
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
77
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
78
+ stackTraceLimit: number;
79
+ };
80
+ export declare class ApiError extends ApiError_base {
24
81
  }
25
- export declare class InvalidConfigError extends ApiError {
26
- constructor(message: string, context?: any);
27
- }
28
- /**
29
- * Explicit failure to connect with remote client services.
30
- */
31
- export declare class RemoteServiceConnectionError extends ApiError {
32
- constructor(message?: string, context?: any);
33
- }
34
- /**
35
- * Failed to open a connection to remote client services.
36
- */
37
- export declare class RemoteServiceConnectionTimeout extends ApiError {
38
- constructor(message?: string, context?: any);
39
- }
40
- export declare class DataCorruptionError extends SystemError {
41
- constructor(message?: string, context?: any);
42
- }
43
- export declare class InvalidInvitationExtensionRoleError extends SystemError {
44
- constructor(message?: string, context?: any);
82
+ declare const SystemError_base: {
83
+ new (message: string, options?: import("./base").BaseErrorOptions): {
84
+ "__#1@#code": string;
85
+ "__#1@#context": Record<string, unknown>;
86
+ readonly name: string;
87
+ readonly code: string;
88
+ readonly context: Record<string, unknown>;
89
+ message: string;
90
+ stack?: string;
91
+ cause?: unknown;
92
+ };
93
+ code: string;
94
+ is(error: unknown): error is BaseError;
95
+ extend(code: string): /*elided*/ any;
96
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
97
+ prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
98
+ stackTraceLimit: number;
99
+ };
100
+ export declare class SystemError extends SystemError_base {
45
101
  }
46
102
  export {};
47
103
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,cAAM,SAAU,SAAQ,KAAK;IACf,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAoB,QAAQ,CAAC,OAAO,CAAC;gBAAjD,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAW,OAAO,CAAC,KAAK;CAK5E;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,SAAS;CAAG;AAE1C;;;GAGG;AACH,qBAAa,WAAY,SAAQ,SAAS;CAAG;AAE7C,qBAAa,cAAe,SAAQ,WAAW;gBACjC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAG5C;AAED,qBAAa,kBAAmB,SAAQ,QAAQ;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAG3C;AAED;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,QAAQ;gBAC5C,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAG5C;AAED;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,QAAQ;gBAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAG5C;AAED,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAG5C;AAED,qBAAa,mCAAoC,SAAQ,WAAW;gBACtD,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;CAG5C"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;;;;;;;;;;;;;;;;mDAW8zK,OAAQ,QAAQ;;;AATj3K,qBAAa,YAAa,SAAQ,iBAA2B;CAAG;;;;;;;;;;;;;;;;mDASiyK,OAAQ,QAAQ;;;AAPj3K,qBAAa,YAAa,SAAQ,iBAA2B;CAAG;;;;;;;;;;;;;;;;mDAOiyK,OAAQ,QAAQ;;;AALj3K,qBAAa,kBAAmB,SAAQ,uBAAiC;CAAG;;;;;;;;;;;;;;;;mDAKqxK,OAAQ,QAAQ;;;AAHj3K,qBAAa,QAAS,SAAQ,aAA6B;CAAG;;;;;;;;;;;;;;;;mDAGmyK,OAAQ,QAAQ;;;AADj3K,qBAAa,WAAY,SAAQ,gBAAgC;CAAG"}
@@ -1,2 +1,3 @@
1
+ export * from './base';
1
2
  export * from './errors';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":"5.7.3"}
package/package.json CHANGED
@@ -1,19 +1,32 @@
1
1
  {
2
2
  "name": "@dxos/errors",
3
- "version": "0.1.58-main.ffbb8a1",
4
- "description": "Error definitions and utilities.",
3
+ "version": "0.7.5-labs.35b4b42",
4
+ "description": "Error definitions",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
7
7
  "license": "MIT",
8
8
  "author": "DXOS.org",
9
- "main": "dist/lib/node/index.cjs",
10
- "browser": {
11
- "./dist/lib/node/index.cjs": "./dist/lib/browser/index.mjs"
9
+ "sideEffects": true,
10
+ "exports": {
11
+ ".": {
12
+ "browser": "./dist/lib/browser/index.mjs",
13
+ "node": {
14
+ "require": "./dist/lib/node/index.cjs",
15
+ "default": "./dist/lib/node-esm/index.mjs"
16
+ },
17
+ "types": "./dist/types/src/index.d.ts"
18
+ }
12
19
  },
13
20
  "types": "dist/types/src/index.d.ts",
21
+ "typesVersions": {
22
+ "*": {}
23
+ },
14
24
  "files": [
15
- "dist"
25
+ "dist",
26
+ "src"
16
27
  ],
28
+ "dependencies": {},
29
+ "devDependencies": {},
17
30
  "publishConfig": {
18
31
  "access": "public"
19
32
  }
package/src/base.ts ADDED
@@ -0,0 +1,51 @@
1
+ export type BaseErrorOptions = {
2
+ /**
3
+ * The cause of the error.
4
+ * An instance of Error.
5
+ */
6
+ cause?: unknown;
7
+
8
+ /**
9
+ * Structured details about the error.
10
+ */
11
+ context?: Record<string, unknown>;
12
+ };
13
+
14
+ export class BaseError extends Error {
15
+ static extend(code: string) {
16
+ return class extends BaseError {
17
+ static code = code;
18
+
19
+ static is(error: unknown): error is BaseError {
20
+ return typeof error === 'object' && error !== null && 'code' in error && error.code === code;
21
+ }
22
+
23
+ constructor(message: string, options?: BaseErrorOptions) {
24
+ super(code, message, options);
25
+ }
26
+ };
27
+ }
28
+
29
+ #code: string;
30
+ #context: Record<string, unknown>;
31
+
32
+ constructor(code: string, message: string, options?: BaseErrorOptions) {
33
+ super(message, options);
34
+
35
+ this.#code = code;
36
+ this.#context = options?.context ?? {};
37
+ Object.setPrototypeOf(this, new.target.prototype);
38
+ }
39
+
40
+ override get name() {
41
+ return this.#code;
42
+ }
43
+
44
+ get code() {
45
+ return this.#code;
46
+ }
47
+
48
+ get context() {
49
+ return this.#context;
50
+ }
51
+ }
@@ -0,0 +1,39 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { SystemError } from './errors';
3
+
4
+ describe('errors', () => {
5
+ test('error code and message, cause', () => {
6
+ const error = new SystemError('Test message', { cause: new Error('Test cause'), context: { a: 1, b: 2 } });
7
+ expect(error).toBeInstanceOf(SystemError);
8
+ expect(error).toBeInstanceOf(SystemError);
9
+ expect(error.code).toBe(SystemError.code);
10
+ expect(error.message).toBe('Test message');
11
+ expect(error.cause).toBeInstanceOf(Error);
12
+ expect((error.cause as Error).message).toBe('Test cause');
13
+ expect(error.context).toEqual({ a: 1, b: 2 });
14
+ });
15
+
16
+ test('error formatting', () => {
17
+ try {
18
+ throwError();
19
+ expect.fail('Expected error to be thrown');
20
+ } catch (error: any) {
21
+ expect(error).toBeInstanceOf(SystemError);
22
+ expect(String(error)).toEqual(`SYSTEM_ERROR: Test message`);
23
+ const stackLines = error.stack!.split('\n');
24
+ expect(stackLines?.[0]).toEqual(`SYSTEM_ERROR: Test message`);
25
+ expect(stackLines?.[1]).toMatch(/^ at two \(.*$/);
26
+ expect(stackLines?.[2]).toMatch(/^ at one \(.*$/);
27
+ }
28
+ });
29
+ });
30
+
31
+ function throwError() {
32
+ function one() {
33
+ function two() {
34
+ throw new SystemError('Test message');
35
+ }
36
+ two();
37
+ }
38
+ one();
39
+ }
package/src/errors.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { BaseError } from './base';
2
+
3
+ export class TimeoutError extends BaseError.extend('TIMEOUT') {}
4
+
5
+ export class AbortedError extends BaseError.extend('ABORTED') {}
6
+
7
+ export class UnimplementedError extends BaseError.extend('UNIMPLEMENTED') {}
8
+
9
+ export class ApiError extends BaseError.extend('API_ERROR') {}
10
+
11
+ export class SystemError extends BaseError.extend('SYSTEM_ERROR') {}
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './base';
2
+ export * from './errors';