@ledgerhq/vault-cli 1.3.0 → 1.4.2

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.
Files changed (140) hide show
  1. package/.eslintrc +4 -1
  2. package/__mocks__/@ledgerhq/hw-transport-node-hid.ts +5 -0
  3. package/__mocks__/@ledgerhq/vault-common.ts +60 -1
  4. package/__mocks__/command-line-usage/index.ts +1 -0
  5. package/bin/__tests__/apdu.test.d.ts +1 -0
  6. package/bin/__tests__/apdu.test.js +33 -0
  7. package/bin/__tests__/apdu.test.js.map +1 -0
  8. package/bin/__tests__/bake.test.d.ts +1 -0
  9. package/bin/__tests__/bake.test.js +71 -0
  10. package/bin/__tests__/bake.test.js.map +1 -0
  11. package/bin/__tests__/cli.test.js +37 -1
  12. package/bin/__tests__/cli.test.js.map +1 -1
  13. package/bin/__tests__/create.test.d.ts +1 -0
  14. package/bin/__tests__/create.test.js +33 -0
  15. package/bin/__tests__/create.test.js.map +1 -0
  16. package/bin/__tests__/deploy.test.d.ts +1 -0
  17. package/bin/__tests__/deploy.test.js +67 -0
  18. package/bin/__tests__/deploy.test.js.map +1 -0
  19. package/bin/__tests__/destroy.test.d.ts +1 -0
  20. package/bin/__tests__/destroy.test.js +40 -0
  21. package/bin/__tests__/destroy.test.js.map +1 -0
  22. package/bin/__tests__/drain.test.d.ts +1 -0
  23. package/bin/__tests__/drain.test.js +36 -0
  24. package/bin/__tests__/drain.test.js.map +1 -0
  25. package/bin/__tests__/fetch.test.d.ts +1 -0
  26. package/bin/__tests__/fetch.test.js +28 -0
  27. package/bin/__tests__/fetch.test.js.map +1 -0
  28. package/bin/__tests__/get.test.d.ts +1 -0
  29. package/bin/__tests__/get.test.js +103 -0
  30. package/bin/__tests__/get.test.js.map +1 -0
  31. package/bin/__tests__/getAuthToken.test.d.ts +1 -0
  32. package/bin/__tests__/getAuthToken.test.js +30 -0
  33. package/bin/__tests__/getAuthToken.test.js.map +1 -0
  34. package/bin/__tests__/getMVInstances.test.d.ts +1 -0
  35. package/bin/__tests__/getMVInstances.test.js +61 -0
  36. package/bin/__tests__/getMVInstances.test.js.map +1 -0
  37. package/bin/__tests__/getSeeds.test.d.ts +1 -0
  38. package/bin/__tests__/getSeeds.test.js +20 -0
  39. package/bin/__tests__/getSeeds.test.js.map +1 -0
  40. package/bin/__tests__/getUserID.test.d.ts +1 -0
  41. package/bin/__tests__/getUserID.test.js +30 -0
  42. package/bin/__tests__/getUserID.test.js.map +1 -0
  43. package/bin/__tests__/listen.test.d.ts +1 -0
  44. package/bin/__tests__/listen.test.js +30 -0
  45. package/bin/__tests__/listen.test.js.map +1 -0
  46. package/bin/__tests__/onboard.test.d.ts +1 -0
  47. package/bin/__tests__/onboard.test.js +58 -0
  48. package/bin/__tests__/onboard.test.js.map +1 -0
  49. package/bin/__tests__/pathGateOptionsWithEnvVariables.test.d.ts +1 -0
  50. package/bin/__tests__/pathGateOptionsWithEnvVariables.test.js +27 -0
  51. package/bin/__tests__/pathGateOptionsWithEnvVariables.test.js.map +1 -0
  52. package/bin/__tests__/proxy.test.d.ts +1 -0
  53. package/bin/__tests__/proxy.test.js +22 -0
  54. package/bin/__tests__/proxy.test.js.map +1 -0
  55. package/bin/__tests__/receive.test.d.ts +1 -0
  56. package/bin/__tests__/receive.test.js +28 -0
  57. package/bin/__tests__/receive.test.js.map +1 -0
  58. package/bin/__tests__/recipe.test.d.ts +1 -0
  59. package/bin/__tests__/recipe.test.js +30 -0
  60. package/bin/__tests__/recipe.test.js.map +1 -0
  61. package/bin/__tests__/reject.test.d.ts +1 -0
  62. package/bin/__tests__/reject.test.js +65 -0
  63. package/bin/__tests__/reject.test.js.map +1 -0
  64. package/bin/__tests__/send.test.d.ts +1 -0
  65. package/bin/__tests__/send.test.js +25 -0
  66. package/bin/__tests__/send.test.js.map +1 -0
  67. package/bin/__tests__/setQuorum.test.d.ts +1 -0
  68. package/bin/__tests__/setQuorum.test.js +31 -0
  69. package/bin/__tests__/setQuorum.test.js.map +1 -0
  70. package/bin/__tests__/test-utils.d.ts +13 -0
  71. package/bin/__tests__/test-utils.js +30 -0
  72. package/bin/__tests__/test-utils.js.map +1 -0
  73. package/bin/__tests__/wipe.test.js +28 -21
  74. package/bin/__tests__/wipe.test.js.map +1 -1
  75. package/bin/commands/apdu.d.ts +2 -2
  76. package/bin/commands/apdu.js +1 -1
  77. package/bin/commands/apdu.js.map +1 -1
  78. package/bin/commands/bake.js +11 -5
  79. package/bin/commands/bake.js.map +1 -1
  80. package/bin/commands/bridge.js +6 -3
  81. package/bin/commands/bridge.js.map +1 -1
  82. package/bin/commands/create.d.ts +2 -0
  83. package/bin/commands/create.js +11 -8
  84. package/bin/commands/create.js.map +1 -1
  85. package/bin/commands/deploy.d.ts +37 -0
  86. package/bin/commands/deploy.js +75 -0
  87. package/bin/commands/deploy.js.map +1 -0
  88. package/bin/commands/destroy.d.ts +28 -0
  89. package/bin/commands/destroy.js +51 -0
  90. package/bin/commands/destroy.js.map +1 -0
  91. package/bin/commands/drain.js +3 -3
  92. package/bin/commands/drain.js.map +1 -1
  93. package/bin/commands/faucet.js +1 -1
  94. package/bin/commands/faucet.js.map +1 -1
  95. package/bin/commands/fetch.js +6 -4
  96. package/bin/commands/fetch.js.map +1 -1
  97. package/bin/commands/get.d.ts +1 -1
  98. package/bin/commands/get.js +17 -13
  99. package/bin/commands/get.js.map +1 -1
  100. package/bin/commands/getAuthToken.js +2 -1
  101. package/bin/commands/getAuthToken.js.map +1 -1
  102. package/bin/commands/getMVInstances.d.ts +32 -0
  103. package/bin/commands/getMVInstances.js +68 -0
  104. package/bin/commands/getMVInstances.js.map +1 -0
  105. package/bin/commands/getSeeds.js +1 -1
  106. package/bin/commands/getSeeds.js.map +1 -1
  107. package/bin/commands/getUserID.d.ts +1 -1
  108. package/bin/commands/getUserID.js +2 -1
  109. package/bin/commands/getUserID.js.map +1 -1
  110. package/bin/commands/index.d.ts +72 -14
  111. package/bin/commands/index.js +6 -0
  112. package/bin/commands/index.js.map +1 -1
  113. package/bin/commands/listen.js +5 -3
  114. package/bin/commands/listen.js.map +1 -1
  115. package/bin/commands/migrate.js +2 -1
  116. package/bin/commands/migrate.js.map +1 -1
  117. package/bin/commands/onboard.d.ts +2 -1
  118. package/bin/commands/onboard.js +7 -6
  119. package/bin/commands/onboard.js.map +1 -1
  120. package/bin/commands/proxy.d.ts +1 -1
  121. package/bin/commands/receive.js +1 -1
  122. package/bin/commands/receive.js.map +1 -1
  123. package/bin/commands/recipe.js +2 -2
  124. package/bin/commands/recipe.js.map +1 -1
  125. package/bin/commands/registerMigratedUsers.js +1 -1
  126. package/bin/commands/registerMigratedUsers.js.map +1 -1
  127. package/bin/commands/reject.js +2 -2
  128. package/bin/commands/reject.js.map +1 -1
  129. package/bin/commands/send.js +2 -2
  130. package/bin/commands/send.js.map +1 -1
  131. package/bin/commands/setQuorum.js +3 -2
  132. package/bin/commands/setQuorum.js.map +1 -1
  133. package/bin/commands/wipe.js +1 -1
  134. package/bin/commands/wipe.js.map +1 -1
  135. package/bin/gateOptions.js +7 -0
  136. package/bin/gateOptions.js.map +1 -1
  137. package/bin/presets/beatles.json +4 -32
  138. package/bin/types.d.ts +1 -0
  139. package/package.json +5 -5
  140. package/bin/presets/beatles-legacy.json +0 -58
package/.eslintrc CHANGED
@@ -10,7 +10,10 @@
10
10
  "rules": {
11
11
  "@typescript-eslint/no-explicit-any": 0,
12
12
  "@typescript-eslint/ban-ts-comment": 0,
13
- "@typescript-eslint/no-unused-vars": 2,
13
+ "@typescript-eslint/no-unused-vars": [
14
+ "warn",
15
+ { "argsIgnorePattern": "^_" }
16
+ ],
14
17
  "@typescript-eslint/no-non-null-assertion": 0,
15
18
  "no-useless-catch": 0
16
19
  },
@@ -0,0 +1,5 @@
1
+ export default {
2
+ create: jest
3
+ .fn()
4
+ .mockReturnValue({ exchange: jest.fn().mockReturnValue("response") }),
5
+ };
@@ -1,4 +1,63 @@
1
1
  export { createConsoleLogger } from "@ledgerhq/vault-common";
2
2
 
3
3
  export const bakeManifest = jest.fn();
4
- export const createDevicesPool = jest.fn().mockReturnValue("devicesPool");
4
+ export const validateManifest = jest.fn();
5
+ export const recipeManifest = jest.fn().mockImplementation(() => ({
6
+ manifest: { accounts: undefined },
7
+ rawData: { usersWithDevice: [{ user: { id: 2 } }] },
8
+ }));
9
+ export const wipeBackend = jest.fn();
10
+ export const fetchTokens = jest.fn().mockReturnValue(["token1", "token2"]);
11
+ export const createDevicesPool = jest.fn().mockReturnValue({
12
+ login: jest.fn().mockReturnValue({
13
+ network: jest.fn().mockReturnValue({
14
+ edges: [
15
+ {
16
+ node: {
17
+ id: 1,
18
+ name: "Bob",
19
+ username: "Bob le bricoleur",
20
+ role: "Admin",
21
+ user_id: "BobLeBricoleur",
22
+ currency: "westend",
23
+ balance: 10,
24
+ status: "status",
25
+ description: "description",
26
+ notes: [],
27
+ type: "type",
28
+ },
29
+ },
30
+ {
31
+ node: {
32
+ id: 2,
33
+ name: "Alice",
34
+ username: "Alice In Wonderland",
35
+ role: "Admin",
36
+ user_id: "Wonderland",
37
+ currency: "westend",
38
+ balance: 10,
39
+ status: "status",
40
+ description: "description",
41
+ notes: [],
42
+ type: "CREATE_TRANSACTION",
43
+ created_by: { id: 2 },
44
+ },
45
+ },
46
+ ],
47
+ }),
48
+ getToken: jest.fn().mockReturnValue("authToken"),
49
+ connectSocket: jest.fn(),
50
+ onEvent: jest.fn(),
51
+ rejectRequest: jest.fn(),
52
+ }),
53
+ getUserID: jest.fn().mockReturnValue("userID"),
54
+ getOnboardingAdminDevices: jest.fn().mockReturnValue([
55
+ ["Admin 1", 4],
56
+ ["Admin 2", 5],
57
+ ]),
58
+ });
59
+ export const genSeed = jest.fn();
60
+
61
+ export const destroy = jest.fn();
62
+ export const deploy = jest.fn();
63
+ export const getMVInstances = jest.fn();
@@ -0,0 +1 @@
1
+ export default jest.fn().mockReturnValue("helper text");
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const apdu_1 = __importDefault(require("../commands/apdu"));
16
+ const test_utils_1 = require("./test-utils");
17
+ const opts = {
18
+ positionals: ["<value>"],
19
+ };
20
+ describe("apdu", () => {
21
+ it("should send raw APDU and print response", () => __awaiter(void 0, void 0, void 0, function* () {
22
+ const spyConsole = jest.spyOn(console, "log").mockImplementation();
23
+ yield apdu_1.default.run(opts);
24
+ spyConsole.mockRestore();
25
+ }));
26
+ test_utils_1.testErrorCommand({
27
+ description: "should throw if positionals is undefined",
28
+ task: apdu_1.default.run,
29
+ options: Object.assign(Object.assign({}, opts), { positionals: undefined }),
30
+ errorMessage: "You must pass an APDU",
31
+ });
32
+ });
33
+ //# sourceMappingURL=apdu.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apdu.test.js","sourceRoot":"","sources":["../../src/__tests__/apdu.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,4DAAoC;AAEpC,6CAAgD;AAEhD,MAAM,IAAI,GAAgB;IACxB,WAAW,EAAE,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,EAAE,CAAC,yCAAyC,EAAE,GAAS,EAAE;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACnE,MAAM,cAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrB,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,0CAA0C;QACvD,IAAI,EAAE,cAAI,CAAC,GAAG;QAEd,OAAO,kCAAO,IAAI,KAAE,WAAW,EAAE,SAAS,GAAE;QAC5C,YAAY,EAAE,uBAAuB;KACtC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const vault_common_1 = require("@ledgerhq/vault-common");
16
+ const test_utils_1 = require("./test-utils");
17
+ const bake_1 = __importDefault(require("../commands/bake"));
18
+ const logger_1 = __importDefault(require("../logger"));
19
+ const bakeOpts = {
20
+ positionals: ["<manifest>"],
21
+ stdin: false,
22
+ retry: 0,
23
+ wipe: false,
24
+ gate: "<gate>",
25
+ compartment: 69,
26
+ hsm: "<hsm>",
27
+ hsmCert: "<hsmCert>",
28
+ hsmCertPassword: "<hsmCertPassword>",
29
+ salt: "",
30
+ };
31
+ describe("bake", () => {
32
+ const pool = test_utils_1.createTestDevicesPool();
33
+ const testCommand = (args) => {
34
+ const { description, task, options, manifest } = args;
35
+ it(description, () => __awaiter(void 0, void 0, void 0, function* () {
36
+ yield task(options);
37
+ expect(vault_common_1.bakeManifest).toHaveBeenCalledWith(manifest, pool, { logger: logger_1.default });
38
+ }));
39
+ };
40
+ testCommand({
41
+ description: "should bake using preset flag",
42
+ task: bake_1.default.run,
43
+ options: Object.assign(Object.assign({}, bakeOpts), { preset: "empty" }),
44
+ manifest: {},
45
+ });
46
+ test_utils_1.testErrorCommand({
47
+ description: "should throw if no preset, manifest file or path to manifest is specified",
48
+ task: bake_1.default.run,
49
+ options: Object.assign(Object.assign({}, bakeOpts), { positionals: [], preset: undefined, stdin: false }),
50
+ errorMessage: "You must pass either a preset or a manifest file or a manifest as stdin",
51
+ });
52
+ test_utils_1.testErrorCommand({
53
+ description: "should throw if more than 1 manifest is passed",
54
+ task: bake_1.default.run,
55
+ options: Object.assign(Object.assign({}, bakeOpts), { positionals: ["<manifest_1>", "<manifest_2>"] }),
56
+ errorMessage: "You can pass only one manifest file",
57
+ });
58
+ test_utils_1.testErrorCommand({
59
+ description: "should throw if preset is invalid",
60
+ task: bake_1.default.run,
61
+ options: Object.assign(Object.assign({}, bakeOpts), { preset: "invalid_preset" }),
62
+ errorMessage: "Invalid preset invalid_preset",
63
+ });
64
+ test_utils_1.testErrorCommand({
65
+ description: "should throw if preset is undefined and path to manifest is empty",
66
+ task: bake_1.default.run,
67
+ options: Object.assign(Object.assign({}, bakeOpts), { stdin: false, preset: undefined, positionals: [""] }),
68
+ errorMessage: "No filename given",
69
+ });
70
+ });
71
+ //# sourceMappingURL=bake.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bake.test.js","sourceRoot":"","sources":["../../src/__tests__/bake.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yDAAsD;AAGtD,6CAAuE;AACvE,4DAAoC;AAEpC,uDAA+B;AAE/B,MAAM,QAAQ,GAAgB;IAC5B,WAAW,EAAE,CAAC,YAAY,CAAC;IAC3B,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,EAAE;IACf,GAAG,EAAE,OAAO;IACZ,OAAO,EAAE,WAAW;IACpB,eAAe,EAAE,mBAAmB;IACpC,IAAI,EAAE,EAAE;CACT,CAAC;AAMF,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;IACpB,MAAM,IAAI,GAAG,kCAAqB,EAAE,CAAC;IAErC,MAAM,WAAW,GAAG,CAA0B,IAAoB,EAAE,EAAE;QACpE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACtD,EAAE,CAAC,WAAW,EAAE,GAAS,EAAE;YACzB,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,CAAC,2BAAY,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,EAAN,gBAAM,EAAE,CAAC,CAAC;QACxE,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,WAAW,CAAC;QACV,WAAW,EAAE,+BAA+B;QAC5C,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,MAAM,EAAE,OAAO,GAAE;QACzC,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,2EAA2E;QAC7E,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAE;QAC1E,YAAY,EACV,yEAAyE;KAC5E,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,WAAW,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,GAAE;QACvE,YAAY,EAAE,qCAAqC;KACpD,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCAAO,QAAQ,KAAE,MAAM,EAAE,gBAAgB,GAAE;QAClD,YAAY,EAAE,+BAA+B;KAC9C,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,mEAAmE;QACrE,IAAI,EAAE,cAAI,CAAC,GAAG;QACd,OAAO,kCACF,QAAQ,KACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,EAAE,CAAC,GAClB;QACD,YAAY,EAAE,mBAAmB;KAClC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -12,8 +12,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ const command_line_usage_1 = __importDefault(require("command-line-usage"));
16
+ const chalk_1 = __importDefault(require("chalk"));
15
17
  const cli_1 = __importDefault(require("../cli"));
16
18
  const vault_common_1 = require("@ledgerhq/vault-common");
19
+ const test_utils_1 = require("./test-utils");
17
20
  jest.mock("../commands/get");
18
21
  const buildCommand = (str) => {
19
22
  return str.split(" ");
@@ -22,11 +25,12 @@ afterEach(() => {
22
25
  jest.clearAllMocks();
23
26
  });
24
27
  describe("Create commands", () => {
28
+ const pool = test_utils_1.createTestDevicesPool();
25
29
  const testCreateCommand = (desc, command, manifest) => {
26
30
  it(desc, () => __awaiter(void 0, void 0, void 0, function* () {
27
31
  const argv = buildCommand(command);
28
32
  yield cli_1.default(argv);
29
- expect(vault_common_1.bakeManifest).toHaveBeenCalledWith(manifest, "devicesPool", {
33
+ expect(vault_common_1.bakeManifest).toHaveBeenCalledWith(manifest, pool, {
30
34
  noApproval: undefined,
31
35
  });
32
36
  }));
@@ -44,6 +48,38 @@ describe("Create commands", () => {
44
48
  expect(err).toEqual(new Error(errorMsg));
45
49
  }));
46
50
  };
51
+ it("should display CLI version", () => __awaiter(void 0, void 0, void 0, function* () {
52
+ const spyConsole = jest.spyOn(console, "log").mockImplementation();
53
+ const argv = buildCommand("--version");
54
+ yield cli_1.default(argv);
55
+ const { version } = require("../../package.json");
56
+ expect(spyConsole).toHaveBeenCalledWith(version);
57
+ spyConsole.mockRestore();
58
+ }));
59
+ it('should set process.env.DEBUG = "1" if --debug flag is specified', () => __awaiter(void 0, void 0, void 0, function* () {
60
+ const argv = buildCommand("create user --name Ringo --device lam --debug");
61
+ yield cli_1.default(argv);
62
+ expect(process.env.DEBUG).toBe("1");
63
+ }));
64
+ it("should process.exit(1) if a required option is not specified", () => __awaiter(void 0, void 0, void 0, function* () {
65
+ const spyConsole = jest.spyOn(console, "log").mockImplementation();
66
+ const spyProcess = jest.spyOn(process, "exit").mockImplementation();
67
+ const argv = buildCommand("create user --role operator --device lam");
68
+ yield cli_1.default(argv);
69
+ expect(spyProcess).toHaveBeenCalledWith(1);
70
+ expect(spyConsole).toHaveBeenCalledWith(chalk_1.default `{red.bold ERROR} {red missing required option --name}`);
71
+ jest.restoreAllMocks();
72
+ }));
73
+ describe("help", () => {
74
+ it("should display help for unknown subcommand", () => __awaiter(void 0, void 0, void 0, function* () {
75
+ const spyConsole = jest.spyOn(console, "log").mockImplementation();
76
+ const argv = buildCommand("create manager");
77
+ yield cli_1.default(argv);
78
+ expect(spyConsole).toHaveBeenCalledWith("helper text");
79
+ expect(command_line_usage_1.default).toHaveBeenCalledTimes(1);
80
+ spyConsole.mockRestore();
81
+ }));
82
+ });
47
83
  describe("user creation", () => {
48
84
  testCreateCommand("should create properly an operator", "create user --role operator --name Ringo --device 10", {
49
85
  customUsernames: {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../src/__tests__/cli.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const create_1 = require("../commands/create");
4
+ const test_utils_1 = require("./test-utils");
5
+ const opts = {
6
+ name: "<accountName>",
7
+ command: "account",
8
+ salt: "",
9
+ gate: "<gate>",
10
+ device: 4,
11
+ noApproval: false,
12
+ };
13
+ describe("create", () => {
14
+ test_utils_1.testErrorCommand({
15
+ description: "should throw when trying to whitelist addresses with not the right format",
16
+ task: create_1.createEntity,
17
+ options: Object.assign(Object.assign({}, opts), { command: "whitelist", addresses: ["a", "bc", "defg"] }),
18
+ errorMessage: "invalid address format, should be currency|name|address",
19
+ });
20
+ test_utils_1.testErrorCommand({
21
+ description: "should throw when trying to create an account with invalid rules format",
22
+ task: create_1.createEntity,
23
+ options: Object.assign(Object.assign({}, opts), { command: "account", rules: "rules" }),
24
+ errorMessage: "Invalid rules given",
25
+ });
26
+ test_utils_1.testErrorCommand({
27
+ description: "should throw when trying to create an account with no currency specified",
28
+ task: create_1.createEntity,
29
+ options: Object.assign(Object.assign({}, opts), { command: "account" }),
30
+ errorMessage: "No currency or contractAddress in account",
31
+ });
32
+ });
33
+ //# sourceMappingURL=create.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.test.js","sourceRoot":"","sources":["../../src/__tests__/create.test.ts"],"names":[],"mappings":";;AAAA,+CAAkD;AAElD,6CAAgD;AAEhD,MAAM,IAAI,GAAiB;IACzB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,6BAAgB,CAAC;QACf,WAAW,EACT,2EAA2E;QAC7E,IAAI,EAAE,qBAAY;QAClB,OAAO,kCAAO,IAAI,KAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,GAAE;QAC1E,YAAY,EAAE,yDAAyD;KACxE,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,yEAAyE;QAC3E,IAAI,EAAE,qBAAY;QAClB,OAAO,kCAAO,IAAI,KAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAE;QACxD,YAAY,EAAE,qBAAqB;KACpC,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EACT,0EAA0E;QAC5E,IAAI,EAAE,qBAAY;QAClB,OAAO,kCAAO,IAAI,KAAE,OAAO,EAAE,SAAS,GAAE;QACxC,YAAY,EAAE,2CAA2C;KAC1D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ const vaultCommon = __importStar(require("@ledgerhq/vault-common"));
32
+ const deploy_1 = require("../commands/deploy");
33
+ describe("destroy", () => {
34
+ beforeEach(() => {
35
+ jest.spyOn(console, "log").mockImplementation();
36
+ });
37
+ afterEach(() => {
38
+ jest.restoreAllMocks();
39
+ });
40
+ it("should properly call deploy", () => __awaiter(void 0, void 0, void 0, function* () {
41
+ const spyDeploy = jest
42
+ .spyOn(vaultCommon, "deploy")
43
+ .mockResolvedValue({ url: "https://yay.com" });
44
+ yield deploy_1.deployCommand({ remoteURL: "abc", name: "foo", owner: "anon" });
45
+ expect(spyDeploy).toHaveBeenCalledWith({ remoteURL: "abc", name: "foo", owner: "anon" }, expect.anything());
46
+ }));
47
+ it("should pass preset and values if given", () => __awaiter(void 0, void 0, void 0, function* () {
48
+ const spyDeploy = jest
49
+ .spyOn(vaultCommon, "deploy")
50
+ .mockResolvedValue({ url: "https://yay.com" });
51
+ yield deploy_1.deployCommand({
52
+ remoteURL: "abc",
53
+ name: "foo",
54
+ owner: "anon",
55
+ preset: "tezos",
56
+ values: '{ "versions": { "front": "7.4.4" } }',
57
+ });
58
+ expect(spyDeploy).toHaveBeenCalledWith({
59
+ remoteURL: "abc",
60
+ name: "foo",
61
+ owner: "anon",
62
+ preset: "tezos",
63
+ values: { versions: { front: "7.4.4" } },
64
+ }, expect.anything());
65
+ }));
66
+ });
67
+ //# sourceMappingURL=deploy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../src/__tests__/deploy.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,+CAAmD;AAEnD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,GAAS,EAAE;QAC3C,MAAM,SAAS,GAAG,IAAI;aACnB,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;aAC5B,iBAAiB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjD,MAAM,sBAAa,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAChD,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAS,EAAE;QACtD,MAAM,SAAS,GAAG,IAAI;aACnB,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC;aAC5B,iBAAiB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjD,MAAM,sBAAa,CAAC;YAClB,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,sCAAsC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC;YACE,SAAS,EAAE,KAAK;YAChB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,OAAO;YACf,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;SACzC,EACD,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ const vaultCommon = __importStar(require("@ledgerhq/vault-common"));
32
+ const destroy_1 = require("../commands/destroy");
33
+ describe("destroy", () => {
34
+ it("should properly call destroy", () => __awaiter(void 0, void 0, void 0, function* () {
35
+ const spyDestroy = jest.spyOn(vaultCommon, "destroy").mockResolvedValue();
36
+ yield destroy_1.destroyCommand({ remoteURL: "abc", name: "foo" });
37
+ expect(spyDestroy).toHaveBeenCalledWith({ remoteURL: "abc", name: "foo" }, expect.anything());
38
+ }));
39
+ });
40
+ //# sourceMappingURL=destroy.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"destroy.test.js","sourceRoot":"","sources":["../../src/__tests__/destroy.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,iDAAqD;AAErD,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,8BAA8B,EAAE,GAAS,EAAE;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,iBAAiB,EAAE,CAAC;QAC1E,MAAM,wBAAc,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EACjC,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;IACJ,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const drain_1 = __importDefault(require("../commands/drain"));
16
+ const opts = {
17
+ gate: "<gate>",
18
+ salt: "",
19
+ device: 4,
20
+ };
21
+ jest.mock("@ledgerhq/vault-common", () => ({
22
+ createDevicesPool: jest.fn().mockReturnValue({
23
+ login: jest
24
+ .fn()
25
+ .mockReturnValue({ network: jest.fn().mockReturnValue("drain") }),
26
+ }),
27
+ }));
28
+ describe("drain", () => {
29
+ it("should drain full gate data", () => __awaiter(void 0, void 0, void 0, function* () {
30
+ const spyConsole = jest.spyOn(console, "log").mockImplementation();
31
+ yield drain_1.default.run(opts);
32
+ expect(spyConsole).toHaveBeenCalledWith('{"/_version":"drain","/organization":"drain","/people/me":"drain","/people?pageSize=-1&role=ADMIN&role=OPERATOR":"drain","/groups?pageSize=-1":"drain","/whitelists?pageSize=-1":"drain","/accounts?pageSize=-1":"drain","/accounts/tx_rights?light=1":"drain","/transactions?pageSize=-1":"drain","/transactions/can_create_tx":"drain","/requests?order=asc&pageSize=-1&status=PENDING_APPROVAL&status=PENDING_REGISTRATION":"drain"}');
33
+ spyConsole.mockRestore();
34
+ }));
35
+ });
36
+ //# sourceMappingURL=drain.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drain.test.js","sourceRoot":"","sources":["../../src/__tests__/drain.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,8DAAsC;AAGtC,MAAM,IAAI,GAAiB;IACzB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;QAC3C,KAAK,EAAE,IAAI;aACR,EAAE,EAAE;aACJ,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;KACpE,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,6BAA6B,EAAE,GAAS,EAAE;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACnE,MAAM,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,yaAAya,CAC1a,CAAC;QACF,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fetch_1 = __importDefault(require("../commands/fetch"));
7
+ const test_utils_1 = require("./test-utils");
8
+ const fetchOpts = {
9
+ positionals: [],
10
+ salt: "",
11
+ gate: "<gate>",
12
+ device: 4,
13
+ };
14
+ describe("fetch", () => {
15
+ test_utils_1.testErrorCommand({
16
+ description: "should throw if positionals is empty",
17
+ task: fetch_1.default.run,
18
+ options: Object.assign({}, fetchOpts),
19
+ errorMessage: "No URL given",
20
+ });
21
+ test_utils_1.testErrorCommand({
22
+ description: "should throw if url is empty",
23
+ task: fetch_1.default.run,
24
+ options: Object.assign(Object.assign({}, fetchOpts), { positionals: [""] }),
25
+ errorMessage: "No URL given",
26
+ });
27
+ });
28
+ //# sourceMappingURL=fetch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.test.js","sourceRoot":"","sources":["../../src/__tests__/fetch.test.ts"],"names":[],"mappings":";;;;;AAAA,8DAAsC;AAEtC,6CAAgD;AAEhD,MAAM,SAAS,GAAiB;IAC9B,WAAW,EAAE,EAAE;IACf,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,6BAAgB,CAAC;QACf,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,eAAK,CAAC,GAAG;QACf,OAAO,oBAAO,SAAS,CAAE;QACzB,YAAY,EAAE,cAAc;KAC7B,CAAC,CAAC;IAEH,6BAAgB,CAAC;QACf,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,eAAK,CAAC,GAAG;QACf,OAAO,kCAAO,SAAS,KAAE,WAAW,EAAE,CAAC,EAAE,CAAC,GAAE;QAC5C,YAAY,EAAE,cAAc;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};