@sudoplatform/sudo-common 7.1.3 → 8.0.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.
- package/bin/outdated-with-suppression.sh +203 -0
- package/bin/suppress-audit.sh +15 -0
- package/bin/suppress-outdated.sh +60 -0
- package/bin/yarn-audit-with-suppression.sh +19 -0
- package/cjs/configurationManager/defaultConfigurationManager.js +122 -0
- package/cjs/configurationManager/defaultConfigurationManager.js.map +1 -0
- package/cjs/errors/error.js +442 -0
- package/cjs/errors/error.js.map +1 -0
- package/cjs/index.js +13 -0
- package/cjs/index.js.map +1 -0
- package/cjs/logging/bunyanLogger.js +36 -0
- package/cjs/logging/bunyanLogger.js.map +1 -0
- package/cjs/logging/logger.js +77 -0
- package/cjs/logging/logger.js.map +1 -0
- package/cjs/sudoKeyArchive/index.js +8 -0
- package/cjs/sudoKeyArchive/index.js.map +1 -0
- package/cjs/sudoKeyArchive/keyArchive.js +84 -0
- package/cjs/sudoKeyArchive/keyArchive.js.map +1 -0
- package/cjs/sudoKeyArchive/keyInfo.js +17 -0
- package/cjs/sudoKeyArchive/keyInfo.js.map +1 -0
- package/cjs/sudoKeyArchive/keyType.js +39 -0
- package/cjs/sudoKeyArchive/keyType.js.map +1 -0
- package/cjs/sudoKeyArchive/sudoKeyArchive.js +373 -0
- package/cjs/sudoKeyArchive/sudoKeyArchive.js.map +1 -0
- package/cjs/sudoKeyManager/index.js +8 -0
- package/cjs/sudoKeyManager/index.js.map +1 -0
- package/cjs/sudoKeyManager/keyData.js +46 -0
- package/cjs/sudoKeyManager/keyData.js.map +1 -0
- package/cjs/sudoKeyManager/publicKey.js +9 -0
- package/cjs/sudoKeyManager/publicKey.js.map +1 -0
- package/cjs/sudoKeyManager/sudoCryptoProvider.js +12 -0
- package/cjs/sudoKeyManager/sudoCryptoProvider.js.map +1 -0
- package/cjs/sudoKeyManager/sudoKeyManager.js +140 -0
- package/cjs/sudoKeyManager/sudoKeyManager.js.map +1 -0
- package/cjs/types/types.js +45 -0
- package/cjs/types/types.js.map +1 -0
- package/cjs/utils/base64.js +71 -0
- package/cjs/utils/base64.js.map +1 -0
- package/cjs/utils/buffer.js +37 -0
- package/cjs/utils/buffer.js.map +1 -0
- package/cjs/utils/stream.js +70 -0
- package/cjs/utils/stream.js.map +1 -0
- package/lib/configurationManager/defaultConfigurationManager.js +106 -156
- package/lib/configurationManager/defaultConfigurationManager.js.map +1 -0
- package/lib/errors/error.js +226 -438
- package/lib/errors/error.js.map +1 -0
- package/lib/index.js +10 -109
- package/lib/index.js.map +1 -0
- package/lib/logging/bunyanLogger.js +29 -41
- package/lib/logging/bunyanLogger.js.map +1 -0
- package/lib/logging/logger.js +66 -92
- package/lib/logging/logger.js.map +1 -0
- package/lib/sudoKeyArchive/index.js +5 -57
- package/lib/sudoKeyArchive/index.js.map +1 -0
- package/lib/sudoKeyArchive/keyArchive.js +69 -96
- package/lib/sudoKeyArchive/keyArchive.js.map +1 -0
- package/lib/sudoKeyArchive/keyInfo.js +11 -49
- package/lib/sudoKeyArchive/keyInfo.js.map +1 -0
- package/lib/sudoKeyArchive/keyType.js +27 -37
- package/lib/sudoKeyArchive/keyType.js.map +1 -0
- package/lib/sudoKeyArchive/sudoKeyArchive.js +351 -444
- package/lib/sudoKeyArchive/sudoKeyArchive.js.map +1 -0
- package/lib/sudoKeyManager/index.js +5 -57
- package/lib/sudoKeyManager/index.js.map +1 -0
- package/lib/sudoKeyManager/keyData.js +38 -33
- package/lib/sudoKeyManager/keyData.js.map +1 -0
- package/lib/sudoKeyManager/publicKey.js +5 -12
- package/lib/sudoKeyManager/publicKey.js.map +1 -0
- package/lib/sudoKeyManager/sudoCryptoProvider.js +8 -26
- package/lib/sudoKeyManager/sudoCryptoProvider.js.map +1 -0
- package/lib/sudoKeyManager/sudoKeyManager.js +135 -173
- package/lib/sudoKeyManager/sudoKeyManager.js.map +1 -0
- package/lib/types/types.js +27 -33
- package/lib/types/types.js.map +1 -0
- package/lib/utils/base64.js +63 -93
- package/lib/utils/base64.js.map +1 -0
- package/lib/utils/buffer.js +28 -46
- package/lib/utils/buffer.js.map +1 -0
- package/lib/utils/stream.js +63 -0
- package/lib/utils/stream.js.map +1 -0
- package/package.json +45 -28
- package/{lib → types}/configurationManager/defaultConfigurationManager.d.ts +0 -0
- package/{lib → types}/errors/error.d.ts +0 -0
- package/{lib → types}/index.d.ts +1 -0
- package/{lib → types}/logging/bunyanLogger.d.ts +0 -0
- package/{lib → types}/logging/logger.d.ts +0 -0
- package/{lib → types}/sudoKeyArchive/index.d.ts +0 -0
- package/{lib → types}/sudoKeyArchive/keyArchive.d.ts +8 -8
- package/{lib → types}/sudoKeyArchive/keyInfo.d.ts +0 -0
- package/{lib → types}/sudoKeyArchive/keyType.d.ts +0 -0
- package/{lib → types}/sudoKeyArchive/sudoKeyArchive.d.ts +0 -0
- package/{lib → types}/sudoKeyManager/index.d.ts +0 -0
- package/{lib → types}/sudoKeyManager/keyData.d.ts +0 -0
- package/{lib → types}/sudoKeyManager/publicKey.d.ts +0 -0
- package/{lib → types}/sudoKeyManager/sudoCryptoProvider.d.ts +0 -0
- package/{lib → types}/sudoKeyManager/sudoKeyManager.d.ts +0 -0
- package/{lib → types}/types/types.d.ts +1 -1
- package/{lib → types}/utils/base64.d.ts +0 -0
- package/{lib → types}/utils/buffer.d.ts +0 -0
- package/types/utils/stream.d.ts +6 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultSudoKeyManager = void 0;
|
|
4
|
+
const buffer_1 = require("../utils/buffer");
|
|
5
|
+
class DefaultSudoKeyManager {
|
|
6
|
+
/**
|
|
7
|
+
* @param namespace A namespace to use as part of the key name. If a namespace is specified then
|
|
8
|
+
* a unique identifier for each key will be `<namespace>.<keyName>`. Namespace cannot be an empty string.
|
|
9
|
+
* @param sudoCryptoProvider
|
|
10
|
+
*/
|
|
11
|
+
constructor(sudoCryptoProvider) {
|
|
12
|
+
this.sudoCryptoProvider = sudoCryptoProvider;
|
|
13
|
+
}
|
|
14
|
+
get serviceName() {
|
|
15
|
+
return this.sudoCryptoProvider.getServiceName();
|
|
16
|
+
}
|
|
17
|
+
get namespace() {
|
|
18
|
+
return this.sudoCryptoProvider.getNamespace();
|
|
19
|
+
}
|
|
20
|
+
addPassword(password, name) {
|
|
21
|
+
return this.sudoCryptoProvider.addPassword(password, name);
|
|
22
|
+
}
|
|
23
|
+
getPassword(name) {
|
|
24
|
+
return this.sudoCryptoProvider.getPassword(name);
|
|
25
|
+
}
|
|
26
|
+
deletePassword(name) {
|
|
27
|
+
return this.sudoCryptoProvider.deletePassword(name);
|
|
28
|
+
}
|
|
29
|
+
updatePassword(password, name) {
|
|
30
|
+
return this.sudoCryptoProvider.updatePassword(password, name);
|
|
31
|
+
}
|
|
32
|
+
addSymmetricKey(key, name) {
|
|
33
|
+
return this.sudoCryptoProvider.addSymmetricKey(key, name);
|
|
34
|
+
}
|
|
35
|
+
getSymmetricKey(name) {
|
|
36
|
+
return this.sudoCryptoProvider.getSymmetricKey(name);
|
|
37
|
+
}
|
|
38
|
+
doesSymmetricKeyExist(name) {
|
|
39
|
+
return this.sudoCryptoProvider.doesSymmetricKeyExist(name);
|
|
40
|
+
}
|
|
41
|
+
deleteSymmetricKey(name) {
|
|
42
|
+
return this.sudoCryptoProvider.deleteSymmetricKey(name);
|
|
43
|
+
}
|
|
44
|
+
generateKeyPair(name) {
|
|
45
|
+
return this.sudoCryptoProvider.generateKeyPair(name);
|
|
46
|
+
}
|
|
47
|
+
addPrivateKey(key, name) {
|
|
48
|
+
return this.sudoCryptoProvider.addPrivateKey(key, name);
|
|
49
|
+
}
|
|
50
|
+
getPrivateKey(name) {
|
|
51
|
+
return this.sudoCryptoProvider.getPrivateKey(name);
|
|
52
|
+
}
|
|
53
|
+
doesPrivateKeyExist(name) {
|
|
54
|
+
return this.sudoCryptoProvider.doesPrivateKeyExist(name);
|
|
55
|
+
}
|
|
56
|
+
addPublicKey(key, name) {
|
|
57
|
+
return this.sudoCryptoProvider.addPublicKey(key, name);
|
|
58
|
+
}
|
|
59
|
+
deletePublicKey(name) {
|
|
60
|
+
return this.sudoCryptoProvider.deletePublicKey(name);
|
|
61
|
+
}
|
|
62
|
+
getPublicKey(name) {
|
|
63
|
+
return this.sudoCryptoProvider.getPublicKey(name);
|
|
64
|
+
}
|
|
65
|
+
deleteKeyPair(name) {
|
|
66
|
+
return this.sudoCryptoProvider.deleteKeyPair(name);
|
|
67
|
+
}
|
|
68
|
+
generateSignatureWithPrivateKey(name, data) {
|
|
69
|
+
return this.sudoCryptoProvider.generateSignatureWithPrivateKey(name, data);
|
|
70
|
+
}
|
|
71
|
+
verifySignatureWithPublicKey(name, data, signature) {
|
|
72
|
+
return this.sudoCryptoProvider.verifySignatureWithPublicKey(name, data, signature);
|
|
73
|
+
}
|
|
74
|
+
encryptWithSymmetricKey(key, data, ivOrOptions) {
|
|
75
|
+
if (buffer_1.Buffer.isArrayBuffer(ivOrOptions)) {
|
|
76
|
+
return this.sudoCryptoProvider.encryptWithSymmetricKey(key, data, {
|
|
77
|
+
iv: ivOrOptions,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
return this.sudoCryptoProvider.encryptWithSymmetricKey(key, data, ivOrOptions);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
decryptWithSymmetricKey(key, data, ivOrOptions) {
|
|
85
|
+
if (buffer_1.Buffer.isArrayBuffer(ivOrOptions)) {
|
|
86
|
+
return this.sudoCryptoProvider.decryptWithSymmetricKey(key, data, {
|
|
87
|
+
iv: ivOrOptions,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return this.sudoCryptoProvider.decryptWithSymmetricKey(key, data, ivOrOptions);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
encryptWithSymmetricKeyName(name, data, ivOrOptions) {
|
|
95
|
+
if (buffer_1.Buffer.isArrayBuffer(ivOrOptions)) {
|
|
96
|
+
return this.sudoCryptoProvider.encryptWithSymmetricKeyName(name, data, {
|
|
97
|
+
iv: ivOrOptions,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
return this.sudoCryptoProvider.encryptWithSymmetricKeyName(name, data, ivOrOptions);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
decryptWithSymmetricKeyName(name, data, ivOrOptions) {
|
|
105
|
+
if (buffer_1.Buffer.isArrayBuffer(ivOrOptions)) {
|
|
106
|
+
return this.sudoCryptoProvider.decryptWithSymmetricKeyName(name, data, {
|
|
107
|
+
iv: ivOrOptions,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
return this.sudoCryptoProvider.decryptWithSymmetricKeyName(name, data, ivOrOptions);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
encryptWithPublicKey(name, data, options) {
|
|
115
|
+
return this.sudoCryptoProvider.encryptWithPublicKey(name, data, options);
|
|
116
|
+
}
|
|
117
|
+
decryptWithPrivateKey(name, data, options) {
|
|
118
|
+
return this.sudoCryptoProvider.decryptWithPrivateKey(name, data, options);
|
|
119
|
+
}
|
|
120
|
+
removeAllKeys() {
|
|
121
|
+
return this.sudoCryptoProvider.removeAllKeys();
|
|
122
|
+
}
|
|
123
|
+
generateSymmetricKey(name) {
|
|
124
|
+
return this.sudoCryptoProvider.generateSymmetricKey(name);
|
|
125
|
+
}
|
|
126
|
+
generateSymmetricKeyFromPassword(password, salt, options) {
|
|
127
|
+
return this.sudoCryptoProvider.generateSymmetricKeyFromPassword(password, salt, options);
|
|
128
|
+
}
|
|
129
|
+
generateRandomData(size) {
|
|
130
|
+
return this.sudoCryptoProvider.generateRandomData(size);
|
|
131
|
+
}
|
|
132
|
+
generateHash(data) {
|
|
133
|
+
return this.sudoCryptoProvider.generateHash(data);
|
|
134
|
+
}
|
|
135
|
+
exportKeys() {
|
|
136
|
+
return this.sudoCryptoProvider.exportKeys();
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.DefaultSudoKeyManager = DefaultSudoKeyManager;
|
|
140
|
+
//# sourceMappingURL=sudoKeyManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sudoKeyManager.js","sourceRoot":"","sources":["../../src/sudoKeyManager/sudoKeyManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ListOperationResultStatus = exports.EncryptionAlgorithm = exports.CachePolicy = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Cache policy that determines how data is accessed when performing a query method
|
|
6
|
+
* from the Email Service.
|
|
7
|
+
*/
|
|
8
|
+
var CachePolicy;
|
|
9
|
+
(function (CachePolicy) {
|
|
10
|
+
// Use the device cached data.
|
|
11
|
+
CachePolicy["CacheOnly"] = "cache-only";
|
|
12
|
+
// Query and use the data on the server.
|
|
13
|
+
CachePolicy["RemoteOnly"] = "network-only";
|
|
14
|
+
})(CachePolicy = exports.CachePolicy || (exports.CachePolicy = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Encryption algorithm names that are
|
|
17
|
+
* supported by the Sudo Platform and can be used
|
|
18
|
+
* between devices.
|
|
19
|
+
*/
|
|
20
|
+
var EncryptionAlgorithm;
|
|
21
|
+
(function (EncryptionAlgorithm) {
|
|
22
|
+
EncryptionAlgorithm["AesCbcPkcs7Padding"] = "AES/CBC/PKCS7Padding";
|
|
23
|
+
EncryptionAlgorithm["AesGcmNoPadding"] = "AES/GCM/NoPadding";
|
|
24
|
+
EncryptionAlgorithm["RsaOaepSha1"] = "RSA/OAEPWithSHA-1";
|
|
25
|
+
})(EncryptionAlgorithm = exports.EncryptionAlgorithm || (exports.EncryptionAlgorithm = {}));
|
|
26
|
+
/**
|
|
27
|
+
* Status of the list operation result.
|
|
28
|
+
*/
|
|
29
|
+
var ListOperationResultStatus;
|
|
30
|
+
(function (ListOperationResultStatus) {
|
|
31
|
+
/**
|
|
32
|
+
* The operation completed successfully.
|
|
33
|
+
*/
|
|
34
|
+
ListOperationResultStatus["Success"] = "Success";
|
|
35
|
+
/**
|
|
36
|
+
* The operation completed but some items had errors during
|
|
37
|
+
* processing.
|
|
38
|
+
*/
|
|
39
|
+
ListOperationResultStatus["Partial"] = "Partial";
|
|
40
|
+
/**
|
|
41
|
+
* The operation failed and no list item could be returned.
|
|
42
|
+
*/
|
|
43
|
+
ListOperationResultStatus["Failure"] = "Failure";
|
|
44
|
+
})(ListOperationResultStatus = exports.ListOperationResultStatus || (exports.ListOperationResultStatus = {}));
|
|
45
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":";;;AAQA;;;GAGG;AACH,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,8BAA8B;IAC9B,uCAAwB,CAAA;IACxB,wCAAwC;IACxC,0CAA2B,CAAA;AAC7B,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAwBD;;;;GAIG;AACH,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,kEAA2C,CAAA;IAC3C,4DAAqC,CAAA;IACrC,wDAAiC,CAAA;AACnC,CAAC,EAJW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAI9B;AAID;;GAEG;AACH,IAAY,yBAcX;AAdD,WAAY,yBAAyB;IACnC;;OAEG;IACH,gDAAmB,CAAA;IACnB;;;OAGG;IACH,gDAAmB,CAAA;IACnB;;OAEG;IACH,gDAAmB,CAAA;AACrB,CAAC,EAdW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAcpC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Base64 = void 0;
|
|
4
|
+
const buffer_1 = require("./buffer");
|
|
5
|
+
/**
|
|
6
|
+
* Utility class for Base64 encoding and decoding.
|
|
7
|
+
*/
|
|
8
|
+
class Base64 {
|
|
9
|
+
static URLSafeEncodeTransform(input) {
|
|
10
|
+
return input
|
|
11
|
+
.replace(/\+/g, '-') // Convert '+' to '-'
|
|
12
|
+
.replace(/\//g, '_') // Convert '/' to '_'
|
|
13
|
+
.replace(/=+$/, ''); // Remove ending '='
|
|
14
|
+
}
|
|
15
|
+
static URLSafeDecodeTransform(input) {
|
|
16
|
+
return input
|
|
17
|
+
.replace(/\-/g, '+') // Convert '-' to '+'
|
|
18
|
+
.replace(/\_/g, '/'); // Convert '_' to '/'
|
|
19
|
+
}
|
|
20
|
+
static decode(encoded) {
|
|
21
|
+
return buffer_1.Buffer.fromString(atob(encoded));
|
|
22
|
+
}
|
|
23
|
+
static encode(buffer) {
|
|
24
|
+
return btoa(buffer_1.Buffer.toString(buffer));
|
|
25
|
+
}
|
|
26
|
+
static decodeString(encoded) {
|
|
27
|
+
return atob(encoded);
|
|
28
|
+
}
|
|
29
|
+
static encodeString(string) {
|
|
30
|
+
return btoa(string);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Encode a URL safe ArrayBuffer
|
|
34
|
+
* @param {ArrayBuffer} input buffer to be encoded
|
|
35
|
+
* @returns {string} encoded string
|
|
36
|
+
*/
|
|
37
|
+
static urlSafeEncode({ input }) {
|
|
38
|
+
return this.URLSafeEncodeTransform(this.encode(input));
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Decode into a URL safe ArrayBuffer
|
|
42
|
+
* @param {string} input string to be decoded
|
|
43
|
+
* @returns {ArrayBuffer} decoded ArrayBuffer
|
|
44
|
+
*/
|
|
45
|
+
static urlSafeDecode({ encoded }) {
|
|
46
|
+
encoded = this.URLSafeDecodeTransform(encoded);
|
|
47
|
+
return this.decode(encoded);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Encode a URL safe string
|
|
51
|
+
* @param {string} input string to be encoded
|
|
52
|
+
* @returns {string} encoded string
|
|
53
|
+
*/
|
|
54
|
+
static urlSafeEncodeString({ input }) {
|
|
55
|
+
return this.URLSafeEncodeTransform(this.encodeString(input));
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Decode a URL safe string
|
|
59
|
+
* @param {string} input string to be decoded
|
|
60
|
+
* @returns {string} decoded string
|
|
61
|
+
*/
|
|
62
|
+
static urlSafeDecodeString({ encoded }) {
|
|
63
|
+
encoded = this.URLSafeDecodeTransform(encoded);
|
|
64
|
+
return Buffer.from(this.decode(encoded)).toString('utf8');
|
|
65
|
+
}
|
|
66
|
+
static UrlSafeValidate(encoded) {
|
|
67
|
+
return /^[A-Za-z0-9\-_]+$/.test(encoded);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.Base64 = Base64;
|
|
71
|
+
//# sourceMappingURL=base64.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base64.js","sourceRoot":"","sources":["../../src/utils/base64.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAC/C;;GAEG;AACH,MAAa,MAAM;IACT,MAAM,CAAC,sBAAsB,CAAC,KAAa;QACjD,OAAO,KAAK;aACT,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB;aACzC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB;aACzC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA,CAAC,oBAAoB;IAC5C,CAAC;IACO,MAAM,CAAC,sBAAsB,CAAC,KAAa;QACjD,OAAO,KAAK;aACT,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,qBAAqB;aACzC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA,CAAC,qBAAqB;IAC9C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAAe;QAC3B,OAAO,eAAU,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAmB;QAC/B,OAAO,IAAI,CAAC,eAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAe;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAA0B;QACpD,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACxD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAuB;QACnD,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,EAAqB;QACrD,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAuB;QACzD,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3D,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,OAAe;QACpC,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1C,CAAC;CACF;AAtED,wBAsEC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Buffer = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Utility class for operating on ArrayBuffer.
|
|
6
|
+
*/
|
|
7
|
+
class Buffer {
|
|
8
|
+
static concat(lhs, rhs) {
|
|
9
|
+
const combined = new Uint8Array(lhs.byteLength + rhs.byteLength);
|
|
10
|
+
combined.set(new Uint8Array(lhs), 0);
|
|
11
|
+
combined.set(new Uint8Array(rhs), lhs.byteLength);
|
|
12
|
+
return combined.buffer;
|
|
13
|
+
}
|
|
14
|
+
static split(buffer, lhsLength) {
|
|
15
|
+
const array = new Uint8Array(buffer);
|
|
16
|
+
const lhs = array.slice(0, lhsLength);
|
|
17
|
+
const rhs = array.slice(lhsLength, array.length);
|
|
18
|
+
return { lhs, rhs };
|
|
19
|
+
}
|
|
20
|
+
static toString(buffer) {
|
|
21
|
+
let s = '';
|
|
22
|
+
const bytes = new Uint8Array(buffer);
|
|
23
|
+
const len = bytes.byteLength;
|
|
24
|
+
for (let i = 0; i < len; i++) {
|
|
25
|
+
s += String.fromCharCode(bytes[i]);
|
|
26
|
+
}
|
|
27
|
+
return s;
|
|
28
|
+
}
|
|
29
|
+
static fromString(s) {
|
|
30
|
+
return Uint8Array.from(s, (c) => c.charCodeAt(0));
|
|
31
|
+
}
|
|
32
|
+
static isArrayBuffer(u) {
|
|
33
|
+
return ArrayBuffer.isView(u);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Buffer = Buffer;
|
|
37
|
+
//# sourceMappingURL=buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/utils/buffer.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,MAAM;IACjB,MAAM,CAAC,MAAM,CAAC,GAAgB,EAAE,GAAgB;QAC9C,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA;QAChE,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACpC,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;QACjD,OAAO,QAAQ,CAAC,MAAM,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CACV,MAAmB,EACnB,SAAiB;QAEjB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QACrC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACrB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,MAAmB;QACjC,IAAI,CAAC,GAAG,EAAE,CAAA;QACV,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SACnC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,CAAS;QACzB,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,CAAU;QAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC9B,CAAC;CACF;AAnCD,wBAmCC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bodyToString = exports.isBodyReadable = exports.isBodyBlob = exports.isBodyReadableStream = void 0;
|
|
4
|
+
const error_1 = require("../errors/error");
|
|
5
|
+
/**
|
|
6
|
+
* Read a ReadableStream in to a string.
|
|
7
|
+
*
|
|
8
|
+
* This is used in browser environments
|
|
9
|
+
*
|
|
10
|
+
* @param stream The ReadableStream to read
|
|
11
|
+
*
|
|
12
|
+
* @returns The string
|
|
13
|
+
*/
|
|
14
|
+
const readableStreamToString = async (stream) => {
|
|
15
|
+
const reader = stream.getReader();
|
|
16
|
+
const decoder = new TextDecoder('utf-8');
|
|
17
|
+
let string = '';
|
|
18
|
+
while (true) {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
20
|
+
const { done, value } = await reader.read();
|
|
21
|
+
if (done) {
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
25
|
+
string += decoder.decode(value, { stream: true });
|
|
26
|
+
}
|
|
27
|
+
string += decoder.decode();
|
|
28
|
+
return string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Read a Readable in to a string.
|
|
32
|
+
*
|
|
33
|
+
* This is used in node environments
|
|
34
|
+
*
|
|
35
|
+
* @param readable The Readable to read
|
|
36
|
+
*
|
|
37
|
+
* @returns The string
|
|
38
|
+
*/
|
|
39
|
+
const readableToString = (readable) => new Promise((resolve, reject) => {
|
|
40
|
+
const chunks = [];
|
|
41
|
+
readable.on('data', (chunk) => chunks.push(chunk));
|
|
42
|
+
readable.on('error', reject);
|
|
43
|
+
readable.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
|
44
|
+
});
|
|
45
|
+
function isBodyReadableStream(body) {
|
|
46
|
+
return typeof body.getReader === 'function';
|
|
47
|
+
}
|
|
48
|
+
exports.isBodyReadableStream = isBodyReadableStream;
|
|
49
|
+
function isBodyBlob(body) {
|
|
50
|
+
return typeof body === 'object' && body.hasOwnProperty('size');
|
|
51
|
+
}
|
|
52
|
+
exports.isBodyBlob = isBodyBlob;
|
|
53
|
+
function isBodyReadable(body) {
|
|
54
|
+
return !isBodyReadableStream(body) && !isBodyBlob(body);
|
|
55
|
+
}
|
|
56
|
+
exports.isBodyReadable = isBodyReadable;
|
|
57
|
+
const bodyToString = async (body) => {
|
|
58
|
+
if (isBodyReadableStream(body)) {
|
|
59
|
+
return readableStreamToString(body);
|
|
60
|
+
}
|
|
61
|
+
if (isBodyReadable(body)) {
|
|
62
|
+
return readableToString(body);
|
|
63
|
+
}
|
|
64
|
+
if (isBodyBlob(body)) {
|
|
65
|
+
return body.text();
|
|
66
|
+
}
|
|
67
|
+
throw new error_1.FatalError('Unknown body type');
|
|
68
|
+
};
|
|
69
|
+
exports.bodyToString = bodyToString;
|
|
70
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/utils/stream.ts"],"names":[],"mappings":";;;AACA,2CAA4C;AAE5C;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,KAAK,EAClC,MAAsB,EACL,EAAE;IACnB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAA;IAEjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,OAAO,IAAI,EAAE;QACX,mEAAmE;QACnE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,IAAI,EAAE;YACR,MAAK;SACN;QACD,iEAAiE;QACjE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;KAClD;IACD,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAA;IAC1B,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAmB,EAAE,CAC/D,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC3E,CAAC,CAAC,CAAA;AAEJ,SAAgB,oBAAoB,CAClC,IAAsC;IAEtC,OAAO,OAAQ,IAAuB,CAAC,SAAS,KAAK,UAAU,CAAA;AACjE,CAAC;AAJD,oDAIC;AAED,SAAgB,UAAU,CACxB,IAAsC;IAEtC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;AAChE,CAAC;AAJD,gCAIC;AAED,SAAgB,cAAc,CAC5B,IAAsC;IAEtC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACzD,CAAC;AAJD,wCAIC;AAEM,MAAM,YAAY,GAAG,KAAK,EAC/B,IAAsC,EACrB,EAAE;IACnB,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;QAC9B,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAA;KACpC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE;QACxB,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAA;KAC9B;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;KACnB;IAED,MAAM,IAAI,kBAAU,CAAC,mBAAmB,CAAC,CAAA;AAC3C,CAAC,CAAA;AAhBY,QAAA,YAAY,gBAgBxB"}
|