@affinidi/cli 2.14.4 → 2.15.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.
@@ -1,8 +1,13 @@
1
1
  import { generateKeyPairSync } from 'node:crypto';
2
+ import { SupportedAlgorithms } from '../common/constants.js';
2
3
  import { policiesDataSchema } from '../common/validators.js';
3
4
  import { iamService } from '../services/affinidi/iam/service.js';
4
5
  export function generateKeyPair(keyId, algorithm, passphrase) {
5
- const { publicKey, privateKey } = generateKeyPairSync('rsa', { modulusLength: 4096 });
6
+ const isEc = algorithm === SupportedAlgorithms.ES256 || algorithm === SupportedAlgorithms.ES512;
7
+ const namedCurve = algorithm === SupportedAlgorithms.ES256 ? 'P-256' : 'P-521';
8
+ const { publicKey, privateKey } = isEc
9
+ ? generateKeyPairSync('ec', { namedCurve })
10
+ : generateKeyPairSync('rsa', { modulusLength: 4096 });
6
11
  const publicKeyPem = publicKey.export({ format: 'pem', type: 'spki' });
7
12
  const exportOptions = {
8
13
  format: 'pem',
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/helpers/token.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/helpers/token.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import os from 'os';
2
2
  import path from 'path';
3
- import keytar from '@postman/node-keytar';
3
+ import { Entry } from '@napi-rs/keyring';
4
4
  import Conf from 'conf';
5
5
  import z from 'zod';
6
6
  import { config } from './env-config.js';
@@ -10,19 +10,25 @@ const credentialsSchema = z.object({
10
10
  });
11
11
  const account = 'Affinidi';
12
12
  const service = 'sessionID (@affinidi/cli)';
13
- // NOTE: `keytar` allows to manage credentials in system's keychain.
13
+ // NOTE: `@napi-rs/keyring` manages credentials in the system's keychain.
14
14
  // On macOS the passwords are managed by the Keychain,
15
15
  // on Linux they are managed by the Secret Service API/libsecret,
16
- // and on Windows they are managed by Credential Vault.
17
- // NOTE: `keytar` uses `libsecret` for Linux, and if that service is
18
- // not installed, CLI falls back to saving sessionId into file.
16
+ // and on Windows they are managed by the Credential Vault.
17
+ // NOTE: The `service`/`account` pair is kept identical to the one previously
18
+ // used with `keytar`, so credentials already stored in the keychain
19
+ // remain readable after the migration.
20
+ // NOTE: If the keychain backend is unavailable (e.g. `libsecret` is not
21
+ // installed on Linux), CLI falls back to saving sessionId into a file.
22
+ function getKeychainEntry() {
23
+ return new Entry(service, account);
24
+ }
19
25
  class CredentialsVault {
20
26
  constructor(store) {
21
27
  this.store = store;
22
28
  }
23
29
  async clear() {
24
30
  try {
25
- await keytar.deletePassword(service, account);
31
+ getKeychainEntry().deletePassword();
26
32
  }
27
33
  catch (error) {
28
34
  this.store.clear();
@@ -30,7 +36,7 @@ class CredentialsVault {
30
36
  }
31
37
  async getSessionId() {
32
38
  try {
33
- return await keytar.getPassword(service, account);
39
+ return getKeychainEntry().getPassword();
34
40
  }
35
41
  catch (error) {
36
42
  return this.store.get('sessionId');
@@ -38,7 +44,7 @@ class CredentialsVault {
38
44
  }
39
45
  async setSessionId(value) {
40
46
  try {
41
- await keytar.setPassword(service, account, value);
47
+ getKeychainEntry().setPassword(value);
42
48
  }
43
49
  catch (error) {
44
50
  this.store.set('sessionId', value);
@@ -1 +1 @@
1
- {"version":3,"file":"credentials-vault.js","sourceRoot":"","sources":["../../src/services/credentials-vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,MAAM,MAAM,sBAAsB,CAAA;AACzC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAClC,MAAM,iBAAiB,GAAG,CAAC,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;IACpB,YAA6B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;CACF;AAED,MAAM,cAAc,GAAG,IAAI,IAAI,CAAc;IAC3C,UAAU,EAAE,MAAM,CAAC,mBAAmB;IACtC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;CAC1C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,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,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACxC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;AAClC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,SAAS,EAAE,eAAe;CAC3B,CAAC,CAAA;AAEF,MAAM,OAAO,GAAG,UAAU,CAAA;AAC1B,MAAM,OAAO,GAAG,2BAA2B,CAAA;AAE3C,yEAAyE;AACzE,4DAA4D;AAC5D,uEAAuE;AACvE,iEAAiE;AACjE,6EAA6E;AAC7E,0EAA0E;AAC1E,6CAA6C;AAC7C,wEAAwE;AACxE,6EAA6E;AAC7E,SAAS,gBAAgB;IACvB,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,gBAAgB;IACpB,YAA6B,KAAwB;QAAxB,UAAK,GAAL,KAAK,CAAmB;IAAG,CAAC;IAEzD,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,gBAAgB,EAAE,CAAC,cAAc,EAAE,CAAA;QACrC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC;YACH,OAAO,gBAAgB,EAAE,CAAC,WAAW,EAAE,CAAA;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,IAAI,CAAC;YACH,gBAAgB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;CACF;AAED,MAAM,cAAc,GAAG,IAAI,IAAI,CAAc;IAC3C,UAAU,EAAE,MAAM,CAAC,mBAAmB;IACtC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC;CAC1C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@affinidi/cli",
3
- "version": "2.14.4",
3
+ "version": "2.15.0",
4
4
  "description": "Affinidi CLI",
5
5
  "author": "affinidi.com",
6
6
  "license": "Apache-2.0",
7
7
  "typings": "dist/index.d.ts",
8
8
  "bin": {
9
- "affinidi": "./bin/run.js"
9
+ "affinidi": "bin/run.js"
10
10
  },
11
11
  "main": "dist/index.js",
12
12
  "type": "module",
@@ -55,7 +55,7 @@
55
55
  "@oclif/plugin-not-found": "^3.2.42",
56
56
  "@oclif/plugin-search": "^1.2.5",
57
57
  "@oclif/plugin-warn-if-update-available": "^3.1.11",
58
- "@postman/node-keytar": "7.9.3",
58
+ "@napi-rs/keyring": "^1.3.0",
59
59
  "axios": "^1.8.3",
60
60
  "chalk": "^5.3.0",
61
61
  "conf": "^13.0.1",
@@ -67,7 +67,7 @@
67
67
  "jose": "^5.6.3",
68
68
  "open": "^10.1.0",
69
69
  "tcp-port-used": "^1.0.2",
70
- "uuid": "^10.0.0",
70
+ "uuid": "^11.1.1",
71
71
  "zod": "^3.23.8",
72
72
  "zod-validation-error": "^3.3.0"
73
73
  },
@@ -81,7 +81,6 @@
81
81
  "@types/mocha": "10.0.7",
82
82
  "@types/node": "^18.19.39",
83
83
  "@types/tcp-port-used": "^1.0.4",
84
- "@types/uuid": "^10.0.0",
85
84
  "@typescript-eslint/eslint-plugin": "^5.62.0",
86
85
  "@typescript-eslint/parser": "^5.59.9",
87
86
  "chai": "4.4.1",
@@ -103,8 +102,10 @@
103
102
  "typescript": "^5.5.3"
104
103
  },
105
104
  "overrides": {
106
- "brace-expansion": "2.0.2",
105
+ "brace-expansion": "^2.0.3",
107
106
  "cookie": "^0.7.0",
107
+ "diff": "^8.0.3",
108
+ "serialize-javascript": "^7.0.5",
108
109
  "tar-fs": "2.1.4"
109
110
  },
110
111
  "oclif": {