@ledgerhq/errors 6.27.0-nightly.0 → 6.27.0-nightly.20251031023756

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,6 +1,6 @@
1
1
  # @ledgerhq/errors
2
2
 
3
- ## 6.27.0-nightly.0
3
+ ## 6.27.0-nightly.20251031023756
4
4
 
5
5
  ### Minor Changes
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/errors",
3
- "version": "6.27.0-nightly.0",
3
+ "version": "6.27.0-nightly.20251031023756",
4
4
  "description": "Ledger common errors",
5
5
  "keywords": [
6
6
  "Ledger"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deserializeError.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deserializeError.test.d.ts","sourceRoot":"","sources":["../src/deserializeError.test.ts"],"names":[],"mappings":""}
@@ -1,44 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const helpers_1 = require("./helpers");
4
- describe("resiliency of deserializeError", () => {
5
- [
6
- 0,
7
- 1,
8
- "",
9
- "foo",
10
- null,
11
- undefined,
12
- false,
13
- true,
14
- Symbol("bro"),
15
- {},
16
- { name: "foo" },
17
- { name: "foo", stack: "" },
18
- ].forEach(value => {
19
- it("should never crashes whatever the value is " + JSON.stringify(value), () => {
20
- expect(() => (0, helpers_1.deserializeError)(value)).not.toThrow();
21
- });
22
- });
23
- });
24
- describe("resiliency of serializeError", () => {
25
- [
26
- 0,
27
- 1,
28
- "",
29
- "foo",
30
- null,
31
- undefined,
32
- false,
33
- true,
34
- Symbol("bro"),
35
- {},
36
- { name: "foo" },
37
- { name: "foo", stack: "" },
38
- ].forEach(value => {
39
- it("should never crashes whatever the value is " + JSON.stringify(value), () => {
40
- expect(() => (0, helpers_1.serializeError)(value)).not.toThrow();
41
- });
42
- });
43
- });
44
- //# sourceMappingURL=deserializeError.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deserializeError.test.js","sourceRoot":"","sources":["../src/deserializeError.test.ts"],"names":[],"mappings":";;AAAA,uCAA6D;AAE7D,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C;QACE,CAAC;QACD,CAAC;QACD,EAAE;QACF,KAAK;QACL,IAAI;QACJ,SAAS;QACT,KAAK;QACL,IAAI;QACJ,MAAM,CAAC,KAAK,CAAC;QACb,EAAE;QACF,EAAE,IAAI,EAAE,KAAK,EAAE;QACf,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;KAC3B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChB,EAAE,CAAC,6CAA6C,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;YAC7E,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C;QACE,CAAC;QACD,CAAC;QACD,EAAE;QACF,KAAK;QACL,IAAI;QACJ,SAAS;QACT,KAAK;QACL,IAAI;QACJ,MAAM,CAAC,KAAK,CAAC;QACb,EAAE;QACF,EAAE,IAAI,EAAE,KAAK,EAAE;QACf,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;KAC3B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChB,EAAE,CAAC,6CAA6C,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;YAC7E,MAAM,CAAC,GAAG,EAAE,CAAC,IAAA,wBAAc,EAAC,KAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
package/lib/index.test.js DELETED
@@ -1,92 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("./index");
4
- function functionA() {
5
- throw new index_1.AmountRequired();
6
- }
7
- describe("custom errors", () => {
8
- test("error name", () => {
9
- try {
10
- functionA();
11
- }
12
- catch (e) {
13
- expect(e.name).toEqual("AmountRequired");
14
- }
15
- });
16
- test("error is correctly located at the functionA", () => {
17
- try {
18
- functionA();
19
- }
20
- catch (e) {
21
- const i = e.stack.indexOf("functionA");
22
- expect(e.stack.slice(0, i + 9)).toEqual(`AmountRequired: AmountRequired
23
- at functionA`);
24
- }
25
- });
26
- test("error with custom message", () => {
27
- try {
28
- throw new index_1.AmountRequired("YO");
29
- }
30
- catch (e) {
31
- expect(e.message).toEqual("YO");
32
- }
33
- });
34
- test("error with custom fields", () => {
35
- try {
36
- throw new index_1.CurrencyNotSupported("YO", { currencyName: "foo" });
37
- }
38
- catch (e) {
39
- expect(
40
- // FIXME it's not yet the good type here
41
- e instanceof index_1.CurrencyNotSupported && e.currencyName).toEqual("foo");
42
- }
43
- });
44
- test("error.cause", () => {
45
- try {
46
- functionA();
47
- }
48
- catch (cause) {
49
- try {
50
- throw new index_1.AmountRequired("YO", { foo: 42 }, { cause });
51
- }
52
- catch (e) {
53
- expect(e.cause).toMatchObject(new index_1.AmountRequired());
54
- }
55
- }
56
- });
57
- test("error instanceof", () => {
58
- try {
59
- functionA();
60
- }
61
- catch (e) {
62
- expect(e).toBeInstanceOf(index_1.AmountRequired);
63
- }
64
- });
65
- test("promise error instanceof", () => {
66
- expect(Promise.reject(new index_1.AmountRequired())).rejects.toBeInstanceOf(index_1.AmountRequired);
67
- });
68
- test("error is instance of Error", () => {
69
- const error = new index_1.AmountRequired();
70
- expect(error instanceof Error).toBeTruthy();
71
- });
72
- describe("TransportStatusError", () => {
73
- test("TransportStatusError contains the expected name, message, stack, status code and status message (non-regression)", () => {
74
- const error = new index_1.TransportStatusError(index_1.StatusCodes.UNKNOWN_APDU);
75
- console.log(`${JSON.stringify(error)}`);
76
- expect(error.name).toEqual("TransportStatusError");
77
- expect(error.message).toEqual("Ledger device: UNKNOWN_APDU (0x6d02)");
78
- expect(error.stack).toContain("Ledger device: UNKNOWN_APDU (0x6d02)");
79
- expect(error.statusText).toEqual("UNKNOWN_APDU");
80
- expect(error.statusCode).toEqual(0x6d02);
81
- });
82
- test("TransportStatusError should be mapped to a LockedDeviceError on status code 0x5515", () => {
83
- const error = new index_1.TransportStatusError(index_1.StatusCodes.LOCKED_DEVICE);
84
- expect(error.name).toEqual("LockedDeviceError");
85
- expect(error.message).toEqual("Ledger device: Locked device (0x5515)");
86
- expect(error.stack).toContain("Ledger device: Locked device (0x5515)");
87
- expect(error.statusText).toEqual("LOCKED_DEVICE");
88
- expect(error.statusCode).toEqual(0x5515);
89
- });
90
- });
91
- });
92
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":";;AAAA,mCAAkG;AAElG,SAAS,SAAS;IAChB,MAAM,IAAI,sBAAc,EAAE,CAAC;AAC7B,CAAC;AAED,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC;YACH,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACvD,IAAI,CAAC;YACH,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CACrC;iBACS,CACV,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,sBAAc,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,4BAAoB,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM;YACJ,wCAAwC;YACxC,CAAC,YAAY,4BAAoB,IAAK,CAAS,CAAC,YAAY,CAC7D,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACvB,IAAI,CAAC;YACH,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,sBAAc,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,sBAAc,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC5B,IAAI,CAAC;YACH,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,sBAAc,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,sBAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,sBAAc,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAU,IAAI,sBAAc,EAAE,CAAC;QAC1C,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,kHAAkH,EAAE,GAAG,EAAE;YAC5H,MAAM,KAAK,GAAG,IAAI,4BAAoB,CAAC,mBAAW,CAAC,YAAY,CAAC,CAAC;YAEjE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAExC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;YAC9F,MAAM,KAAK,GAAG,IAAI,4BAAoB,CAAC,mBAAW,CAAC,aAAa,CAAC,CAAC;YAElE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=deserializeError.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deserializeError.test.d.ts","sourceRoot":"","sources":["../src/deserializeError.test.ts"],"names":[],"mappings":""}
@@ -1,42 +0,0 @@
1
- import { deserializeError, serializeError } from "./helpers";
2
- describe("resiliency of deserializeError", () => {
3
- [
4
- 0,
5
- 1,
6
- "",
7
- "foo",
8
- null,
9
- undefined,
10
- false,
11
- true,
12
- Symbol("bro"),
13
- {},
14
- { name: "foo" },
15
- { name: "foo", stack: "" },
16
- ].forEach(value => {
17
- it("should never crashes whatever the value is " + JSON.stringify(value), () => {
18
- expect(() => deserializeError(value)).not.toThrow();
19
- });
20
- });
21
- });
22
- describe("resiliency of serializeError", () => {
23
- [
24
- 0,
25
- 1,
26
- "",
27
- "foo",
28
- null,
29
- undefined,
30
- false,
31
- true,
32
- Symbol("bro"),
33
- {},
34
- { name: "foo" },
35
- { name: "foo", stack: "" },
36
- ].forEach(value => {
37
- it("should never crashes whatever the value is " + JSON.stringify(value), () => {
38
- expect(() => serializeError(value)).not.toThrow();
39
- });
40
- });
41
- });
42
- //# sourceMappingURL=deserializeError.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deserializeError.test.js","sourceRoot":"","sources":["../src/deserializeError.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE7D,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C;QACE,CAAC;QACD,CAAC;QACD,EAAE;QACF,KAAK;QACL,IAAI;QACJ,SAAS;QACT,KAAK;QACL,IAAI;QACJ,MAAM,CAAC,KAAK,CAAC;QACb,EAAE;QACF,EAAE,IAAI,EAAE,KAAK,EAAE;QACf,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;KAC3B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChB,EAAE,CAAC,6CAA6C,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;YAC7E,MAAM,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C;QACE,CAAC;QACD,CAAC;QACD,EAAE;QACF,KAAK;QACL,IAAI;QACJ,SAAS;QACT,KAAK;QACL,IAAI;QACJ,MAAM,CAAC,KAAK,CAAC;QACb,EAAE;QACF,EAAE,IAAI,EAAE,KAAK,EAAE;QACf,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;KAC3B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChB,EAAE,CAAC,6CAA6C,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE;YAC7E,MAAM,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAY,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -1,90 +0,0 @@
1
- import { AmountRequired, CurrencyNotSupported, TransportStatusError, StatusCodes } from "./index";
2
- function functionA() {
3
- throw new AmountRequired();
4
- }
5
- describe("custom errors", () => {
6
- test("error name", () => {
7
- try {
8
- functionA();
9
- }
10
- catch (e) {
11
- expect(e.name).toEqual("AmountRequired");
12
- }
13
- });
14
- test("error is correctly located at the functionA", () => {
15
- try {
16
- functionA();
17
- }
18
- catch (e) {
19
- const i = e.stack.indexOf("functionA");
20
- expect(e.stack.slice(0, i + 9)).toEqual(`AmountRequired: AmountRequired
21
- at functionA`);
22
- }
23
- });
24
- test("error with custom message", () => {
25
- try {
26
- throw new AmountRequired("YO");
27
- }
28
- catch (e) {
29
- expect(e.message).toEqual("YO");
30
- }
31
- });
32
- test("error with custom fields", () => {
33
- try {
34
- throw new CurrencyNotSupported("YO", { currencyName: "foo" });
35
- }
36
- catch (e) {
37
- expect(
38
- // FIXME it's not yet the good type here
39
- e instanceof CurrencyNotSupported && e.currencyName).toEqual("foo");
40
- }
41
- });
42
- test("error.cause", () => {
43
- try {
44
- functionA();
45
- }
46
- catch (cause) {
47
- try {
48
- throw new AmountRequired("YO", { foo: 42 }, { cause });
49
- }
50
- catch (e) {
51
- expect(e.cause).toMatchObject(new AmountRequired());
52
- }
53
- }
54
- });
55
- test("error instanceof", () => {
56
- try {
57
- functionA();
58
- }
59
- catch (e) {
60
- expect(e).toBeInstanceOf(AmountRequired);
61
- }
62
- });
63
- test("promise error instanceof", () => {
64
- expect(Promise.reject(new AmountRequired())).rejects.toBeInstanceOf(AmountRequired);
65
- });
66
- test("error is instance of Error", () => {
67
- const error = new AmountRequired();
68
- expect(error instanceof Error).toBeTruthy();
69
- });
70
- describe("TransportStatusError", () => {
71
- test("TransportStatusError contains the expected name, message, stack, status code and status message (non-regression)", () => {
72
- const error = new TransportStatusError(StatusCodes.UNKNOWN_APDU);
73
- console.log(`${JSON.stringify(error)}`);
74
- expect(error.name).toEqual("TransportStatusError");
75
- expect(error.message).toEqual("Ledger device: UNKNOWN_APDU (0x6d02)");
76
- expect(error.stack).toContain("Ledger device: UNKNOWN_APDU (0x6d02)");
77
- expect(error.statusText).toEqual("UNKNOWN_APDU");
78
- expect(error.statusCode).toEqual(0x6d02);
79
- });
80
- test("TransportStatusError should be mapped to a LockedDeviceError on status code 0x5515", () => {
81
- const error = new TransportStatusError(StatusCodes.LOCKED_DEVICE);
82
- expect(error.name).toEqual("LockedDeviceError");
83
- expect(error.message).toEqual("Ledger device: Locked device (0x5515)");
84
- expect(error.stack).toContain("Ledger device: Locked device (0x5515)");
85
- expect(error.statusText).toEqual("LOCKED_DEVICE");
86
- expect(error.statusCode).toEqual(0x5515);
87
- });
88
- });
89
- });
90
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}