@bitgo-beta/key-card 0.1.2-alpha.4 → 0.1.2-alpha.400

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.
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.generateQrData = generateQrData;
37
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
38
+ const assert = __importStar(require("assert"));
39
+ function getPubFromKey(key) {
40
+ switch (key.type) {
41
+ case 'blsdkg':
42
+ return key.commonPub;
43
+ case 'tss':
44
+ return key.commonKeychain;
45
+ case 'independent':
46
+ return key.pub;
47
+ }
48
+ }
49
+ function generateUserQrData(userKeychain, userMasterKey) {
50
+ if (userKeychain.reducedEncryptedPrv) {
51
+ return {
52
+ title: 'A: User Key',
53
+ description: 'This is your private key, encrypted with your wallet password.',
54
+ data: userKeychain.reducedEncryptedPrv,
55
+ };
56
+ }
57
+ if (userKeychain.encryptedPrv) {
58
+ return {
59
+ title: 'A: User Key',
60
+ description: 'This is your private key, encrypted with your wallet password.',
61
+ data: userKeychain.encryptedPrv,
62
+ };
63
+ }
64
+ const pub = getPubFromKey(userKeychain);
65
+ assert.ok(pub);
66
+ return {
67
+ title: 'A: Provided User Key',
68
+ description: 'This is the public key you provided for your wallet.',
69
+ data: pub,
70
+ publicMasterKey: userMasterKey,
71
+ };
72
+ }
73
+ function generateBackupQrData(coin, backupKeychain, { backupKeyProvider, backupMasterKey, } = {}) {
74
+ const title = 'B: Backup Key';
75
+ if (backupKeychain.reducedEncryptedPrv) {
76
+ return {
77
+ title,
78
+ description: 'This is your backup private key, encrypted with your wallet password.',
79
+ data: backupKeychain.reducedEncryptedPrv,
80
+ };
81
+ }
82
+ if (backupKeychain.encryptedPrv) {
83
+ return {
84
+ title,
85
+ description: 'This is your backup private key, encrypted with your wallet password.',
86
+ data: backupKeychain.encryptedPrv,
87
+ };
88
+ }
89
+ if (backupKeyProvider === 'BitGo Trust' && backupKeychain.type === 'tss') {
90
+ const keyShares = backupKeychain.keyShares?.filter((keyShare) => keyShare.to === 'backup');
91
+ assert.ok(keyShares?.length === 2);
92
+ return {
93
+ title: 'B: Backup Key Shares',
94
+ description: `These are the key shares for ${backupKeyProvider}. If BitGo Inc. goes out of business,\r\n` +
95
+ `contact ${backupKeyProvider} and they will help you recover your funds.`,
96
+ data: JSON.stringify(keyShares),
97
+ };
98
+ }
99
+ const pub = getPubFromKey(backupKeychain);
100
+ assert.ok(pub);
101
+ if (backupKeyProvider) {
102
+ return {
103
+ title: 'B: Backup Key',
104
+ description: `This is the public key held at ${backupKeyProvider}, an ${coin.name} recovery service. ` +
105
+ `If you lose\r\nyour key, ${backupKeyProvider} will be able to sign transactions to recover funds.`,
106
+ data: pub,
107
+ };
108
+ }
109
+ return {
110
+ title: 'B: Provided Backup Key',
111
+ description: 'This is the public key you provided for your wallet.',
112
+ data: pub,
113
+ publicMasterKey: backupMasterKey,
114
+ };
115
+ }
116
+ function generateBitGoQrData(bitgoKeychain) {
117
+ const bitgoData = getPubFromKey(bitgoKeychain);
118
+ assert.ok(bitgoData);
119
+ return {
120
+ title: 'C: BitGo Public Key',
121
+ description: 'This is the public part of the key that BitGo will use to ' + 'co-sign transactions\r\nwith you on your wallet.',
122
+ data: bitgoData,
123
+ };
124
+ }
125
+ function generateUserMasterPublicKeyQRData(publicKey) {
126
+ return {
127
+ title: 'E: Master User Public Key',
128
+ description: 'This is the public key used to derive the user key for the wallet. This is not stored by BitGo, and may be required for use in recovery scenarios.',
129
+ data: publicKey,
130
+ };
131
+ }
132
+ function generateBackupMasterPublicKeyQRData(publicKey) {
133
+ return {
134
+ title: 'F: Master Backup Public Key',
135
+ description: 'This is the public key used to derive the backup key for the wallet. This is not stored by BitGo, and may be required for use in recovery scenarios.',
136
+ data: publicKey,
137
+ };
138
+ }
139
+ function generateQrData({ backupKeychain, backupKeyProvider, backupMasterKey, bitgoKeychain, coin, passcodeEncryptionCode, passphrase, userKeychain, userMasterKey, userMasterPublicKey, backupMasterPublicKey, }) {
140
+ const qrData = {
141
+ user: generateUserQrData(userKeychain, userMasterKey),
142
+ userMasterPublicKey: userMasterPublicKey ? generateUserMasterPublicKeyQRData(userMasterPublicKey) : undefined,
143
+ backup: generateBackupQrData(coin, backupKeychain, {
144
+ backupKeyProvider,
145
+ backupMasterKey,
146
+ }),
147
+ backupMasterPublicKey: backupMasterPublicKey
148
+ ? generateBackupMasterPublicKeyQRData(backupMasterPublicKey)
149
+ : undefined,
150
+ bitgo: generateBitGoQrData(bitgoKeychain),
151
+ };
152
+ if (passphrase && passcodeEncryptionCode) {
153
+ const encryptedWalletPasscode = (0, sdk_api_1.encrypt)(passcodeEncryptionCode, passphrase);
154
+ qrData.passcode = {
155
+ title: 'D: Encrypted wallet Password',
156
+ description: 'This is the wallet password, encrypted client-side with a key held by BitGo.',
157
+ data: encryptedWalletPasscode,
158
+ };
159
+ }
160
+ return qrData;
161
+ }
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVRckRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2VuZXJhdGVRckRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzSUEsd0NBcUNDO0FBektELGlEQUE4QztBQUM5QywrQ0FBaUM7QUFHakMsU0FBUyxhQUFhLENBQUMsR0FBYTtJQUNsQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqQixLQUFLLFFBQVE7WUFDWCxPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUM7UUFDdkIsS0FBSyxLQUFLO1lBQ1IsT0FBTyxHQUFHLENBQUMsY0FBYyxDQUFDO1FBQzVCLEtBQUssYUFBYTtZQUNoQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDbkIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLFlBQXNCLEVBQUUsYUFBc0I7SUFDeEUsSUFBSSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNyQyxPQUFPO1lBQ0wsS0FBSyxFQUFFLGFBQWE7WUFDcEIsV0FBVyxFQUFFLGdFQUFnRTtZQUM3RSxJQUFJLEVBQUUsWUFBWSxDQUFDLG1CQUFtQjtTQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzlCLE9BQU87WUFDTCxLQUFLLEVBQUUsYUFBYTtZQUNwQixXQUFXLEVBQUUsZ0VBQWdFO1lBQzdFLElBQUksRUFBRSxZQUFZLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRWYsT0FBTztRQUNMLEtBQUssRUFBRSxzQkFBc0I7UUFDN0IsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxJQUFJLEVBQUUs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YUFBYSxFQUNiLG1CQUFtQixFQUNuQixxQkFBcUIsR0FDQTtJQUNyQixNQUFNLE1BQU0sR0FBVztRQUNyQixJQUFJLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztRQUNyRCxtQkFBbUIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsaUNBQWlDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM3RyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUNqRCxpQkFBaUI7WUFDakIsZUFBZTtTQUNoQixDQUFDO1FBQ0YscUJBQXFCLEVBQUUscUJBQXFCO1lBQzFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxxQkFBcUIsQ0FBQztZQUM1RCxDQUFDLENBQUMsU0FBUztRQUNiLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7S0FDMUMsQ0FBQztJQUVGLElBQUksVUFBVSxJQUFJLHNCQUFzQixFQUFFLENBQUM7UUFDekMsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLGlCQUFPLEVBQUMsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFNUUsTUFBTSxDQUFDLFFBQVEsR0FBRztZQUNoQixLQUFLLEVBQUUsOEJBQThCO1lBQ3JDLFdBQVcsRUFBRSw4RUFBOEU7WUFDM0YsSUFBSSxFQUFFLHVCQUF1QjtTQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgS2V5Y2hhaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBlbmNyeXB0IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEdlbmVyYXRlUXJEYXRhUGFyYW1zLCBNYXN0ZXJQdWJsaWNLZXlRckRhdGFFbnRyeSwgUXJEYXRhLCBRckRhdGFFbnRyeSB9IGZyb20gJy4vdHlwZXMnO1xuXG5mdW5jdGlvbiBnZXRQdWJGcm9tS2V5KGtleTogS2V5Y2hhaW4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBzd2l0Y2ggKGtleS50eXBlKSB7XG4gICAgY2FzZSAnYmxzZGtnJzpcbiAgICAgIHJldHVybiBrZXkuY29tbW9uUHViO1xuICAgIGNhc2UgJ3Rzcyc6XG4gICAgICByZXR1cm4ga2V5LmNvbW1vbktleWNoYWluO1xuICAgIGNhc2UgJ2luZGVwZW5kZW50JzpcbiAgICAgIHJldHVybiBrZXkucHViO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlVXNlclFyRGF0YSh1c2VyS2V5Y2hhaW46IEtleWNoYWluLCB1c2VyTWFzdGVyS2V5Pzogc3RyaW5nKTogUXJEYXRhRW50cnkge1xuICBpZiAodXNlcktleWNoYWluLnJlZHVjZWRFbmNyeXB0ZWRQcnYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICdBOiBVc2VyIEtleScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgeW91ciBwcml2YXRlIGtleSwgZW5jcnlwdGVkIHdpdGggeW91ciB3YWxsZXQgcGFzc3dvcmQuJyxcbiAgICAgIGRhdGE6IHVzZXJLZXljaGFpbi5yZWR1Y2VkRW5jcnlwdGVkUHJ2LFxuICAgIH07XG4gIH1cbiAgaWYgKHVzZXJLZXljaGFpbi5lbmNyeXB0ZWRQcnYpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICdBOiBVc2VyIEtleScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgeW91ciBwcml2YXRlIGtleSwgZW5jcnlwdGVkIHdpdGggeW91ciB3YWxsZXQgcGFzc3dvcmQuJyxcbiAgICAgIGRhdGE6IHVzZXJLZXljaGFpbi5lbmNyeXB0ZWRQcnYsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IHB1YiA9IGdldFB1YkZyb21LZXkodXNlcktleWNoYWluKTtcbiAgYXNzZXJ0Lm9rKHB1Yik7XG5cbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogJ0E6IFByb3ZpZGVkIFVzZXIgS2V5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgdGhlIHB1YmxpYyBrZXkgeW91IHByb3ZpZGVkIGZvciB5b3VyIHdhbGxldC4nLFxuICAgIGRhdGE6IHB1YixcbiAgICBwdWJsaWNNYXN0ZXJLZXk6IHVzZXJNYXN0ZXJLZXksXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlQmFja3VwUXJEYXRhKFxuICBjb2luOiBSZWFkb25seTxCYXNlQ29pbj4sXG4gIGJhY2t1cEtleWNoYWluOiBLZXljaGFpbixcbiAge1xuICAgIGJhY2t1cEtleVByb3ZpZGVyLFxuICAgIGJhY2t1cE1hc3RlcktleSxcbiAgfToge1xuICAgIGJhY2t1cEtleVByb3ZpZGVyPzogc3RyaW5nO1xuICAgIGJhY2t1cE1hc3RlcktleT86IHN0cmluZztcbiAgfSA9IHt9XG4pOiBRckRhdGFFbnRyeSB7XG4gIGNvbnN0IHRpdGxlID0gJ0I6IEJhY2t1cCBLZXknO1xuICBpZiAoYmFja3VwS2V5Y2hhaW4ucmVkdWNlZEVuY3J5cHRlZFBydikge1xuICAgIHJldHVybiB7XG4gICAgICB0aXRsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB5b3VyIGJhY2t1cCBwcml2YXRlIGtleSwgZW5jcnlwdGVkIHdpdGggeW91ciB3YWxsZXQgcGFzc3dvcmQuJyxcbiAgICAgIGRhdGE6IGJhY2t1cEtleWNoYWluLnJlZHVjZWRFbmNyeXB0ZWRQcnYsXG4gICAgfTtcbiAgfVxuICBpZiAoYmFja3VwS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIHlvdXIgYmFja3VwIHByaXZhdGUga2V5LCBlbmNyeXB0ZWQgd2l0aCB5b3VyIHdhbGxldCBwYXNzd29yZC4nLFxuICAgICAgZGF0YTogYmFja3VwS2V5Y2hhaW4uZW5jcnlwdGVkUHJ2LFxuICAgIH07XG4gIH1cblxuICBpZiAoYmFja3VwS2V5UHJvdmlkZXIgPT09ICdCaXRHbyBUcnVzdCcgJiYgYmFja3VwS2V5Y2hhaW4udHlwZSA9PT0gJ3RzcycpIHtcbiAgICBjb25zdCBrZXlTaGFyZXMgPSBiYWNrdXBLZXljaGFpbi5rZXlTaGFyZXM/LmZpbHRlcigoa2V5U2hhcmUpID0+IGtleVNoYXJlLnRvID09PSAnYmFja3VwJyk7XG4gICAgYXNzZXJ0Lm9rKGtleVNoYXJlcz8ubGVuZ3RoID09PSAyKTtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6ICdCOiBCYWNrdXAgS2V5IFNoYXJlcycsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgYFRoZXNlIGFyZSB0aGUga2V5IHNoYXJlcyBmb3IgJHtiYWNrdXBLZXlQcm92aWRlcn0uIElmIEJpdEdvIEluYy4gZ29lcyBvdXQgb2YgYnVzaW5lc3MsXFxyXFxuYCArXG4gICAgICAgIGBjb250YWN0ICR7YmFja3VwS2V5UHJvdmlkZXJ9IGFuZCB0aGV5IHdpbGwgaGVscCB5b3UgcmVjb3ZlciB5b3VyIGZ1bmRzLmAsXG4gICAgICBkYXRhOiBKU09OLnN0cmluZ2lmeShrZXlTaGFyZXMpLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBwdWIgPSBnZXRQdWJGcm9tS2V5KGJhY2t1cEtleWNoYWluKTtcbiAgYXNzZXJ0Lm9rKHB1Yik7XG5cbiAgaWYgKGJhY2t1cEtleVByb3ZpZGVyKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiAnQjogQmFja3VwIEtleScsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgYFRoaXMgaXMgdGhlIHB1YmxpYyBrZXkgaGVsZCBhdCAke2JhY2t1cEtleVByb3ZpZGVyfSwgYW4gJHtjb2luLm5hbWV9IHJlY292ZXJ5IHNlcnZpY2UuIGAgK1xuICAgICAgICBgSWYgeW91IGxvc2VcXHJcXG55b3VyIGtleSwgJHtiYWNrdXBLZXlQcm92aWRlcn0gd2lsbCBiZSBhYmxlIHRvIHNpZ24gdHJhbnNhY3Rpb25zIHRvIHJlY292ZXIgZnVuZHMuYCxcbiAgICAgIGRhdGE6IHB1YixcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICB0aXRsZTogJ0I6IFByb3ZpZGVkIEJhY2t1cCBLZXknLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyB0aGUgcHVibGljIGtleSB5b3UgcHJvdmlkZWQgZm9yIHlvdXIgd2FsbGV0LicsXG4gICAgZGF0YTogcHViLFxuICAgIHB1YmxpY01hc3RlcktleTogYmFja3VwTWFzdGVyS2V5LFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZUJpdEdvUXJEYXRhKGJpdGdvS2V5Y2hhaW46IEtleWNoYWluKTogUXJEYXRhRW50cnkge1xuICBjb25zdCBiaXRnb0RhdGEgPSBnZXRQdWJGcm9tS2V5KGJpdGdvS2V5Y2hhaW4pO1xuICBhc3NlcnQub2soYml0Z29EYXRhKTtcblxuICByZXR1cm4ge1xuICAgIHRpdGxlOiAnQzogQml0R28gUHVibGljIEtleScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhpcyBpcyB0aGUgcHVibGljIHBhcnQgb2YgdGhlIGtleSB0aGF0IEJpdEdvIHdpbGwgdXNlIHRvICcgKyAnY28tc2lnbiB0cmFuc2FjdGlvbnNcXHJcXG53aXRoIHlvdSBvbiB5b3VyIHdhbGxldC4nLFxuICAgIGRhdGE6IGJpdGdvRGF0YSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVVc2VyTWFzdGVyUHVibGljS2V5UVJEYXRhKHB1YmxpY0tleTogc3RyaW5nKTogTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnkge1xuICByZXR1cm4ge1xuICAgIHRpdGxlOiAnRTogTWFzdGVyIFVzZXIgUHVibGljIEtleScsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICAnVGhpcyBpcyB0aGUgcHVibGljIGtleSB1c2VkIHRvIGRlcml2ZSB0aGUgdXNlciBrZXkgZm9yIHRoZSB3YWxsZXQuIFRoaXMgaXMgbm90IHN0b3JlZCBieSBCaXRHbywgYW5kIG1heSBiZSByZXF1aXJlZCBmb3IgdXNlIGluIHJlY292ZXJ5IHNjZW5hcmlvcy4nLFxuICAgIGRhdGE6IHB1YmxpY0tleSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVCYWNrdXBNYXN0ZXJQdWJsaWNLZXlRUkRhdGEocHVibGljS2V5OiBzdHJpbmcpOiBNYXN0ZXJQdWJsaWNLZXlRckRhdGFFbnRyeSB7XG4gIHJldHVybiB7XG4gICAgdGl0bGU6ICdGOiBNYXN0ZXIgQmFja3VwIFB1YmxpYyBLZXknLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ1RoaXMgaXMgdGhlIHB1YmxpYyBrZXkgdXNlZCB0byBkZXJpdmUgdGhlIGJhY2t1cCBrZXkgZm9yIHRoZSB3YWxsZXQuIFRoaXMgaXMgbm90IHN0b3JlZCBieSBCaXRHbywgYW5kIG1heSBiZSByZXF1aXJlZCBmb3IgdXNlIGluIHJlY292ZXJ5IHNjZW5hcmlvcy4nLFxuICAgIGRhdGE6IHB1YmxpY0tleSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlUXJEYXRhKHtcbiAgYmFja3VwS2V5Y2hhaW4sXG4gIGJhY2t1cEtleVByb3ZpZGVyLFxuICBiYWNrdXBNYXN0ZXJLZXksXG4gIGJpdGdvS2V5Y2hhaW4sXG4gIGNvaW4sXG4gIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUsXG4gIHBhc3NwaHJhc2UsXG4gIHVzZXJLZXljaGFpbixcbiAgdXNlck1hc3RlcktleSxcbiAgdXNlck1hc3RlclB1YmxpY0tleSxcbiAgYmFja3VwTWFzdGVyUHVibGljS2V5LFxufTogR2VuZXJhdGVRckRhdGFQYXJhbXMpOiBRckRhdGEge1xuICBjb25zdCBxckRhdGE6IFFyRGF0YSA9IHtcbiAgICB1c2VyOiBnZW5lcmF0ZVVzZXJRckRhdGEodXNlcktleWNoYWluLCB1c2VyTWFzdGVyS2V5KSxcbiAgICB1c2VyTWFzdGVyUHVibGljS2V5OiB1c2VyTWFzdGVyUHVibGljS2V5ID8gZ2VuZXJhdGVVc2VyTWFzdGVyUHVibGljS2V5UVJEYXRhKHVzZXJNYXN0ZXJQdWJsaWNLZXkpIDogdW5kZWZpbmVkLFxuICAgIGJhY2t1cDogZ2VuZXJhdGVCYWNrdXBRckRhdGEoY29pbiwgYmFja3VwS2V5Y2hhaW4sIHtcbiAgICAgIGJhY2t1cEtleVByb3ZpZGVyLFxuICAgICAgYmFja3VwTWFzdGVyS2V5LFxuICAgIH0pLFxuICAgIGJhY2t1cE1hc3RlclB1YmxpY0tleTogYmFja3VwTWFzdGVyUHVibGljS2V5XG4gICAgICA/IGdlbmVyYXRlQmFja3VwTWFzdGVyUHVibGljS2V5UVJEYXRhKGJhY2t1cE1hc3RlclB1YmxpY0tleSlcbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGJpdGdvOiBnZW5lcmF0ZUJpdEdvUXJEYXRhKGJpdGdvS2V5Y2hhaW4pLFxuICB9O1xuXG4gIGlmIChwYXNzcGhyYXNlICYmIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUpIHtcbiAgICBjb25zdCBlbmNyeXB0ZWRXYWxsZXRQYXNzY29kZSA9IGVuY3J5cHQocGFzc2NvZGVFbmNyeXB0aW9uQ29kZSwgcGFzc3BocmFzZSk7XG5cbiAgICBxckRhdGEucGFzc2NvZGUgPSB7XG4gICAgICB0aXRsZTogJ0Q6IEVuY3J5cHRlZCB3YWxsZXQgUGFzc3dvcmQnLFxuICAgICAgZGVzY3JpcHRpb246ICdUaGlzIGlzIHRoZSB3YWxsZXQgcGFzc3dvcmQsIGVuY3J5cHRlZCBjbGllbnQtc2lkZSB3aXRoIGEga2V5IGhlbGQgYnkgQml0R28uJyxcbiAgICAgIGRhdGE6IGVuY3J5cHRlZFdhbGxldFBhc3Njb2RlLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gcXJEYXRhO1xufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { GenerateKeycardParams } from './types';
2
+ export * from './drawKeycard';
3
+ export * from './faq';
4
+ export * from './generateQrData';
5
+ export * from './utils';
6
+ export * from './types';
7
+ export declare function generateKeycard(params: GenerateKeycardParams): Promise<void>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,cAAc,eAAe,CAAC;AAC9B,cAAc,OAAO,CAAC;AACtB,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AAExB,wBAAsB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAelF"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.generateKeycard = generateKeycard;
18
+ const generateQrData_1 = require("./generateQrData");
19
+ const faq_1 = require("./faq");
20
+ const drawKeycard_1 = require("./drawKeycard");
21
+ const generateParamsForKeyCreation_1 = require("./generateParamsForKeyCreation");
22
+ __exportStar(require("./drawKeycard"), exports);
23
+ __exportStar(require("./faq"), exports);
24
+ __exportStar(require("./generateQrData"), exports);
25
+ __exportStar(require("./utils"), exports);
26
+ __exportStar(require("./types"), exports);
27
+ async function generateKeycard(params) {
28
+ if ('coin' in params) {
29
+ const questions = (0, faq_1.generateFaq)(params.coin.fullName);
30
+ const qrData = (0, generateQrData_1.generateQrData)(params);
31
+ const keycard = await (0, drawKeycard_1.drawKeycard)({ ...params, questions, qrData });
32
+ const label = params.walletLabel || params.coin.fullName;
33
+ keycard.save(`BitGo Keycard for ${label}.pdf`);
34
+ }
35
+ else if ('curve' in params) {
36
+ const data = (0, generateParamsForKeyCreation_1.generateParamsForKeyCreation)(params);
37
+ const keycard = await (0, drawKeycard_1.drawKeycard)(data);
38
+ const label = params.walletLabel || params.curve;
39
+ keycard.save(`BitGo Keycard for ${label}.pdf`);
40
+ }
41
+ else {
42
+ throw new Error('Either curve or coin must be provided');
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQVlBLDBDQWVDO0FBM0JELHFEQUFrRDtBQUNsRCwrQkFBb0M7QUFDcEMsK0NBQTRDO0FBQzVDLGlGQUE4RTtBQUc5RSxnREFBOEI7QUFDOUIsd0NBQXNCO0FBQ3RCLG1EQUFpQztBQUNqQywwQ0FBd0I7QUFDeEIsMENBQXdCO0FBRWpCLEtBQUssVUFBVSxlQUFlLENBQUMsTUFBNkI7SUFDakUsSUFBSSxNQUFNLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBQSxpQkFBVyxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBQSwrQkFBYyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSx5QkFBVyxFQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN6RCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7U0FBTSxJQUFJLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLDJEQUE0QixFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSx5QkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqRCxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQ2pELENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2VuZXJhdGVRckRhdGEgfSBmcm9tICcuL2dlbmVyYXRlUXJEYXRhJztcbmltcG9ydCB7IGdlbmVyYXRlRmFxIH0gZnJvbSAnLi9mYXEnO1xuaW1wb3J0IHsgZHJhd0tleWNhcmQgfSBmcm9tICcuL2RyYXdLZXljYXJkJztcbmltcG9ydCB7IGdlbmVyYXRlUGFyYW1zRm9yS2V5Q3JlYXRpb24gfSBmcm9tICcuL2dlbmVyYXRlUGFyYW1zRm9yS2V5Q3JlYXRpb24nO1xuaW1wb3J0IHsgR2VuZXJhdGVLZXljYXJkUGFyYW1zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZHJhd0tleWNhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9mYXEnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0ZVFyRGF0YSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVLZXljYXJkKHBhcmFtczogR2VuZXJhdGVLZXljYXJkUGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICgnY29pbicgaW4gcGFyYW1zKSB7XG4gICAgY29uc3QgcXVlc3Rpb25zID0gZ2VuZXJhdGVGYXEocGFyYW1zLmNvaW4uZnVsbE5hbWUpO1xuICAgIGNvbnN0IHFyRGF0YSA9IGdlbmVyYXRlUXJEYXRhKHBhcmFtcyk7XG4gICAgY29uc3Qga2V5Y2FyZCA9IGF3YWl0IGRyYXdLZXljYXJkKHsgLi4ucGFyYW1zLCBxdWVzdGlvbnMsIHFyRGF0YSB9KTtcbiAgICBjb25zdCBsYWJlbCA9IHBhcmFtcy53YWxsZXRMYWJlbCB8fCBwYXJhbXMuY29pbi5mdWxsTmFtZTtcbiAgICBrZXljYXJkLnNhdmUoYEJpdEdvIEtleWNhcmQgZm9yICR7bGFiZWx9LnBkZmApO1xuICB9IGVsc2UgaWYgKCdjdXJ2ZScgaW4gcGFyYW1zKSB7XG4gICAgY29uc3QgZGF0YSA9IGdlbmVyYXRlUGFyYW1zRm9yS2V5Q3JlYXRpb24ocGFyYW1zKTtcbiAgICBjb25zdCBrZXljYXJkID0gYXdhaXQgZHJhd0tleWNhcmQoZGF0YSk7XG4gICAgY29uc3QgbGFiZWwgPSBwYXJhbXMud2FsbGV0TGFiZWwgfHwgcGFyYW1zLmN1cnZlO1xuICAgIGtleWNhcmQuc2F2ZShgQml0R28gS2V5Y2FyZCBmb3IgJHtsYWJlbH0ucGRmYCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFaXRoZXIgY3VydmUgb3IgY29pbiBtdXN0IGJlIHByb3ZpZGVkJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { Keychain } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin, KeyCurve } from '@bitgo-beta/statics';
3
+ export interface GenerateQrDataBaseParams {
4
+ activationCode?: string;
5
+ keyCardImage?: HTMLImageElement;
6
+ walletLabel: string;
7
+ }
8
+ export interface GenerateQrDataForKeychainParams {
9
+ bitgoKeychain: Keychain;
10
+ curve: KeyCurve;
11
+ }
12
+ export interface GenerateQrDataParams {
13
+ backupKeychain: Keychain;
14
+ backupKeyProvider?: string;
15
+ backupMasterKey?: string;
16
+ /**
17
+ * @description The key used to derive the backup key using {@link backupMasterKey} as the seed.
18
+ */
19
+ backupMasterPublicKey?: string;
20
+ bitgoKeychain: Keychain;
21
+ coin: Readonly<BaseCoin>;
22
+ passcodeEncryptionCode?: string;
23
+ passphrase?: string;
24
+ userKeychain: Keychain;
25
+ userMasterKey?: string;
26
+ /**
27
+ * @description The key used to derive the user key using {@link userMasterKey} as the seed.
28
+ */
29
+ userMasterPublicKey?: string;
30
+ }
31
+ export type GenerateKeycardParams = GenerateQrDataBaseParams & (GenerateQrDataForKeychainParams | GenerateQrDataParams);
32
+ export interface IDrawKeyCard {
33
+ activationCode?: string;
34
+ keyCardImage?: HTMLImageElement;
35
+ qrData: QrData;
36
+ questions: FAQ[];
37
+ walletLabel?: string;
38
+ curve?: KeyCurve;
39
+ }
40
+ export interface FAQ {
41
+ question: string;
42
+ answer: string[];
43
+ }
44
+ export interface QrDataEntry {
45
+ data: string;
46
+ description: string;
47
+ title: string;
48
+ publicMasterKey?: string;
49
+ }
50
+ export type MasterPublicKeyQrDataEntry = Omit<QrDataEntry, 'publicMasterKey'>;
51
+ export interface QrData {
52
+ backup?: QrDataEntry;
53
+ backupMasterPublicKey?: MasterPublicKeyQrDataEntry;
54
+ bitgo?: QrDataEntry;
55
+ passcode?: QrDataEntry;
56
+ curve?: KeyCurve;
57
+ user: QrDataEntry;
58
+ userMasterPublicKey?: MasterPublicKeyQrDataEntry;
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,+BAA+B;IAE9C,aAAa,EAAE,QAAQ,CAAC;IAExB,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IAEnC,cAAc,EAAE,QAAQ,CAAC;IAEzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,aAAa,EAAE,QAAQ,CAAC;IAExB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAIhC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,QAAQ,CAAC;IAEvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,GAAG,CAAC,+BAA+B,GAAG,oBAAoB,CAAC,CAAC;AAExH,MAAM,WAAW,YAAY;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,GAAG;IAClB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AAE9E,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;IACnD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,mBAAmB,CAAC,EAAE,0BAA0B,CAAC;CAClD"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleWNoYWluIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4sIEtleUN1cnZlIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFCYXNlUGFyYW1zIHtcbiAgYWN0aXZhdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGtleUNhcmRJbWFnZT86IEhUTUxJbWFnZUVsZW1lbnQ7XG4gIHdhbGxldExhYmVsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdGVRckRhdGFGb3JLZXljaGFpblBhcmFtcyB7XG4gIC8vIFRoZSBCaXRHbyBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiaXRnb0tleWNoYWluOiBLZXljaGFpbjtcbiAgLy8gVGhlIGN1cnZlIHVzZWQgZm9yIHRoZSBrZXlcbiAgY3VydmU6IEtleUN1cnZlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYXRlUXJEYXRhUGFyYW1zIHtcbiAgLy8gVGhlIGJhY2t1cCBrZXljaGFpbiBhcyBpdCBpcyByZXR1cm5lZCBmcm9tIHRoZSBCaXRHbyBBUEkgdXBvbiBjcmVhdGlvblxuICBiYWNrdXBLZXljaGFpbjogS2V5Y2hhaW47XG4gIC8vIFRoZSBuYW1lIG9mIHRoZSAzcmQgcGFydHkgcHJvdmlkZXIgb2YgdGhlIGJhY2t1cCBrZXkgaWYgbmVpdGhlciB0aGUgdXNlciBub3IgQml0R28gc3RvcmVzIGl0XG4gIGJhY2t1cEtleVByb3ZpZGVyPzogc3RyaW5nO1xuICAvLyBUaGUga2V5IGlkIG9mIHRoZSBiYWNrdXAga2V5LCBvbmx5IHVzZWQgZm9yIGNvbGQga2V5c1xuICBiYWNrdXBNYXN0ZXJLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIGtleSB1c2VkIHRvIGRlcml2ZSB0aGUgYmFja3VwIGtleSB1c2luZyB7QGxpbmsgYmFja3VwTWFzdGVyS2V5fSBhcyB0aGUgc2VlZC5cbiAgICovXG4gIGJhY2t1cE1hc3RlclB1YmxpY0tleT86IHN0cmluZztcbiAgLy8gVGhlIEJpdEdvIGtleWNoYWluIGFzIGl0IGlzIHJldHVybmVkIGZyb20gdGhlIEJpdEdvIEFQSSB1cG9uIGNyZWF0aW9uXG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICAvLyBUaGUgY29pbiBvZiB0aGUgd2FsbGV0IHRoYXQgd2FzLyBpcyBhYm91dCB0byBiZSBjcmVhdGVkXG4gIGNvaW46IFJlYWRvbmx5PEJhc2VDb2luPjtcbiAgLy8gQSBjb2RlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZW5jcnlwdCB0aGUgd2FsbGV0IHBhc3N3b3JkIHRvLlxuICAvLyBJZiBib3RoIHRoZSBwYXNzcGhyYXNlIGFuZCBwYXNzY29kZUVuY3J5cHRpb25Db2RlIGFyZSBwYXNzZWQsIHRoZW4gdGhpcyBjb2RlIGVuY3J5cHRzIHRoZSBwYXNzcGhyYXNlIHdpdGggdGhlXG4gIC8vIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYW5kIHB1dHMgdGhlIHJlc3VsdCBpbnRvIEJveCBELiBBbGxvd3MgcmVjb3ZlcmllcyBvZiB0aGUgd2FsbGV0IHBhc3N3b3JkLlxuICBwYXNzY29kZUVuY3J5cHRpb25Db2RlPzogc3RyaW5nO1xuICAvLyBUaGUgd2FsbGV0IHBhc3N3b3JkXG4gIC8vIElmIGJvdGggdGhlIHBhc3NwaHJhc2UgYW5kIHBhc3Njb2RlRW5jcnlwdGlvbkNvZGUgYXJlIHBhc3NlZCwgdGhlbiB0aGlzIGNvZGUgZW5jcnlwdHMgdGhlIHBhc3NwaHJhc2Ugd2l0aCB0aGVcbiAgLy8gcGFzc2NvZGVFbmNyeXB0aW9uQ29kZSBhbmQgcHV0cyB0aGUgcmVzdWx0IGludG8gQm94IEQuIEFsbG93cyByZWNvdmVyaWVzIG9mIHRoZSB3YWxsZXQgcGFzc3dvcmQuXG4gIHBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIC8vIFRoZSB1c2VyIGtleWNoYWluIGFzIGl0IGlzIHJldHVybmVkIGZyb20gdGhlIEJpdEdvIEFQSSB1cG9uIGNyZWF0aW9uXG4gIHVzZXJLZXljaGFpbjogS2V5Y2hhaW47XG4gIC8vIFRoZSBrZXkgaWQgb2YgdGhlIHVzZXIga2V5LCBvbmx5IHVzZWQgZm9yIGNvbGQga2V5c1xuICB1c2VyTWFzdGVyS2V5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFRoZSBrZXkgdXNlZCB0byBkZXJpdmUgdGhlIHVzZXIga2V5IHVzaW5nIHtAbGluayB1c2VyTWFzdGVyS2V5fSBhcyB0aGUgc2VlZC5cbiAgICovXG4gIHVzZXJNYXN0ZXJQdWJsaWNLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlS2V5Y2FyZFBhcmFtcyA9IEdlbmVyYXRlUXJEYXRhQmFzZVBhcmFtcyAmIChHZW5lcmF0ZVFyRGF0YUZvcktleWNoYWluUGFyYW1zIHwgR2VuZXJhdGVRckRhdGFQYXJhbXMpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEcmF3S2V5Q2FyZCB7XG4gIGFjdGl2YXRpb25Db2RlPzogc3RyaW5nO1xuICBrZXlDYXJkSW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50O1xuICBxckRhdGE6IFFyRGF0YTtcbiAgcXVlc3Rpb25zOiBGQVFbXTtcbiAgd2FsbGV0TGFiZWw/OiBzdHJpbmc7XG4gIGN1cnZlPzogS2V5Q3VydmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRkFRIHtcbiAgcXVlc3Rpb246IHN0cmluZztcbiAgLy8gdGhlIGFuc3dlciB0byB0aGUgcXVlc3Rpb24sIGFscmVhZHkgc3BsaXQgaW50byBpbmRpdmlkdWFsIGxpbmVzIG9mIHRleHRcbiAgYW5zd2VyOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRckRhdGFFbnRyeSB7XG4gIGRhdGE6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgcHVibGljTWFzdGVyS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBNYXN0ZXJQdWJsaWNLZXlRckRhdGFFbnRyeSA9IE9taXQ8UXJEYXRhRW50cnksICdwdWJsaWNNYXN0ZXJLZXknPjtcblxuZXhwb3J0IGludGVyZmFjZSBRckRhdGEge1xuICBiYWNrdXA/OiBRckRhdGFFbnRyeTtcbiAgYmFja3VwTWFzdGVyUHVibGljS2V5PzogTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnk7XG4gIGJpdGdvPzogUXJEYXRhRW50cnk7XG4gIHBhc3Njb2RlPzogUXJEYXRhRW50cnk7XG4gIGN1cnZlPzogS2V5Q3VydmU7XG4gIHVzZXI6IFFyRGF0YUVudHJ5O1xuICB1c2VyTWFzdGVyUHVibGljS2V5PzogTWFzdGVyUHVibGljS2V5UXJEYXRhRW50cnk7XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export declare function splitKeys(key: string, limit: number): string[];
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAc9D"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.splitKeys = splitKeys;
4
+ function splitKeys(key, limit) {
5
+ if (key.length <= limit) {
6
+ return [key];
7
+ }
8
+ const keys = [];
9
+ let rightIndex = limit;
10
+ for (let i = 0; i < key.length; i += limit) {
11
+ keys.push(key.substring(i, rightIndex));
12
+ rightIndex = Math.min(rightIndex + limit, key.length);
13
+ }
14
+ return keys;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw4QkFjQztBQWRELFNBQWdCLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNsRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFhLEVBQUUsQ0FBQztJQUUxQixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN4QyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHNwbGl0S2V5cyhrZXk6IHN0cmluZywgbGltaXQ6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgaWYgKGtleS5sZW5ndGggPD0gbGltaXQpIHtcbiAgICByZXR1cm4gW2tleV07XG4gIH1cblxuICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGxldCByaWdodEluZGV4ID0gbGltaXQ7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwga2V5Lmxlbmd0aDsgaSArPSBsaW1pdCkge1xuICAgIGtleXMucHVzaChrZXkuc3Vic3RyaW5nKGksIHJpZ2h0SW5kZXgpKTtcbiAgICByaWdodEluZGV4ID0gTWF0aC5taW4ocmlnaHRJbmRleCArIGxpbWl0LCBrZXkubGVuZ3RoKTtcbiAgfVxuXG4gIHJldHVybiBrZXlzO1xufVxuIl19