@cheqd/did-provider-cheqd 3.2.1 → 3.3.0-develop.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/build/cjs/agent/ICheqd.d.ts +513 -14
- package/build/cjs/agent/ICheqd.d.ts.map +1 -1
- package/build/cjs/agent/ICheqd.js +1446 -5
- package/build/cjs/agent/ICheqd.js.map +1 -1
- package/build/cjs/did-manager/cheqd-did-provider.d.ts +26 -7
- package/build/cjs/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/build/cjs/did-manager/cheqd-did-provider.js +30 -8
- package/build/cjs/did-manager/cheqd-did-provider.js.map +1 -1
- package/build/cjs/did-manager/cheqd-did-resolver.d.ts +5 -0
- package/build/cjs/did-manager/cheqd-did-resolver.d.ts.map +1 -1
- package/build/cjs/did-manager/cheqd-did-resolver.js +7 -2
- package/build/cjs/did-manager/cheqd-did-resolver.js.map +1 -1
- package/build/cjs/dkg-threshold/lit-protocol.d.ts +92 -0
- package/build/cjs/dkg-threshold/lit-protocol.d.ts.map +1 -0
- package/build/cjs/dkg-threshold/lit-protocol.js +170 -0
- package/build/cjs/dkg-threshold/lit-protocol.js.map +1 -0
- package/build/cjs/global.d..d.ts +2 -0
- package/build/cjs/global.d..d.ts.map +1 -0
- package/build/cjs/global.d..js +2 -0
- package/build/cjs/global.d..js.map +1 -0
- package/build/cjs/index.js +1 -2
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/utils/env.d.ts +7 -0
- package/build/cjs/utils/env.d.ts.map +1 -0
- package/build/cjs/utils/env.js +10 -0
- package/build/cjs/utils/env.js.map +1 -0
- package/build/cjs/utils/helpers.d.ts +12 -0
- package/build/cjs/utils/helpers.d.ts.map +1 -0
- package/build/cjs/utils/helpers.js +63 -0
- package/build/cjs/utils/helpers.js.map +1 -0
- package/build/esm/agent/ICheqd.d.ts +513 -14
- package/build/esm/agent/ICheqd.d.ts.map +1 -1
- package/build/esm/agent/ICheqd.js +1446 -5
- package/build/esm/agent/ICheqd.js.map +1 -1
- package/build/esm/did-manager/cheqd-did-provider.d.ts +26 -7
- package/build/esm/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/build/esm/did-manager/cheqd-did-provider.js +29 -7
- package/build/esm/did-manager/cheqd-did-provider.js.map +1 -1
- package/build/esm/did-manager/cheqd-did-resolver.d.ts +5 -0
- package/build/esm/did-manager/cheqd-did-resolver.d.ts.map +1 -1
- package/build/esm/did-manager/cheqd-did-resolver.js +6 -1
- package/build/esm/did-manager/cheqd-did-resolver.js.map +1 -1
- package/build/esm/dkg-threshold/lit-protocol.d.ts +92 -0
- package/build/esm/dkg-threshold/lit-protocol.d.ts.map +1 -0
- package/build/esm/dkg-threshold/lit-protocol.js +166 -0
- package/build/esm/dkg-threshold/lit-protocol.js.map +1 -0
- package/build/esm/global.d..d.ts +2 -0
- package/build/esm/global.d..d.ts.map +1 -0
- package/build/esm/global.d..js +2 -0
- package/build/esm/global.d..js.map +1 -0
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/utils/env.d.ts +7 -0
- package/build/esm/utils/env.d.ts.map +1 -0
- package/build/esm/utils/env.js +7 -0
- package/build/esm/utils/env.js.map +1 -0
- package/build/esm/utils/helpers.d.ts +12 -0
- package/build/esm/utils/helpers.d.ts.map +1 -0
- package/build/esm/utils/helpers.js +51 -0
- package/build/esm/utils/helpers.js.map +1 -0
- package/build/tsconfig.cjs.tsbuildinfo +1 -1
- package/build/tsconfig.esm.tsbuildinfo +1 -1
- package/build/tsconfig.types.tsbuildinfo +1 -1
- package/build/types/agent/ICheqd.d.ts +513 -14
- package/build/types/agent/ICheqd.d.ts.map +1 -1
- package/build/types/did-manager/cheqd-did-provider.d.ts +26 -7
- package/build/types/did-manager/cheqd-did-provider.d.ts.map +1 -1
- package/build/types/did-manager/cheqd-did-resolver.d.ts +5 -0
- package/build/types/did-manager/cheqd-did-resolver.d.ts.map +1 -1
- package/build/types/dkg-threshold/lit-protocol.d.ts +92 -0
- package/build/types/dkg-threshold/lit-protocol.d.ts.map +1 -0
- package/build/types/global.d..d.ts +2 -0
- package/build/types/global.d..d.ts.map +1 -0
- package/build/types/utils/env.d.ts +7 -0
- package/build/types/utils/env.d.ts.map +1 -0
- package/build/types/utils/helpers.d.ts +12 -0
- package/build/types/utils/helpers.d.ts.map +1 -0
- package/package.json +13 -7
- package/src/agent/ICheqd.ts +2209 -232
- package/src/did-manager/cheqd-did-provider.ts +55 -8
- package/src/did-manager/cheqd-did-resolver.ts +7 -1
- package/src/dkg-threshold/lit-protocol.ts +238 -0
- package/src/global.d..ts +1 -0
- package/src/utils/env.ts +6 -0
- package/src/utils/helpers.ts +66 -0
- package/tsconfig.json +1 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LitProtocol = exports.TxNonceFormats = exports.LitCompatibleCosmosChains = exports.LitNetworks = void 0;
|
|
4
|
+
const amino_1 = require("@cosmjs/amino");
|
|
5
|
+
const to_string_1 = require("uint8arrays/to-string");
|
|
6
|
+
const crypto_1 = require("@cosmjs/crypto");
|
|
7
|
+
const lit_node_client_1 = require("@lit-protocol/lit-node-client");
|
|
8
|
+
const helpers_js_1 = require("../utils/helpers.js");
|
|
9
|
+
const env_js_1 = require("../utils/env.js");
|
|
10
|
+
const uuid_1 = require("uuid");
|
|
11
|
+
exports.LitNetworks = { jalapeno: 'jalapeno', serrano: 'serrano', localhost: 'localhost', custom: 'custom' };
|
|
12
|
+
exports.LitCompatibleCosmosChains = { cosmos: 'cosmos', cheqdMainnet: 'cheqdMainnet', cheqdTestnet: 'cheqdTestnet' };
|
|
13
|
+
exports.TxNonceFormats = { entropy: 'entropy', uuid: 'uuid', timestamp: 'timestamp' };
|
|
14
|
+
class LitProtocol {
|
|
15
|
+
client;
|
|
16
|
+
litNetwork = exports.LitNetworks.serrano;
|
|
17
|
+
chain = exports.LitCompatibleCosmosChains.cheqdTestnet;
|
|
18
|
+
cosmosAuthWallet;
|
|
19
|
+
constructor(options) {
|
|
20
|
+
// validate options
|
|
21
|
+
if (options.litNetwork && !Object.values(exports.LitNetworks).includes(options.litNetwork))
|
|
22
|
+
throw new Error(`[did-provider-cheqd]: lit-protocol: Invalid LitNetwork: ${options.litNetwork}`);
|
|
23
|
+
if (options.chain && !Object.values(exports.LitCompatibleCosmosChains).includes(options.chain))
|
|
24
|
+
throw new Error(`[did-provider-cheqd]: lit-protocol: Invalid LitCompatibleCosmosChain: ${options.chain}`);
|
|
25
|
+
// set options
|
|
26
|
+
if (options.litNetwork)
|
|
27
|
+
this.litNetwork = options.litNetwork;
|
|
28
|
+
if (options.chain)
|
|
29
|
+
this.chain = options.chain;
|
|
30
|
+
this.cosmosAuthWallet = options.cosmosAuthWallet;
|
|
31
|
+
// set client as per environment
|
|
32
|
+
this.client = function (that) {
|
|
33
|
+
if (env_js_1.isNode)
|
|
34
|
+
return new lit_node_client_1.LitNodeClientNodeJs({ litNetwork: that.litNetwork });
|
|
35
|
+
if (env_js_1.isBrowser)
|
|
36
|
+
return new lit_node_client_1.LitNodeClient({ litNetwork: that.litNetwork });
|
|
37
|
+
throw new Error('[did-provider-cheqd]: lit-protocol: Unsupported runtime environment');
|
|
38
|
+
}(this);
|
|
39
|
+
}
|
|
40
|
+
async connect() {
|
|
41
|
+
return await this.client.connect();
|
|
42
|
+
}
|
|
43
|
+
async encrypt(secret, unifiedAccessControlConditions, returnSymmetricKey = false) {
|
|
44
|
+
const authSig = await LitProtocol.generateAuthSignature(this.cosmosAuthWallet);
|
|
45
|
+
const { encryptedString, symmetricKey } = await (0, lit_node_client_1.encryptString)(secret);
|
|
46
|
+
const encryptedSymmetricKey = await this.client.saveEncryptionKey({
|
|
47
|
+
unifiedAccessControlConditions,
|
|
48
|
+
symmetricKey,
|
|
49
|
+
authSig: authSig,
|
|
50
|
+
chain: this.chain
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
encryptedString,
|
|
54
|
+
encryptedSymmetricKey: (0, to_string_1.toString)(encryptedSymmetricKey, 'hex'),
|
|
55
|
+
symmetricKey: returnSymmetricKey ? symmetricKey : undefined
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async decrypt(encryptedString, encryptedSymmetricKey, unifiedAccessControlConditions) {
|
|
59
|
+
const authSig = await LitProtocol.generateAuthSignature(this.cosmosAuthWallet);
|
|
60
|
+
const symmetricKey = await this.client.getEncryptionKey({
|
|
61
|
+
unifiedAccessControlConditions,
|
|
62
|
+
toDecrypt: encryptedSymmetricKey,
|
|
63
|
+
authSig: authSig,
|
|
64
|
+
chain: this.chain
|
|
65
|
+
});
|
|
66
|
+
return await (0, lit_node_client_1.decryptString)(encryptedString, symmetricKey);
|
|
67
|
+
}
|
|
68
|
+
static async encryptDirect(secret) {
|
|
69
|
+
const { encryptedString, symmetricKey } = await (0, lit_node_client_1.encryptString)(secret);
|
|
70
|
+
return {
|
|
71
|
+
encryptedString,
|
|
72
|
+
symmetricKey
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
static async decryptDirect(encryptedString, symmetricKey) {
|
|
76
|
+
return await (0, lit_node_client_1.decryptString)(encryptedString, symmetricKey);
|
|
77
|
+
}
|
|
78
|
+
static async create(options) {
|
|
79
|
+
// instantiate underlying cosmos auth wallet
|
|
80
|
+
if (!options.cosmosAuthWallet)
|
|
81
|
+
options.cosmosAuthWallet = await amino_1.Secp256k1HdWallet.generate(24, { prefix: await LitProtocol.getCosmosWalletPrefix(options?.chain) });
|
|
82
|
+
// validate top-level options chain
|
|
83
|
+
if (!options?.chain)
|
|
84
|
+
options.chain = exports.LitCompatibleCosmosChains.cheqdTestnet;
|
|
85
|
+
// validate top-level options litNetwork
|
|
86
|
+
if (!options?.litNetwork)
|
|
87
|
+
options.litNetwork = exports.LitNetworks.serrano;
|
|
88
|
+
const litProtocol = new LitProtocol(options);
|
|
89
|
+
await litProtocol.connect();
|
|
90
|
+
return litProtocol;
|
|
91
|
+
}
|
|
92
|
+
static async getCosmosWalletPrefix(chain) {
|
|
93
|
+
switch (chain) {
|
|
94
|
+
case exports.LitCompatibleCosmosChains.cosmos:
|
|
95
|
+
return 'cosmos';
|
|
96
|
+
case exports.LitCompatibleCosmosChains.cheqdMainnet:
|
|
97
|
+
return 'cheqd';
|
|
98
|
+
case exports.LitCompatibleCosmosChains.cheqdTestnet:
|
|
99
|
+
return 'cheqd';
|
|
100
|
+
default:
|
|
101
|
+
return 'cheqd';
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
static async generateAuthSignature(wallet) {
|
|
105
|
+
const signerAddress = (await wallet.getAccounts())[0].address;
|
|
106
|
+
const signData = await LitProtocol.generateSignData();
|
|
107
|
+
const signDoc = await LitProtocol.generateSignDoc(signerAddress, signData);
|
|
108
|
+
const result = await wallet.signAmino(signerAddress, signDoc);
|
|
109
|
+
return {
|
|
110
|
+
address: signerAddress,
|
|
111
|
+
derivedVia: 'cosmos.signArbitrary',
|
|
112
|
+
sig: result.signature.signature,
|
|
113
|
+
signedMessage: (0, to_string_1.toString)((0, crypto_1.sha256)(new TextEncoder().encode(JSON.stringify(signDoc))), 'hex'), // <-- hex encoded sha256 hash of the json stringified signDoc
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
static async generateSignDoc(address, data) {
|
|
117
|
+
return {
|
|
118
|
+
account_number: '0',
|
|
119
|
+
chain_id: '',
|
|
120
|
+
fee: {
|
|
121
|
+
amount: [],
|
|
122
|
+
gas: '0'
|
|
123
|
+
},
|
|
124
|
+
memo: '',
|
|
125
|
+
msgs: [
|
|
126
|
+
{
|
|
127
|
+
type: 'sign/MsgSignData',
|
|
128
|
+
value: {
|
|
129
|
+
data: (0, to_string_1.toString)(data, 'base64'),
|
|
130
|
+
signer: address,
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
sequence: '0',
|
|
135
|
+
}; // <-- should be sorted alphabetically
|
|
136
|
+
}
|
|
137
|
+
static async generateSignData() {
|
|
138
|
+
return new TextEncoder().encode(`I am creating an account to use Lit Protocol at 2023-02-21T16:40:15.305Z`); // <-- lit nodes search for this string in the signData
|
|
139
|
+
}
|
|
140
|
+
static async generateTxNonce(format, entropyLength) {
|
|
141
|
+
switch (format) {
|
|
142
|
+
case exports.TxNonceFormats.entropy:
|
|
143
|
+
return (0, to_string_1.toString)(await (0, helpers_js_1.randomBytes)(entropyLength || 64), 'hex');
|
|
144
|
+
case exports.TxNonceFormats.uuid:
|
|
145
|
+
return (0, uuid_1.v4)();
|
|
146
|
+
case exports.TxNonceFormats.timestamp:
|
|
147
|
+
return new Date().toISOString();
|
|
148
|
+
default:
|
|
149
|
+
return (0, uuid_1.v4)();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
static async generateCosmosAccessControlConditionBalance(returnValueTest, chain = exports.LitCompatibleCosmosChains.cheqdTestnet, address = ':userAddress') {
|
|
153
|
+
return {
|
|
154
|
+
conditionType: 'cosmos',
|
|
155
|
+
path: `/cosmos/bank/v1beta1/balances/${address}`,
|
|
156
|
+
chain,
|
|
157
|
+
returnValueTest
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
static async generateCosmosAccessControlConditionTransactionMemo(returnValueTest, amount, sender, recipient = ':userAddress', chain = exports.LitCompatibleCosmosChains.cheqdTestnet) {
|
|
161
|
+
return {
|
|
162
|
+
conditionType: 'cosmos',
|
|
163
|
+
path: `/cosmos/tx/v1beta1/txs?events=transfer.recipient='${recipient}'&events=transfer.sender='${sender}'&events=transfer.amount='${amount}'&order_by=2`,
|
|
164
|
+
chain,
|
|
165
|
+
returnValueTest
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
exports.LitProtocol = LitProtocol;
|
|
170
|
+
//# sourceMappingURL=lit-protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lit-protocol.js","sourceRoot":"","sources":["../../../src/dkg-threshold/lit-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.d..d.ts","sourceRoot":"","sources":["../../src/global.d..ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.d..js","sourceRoot":"","sources":["../../src/global.d..ts"],"names":[],"mappings":""}
|
package/build/cjs/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Cheqd = exports.CheqdUniversalResolver = exports.getResolver = exports.CheqdDidResolver = exports.EnglishMnemonic = exports.
|
|
3
|
+
exports.Cheqd = exports.CheqdUniversalResolver = exports.getResolver = exports.CheqdDidResolver = exports.EnglishMnemonic = exports.CheqdDIDProvider = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* @public
|
|
6
6
|
*/
|
|
7
7
|
var cheqd_did_provider_js_1 = require("./did-manager/cheqd-did-provider.js");
|
|
8
8
|
Object.defineProperty(exports, "CheqdDIDProvider", { enumerable: true, get: function () { return cheqd_did_provider_js_1.CheqdDIDProvider; } });
|
|
9
|
-
Object.defineProperty(exports, "DefaultRPCUrl", { enumerable: true, get: function () { return cheqd_did_provider_js_1.DefaultRPCUrl; } });
|
|
10
9
|
Object.defineProperty(exports, "EnglishMnemonic", { enumerable: true, get: function () { return cheqd_did_provider_js_1.EnglishMnemonic; } });
|
|
11
10
|
var cheqd_did_resolver_js_1 = require("./did-manager/cheqd-did-resolver.js");
|
|
12
11
|
Object.defineProperty(exports, "CheqdDidResolver", { enumerable: true, get: function () { return cheqd_did_resolver_js_1.CheqdDidResolver; } });
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,6EAQ4C;AAPxC,yHAAA,gBAAgB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,6EAQ4C;AAPxC,yHAAA,gBAAgB,OAAA;AAMhB,wHAAA,eAAe,OAAA;AAEnB,6EAG4C;AAFxC,yHAAA,gBAAgB,OAAA;AAChB,oHAAA,WAAW,OAAA;AAEf,yDAAkE;AAAzD,qHAAA,sBAAsB,OAAA;AAC/B,+CAAyC;AAAhC,kGAAA,KAAK,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const isBrowser: boolean;
|
|
2
|
+
export declare const isNode: boolean;
|
|
3
|
+
export declare const isWebWorker: boolean;
|
|
4
|
+
export declare const isJsDom: boolean;
|
|
5
|
+
export declare const isReactNative: boolean;
|
|
6
|
+
export declare const isElectron: boolean;
|
|
7
|
+
//# sourceMappingURL=env.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,SAA0E,CAAA;AAChG,eAAO,MAAM,MAAM,SAA8F,CAAA;AACjH,eAAO,MAAM,WAAW,SAAyG,CAAA;AACjI,eAAO,MAAM,OAAO,SAA0L,CAAA;AAC9M,eAAO,MAAM,aAAa,SAA0E,CAAA;AACpG,eAAO,MAAM,UAAU,SAAka,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isElectron = exports.isReactNative = exports.isJsDom = exports.isWebWorker = exports.isNode = exports.isBrowser = void 0;
|
|
4
|
+
exports.isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
5
|
+
exports.isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
|
|
6
|
+
exports.isWebWorker = typeof self === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope';
|
|
7
|
+
exports.isJsDom = (typeof window !== 'undefined' && window.name === 'nodejs') || (typeof navigator !== 'undefined' && (navigator.userAgent.includes('jsdom') || navigator.userAgent.includes('Node.js')));
|
|
8
|
+
exports.isReactNative = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; // use wisely: limited as of react-native v0.67 + navigator.product has been deprecated
|
|
9
|
+
exports.isElectron = (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') || (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) || (typeof process === 'object' && typeof process.versions === 'object' && !!process.versions.electron);
|
|
10
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/utils/env.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAA;AACnF,QAAA,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,QAAQ,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAA;AACpG,QAAA,WAAW,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,4BAA4B,CAAA;AACpH,QAAA,OAAO,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;AACjM,QAAA,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,OAAO,KAAK,aAAa,CAAA,CAAC,uFAAuF;AAC/K,QAAA,UAAU,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAK,MAAM,CAAC,OAAoF,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { type GenerateOptions } from 'generate-password';
|
|
3
|
+
export declare function randomFromRange(min: number, max: number, notIn: number[]): Promise<number>;
|
|
4
|
+
export declare function randomUniqueSubsetInRange(min: number, max: number, count: number): Promise<Array<number>>;
|
|
5
|
+
export declare function randomBytes(length: number): Promise<Buffer>;
|
|
6
|
+
export declare function randomUniqueSecret(options?: GenerateOptions): Promise<string>;
|
|
7
|
+
export declare function initialiseIndexArray(length: number): Promise<Array<boolean>>;
|
|
8
|
+
export declare function shuffleArray<T>(array: Array<T>): Promise<Array<T>>;
|
|
9
|
+
export declare function toBlob(data: Uint8Array): Promise<Blob>;
|
|
10
|
+
export declare function blobToHexString(blob: Blob): Promise<string>;
|
|
11
|
+
export declare function unescapeUnicode(str: string): string;
|
|
12
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAA8B,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGpF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAMhG;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAM/G;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOjE;AAED,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAElF;AAED,wBAAsB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAGxE;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAQjE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAInD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unescapeUnicode = exports.blobToHexString = exports.toBlob = exports.shuffleArray = exports.initialiseIndexArray = exports.randomUniqueSecret = exports.randomBytes = exports.randomUniqueSubsetInRange = exports.randomFromRange = void 0;
|
|
4
|
+
const generate_password_1 = require("generate-password");
|
|
5
|
+
const to_string_1 = require("uint8arrays/to-string");
|
|
6
|
+
async function randomFromRange(min, max, notIn) {
|
|
7
|
+
const random = Math.floor(Math.random() * (max - min + 1) + min);
|
|
8
|
+
if (notIn.includes(random)) {
|
|
9
|
+
return await randomFromRange(min, max, notIn);
|
|
10
|
+
}
|
|
11
|
+
return random;
|
|
12
|
+
}
|
|
13
|
+
exports.randomFromRange = randomFromRange;
|
|
14
|
+
async function randomUniqueSubsetInRange(min, max, count) {
|
|
15
|
+
const subset = [];
|
|
16
|
+
for (let i = 0; i < count; i++) {
|
|
17
|
+
subset.push(await randomFromRange(min, max, subset));
|
|
18
|
+
}
|
|
19
|
+
return subset;
|
|
20
|
+
}
|
|
21
|
+
exports.randomUniqueSubsetInRange = randomUniqueSubsetInRange;
|
|
22
|
+
async function randomBytes(length) {
|
|
23
|
+
return Buffer.from(Array.from({ length }, () => Math.floor(Math.random() * 256)));
|
|
24
|
+
}
|
|
25
|
+
exports.randomBytes = randomBytes;
|
|
26
|
+
async function randomUniqueSecret(options) {
|
|
27
|
+
return (0, generate_password_1.generate)({
|
|
28
|
+
length: 64,
|
|
29
|
+
numbers: true,
|
|
30
|
+
symbols: true,
|
|
31
|
+
uppercase: true,
|
|
32
|
+
...options,
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
exports.randomUniqueSecret = randomUniqueSecret;
|
|
36
|
+
async function initialiseIndexArray(length) {
|
|
37
|
+
return Array(length).fill(true);
|
|
38
|
+
}
|
|
39
|
+
exports.initialiseIndexArray = initialiseIndexArray;
|
|
40
|
+
async function shuffleArray(array) {
|
|
41
|
+
const shuffled = array.sort(() => Math.random() - 0.5);
|
|
42
|
+
return shuffled;
|
|
43
|
+
}
|
|
44
|
+
exports.shuffleArray = shuffleArray;
|
|
45
|
+
async function toBlob(data) {
|
|
46
|
+
return new Blob([data]);
|
|
47
|
+
}
|
|
48
|
+
exports.toBlob = toBlob;
|
|
49
|
+
async function blobToHexString(blob) {
|
|
50
|
+
// buffer from blob
|
|
51
|
+
const buffer = await blob.arrayBuffer();
|
|
52
|
+
// convert buffer to uint8Array
|
|
53
|
+
const uint8Array = new Uint8Array(buffer);
|
|
54
|
+
return (0, to_string_1.toString)(uint8Array, 'hex');
|
|
55
|
+
}
|
|
56
|
+
exports.blobToHexString = blobToHexString;
|
|
57
|
+
function unescapeUnicode(str) {
|
|
58
|
+
return str.replace(/\\u([a-fA-F0-9]{4})/g, (m, cc) => {
|
|
59
|
+
return String.fromCharCode(parseInt(cc, 16));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
exports.unescapeUnicode = unescapeUnicode;
|
|
63
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":";;;AAAA,yDAAoF;AACpF,qDAAgD;AAEzC,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,GAAW,EAAE,KAAe;IAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;IAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACxB,OAAO,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;KAChD;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAND,0CAMC;AAEM,KAAK,UAAU,yBAAyB,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IACnF,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;KACvD;IACD,OAAO,MAAM,CAAA;AACjB,CAAC;AAND,8DAMC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,IAAI,CACd,KAAK,CAAC,IAAI,CACN,EAAE,MAAM,EAAE,EACV,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CACxC,CACJ,CAAA;AACL,CAAC;AAPD,kCAOC;AAEM,KAAK,UAAU,kBAAkB,CAAC,OAAyB;IAC9D,OAAO,IAAA,4BAAc,EAAC;QAClB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,GAAG,OAAO;KACb,CAAC,CAAA;AACN,CAAC;AARD,gDAQC;AAEM,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAFD,oDAEC;AAEM,KAAK,UAAU,YAAY,CAAI,KAAe;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAA;IACtD,OAAO,QAAQ,CAAA;AACnB,CAAC;AAHD,oCAGC;AAEM,KAAK,UAAU,MAAM,CAAC,IAAgB;IACzC,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3B,CAAC;AAFD,wBAEC;AAEM,KAAK,UAAU,eAAe,CAAC,IAAU;IAC5C,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAA;IAEvC,+BAA+B;IAC/B,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IAEzC,OAAO,IAAA,oBAAQ,EAAC,UAAU,EAAE,KAAK,CAAC,CAAA;AACtC,CAAC;AARD,0CAQC;AAED,SAAgB,eAAe,CAAC,GAAW;IACvC,OAAO,GAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;QACjD,OAAO,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACN,CAAC;AAJD,0CAIC"}
|