@sudoplatform/sudo-common 8.3.0 → 8.4.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.
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/logging/bunyanLogger.js +3 -3
- package/cjs/logging/bunyanLogger.js.map +1 -1
- package/cjs/sudoKeyManager/sudoKeyManager.js +62 -0
- package/cjs/sudoKeyManager/sudoKeyManager.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/logging/bunyanLogger.js +1 -1
- package/lib/logging/bunyanLogger.js.map +1 -1
- package/lib/sudoKeyManager/sudoKeyManager.js +61 -0
- package/lib/sudoKeyManager/sudoKeyManager.js.map +1 -1
- package/package.json +26 -21
- package/types/errors/error.d.ts +2 -2
- package/types/index.d.ts +1 -0
- package/types/logging/bunyanLogger.d.ts +3 -4
- package/types/sudoKeyArchive/keyArchive.d.ts +4 -4
- package/types/sudoKeyArchive/keyInfo.d.ts +1 -1
- package/types/sudoKeyArchive/sudoKeyArchive.d.ts +1 -1
- package/types/sudoKeyManager/sudoKeyManager.d.ts +13 -1
- package/types/types/types.d.ts +3 -3
package/cjs/index.js
CHANGED
|
@@ -11,4 +11,5 @@ tslib_1.__exportStar(require("./utils/stream"), exports);
|
|
|
11
11
|
tslib_1.__exportStar(require("./errors/error"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./logging/logger"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./types/types"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./logging/bunyanLogger"), exports);
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6FAAkE;AAClE,2DAAgC;AAChC,2DAAgC;AAChC,yDAA8B;AAC9B,yDAA8B;AAC9B,uDAA4B;AAC5B,yDAA8B;AAC9B,yDAA8B;AAC9B,2DAAgC;AAChC,wDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6FAAkE;AAClE,2DAAgC;AAChC,2DAAgC;AAChC,yDAA8B;AAC9B,yDAA8B;AAC9B,uDAA4B;AAC5B,yDAA8B;AAC9B,yDAA8B;AAC9B,2DAAgC;AAChC,wDAA6B;AAC7B,iEAAsC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createBunyanLogger = exports.getLogLevel = void 0;
|
|
3
|
+
exports.createBunyanLogger = exports.getLogLevel = exports.Level = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const browser_bunyan_1 = require("browser-bunyan");
|
|
6
6
|
const console_plain_stream_1 = require("@browser-bunyan/console-plain-stream");
|
|
7
7
|
const t = tslib_1.__importStar(require("io-ts"));
|
|
8
8
|
const pipeable_1 = require("fp-ts/lib/pipeable");
|
|
9
9
|
const Either_1 = require("fp-ts/lib/Either");
|
|
10
|
-
|
|
10
|
+
exports.Level = t.union([
|
|
11
11
|
t.literal('trace'),
|
|
12
12
|
t.literal('debug'),
|
|
13
13
|
t.literal('info'),
|
|
@@ -19,7 +19,7 @@ function getLogLevel(level) {
|
|
|
19
19
|
if (!level) {
|
|
20
20
|
return undefined;
|
|
21
21
|
}
|
|
22
|
-
return (0, pipeable_1.pipe)(Level.decode(level), (0, Either_1.fold)(() => undefined, (v) => v));
|
|
22
|
+
return (0, pipeable_1.pipe)(exports.Level.decode(level), (0, Either_1.fold)(() => undefined, (v) => v));
|
|
23
23
|
}
|
|
24
24
|
exports.getLogLevel = getLogLevel;
|
|
25
25
|
function createBunyanLogger(identifier, logLevel) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunyanLogger.js","sourceRoot":"","sources":["../../src/logging/bunyanLogger.ts"],"names":[],"mappings":";;;;AAAA,mDAA6D;AAC7D,+EAAyE;AACzE,iDAA0B;AAC1B,iDAAyC;AACzC,6CAAuC;
|
|
1
|
+
{"version":3,"file":"bunyanLogger.js","sourceRoot":"","sources":["../../src/logging/bunyanLogger.ts"],"names":[],"mappings":";;;;AAAA,mDAA6D;AAC7D,+EAAyE;AACzE,iDAA0B;AAC1B,iDAAyC;AACzC,6CAAuC;AAE1B,QAAA,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CACnB,CAAC,CAAA;AAIF,SAAgB,WAAW,CAAC,KAAyB;IACnD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,IAAA,eAAI,EACT,aAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACnB,IAAA,aAAI,EACF,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACT,CACF,CAAA;AACH,CAAC;AAZD,kCAYC;AAED,SAAgB,kBAAkB,CAChC,UAAmB,EACnB,QAAiB;IAEjB,MAAM,KAAK,GACT,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAA;IACvE,MAAM,GAAG,GAAG,IAAA,6BAAY,EAAC;QACvB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,UAAU,IAAI,YAAY;QAC5D,KAAK;QACL,WAAW,EAAE,+BAAc;QAC3B,MAAM,EAAE,IAAI,yCAAkB,EAAE;KACjC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC;AAbD,gDAaC"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultSudoKeyManager = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
4
5
|
const buffer_1 = require("../utils/buffer");
|
|
6
|
+
const publicKey_1 = require("./publicKey");
|
|
7
|
+
const pkijs = tslib_1.__importStar(require("pkijs"));
|
|
8
|
+
const asn1js = tslib_1.__importStar(require("asn1js"));
|
|
9
|
+
const base64_1 = require("../utils/base64");
|
|
10
|
+
const error_1 = require("../errors/error");
|
|
11
|
+
/**
|
|
12
|
+
* ASN.1 OIDs.
|
|
13
|
+
*/
|
|
14
|
+
var OID;
|
|
15
|
+
(function (OID) {
|
|
16
|
+
OID["rsaEncryption"] = "1.2.840.113549.1.1.1";
|
|
17
|
+
})(OID || (OID = {}));
|
|
5
18
|
class DefaultSudoKeyManager {
|
|
6
19
|
/**
|
|
7
20
|
* @param namespace A namespace to use as part of the key name. If a namespace is specified then
|
|
@@ -62,6 +75,40 @@ class DefaultSudoKeyManager {
|
|
|
62
75
|
getPublicKey(name) {
|
|
63
76
|
return this.sudoCryptoProvider.getPublicKey(name);
|
|
64
77
|
}
|
|
78
|
+
async exportPublicKeyAsPEM(name, format) {
|
|
79
|
+
const publicKey = await this.getPublicKey(name);
|
|
80
|
+
if (!publicKey) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
if (publicKey.keyFormat === publicKey_1.PublicKeyFormat.RSAPublicKey) {
|
|
84
|
+
if (format === publicKey_1.PublicKeyFormat.RSAPublicKey) {
|
|
85
|
+
return this.publicKeyToPEM(publicKey.keyData, format);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Convert RSAPublicKey (RFC3447) to SPKI (RFC5280).
|
|
89
|
+
const spki = new pkijs.PublicKeyInfo();
|
|
90
|
+
spki.algorithm = new pkijs.AlgorithmIdentifier({
|
|
91
|
+
algorithmId: OID.rsaEncryption,
|
|
92
|
+
algorithmParams: new asn1js.Null(),
|
|
93
|
+
});
|
|
94
|
+
spki.subjectPublicKey = new asn1js.BitString({
|
|
95
|
+
valueHex: publicKey.keyData,
|
|
96
|
+
});
|
|
97
|
+
return this.publicKeyToPEM(spki.toSchema().toBER(), format);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
if (format === publicKey_1.PublicKeyFormat.SPKI) {
|
|
102
|
+
return this.publicKeyToPEM(publicKey.keyData, format);
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
// Convert SPKI (RFC5280) to RSAPublicKey (RFC3447).
|
|
106
|
+
const publicKeyInfo = pkijs.PublicKeyInfo.fromBER(publicKey.keyData);
|
|
107
|
+
const keyData = publicKeyInfo.subjectPublicKey.valueBlock.valueHexView;
|
|
108
|
+
return this.publicKeyToPEM(keyData, format);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
65
112
|
deleteKeyPair(name) {
|
|
66
113
|
return this.sudoCryptoProvider.deleteKeyPair(name);
|
|
67
114
|
}
|
|
@@ -135,6 +182,21 @@ class DefaultSudoKeyManager {
|
|
|
135
182
|
exportKeys() {
|
|
136
183
|
return this.sudoCryptoProvider.exportKeys();
|
|
137
184
|
}
|
|
185
|
+
publicKeyToPEM(key, format) {
|
|
186
|
+
const encoded = base64_1.Base64.encode(key);
|
|
187
|
+
const lines = encoded.match(/.{1,64}/g);
|
|
188
|
+
if (!lines) {
|
|
189
|
+
throw new error_1.IllegalArgumentError();
|
|
190
|
+
}
|
|
191
|
+
const formatted = lines.join('\n');
|
|
192
|
+
return ('-----BEGIN ' +
|
|
193
|
+
(format === publicKey_1.PublicKeyFormat.RSAPublicKey ? 'RSA ' : '') +
|
|
194
|
+
'PUBLIC KEY-----\n' +
|
|
195
|
+
formatted +
|
|
196
|
+
'\n-----END ' +
|
|
197
|
+
(format === publicKey_1.PublicKeyFormat.RSAPublicKey ? 'RSA ' : '') +
|
|
198
|
+
'PUBLIC KEY-----');
|
|
199
|
+
}
|
|
138
200
|
}
|
|
139
201
|
exports.DefaultSudoKeyManager = DefaultSudoKeyManager;
|
|
140
202
|
//# sourceMappingURL=sudoKeyManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sudoKeyManager.js","sourceRoot":"","sources":["../../src/sudoKeyManager/sudoKeyManager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sudoKeyManager.js","sourceRoot":"","sources":["../../src/sudoKeyManager/sudoKeyManager.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oDAAoD,CAAA;AAClE,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oDAAoD,CAAA;AAClE,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { ConsolePlainStream } from '@browser-bunyan/console-plain-stream';
|
|
|
3
3
|
import * as t from 'io-ts';
|
|
4
4
|
import { pipe } from 'fp-ts/lib/pipeable';
|
|
5
5
|
import { fold } from 'fp-ts/lib/Either';
|
|
6
|
-
const Level = t.union([
|
|
6
|
+
export const Level = t.union([
|
|
7
7
|
t.literal('trace'),
|
|
8
8
|
t.literal('debug'),
|
|
9
9
|
t.literal('info'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunyanLogger.js","sourceRoot":"","sources":["../../src/logging/bunyanLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,CAAC,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"bunyanLogger.js","sourceRoot":"","sources":["../../src/logging/bunyanLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AACzE,OAAO,KAAK,CAAC,MAAM,OAAO,CAAA;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACjB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAClB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;CACnB,CAAC,CAAA;AAIF,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,SAAS,CAAA;KACjB;IAED,OAAO,IAAI,CACT,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EACnB,IAAI,CACF,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CACT,CACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,UAAmB,EACnB,QAAiB;IAEjB,MAAM,KAAK,GACT,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAA;IACvE,MAAM,GAAG,GAAG,YAAY,CAAC;QACvB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,UAAU,IAAI,YAAY;QAC5D,KAAK;QACL,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,IAAI,kBAAkB,EAAE;KACjC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { Buffer as BufferUtil } from '../utils/buffer';
|
|
2
|
+
import { PublicKeyFormat } from './publicKey';
|
|
3
|
+
import * as pkijs from 'pkijs';
|
|
4
|
+
import * as asn1js from 'asn1js';
|
|
5
|
+
import { Base64 } from '../utils/base64';
|
|
6
|
+
import { IllegalArgumentError } from '../errors/error';
|
|
7
|
+
/**
|
|
8
|
+
* ASN.1 OIDs.
|
|
9
|
+
*/
|
|
10
|
+
var OID;
|
|
11
|
+
(function (OID) {
|
|
12
|
+
OID["rsaEncryption"] = "1.2.840.113549.1.1.1";
|
|
13
|
+
})(OID || (OID = {}));
|
|
2
14
|
export class DefaultSudoKeyManager {
|
|
3
15
|
/**
|
|
4
16
|
* @param namespace A namespace to use as part of the key name. If a namespace is specified then
|
|
@@ -59,6 +71,40 @@ export class DefaultSudoKeyManager {
|
|
|
59
71
|
getPublicKey(name) {
|
|
60
72
|
return this.sudoCryptoProvider.getPublicKey(name);
|
|
61
73
|
}
|
|
74
|
+
async exportPublicKeyAsPEM(name, format) {
|
|
75
|
+
const publicKey = await this.getPublicKey(name);
|
|
76
|
+
if (!publicKey) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
if (publicKey.keyFormat === PublicKeyFormat.RSAPublicKey) {
|
|
80
|
+
if (format === PublicKeyFormat.RSAPublicKey) {
|
|
81
|
+
return this.publicKeyToPEM(publicKey.keyData, format);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// Convert RSAPublicKey (RFC3447) to SPKI (RFC5280).
|
|
85
|
+
const spki = new pkijs.PublicKeyInfo();
|
|
86
|
+
spki.algorithm = new pkijs.AlgorithmIdentifier({
|
|
87
|
+
algorithmId: OID.rsaEncryption,
|
|
88
|
+
algorithmParams: new asn1js.Null(),
|
|
89
|
+
});
|
|
90
|
+
spki.subjectPublicKey = new asn1js.BitString({
|
|
91
|
+
valueHex: publicKey.keyData,
|
|
92
|
+
});
|
|
93
|
+
return this.publicKeyToPEM(spki.toSchema().toBER(), format);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
if (format === PublicKeyFormat.SPKI) {
|
|
98
|
+
return this.publicKeyToPEM(publicKey.keyData, format);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
// Convert SPKI (RFC5280) to RSAPublicKey (RFC3447).
|
|
102
|
+
const publicKeyInfo = pkijs.PublicKeyInfo.fromBER(publicKey.keyData);
|
|
103
|
+
const keyData = publicKeyInfo.subjectPublicKey.valueBlock.valueHexView;
|
|
104
|
+
return this.publicKeyToPEM(keyData, format);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
62
108
|
deleteKeyPair(name) {
|
|
63
109
|
return this.sudoCryptoProvider.deleteKeyPair(name);
|
|
64
110
|
}
|
|
@@ -132,5 +178,20 @@ export class DefaultSudoKeyManager {
|
|
|
132
178
|
exportKeys() {
|
|
133
179
|
return this.sudoCryptoProvider.exportKeys();
|
|
134
180
|
}
|
|
181
|
+
publicKeyToPEM(key, format) {
|
|
182
|
+
const encoded = Base64.encode(key);
|
|
183
|
+
const lines = encoded.match(/.{1,64}/g);
|
|
184
|
+
if (!lines) {
|
|
185
|
+
throw new IllegalArgumentError();
|
|
186
|
+
}
|
|
187
|
+
const formatted = lines.join('\n');
|
|
188
|
+
return ('-----BEGIN ' +
|
|
189
|
+
(format === PublicKeyFormat.RSAPublicKey ? 'RSA ' : '') +
|
|
190
|
+
'PUBLIC KEY-----\n' +
|
|
191
|
+
formatted +
|
|
192
|
+
'\n-----END ' +
|
|
193
|
+
(format === PublicKeyFormat.RSAPublicKey ? 'RSA ' : '') +
|
|
194
|
+
'PUBLIC KEY-----');
|
|
195
|
+
}
|
|
135
196
|
}
|
|
136
197
|
//# sourceMappingURL=sudoKeyManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sudoKeyManager.js","sourceRoot":"","sources":["../../src/sudoKeyManager/sudoKeyManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"sudoKeyManager.js","sourceRoot":"","sources":["../../src/sudoKeyManager/sudoKeyManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudoplatform/sudo-common",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.0",
|
|
4
4
|
"author": "Anonyome Labs, Inc.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -50,54 +50,59 @@
|
|
|
50
50
|
],
|
|
51
51
|
"resolutions": {
|
|
52
52
|
"**/apollo-cache-inmemory": "^1.6.6",
|
|
53
|
-
"**/apollo-client": "^2.6.10"
|
|
53
|
+
"**/apollo-client": "^2.6.10",
|
|
54
|
+
"json5": "^1.0.2"
|
|
54
55
|
},
|
|
55
56
|
"dependencies": {
|
|
56
|
-
"@aws-sdk/client-s3": "
|
|
57
|
+
"@aws-sdk/client-s3": "3.295.0",
|
|
57
58
|
"apollo-client": "^2.6.10",
|
|
59
|
+
"asn1js": "^3.0.5",
|
|
58
60
|
"browser-bunyan": "^1.8.0",
|
|
59
61
|
"fflate": "^0.7.4",
|
|
60
62
|
"graphql": "^15.8.0",
|
|
61
|
-
"
|
|
63
|
+
"pkijs": "^3.0.14",
|
|
64
|
+
"tslib": "^2.5.0"
|
|
62
65
|
},
|
|
63
66
|
"peerDependencies": {
|
|
64
67
|
"io-ts": "^2.2.16"
|
|
65
68
|
},
|
|
66
69
|
"devDependencies": {
|
|
67
70
|
"@types/jest": "^27.5.2",
|
|
68
|
-
"@types/node": "^16.18.
|
|
69
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
70
|
-
"@typescript-eslint/parser": "^5.
|
|
71
|
+
"@types/node": "^16.18.18",
|
|
72
|
+
"@typescript-eslint/eslint-plugin": "^5.56.0",
|
|
73
|
+
"@typescript-eslint/parser": "^5.56.0",
|
|
71
74
|
"aws-sdk-mock": "^5.8.0",
|
|
72
|
-
"concurrently": "^7.
|
|
73
|
-
"eslint": "^8.
|
|
74
|
-
"eslint-config-prettier": "^8.
|
|
75
|
-
"eslint-plugin-import": "^2.
|
|
75
|
+
"concurrently": "^7.6.0",
|
|
76
|
+
"eslint": "^8.36.0",
|
|
77
|
+
"eslint-config-prettier": "^8.8.0",
|
|
78
|
+
"eslint-plugin-import": "^2.27.5",
|
|
76
79
|
"eslint-plugin-prettier": "^4.2.1",
|
|
77
80
|
"eslint-plugin-tree-shaking": "^1.10.0",
|
|
78
81
|
"fp-ts": "^2.13.1",
|
|
79
|
-
"io-ts": "^2.2.
|
|
82
|
+
"io-ts": "^2.2.20",
|
|
80
83
|
"io-ts-types": "^0.5.19",
|
|
81
84
|
"isomorphic-fetch": "^3.0.0",
|
|
82
85
|
"isomorphic-webcrypto": "^2.3.8",
|
|
83
86
|
"jest": "^27.5.1",
|
|
84
87
|
"monocle-ts": "^2.3.13",
|
|
85
88
|
"newtype-ts": "^0.3.5",
|
|
86
|
-
"prettier": "^2.
|
|
87
|
-
"rimraf": "^
|
|
89
|
+
"prettier": "^2.8.5",
|
|
90
|
+
"rimraf": "^4.4.0",
|
|
88
91
|
"ts-jest": "^27.1.5",
|
|
89
92
|
"ts-mockito": "^2.6.1",
|
|
90
93
|
"ts-node": "^10.9.1",
|
|
91
|
-
"typedoc": "^0.23.
|
|
92
|
-
"typescript": "^4.
|
|
94
|
+
"typedoc": "^0.23.28",
|
|
95
|
+
"typescript": "^4.9.5"
|
|
93
96
|
},
|
|
94
97
|
"outdatedSuppressions": {
|
|
95
98
|
"major": {
|
|
96
|
-
"@types/jest":
|
|
97
|
-
"@types/node":
|
|
98
|
-
"graphql":
|
|
99
|
-
"jest":
|
|
100
|
-
"ts-jest":
|
|
99
|
+
"@types/jest": 1681893993,
|
|
100
|
+
"@types/node": 1681893993,
|
|
101
|
+
"graphql": 1681893994,
|
|
102
|
+
"jest": 1681893994,
|
|
103
|
+
"ts-jest": 1681893994,
|
|
104
|
+
"typescript": 1681893994,
|
|
105
|
+
"json5": 1681893994
|
|
101
106
|
}
|
|
102
107
|
}
|
|
103
108
|
}
|
package/types/errors/error.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { GraphQLError } from 'graphql';
|
|
2
2
|
import { JsonValue } from '../types/types';
|
|
3
|
-
export
|
|
3
|
+
export type AppSyncError = GraphQLError & {
|
|
4
4
|
errorType?: string | null;
|
|
5
5
|
errorInfo?: unknown;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type AppSyncNetworkError = Error & {
|
|
8
8
|
networkError: Error & {
|
|
9
9
|
statusCode?: number;
|
|
10
10
|
};
|
package/types/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { createLogger } from 'browser-bunyan';
|
|
2
2
|
import * as t from 'io-ts';
|
|
3
|
-
declare const Level: t.UnionC<[t.LiteralC<"trace">, t.LiteralC<"debug">, t.LiteralC<"info">, t.LiteralC<"warn">, t.LiteralC<"error">, t.LiteralC<"fatal">]>;
|
|
4
|
-
|
|
3
|
+
export declare const Level: t.UnionC<[t.LiteralC<"trace">, t.LiteralC<"debug">, t.LiteralC<"info">, t.LiteralC<"warn">, t.LiteralC<"error">, t.LiteralC<"fatal">]>;
|
|
4
|
+
export type Level = t.TypeOf<typeof Level>;
|
|
5
5
|
export declare function getLogLevel(level: string | undefined): Level | undefined;
|
|
6
6
|
export declare function createBunyanLogger(identifier?: string, logLevel?: string): BunyanLogger;
|
|
7
|
-
export
|
|
8
|
-
export {};
|
|
7
|
+
export type BunyanLogger = ReturnType<typeof createLogger>;
|
|
@@ -26,13 +26,13 @@ export declare const InsecureKeyArchiveCodec: t.TypeC<{
|
|
|
26
26
|
*/
|
|
27
27
|
MetaInfo: t.RecordC<t.StringC, t.StringC>;
|
|
28
28
|
}>;
|
|
29
|
-
export
|
|
29
|
+
export type InsecureKeyArchive = t.TypeOf<typeof InsecureKeyArchiveCodec>;
|
|
30
30
|
export declare const SecureKeyArchiveType = "Secure";
|
|
31
31
|
export declare const UnrecognizedKeyArchiveCodec: t.PartialC<{
|
|
32
32
|
Version: t.NumberC;
|
|
33
33
|
Type: t.StringC;
|
|
34
34
|
}>;
|
|
35
|
-
export
|
|
35
|
+
export type UnrecognizedKeyArchive = t.TypeOf<typeof UnrecognizedKeyArchiveCodec>;
|
|
36
36
|
export declare const SecureKeyArchiveCodec: t.TypeC<{
|
|
37
37
|
/**
|
|
38
38
|
* Discriminant for SecureKeyArchive type.
|
|
@@ -68,7 +68,7 @@ export declare const SecureKeyArchiveCodec: t.TypeC<{
|
|
|
68
68
|
*/
|
|
69
69
|
MetaInfo: t.RecordC<t.StringC, t.StringC>;
|
|
70
70
|
}>;
|
|
71
|
-
export
|
|
71
|
+
export type SecureKeyArchive = t.TypeOf<typeof SecureKeyArchiveCodec>;
|
|
72
72
|
export declare const KeyArchiveCodec: t.UnionC<[t.TypeC<{
|
|
73
73
|
/**
|
|
74
74
|
* Discriminant for SecureKeyArchive type.
|
|
@@ -131,7 +131,7 @@ export declare const KeyArchiveCodec: t.UnionC<[t.TypeC<{
|
|
|
131
131
|
Version: t.NumberC;
|
|
132
132
|
Type: t.StringC;
|
|
133
133
|
}>]>;
|
|
134
|
-
export
|
|
134
|
+
export type KeyArchive = t.TypeOf<typeof KeyArchiveCodec>;
|
|
135
135
|
export declare function isSecureKeyArchive(keyArchive: KeyArchive): keyArchive is SecureKeyArchive;
|
|
136
136
|
export declare function isInsecureKeyArchive(keyArchive: KeyArchive): keyArchive is InsecureKeyArchive;
|
|
137
137
|
export declare function isUnrecognizedKeyArchive(keyArchive: KeyArchive): keyArchive is UnrecognizedKeyArchive;
|
|
@@ -38,4 +38,4 @@ export declare const KeyArchiveKeyInfoArrayCodec: t.ArrayC<t.TypeC<{
|
|
|
38
38
|
* Whether restored key should be exportable. Always true on archive.
|
|
39
39
|
* For future use on unarchive.
|
|
40
40
|
*/
|
|
41
|
-
export
|
|
41
|
+
export type KeyArchiveKeyInfo = t.TypeOf<typeof KeyArchiveKeyInfoCodec>;
|
|
@@ -80,7 +80,7 @@ export interface SudoKeyArchive {
|
|
|
80
80
|
/** @return the meta-information associated with this archive in an unmodifiable map. */
|
|
81
81
|
getMetaInfo(): ReadonlyMap<string, string>;
|
|
82
82
|
}
|
|
83
|
-
export
|
|
83
|
+
export type KeyArchiveKeyInfoDecoded = KeyArchiveKeyInfo & {
|
|
84
84
|
Decoded: ArrayBuffer;
|
|
85
85
|
};
|
|
86
86
|
export declare class DefaultSudoKeyArchive implements SudoKeyArchive {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KeyData } from './keyData';
|
|
2
|
-
import { PublicKey } from './publicKey';
|
|
2
|
+
import { PublicKey, PublicKeyFormat } from './publicKey';
|
|
3
3
|
import { AsymmetricEncryptionOptions, SignatureOptions, SudoCryptoProvider, SymmetricEncryptionOptions } from './sudoCryptoProvider';
|
|
4
4
|
/**
|
|
5
5
|
* Interface for a set of methods for securely storing keys and performing
|
|
@@ -109,6 +109,16 @@ export interface SudoKeyManager {
|
|
|
109
109
|
* @returns The public key or undefined if the key was not found.
|
|
110
110
|
*/
|
|
111
111
|
getPublicKey(name: string): Promise<PublicKey | undefined>;
|
|
112
|
+
/**
|
|
113
|
+
* Exports the public key from the secure store as PEM encoded
|
|
114
|
+
* string.
|
|
115
|
+
*
|
|
116
|
+
* @param name The name of the public key.
|
|
117
|
+
* @param format The key format to use.
|
|
118
|
+
*
|
|
119
|
+
* @returns The public key or undefined if the key was not found.
|
|
120
|
+
*/
|
|
121
|
+
exportPublicKeyAsPEM(name: string, format: PublicKeyFormat): Promise<string | undefined>;
|
|
112
122
|
/**
|
|
113
123
|
* Deletes a key pair from the secure store.
|
|
114
124
|
*
|
|
@@ -326,6 +336,7 @@ export declare class DefaultSudoKeyManager implements SudoKeyManager {
|
|
|
326
336
|
addPublicKey(key: ArrayBuffer, name: string): Promise<void>;
|
|
327
337
|
deletePublicKey(name: string): Promise<void>;
|
|
328
338
|
getPublicKey(name: string): Promise<PublicKey | undefined>;
|
|
339
|
+
exportPublicKeyAsPEM(name: string, format: PublicKeyFormat): Promise<string | undefined>;
|
|
329
340
|
deleteKeyPair(name: string): Promise<void>;
|
|
330
341
|
generateSignatureWithPrivateKey(name: string, data: ArrayBuffer, options?: SignatureOptions): Promise<ArrayBuffer>;
|
|
331
342
|
verifySignatureWithPublicKey(name: string, data: ArrayBuffer, signature: ArrayBuffer, options?: SignatureOptions): Promise<boolean>;
|
|
@@ -343,4 +354,5 @@ export declare class DefaultSudoKeyManager implements SudoKeyManager {
|
|
|
343
354
|
generateRandomData(size: number): Promise<ArrayBuffer>;
|
|
344
355
|
generateHash(data: ArrayBuffer): Promise<ArrayBuffer>;
|
|
345
356
|
exportKeys(): Promise<KeyData[]>;
|
|
357
|
+
private publicKeyToPEM;
|
|
346
358
|
}
|
package/types/types/types.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare enum EncryptionAlgorithm {
|
|
|
50
50
|
export declare enum SignatureAlgorithm {
|
|
51
51
|
RsaPkcs15Sha256 = "RSA/SSAPKCS15withSHA-256"
|
|
52
52
|
}
|
|
53
|
-
export
|
|
53
|
+
export type Subset<T, S> = Pick<T, keyof T & keyof S>;
|
|
54
54
|
/**
|
|
55
55
|
* Status of the list operation result.
|
|
56
56
|
*/
|
|
@@ -120,11 +120,11 @@ export interface ListOperationPartialResult<T, S extends Subset<S, T>> {
|
|
|
120
120
|
* S is a subset of T's properties that won't be present if the
|
|
121
121
|
* additional processing after the item has been fetched fails.
|
|
122
122
|
*/
|
|
123
|
-
export
|
|
123
|
+
export type ListOperationResult<T, S extends Subset<S, T> = T> = ListOperationSuccessResult<T> | ListOperationFailureResult | ListOperationPartialResult<T, S>;
|
|
124
124
|
/**
|
|
125
125
|
* Representation of opaque of application defined JSON data values
|
|
126
126
|
* as used and returned by Sudo Platform SDKs.
|
|
127
127
|
*/
|
|
128
|
-
export
|
|
128
|
+
export type JsonValue = null | boolean | number | string | Array<JsonValue> | {
|
|
129
129
|
[key: string]: JsonValue;
|
|
130
130
|
};
|