@affinidi/cli 2.0.0 → 2.2.0

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.
@@ -10,10 +10,11 @@ declare const credentialsSchema: z.ZodObject<{
10
10
  type Credentials = z.infer<typeof credentialsSchema>;
11
11
  declare class CredentialsVault {
12
12
  private readonly store;
13
+ private readonly logger;
13
14
  constructor(store: Conf<Credentials>);
14
- clear(): void;
15
- getSessionId(): string | undefined;
16
- setSessionId(value: string): void;
15
+ clear(): Promise<void>;
16
+ getSessionId(): Promise<string | null>;
17
+ setSessionId(value: string): Promise<void>;
17
18
  }
18
19
  export declare const credentialsVault: CredentialsVault;
19
20
  export {};
@@ -4,25 +4,51 @@ exports.credentialsVault = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const os_1 = tslib_1.__importDefault(require("os"));
6
6
  const path_1 = tslib_1.__importDefault(require("path"));
7
+ const node_keytar_1 = tslib_1.__importDefault(require("@postman/node-keytar"));
7
8
  const conf_1 = tslib_1.__importDefault(require("conf"));
8
9
  const zod_1 = tslib_1.__importDefault(require("zod"));
9
10
  const env_config_1 = require("./env-config");
11
+ const logger_1 = require("../services/affinidi/logger");
10
12
  const sessionIdSchema = zod_1.default.string();
11
13
  const credentialsSchema = zod_1.default.object({
12
14
  sessionId: sessionIdSchema,
13
15
  });
16
+ const account = 'Affinidi';
17
+ const service = 'sessionID (@affinidi/cli)';
18
+ // NOTE: `keytar` allows to manage credentials in system's keychain.
19
+ // On macOS the passwords are managed by the Keychain,
20
+ // on Linux they are managed by the Secret Service API/libsecret,
21
+ // and on Windows they are managed by Credential Vault.
22
+ // NOTE: `keytar` uses `libsecret` for Linux, and if that service is
23
+ // not installed, CLI falls back to saving sessionId into file.
14
24
  class CredentialsVault {
15
25
  constructor(store) {
16
26
  this.store = store;
27
+ this.logger = new logger_1.ConsoleLoggerAdapter(env_config_1.config.logLevel);
17
28
  }
18
- clear() {
19
- this.store.clear();
29
+ async clear() {
30
+ try {
31
+ await node_keytar_1.default.deletePassword(service, account);
32
+ }
33
+ catch (error) {
34
+ this.store.clear();
35
+ }
20
36
  }
21
- getSessionId() {
22
- return this.store.get('sessionId');
37
+ async getSessionId() {
38
+ try {
39
+ return await node_keytar_1.default.getPassword(service, account);
40
+ }
41
+ catch (error) {
42
+ return this.store.get('sessionId');
43
+ }
23
44
  }
24
- setSessionId(value) {
25
- this.store.set('sessionId', value);
45
+ async setSessionId(value) {
46
+ try {
47
+ await node_keytar_1.default.setPassword(service, account, value);
48
+ }
49
+ catch (error) {
50
+ this.store.set('sessionId', value);
51
+ }
26
52
  }
27
53
  }
28
54
  const credentialConf = new conf_1.default({
@@ -1 +1 @@
1
- {"version":3,"file":"credentials-vault.js","sourceRoot":"","sources":["../../src/services/credentials-vault.ts"],"names":[],"mappings":";;;;AAAA,oDAAmB;AACnB,wDAAuB;AACvB,wDAAuB;AACvB,sDAAmB;AACnB,6CAAqC;AAErC,MAAM,eAAe,GAAG,aAAC,CAAC,MAAM,EAAE,CAAA;AAClC,MAAM,iBAAiB,GAAG,aAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAGF,MAAM,gBAAgB;IACpB,YAA6B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzD,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IACpC,CAAC;CACF;AAED,MAAM,cAAc,GAAG,IAAI,cAAI,CAAc;IAC3C,UAAU,EAAE,mBAAM,CAAC,mBAAmB;IACtC,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;CAC1C,CAAC,CAAA;AAEW,QAAA,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAA"}
1
+ {"version":3,"file":"credentials-vault.js","sourceRoot":"","sources":["../../src/services/credentials-vault.ts"],"names":[],"mappings":";;;;AAAA,oDAAmB;AACnB,wDAAuB;AACvB,+EAAyC;AACzC,wDAAuB;AACvB,sDAAmB;AACnB,6CAAqC;AACrC,wDAAiF;AAEjF,MAAM,eAAe,GAAG,aAAC,CAAC,MAAM,EAAE,CAAA;AAClC,MAAM,iBAAiB,GAAG,aAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,UAAU,CAAA;AAC1B,MAAM,OAAO,GAAG,2BAA2B,CAAA;AAE3C,oEAAoE;AACpE,4DAA4D;AAC5D,uEAAuE;AACvE,6DAA6D;AAC7D,oEAAoE;AACpE,sEAAsE;AACtE,MAAM,gBAAgB;IAGpB,YAA6B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;QACnD,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAoB,CAAC,mBAAM,CAAC,QAAQ,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI;YACF,MAAM,qBAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;SAC9C;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;SACnB;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI;YACF,OAAO,MAAM,qBAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;SAClD;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;SACnC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,IAAI;YACF,MAAM,qBAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;SAClD;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;SACnC;IACH,CAAC;CACF;AAED,MAAM,cAAc,GAAG,IAAI,cAAI,CAAc;IAC3C,UAAU,EAAE,mBAAM,CAAC,mBAAmB;IACtC,GAAG,EAAE,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;CAC1C,CAAC,CAAA;AAEW,QAAA,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@affinidi/cli",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Affinidi CLI",
5
5
  "author": "affinidi.com",
6
6
  "license": "Apache-2.0",
@@ -54,6 +54,7 @@
54
54
  "@oclif/plugin-not-found": "^2.4.1",
55
55
  "@oclif/plugin-search": "^0.0.22",
56
56
  "@oclif/plugin-warn-if-update-available": "^2.0.49",
57
+ "@postman/node-keytar": "^7.9.3",
57
58
  "axios": "^1.4.0",
58
59
  "chalk": "^4.1.2",
59
60
  "conf": "^10.2.0",