core-3nweb-client-lib 0.26.1 → 0.27.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/build/api-defs/asmail.d.ts +1 -1
- package/build/api-defs/files.d.ts +278 -69
- package/build/core/app-files.js +7 -7
- package/build/core/asmail/config/common.js +2 -2
- package/build/core/asmail/config/index.js +2 -2
- package/build/core/asmail/config/published-intro-key.js +1 -1
- package/build/core/asmail/delivery/common.js +7 -7
- package/build/core/asmail/delivery/index.js +5 -5
- package/build/core/asmail/delivery/msg.js +4 -4
- package/build/core/asmail/delivery/per-recipient-wip.js +1 -1
- package/build/core/asmail/inbox/attachments/fs.js +5 -1
- package/build/core/asmail/inbox/cached-msgs.js +1 -1
- package/build/core/asmail/inbox/inbox-events.js +4 -4
- package/build/core/asmail/inbox/index.js +10 -10
- package/build/core/asmail/inbox/msg-downloader.js +1 -1
- package/build/core/asmail/inbox/msg-indexing.js +1 -1
- package/build/core/asmail/inbox/msg-on-disk.js +5 -5
- package/build/core/asmail/index.d.ts +3 -3
- package/build/core/asmail/index.js +13 -8
- package/build/core/asmail/key-verification.js +5 -5
- package/build/core/asmail/keyring/common.js +7 -6
- package/build/core/asmail/keyring/correspondent-keys.js +8 -7
- package/build/core/asmail/keyring/id-to-email-map.js +2 -1
- package/build/core/asmail/keyring/index.d.ts +7 -8
- package/build/core/asmail/keyring/index.js +15 -14
- package/build/core/asmail/keyring/keyring-storage.js +2 -1
- package/build/core/asmail/msg/opener.js +3 -3
- package/build/core/asmail/msg/packer.js +13 -13
- package/build/core/asmail/sending-params/own-params.js +2 -2
- package/build/core/asmail/sending-params/params-from-others.js +1 -1
- package/build/core/id-manager.js +6 -3
- package/build/core/index.d.ts +2 -1
- package/build/core/index.js +14 -14
- package/build/core/sign-in.js +5 -5
- package/build/core/sign-up.js +9 -9
- package/build/core/storage/common/json-saving.js +2 -2
- package/build/core/storage/common/obj-info-file.d.ts +12 -4
- package/build/core/storage/common/obj-info-file.js +66 -34
- package/build/core/storage/common/utils.d.ts +2 -0
- package/build/core/storage/common/utils.js +32 -0
- package/build/core/storage/index.d.ts +3 -17
- package/build/core/storage/index.js +56 -76
- package/build/core/storage/local/obj-files-gc.d.ts +2 -0
- package/build/core/storage/local/obj-files-gc.js +49 -37
- package/build/core/storage/local/obj-files.d.ts +4 -7
- package/build/core/storage/local/obj-files.js +7 -10
- package/build/core/storage/local/obj-status.d.ts +12 -6
- package/build/core/storage/local/obj-status.js +24 -9
- package/build/core/storage/local/storage.d.ts +9 -6
- package/build/core/storage/local/storage.js +29 -18
- package/build/core/storage/synced/downloader.js +1 -1
- package/build/core/storage/synced/obj-files-gc.d.ts +5 -1
- package/build/core/storage/synced/obj-files-gc.js +91 -37
- package/build/core/storage/synced/obj-files.d.ts +42 -36
- package/build/core/storage/synced/obj-files.js +178 -147
- package/build/core/storage/synced/obj-status.d.ts +87 -85
- package/build/core/storage/synced/obj-status.js +463 -259
- package/build/core/storage/synced/remote-events.d.ts +11 -12
- package/build/core/storage/synced/remote-events.js +73 -56
- package/build/core/storage/synced/storage.d.ts +18 -9
- package/build/core/storage/synced/storage.js +108 -48
- package/build/core/storage/synced/upload-header-file.d.ts +4 -0
- package/build/core/storage/synced/upload-header-file.js +64 -0
- package/build/core/storage/synced/upsyncer.d.ts +12 -7
- package/build/core/storage/synced/upsyncer.js +205 -280
- package/build/core/storage/system-folders/apps-data.d.ts +16 -0
- package/build/core/storage/system-folders/apps-data.js +110 -0
- package/build/core/storage/system-folders/index.d.ts +18 -0
- package/build/core/storage/system-folders/index.js +77 -0
- package/build/core-ipc/common-caps.js +3 -3
- package/build/core-ipc/generic.js +8 -8
- package/build/core-ipc/startup-caps.js +2 -2
- package/build/cryptors.js +6 -2
- package/build/ipc-via-protobuf/asmail-cap.js +58 -57
- package/build/ipc-via-protobuf/bytes.js +16 -17
- package/build/ipc-via-protobuf/connector-clients-side.d.ts +1 -0
- package/build/ipc-via-protobuf/connector-clients-side.js +14 -15
- package/build/ipc-via-protobuf/connector-services-side.js +10 -10
- package/build/ipc-via-protobuf/connector.js +4 -4
- package/build/ipc-via-protobuf/file.d.ts +48 -12
- package/build/ipc-via-protobuf/file.js +474 -126
- package/build/ipc-via-protobuf/fs.d.ts +8 -0
- package/build/ipc-via-protobuf/fs.js +577 -142
- package/build/ipc-via-protobuf/log-cap.js +2 -2
- package/build/ipc-via-protobuf/mailerid.js +3 -3
- package/build/ipc-via-protobuf/protobuf-msg.d.ts +1 -0
- package/build/ipc-via-protobuf/protobuf-msg.js +11 -7
- package/build/ipc-via-protobuf/startup-cap.js +21 -21
- package/build/ipc-via-protobuf/storage-cap.js +12 -12
- package/build/ipc.js +7 -2
- package/build/lib-client/3nstorage/exceptions.d.ts +3 -0
- package/build/lib-client/3nstorage/exceptions.js +13 -1
- package/build/lib-client/3nstorage/service.d.ts +16 -2
- package/build/lib-client/3nstorage/service.js +104 -38
- package/build/lib-client/3nstorage/util/file-based-json.d.ts +2 -1
- package/build/lib-client/3nstorage/util/file-based-json.js +1 -1
- package/build/lib-client/3nstorage/xsp-fs/attrs.js +17 -17
- package/build/lib-client/3nstorage/xsp-fs/common.d.ts +42 -18
- package/build/lib-client/3nstorage/xsp-fs/common.js +29 -19
- package/build/lib-client/3nstorage/xsp-fs/file-node.d.ts +1 -0
- package/build/lib-client/3nstorage/xsp-fs/file-node.js +17 -13
- package/build/lib-client/3nstorage/xsp-fs/file.d.ts +31 -6
- package/build/lib-client/3nstorage/xsp-fs/file.js +73 -25
- package/build/lib-client/3nstorage/xsp-fs/folder-node-serialization.js +4 -4
- package/build/lib-client/3nstorage/xsp-fs/folder-node.d.ts +24 -11
- package/build/lib-client/3nstorage/xsp-fs/folder-node.js +575 -179
- package/build/lib-client/3nstorage/xsp-fs/fs.d.ts +35 -4
- package/build/lib-client/3nstorage/xsp-fs/fs.js +231 -110
- package/build/lib-client/3nstorage/xsp-fs/link-node.d.ts +1 -0
- package/build/lib-client/3nstorage/xsp-fs/link-node.js +7 -2
- package/build/lib-client/3nstorage/xsp-fs/node-in-fs.d.ts +30 -24
- package/build/lib-client/3nstorage/xsp-fs/node-in-fs.js +229 -123
- package/build/lib-client/3nstorage/xsp-fs/node-persistence.d.ts +1 -1
- package/build/lib-client/3nstorage/xsp-fs/node-persistence.js +17 -18
- package/build/lib-client/3nstorage/xsp-fs/xsp-payload-v1.js +3 -3
- package/build/lib-client/3nstorage/xsp-fs/xsp-payload-v2.js +53 -53
- package/build/lib-client/3nweb-signup.js +4 -4
- package/build/lib-client/asmail/recipient.js +15 -15
- package/build/lib-client/asmail/sender.js +22 -22
- package/build/lib-client/asmail/service-config.js +3 -3
- package/build/lib-client/cryptor/cryptor-in-worker.js +18 -16
- package/build/lib-client/cryptor/cryptor-wasm.js +1 -1
- package/build/lib-client/cryptor/cryptor.js +4 -2
- package/build/lib-client/cryptor/cryptor.wasm +0 -0
- package/build/lib-client/cryptor/in-proc-js.js +1 -1
- package/build/lib-client/cryptor/in-proc-wasm.js +6 -6
- package/build/lib-client/cryptor/worker-js.js +2 -2
- package/build/lib-client/cryptor/worker-wasm.js +2 -2
- package/build/lib-client/files-select.js +1 -1
- package/build/lib-client/files.d.ts +1 -1
- package/build/lib-client/files.js +71 -6
- package/build/lib-client/fs-collection.js +1 -1
- package/build/lib-client/fs-sync-utils.d.ts +5 -0
- package/build/lib-client/fs-sync-utils.js +61 -0
- package/build/lib-client/fs-view.d.ts +14 -0
- package/build/lib-client/fs-view.js +33 -0
- package/build/lib-client/key-derivation.js +1 -1
- package/build/lib-client/local-files/dev-file-sink.js +9 -9
- package/build/lib-client/local-files/dev-file-src.js +2 -2
- package/build/lib-client/local-files/device-fs.d.ts +1 -1
- package/build/lib-client/local-files/device-fs.js +56 -54
- package/build/lib-client/logging/log-to-file.d.ts +1 -1
- package/build/lib-client/logging/log-to-file.js +7 -7
- package/build/lib-client/mailer-id/login.js +7 -7
- package/build/lib-client/mailer-id/provisioner.js +12 -12
- package/build/lib-client/objs-on-disk/file-writing-proc.js +3 -3
- package/build/lib-client/objs-on-disk/obj-folders.js +31 -31
- package/build/lib-client/objs-on-disk/obj-on-disk.d.ts +13 -2
- package/build/lib-client/objs-on-disk/obj-on-disk.js +24 -9
- package/build/lib-client/request-utils.d.ts +1 -0
- package/build/lib-client/request-utils.js +13 -13
- package/build/lib-client/server-events.d.ts +3 -3
- package/build/lib-client/server-events.js +9 -8
- package/build/lib-client/service-locator.js +10 -10
- package/build/lib-client/user-with-mid-session.js +7 -7
- package/build/lib-client/user-with-pkl-session.js +25 -25
- package/build/lib-client/ws-utils.js +2 -2
- package/build/lib-common/async-cryptor-wrap.js +4 -4
- package/build/lib-common/async-fs-node.d.ts +5 -3
- package/build/lib-common/async-fs-node.js +16 -16
- package/build/lib-common/byte-streaming/pipe.js +1 -1
- package/build/lib-common/byte-streaming/wrapping.js +13 -13
- package/build/lib-common/canonical-address.js +1 -1
- package/build/lib-common/exceptions/error.d.ts +1 -0
- package/build/lib-common/exceptions/error.js +7 -6
- package/build/lib-common/exceptions/file.js +4 -0
- package/build/lib-common/ipc/ws-ipc.js +2 -2
- package/build/lib-common/mid-sigs-NaCl-Ed.js +14 -14
- package/build/lib-common/objs-on-disk/file-layout.d.ts +19 -0
- package/build/lib-common/objs-on-disk/file-layout.js +130 -12
- package/build/lib-common/objs-on-disk/obj-file.d.ts +13 -2
- package/build/lib-common/objs-on-disk/obj-file.js +96 -35
- package/build/lib-common/objs-on-disk/utils.d.ts +1 -0
- package/build/lib-common/objs-on-disk/utils.js +3 -3
- package/build/lib-common/objs-on-disk/v1-obj-file-format.js +14 -14
- package/build/lib-common/processes/labelled-exec-pools.d.ts +1 -1
- package/build/lib-common/processes/labelled-exec-pools.js +1 -1
- package/build/lib-common/processes/pressure.js +2 -2
- package/build/lib-common/processes/synced.js +1 -1
- package/build/lib-common/processes/timeout.js +2 -2
- package/build/lib-common/random-node.js +7 -7
- package/build/lib-common/service-api/3nstorage/owner.d.ts +95 -35
- package/build/lib-common/service-api/3nstorage/owner.js +82 -40
- package/build/lib-common/service-api/asmail/delivery.js +2 -2
- package/build/lib-common/service-api/asmail/retrieval.js +1 -1
- package/build/lib-common/timed-cache.d.ts +1 -0
- package/build/lib-common/timed-non-weak-cache.d.ts +1 -0
- package/build/lib-common/timed-non-weak-cache.js +11 -0
- package/build/lib-common/utils-for-observables.js +4 -4
- package/build/lib-common/weak-cache.d.ts +1 -0
- package/build/lib-common/weak-cache.js +12 -1
- package/build/lib-index.d.ts +2 -1
- package/build/lib-index.js +10 -7
- package/build/protos/asmail.proto.js +12955 -7496
- package/build/protos/file.proto.js +4867 -2744
- package/build/protos/fs.proto.js +9227 -3768
- package/package.json +6 -5
- package/protos/file.proto +91 -19
- package/protos/fs.proto +107 -8
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
See the GNU General Public License for more details.
|
|
14
14
|
|
|
15
15
|
You should have received a copy of the GNU General Public License along with
|
|
16
|
-
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.KeyRing = void 0;
|
|
19
|
+
exports.KeyRing = exports.KEY_USE = void 0;
|
|
19
20
|
const correspondent_keys_1 = require("./correspondent-keys");
|
|
20
21
|
const id_to_email_map_1 = require("./id-to-email-map");
|
|
21
22
|
const common_1 = require("./common");
|
|
@@ -39,11 +40,11 @@ class KeyRing {
|
|
|
39
40
|
this.pairIdToEmailMap = new id_to_email_map_1.IdToEmailMap();
|
|
40
41
|
this.storage = undefined;
|
|
41
42
|
this.needIntroKeyFor = (address) => {
|
|
42
|
-
address = canonical_address_1.toCanonicalAddress(address);
|
|
43
|
+
address = (0, canonical_address_1.toCanonicalAddress)(address);
|
|
43
44
|
return !this.corrKeys.has(address);
|
|
44
45
|
};
|
|
45
46
|
this.generateKeysToSend = async (address, introPKeyFromServer) => {
|
|
46
|
-
address = canonical_address_1.toCanonicalAddress(address);
|
|
47
|
+
address = (0, canonical_address_1.toCanonicalAddress)(address);
|
|
47
48
|
let ck = this.corrKeys.get(address);
|
|
48
49
|
if (!ck) {
|
|
49
50
|
if (!introPKeyFromServer) {
|
|
@@ -54,12 +55,12 @@ class KeyRing {
|
|
|
54
55
|
const { msgMasterKey, currentPair, msgCount } = await ck.getSendingPair(introPKeyFromServer);
|
|
55
56
|
// prepare message encryptor
|
|
56
57
|
const nextNonce = await random.bytes(xsp_files_1.NONCE_LENGTH);
|
|
57
|
-
const encryptor = async_cryptor_wrap_1.makeEncryptor(this.cryptor, msgMasterKey, nextNonce);
|
|
58
|
+
const encryptor = (0, async_cryptor_wrap_1.makeEncryptor)(this.cryptor, msgMasterKey, nextNonce);
|
|
58
59
|
msgMasterKey.fill(0);
|
|
59
60
|
return { encryptor, currentPair, msgCount };
|
|
60
61
|
};
|
|
61
62
|
this.nextCrypto = async (address) => {
|
|
62
|
-
address = canonical_address_1.toCanonicalAddress(address);
|
|
63
|
+
address = (0, canonical_address_1.toCanonicalAddress)(address);
|
|
63
64
|
let ck = this.corrKeys.get(address);
|
|
64
65
|
if (!ck) {
|
|
65
66
|
throw new Error(`No correspondent keys found for ${address}`);
|
|
@@ -91,11 +92,11 @@ class KeyRing {
|
|
|
91
92
|
if (pkey.k !== msgMeta.senderPKey) {
|
|
92
93
|
throw new Error(`Key certificates in the message are not for a key that encrypted this message.`);
|
|
93
94
|
}
|
|
94
|
-
decrInfo.correspondent = canonical_address_1.toCanonicalAddress(address);
|
|
95
|
+
decrInfo.correspondent = (0, canonical_address_1.toCanonicalAddress)(address);
|
|
95
96
|
}
|
|
96
97
|
// check that sender is the same as the trusted correspondent
|
|
97
98
|
const sender = openedMsg.sender;
|
|
98
|
-
if (!sender || !canonical_address_1.areAddressesEqual(sender, decrInfo.correspondent)) {
|
|
99
|
+
if (!sender || !(0, canonical_address_1.areAddressesEqual)(sender, decrInfo.correspondent)) {
|
|
99
100
|
throw new Error(`Mismatch between message sender field '${sender}', and address '${decrInfo.correspondent}', associated with decrypting key.`);
|
|
100
101
|
}
|
|
101
102
|
// update received msg counts and a time stamp
|
|
@@ -137,7 +138,7 @@ class KeyRing {
|
|
|
137
138
|
if (this.storage) {
|
|
138
139
|
throw new Error("Keyring has already been initialized.");
|
|
139
140
|
}
|
|
140
|
-
this.storage = keyring_storage_1.makeKeyringStorage(fs);
|
|
141
|
+
this.storage = (0, keyring_storage_1.makeKeyringStorage)(fs);
|
|
141
142
|
await this.storage.start();
|
|
142
143
|
const serialForm = await this.storage.load();
|
|
143
144
|
if (serialForm) {
|
|
@@ -175,11 +176,11 @@ class KeyRing {
|
|
|
175
176
|
return;
|
|
176
177
|
}
|
|
177
178
|
const h = await getMainObjHeader();
|
|
178
|
-
const msgKeyPackLen = common_1.msgKeyPackSizeFor(recipKey.pair.skey.alg);
|
|
179
|
+
const msgKeyPackLen = (0, common_1.msgKeyPackSizeFor)(recipKey.pair.skey.alg);
|
|
179
180
|
if (h.length < msgKeyPackLen) {
|
|
180
181
|
return;
|
|
181
182
|
}
|
|
182
|
-
const masterDecr = correspondent_keys_1.msgMasterDecryptor(this.cryptor, recipKey.pair.skey, { kid: '', k: senderPKey });
|
|
183
|
+
const masterDecr = (0, correspondent_keys_1.msgMasterDecryptor)(this.cryptor, recipKey.pair.skey, { kid: '', k: senderPKey });
|
|
183
184
|
try {
|
|
184
185
|
const mainObjFileKey = await masterDecr.open(h.subarray(0, msgKeyPackLen));
|
|
185
186
|
const info = {
|
|
@@ -232,7 +233,7 @@ class KeyRing {
|
|
|
232
233
|
const h = await getMainObjHeader();
|
|
233
234
|
for (const { correspondent, pair, role } of pairs) {
|
|
234
235
|
const masterKey = buffer_utils_1.base64.open(pair.msgMasterKey);
|
|
235
|
-
const masterDecr = async_cryptor_wrap_1.makeDecryptor(this.cryptor, masterKey);
|
|
236
|
+
const masterDecr = (0, async_cryptor_wrap_1.makeDecryptor)(this.cryptor, masterKey);
|
|
236
237
|
masterKey.fill(0);
|
|
237
238
|
try {
|
|
238
239
|
const msgKeyPackLen = msgKeyPackLenForPair(pair);
|
|
@@ -278,7 +279,7 @@ class KeyRing {
|
|
|
278
279
|
if (!rp.receivedMsgs) {
|
|
279
280
|
rp.receivedMsgs = { counts: [], lastTS };
|
|
280
281
|
}
|
|
281
|
-
common_2.addToNumberLineSegments(rp.receivedMsgs.counts, msgCount);
|
|
282
|
+
(0, common_2.addToNumberLineSegments)(rp.receivedMsgs.counts, msgCount);
|
|
282
283
|
rp.receivedMsgs.lastTS = lastTS;
|
|
283
284
|
this.saveChanges();
|
|
284
285
|
}
|
|
@@ -308,6 +309,6 @@ exports.KeyRing = KeyRing;
|
|
|
308
309
|
Object.freeze(KeyRing.prototype);
|
|
309
310
|
Object.freeze(KeyRing);
|
|
310
311
|
function msgKeyPackLenForPair(p) {
|
|
311
|
-
return common_1.msgKeyPackSizeFor(p.recipientKey.skey.alg);
|
|
312
|
+
return (0, common_1.msgKeyPackSizeFor)(p.recipientKey.skey.alg);
|
|
312
313
|
}
|
|
313
314
|
Object.freeze(exports);
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
See the GNU General Public License for more details.
|
|
14
14
|
|
|
15
15
|
You should have received a copy of the GNU General Public License along with
|
|
16
|
-
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
19
|
exports.makeKeyringStorage = void 0;
|
|
19
20
|
const synced_1 = require("../../../lib-common/processes/synced");
|
|
@@ -77,8 +77,8 @@ Object.freeze(OpenedMsg);
|
|
|
77
77
|
async function openMsg(msgId, mainObjId, mainObj, headerOfs, fKey, cryptor) {
|
|
78
78
|
try {
|
|
79
79
|
const header = await mainObj.readHeader();
|
|
80
|
-
const segReader = await xsp_files_1.makeSegmentsReader(fKey, xsp_files_1.idToHeaderNonce(mainObjId), 0, header.subarray(headerOfs), cryptor);
|
|
81
|
-
const byteSrc = await xsp_files_1.makeDecryptedByteSource(mainObj.segSrc, segReader);
|
|
80
|
+
const segReader = await (0, xsp_files_1.makeSegmentsReader)(fKey, (0, xsp_files_1.idToHeaderNonce)(mainObjId), 0, header.subarray(headerOfs), cryptor);
|
|
81
|
+
const byteSrc = await (0, xsp_files_1.makeDecryptedByteSource)(mainObj.segSrc, segReader);
|
|
82
82
|
const bytes = await byteSrc.read(undefined);
|
|
83
83
|
if (!bytes) {
|
|
84
84
|
throw new Error(`End of bytes is reached too soon`);
|
|
@@ -87,7 +87,7 @@ async function openMsg(msgId, mainObjId, mainObj, headerOfs, fKey, cryptor) {
|
|
|
87
87
|
return new OpenedMsg(msgId, jsonOfMain);
|
|
88
88
|
}
|
|
89
89
|
catch (err) {
|
|
90
|
-
throw error_1.errWithCause(err, `Cannot open main object of message ${msgId}`);
|
|
90
|
+
throw (0, error_1.errWithCause)(err, `Cannot open main object of message ${msgId}`);
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
exports.openMsg = openMsg;
|
|
@@ -97,7 +97,7 @@ class MsgPacker {
|
|
|
97
97
|
const packer = new MsgPacker(segSizeIn256bs);
|
|
98
98
|
packer.readyPack = p;
|
|
99
99
|
packer.mainObjId = p.meta.objIds[0];
|
|
100
|
-
Object.values(json_utils_1.copy(p.objs))
|
|
100
|
+
Object.values((0, json_utils_1.copy)(p.objs))
|
|
101
101
|
.forEach(obj => {
|
|
102
102
|
packer.allObjs.set(obj.id, obj);
|
|
103
103
|
turnKeyStingsToBytes(obj);
|
|
@@ -286,12 +286,12 @@ class MsgPacker {
|
|
|
286
286
|
const attachments = { nodes: {}, ctime: Date.now() };
|
|
287
287
|
// populate attachments json
|
|
288
288
|
const path = { start: 'attachments', path: [] };
|
|
289
|
-
if (att.container && !attachments_container_1.isContainerEmpty(att.container)) {
|
|
290
|
-
for (const f of attachments_container_1.iterFilesIn(att.container)) {
|
|
289
|
+
if (att.container && !(0, attachments_container_1.isContainerEmpty)(att.container)) {
|
|
290
|
+
for (const f of (0, attachments_container_1.iterFilesIn)(att.container)) {
|
|
291
291
|
const filePath = appendedPath(path, f.fileName);
|
|
292
292
|
this.addFileInto(attachments, f.fileName, filePath);
|
|
293
293
|
}
|
|
294
|
-
for (const f of attachments_container_1.iterFoldersIn(att.container)) {
|
|
294
|
+
for (const f of (0, attachments_container_1.iterFoldersIn)(att.container)) {
|
|
295
295
|
const fsPath = appendedPath(path, f.folderName);
|
|
296
296
|
await this.addFolderInto(attachments, f.folderName, f.folder, fsPath);
|
|
297
297
|
}
|
|
@@ -347,7 +347,7 @@ class MsgPacker {
|
|
|
347
347
|
}
|
|
348
348
|
const msgKeyPack = await msgKeyEnc.pack(obj.key);
|
|
349
349
|
const bytes = buffer_utils_1.utf8.pack(JSON.stringify(obj.json));
|
|
350
|
-
const segWriter = await xsp_files_1.makeSegmentsWriter(obj.key, xsp_files_1.idToHeaderNonce(obj.id), 0, { type: 'new', segSize: this.segSizeIn256bs, payloadFormat: 1 }, random.bytes, cryptor);
|
|
350
|
+
const segWriter = await (0, xsp_files_1.makeSegmentsWriter)(obj.key, (0, xsp_files_1.idToHeaderNonce)(obj.id), 0, { type: 'new', segSize: this.segSizeIn256bs, payloadFormat: 1 }, random.bytes, cryptor);
|
|
351
351
|
// make source that inserts message key pack into header
|
|
352
352
|
return makeMainObjSrc(msgKeyPack, bytes, segWriter);
|
|
353
353
|
}
|
|
@@ -410,24 +410,24 @@ class MsgPacker {
|
|
|
410
410
|
// make object segments writer
|
|
411
411
|
let segWriter;
|
|
412
412
|
if (header) {
|
|
413
|
-
segWriter = await xsp_files_1.makeSegmentsWriter(obj.key, xsp_files_1.idToHeaderNonce(obj.id), 0, { type: 'restart', header }, random.bytes, cryptor);
|
|
413
|
+
segWriter = await (0, xsp_files_1.makeSegmentsWriter)(obj.key, (0, xsp_files_1.idToHeaderNonce)(obj.id), 0, { type: 'restart', header }, random.bytes, cryptor);
|
|
414
414
|
}
|
|
415
415
|
else {
|
|
416
|
-
segWriter = await xsp_files_1.makeSegmentsWriter(obj.key, xsp_files_1.idToHeaderNonce(obj.id), 0, { type: 'new', segSize: this.segSizeIn256bs, payloadFormat: 1 }, random.bytes, cryptor);
|
|
416
|
+
segWriter = await (0, xsp_files_1.makeSegmentsWriter)(obj.key, (0, xsp_files_1.idToHeaderNonce)(obj.id), 0, { type: 'new', segSize: this.segSizeIn256bs, payloadFormat: 1 }, random.bytes, cryptor);
|
|
417
417
|
}
|
|
418
418
|
// make object source
|
|
419
419
|
let src;
|
|
420
420
|
if (obj.json) {
|
|
421
421
|
const bytes = buffer_utils_1.utf8.pack(JSON.stringify(obj.json));
|
|
422
|
-
src = await xsp_files_1.makeObjSourceFromArrays(bytes, segWriter);
|
|
422
|
+
src = await (0, xsp_files_1.makeObjSourceFromArrays)(bytes, segWriter);
|
|
423
423
|
}
|
|
424
424
|
else if (obj.file) {
|
|
425
425
|
const byteSrc = fileSrcToByteSrc(await this.getFileByteSrc(obj.file));
|
|
426
|
-
src = await xsp_files_1.makeEncryptingObjSource(byteSrc, segWriter);
|
|
426
|
+
src = await (0, xsp_files_1.makeEncryptingObjSource)(byteSrc, segWriter);
|
|
427
427
|
}
|
|
428
428
|
else if (obj.folder) {
|
|
429
|
-
const folderBytes = folder_node_serialization_1.serializeFolderInfo(obj.folder);
|
|
430
|
-
src = await xsp_files_1.makeObjSourceFromArrays(folderBytes, segWriter);
|
|
429
|
+
const folderBytes = (0, folder_node_serialization_1.serializeFolderInfo)(obj.folder);
|
|
430
|
+
src = await (0, xsp_files_1.makeObjSourceFromArrays)(folderBytes, segWriter);
|
|
431
431
|
}
|
|
432
432
|
else {
|
|
433
433
|
throw new Error(`Object ${objId} is broken`);
|
|
@@ -443,7 +443,7 @@ class MsgPacker {
|
|
|
443
443
|
meta.objIds = [];
|
|
444
444
|
const objs = {};
|
|
445
445
|
for (const objEntry of this.allObjs) {
|
|
446
|
-
const obj = json_utils_1.copy(objEntry[1]);
|
|
446
|
+
const obj = (0, json_utils_1.copy)(objEntry[1]);
|
|
447
447
|
turnKeysToB64(obj);
|
|
448
448
|
objs[objEntry[0]] = obj;
|
|
449
449
|
if (objEntry[0] !== this.mainObjId) {
|
|
@@ -460,7 +460,7 @@ exports.MsgPacker = MsgPacker;
|
|
|
460
460
|
Object.freeze(MsgPacker.prototype);
|
|
461
461
|
Object.freeze(MsgPacker);
|
|
462
462
|
async function makeMainObjSrc(msgKeyPack, content, segWriter) {
|
|
463
|
-
const src = await xsp_files_1.makeObjSourceFromArrays(content, segWriter);
|
|
463
|
+
const src = await (0, xsp_files_1.makeObjSourceFromArrays)(content, segWriter);
|
|
464
464
|
const wrap = {
|
|
465
465
|
version: src.version,
|
|
466
466
|
segSrc: src.segSrc,
|
|
@@ -51,7 +51,7 @@ class OwnSendingParams extends file_based_json_1.JsonFileProc {
|
|
|
51
51
|
}
|
|
52
52
|
p = {
|
|
53
53
|
address,
|
|
54
|
-
suggested: json_utils_1.copy(this.defaultParams)
|
|
54
|
+
suggested: (0, json_utils_1.copy)(this.defaultParams)
|
|
55
55
|
};
|
|
56
56
|
p.suggested.timestamp = Date.now();
|
|
57
57
|
this.params.set(p.address, p);
|
|
@@ -116,7 +116,7 @@ class OwnSendingParams extends file_based_json_1.JsonFileProc {
|
|
|
116
116
|
this.defaultParams = json.default;
|
|
117
117
|
}
|
|
118
118
|
async onFileEvent(ev) {
|
|
119
|
-
if (
|
|
119
|
+
if (ev.src === 'local') {
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
122
|
if (ev.type === 'removed') {
|
package/build/core/id-manager.js
CHANGED
|
@@ -148,6 +148,9 @@ class IdManager {
|
|
|
148
148
|
};
|
|
149
149
|
await this.localFS.writeJSONFile(LOGIN_KEY_FILE_NAME, json);
|
|
150
150
|
await this.syncedFS.writeJSONFile(LOGIN_KEY_FILE_NAME, json);
|
|
151
|
+
// XXX must add work with not-online condition
|
|
152
|
+
await this.syncedFS.v.sync.upload(LOGIN_KEY_FILE_NAME);
|
|
153
|
+
await this.syncedFS.v.sync.upload('');
|
|
151
154
|
}
|
|
152
155
|
else {
|
|
153
156
|
await this.ensureLocalCacheOfKeys();
|
|
@@ -203,7 +206,7 @@ class IdManager {
|
|
|
203
206
|
if (!key) {
|
|
204
207
|
throw new Error(`No saved MailerId login key can be found`);
|
|
205
208
|
}
|
|
206
|
-
const skey = jwkeys_1.keyFromJson(key, jwkeys_1.use.MID_PKLOGIN, ecma_nacl_1.box.JWK_ALG_NAME, ecma_nacl_1.box.KEY_LENGTH);
|
|
209
|
+
const skey = (0, jwkeys_1.keyFromJson)(key, jwkeys_1.use.MID_PKLOGIN, ecma_nacl_1.box.JWK_ALG_NAME, ecma_nacl_1.box.KEY_LENGTH);
|
|
207
210
|
const provisioning = await provisioner.provisionSigner(skey.kid);
|
|
208
211
|
this.signer = await provisioning.complete(() => {
|
|
209
212
|
const dhshared = ecma_nacl_1.box.calc_dhshared_key(provisioning.serverPKey, skey.k);
|
|
@@ -252,11 +255,11 @@ function notFoundOrReThrow(exc) {
|
|
|
252
255
|
}
|
|
253
256
|
}
|
|
254
257
|
async function doMidLogin(loginUrl, userId, net, signer) {
|
|
255
|
-
const { sessionId, redirect } = await login_1.startMidSession(userId, net, loginUrl);
|
|
258
|
+
const { sessionId, redirect } = await (0, login_1.startMidSession)(userId, net, loginUrl);
|
|
256
259
|
if (!sessionId) {
|
|
257
260
|
throw Error(`Unexpected redirect of MailerId login from ${loginUrl} to ${redirect}`);
|
|
258
261
|
}
|
|
259
|
-
await login_1.authenticateMidSession(sessionId, signer, net, loginUrl);
|
|
262
|
+
await (0, login_1.authenticateMidSession)(sessionId, signer, net, loginUrl);
|
|
260
263
|
return sessionId;
|
|
261
264
|
}
|
|
262
265
|
Object.freeze(exports);
|
package/build/core/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface CoreConf {
|
|
|
8
8
|
dataDir: string;
|
|
9
9
|
signUpUrl: string;
|
|
10
10
|
}
|
|
11
|
+
export declare type MakeNet = () => NetClient;
|
|
11
12
|
export declare class Core {
|
|
12
13
|
private readonly makeNet;
|
|
13
14
|
private readonly makeResolver;
|
|
@@ -21,7 +22,7 @@ export declare class Core {
|
|
|
21
22
|
private isInitialized;
|
|
22
23
|
private closingProc;
|
|
23
24
|
private constructor();
|
|
24
|
-
static make(conf: CoreConf, makeNet:
|
|
25
|
+
static make(conf: CoreConf, makeNet: MakeNet, makeResolver: ServiceLocatorMaker, makeCryptor: makeCryptor): Core;
|
|
25
26
|
start(): {
|
|
26
27
|
capsForStartup: web3n.startup.W3N;
|
|
27
28
|
coreInit: Promise<string>;
|
package/build/core/index.js
CHANGED
|
@@ -42,7 +42,7 @@ class Core {
|
|
|
42
42
|
this.closingProc = undefined;
|
|
43
43
|
this.initForNewUser = async (u) => {
|
|
44
44
|
// 1) init of id manager without setting fs
|
|
45
|
-
const idManager = await id_manager_1.IdManager.initInOneStepWithoutStore(u.address, u.midSKey.default, this.makeResolver('mailerid'), this.makeNet, this.logger.logError, this.logger.logWarning);
|
|
45
|
+
const idManager = await id_manager_1.IdManager.initInOneStepWithoutStore(u.address, u.midSKey.default, this.makeResolver('mailerid'), () => this.makeNet(), this.logger.logError, this.logger.logWarning);
|
|
46
46
|
if (!idManager) {
|
|
47
47
|
throw new Error(`Failed to provision MailerId identity`);
|
|
48
48
|
}
|
|
@@ -57,7 +57,7 @@ class Core {
|
|
|
57
57
|
};
|
|
58
58
|
this.initForExistingUserWithoutCache = async (address) => {
|
|
59
59
|
// 1) init of id manager without setting fs
|
|
60
|
-
const stepTwo = await id_manager_1.IdManager.initWithoutStore(address, this.makeResolver('mailerid'), this.makeNet, this.logger.logError, this.logger.logWarning);
|
|
60
|
+
const stepTwo = await id_manager_1.IdManager.initWithoutStore(address, this.makeResolver('mailerid'), () => this.makeNet(), this.logger.logError, this.logger.logWarning);
|
|
61
61
|
if (!stepTwo) {
|
|
62
62
|
return;
|
|
63
63
|
}
|
|
@@ -82,14 +82,14 @@ class Core {
|
|
|
82
82
|
if (!completeStorageInit) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
const idManager = await id_manager_1.IdManager.initFromLocalStore(address, await this.storages.makeLocalFSForApp(MAILERID_APP_NAME), this.makeResolver('mailerid'), this.makeNet, this.logger.logError, this.logger.logWarning);
|
|
85
|
+
const idManager = await id_manager_1.IdManager.initFromLocalStore(address, await this.storages.makeLocalFSForApp(MAILERID_APP_NAME), this.makeResolver('mailerid'), () => this.makeNet(), this.logger.logError, this.logger.logWarning);
|
|
86
86
|
if (idManager) {
|
|
87
87
|
const res = await completeStorageInit(idManager.getSigner);
|
|
88
88
|
await idManager.setStorages(undefined, await this.storages.makeSyncedFSForApp(MAILERID_APP_NAME));
|
|
89
89
|
return (res ? idManager : undefined);
|
|
90
90
|
}
|
|
91
91
|
return async (midLoginKey) => {
|
|
92
|
-
const idManager = await id_manager_1.IdManager.initInOneStepWithoutStore(address, midLoginKey, this.makeResolver('mailerid'), this.makeNet, this.logger.logError, this.logger.logWarning);
|
|
92
|
+
const idManager = await id_manager_1.IdManager.initInOneStepWithoutStore(address, midLoginKey, this.makeResolver('mailerid'), () => this.makeNet(), this.logger.logError, this.logger.logWarning);
|
|
93
93
|
if (!idManager) {
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
@@ -106,13 +106,13 @@ class Core {
|
|
|
106
106
|
Object.seal(this);
|
|
107
107
|
}
|
|
108
108
|
static make(conf, makeNet, makeResolver, makeCryptor) {
|
|
109
|
-
const dirs = app_files_1.appDirs(conf.dataDir);
|
|
110
|
-
const logger = log_to_file_1.makeLogger(dirs.getUtilFS());
|
|
109
|
+
const dirs = (0, app_files_1.appDirs)(conf.dataDir);
|
|
110
|
+
const logger = (0, log_to_file_1.makeLogger)(dirs.getUtilFS());
|
|
111
111
|
const core = new Core(makeNet, makeResolver, makeCryptor, dirs, logger, conf.signUpUrl);
|
|
112
112
|
return core;
|
|
113
113
|
}
|
|
114
114
|
start() {
|
|
115
|
-
const signUp = new sign_up_1.SignUp(this.signUpUrl, this.cryptor.cryptor, this.makeNet, this.appDirs.getUsersOnDisk, this.logger.logError);
|
|
115
|
+
const signUp = new sign_up_1.SignUp(this.signUpUrl, this.cryptor.cryptor, () => this.makeNet(), this.appDirs.getUsersOnDisk, this.logger.logError);
|
|
116
116
|
const signIn = new sign_in_1.SignIn(this.cryptor.cryptor, this.initForExistingUserWithoutCache, this.initForExistingUserWithCache, this.appDirs.getUsersOnDisk, this.logger.logError);
|
|
117
117
|
const capsForStartup = {
|
|
118
118
|
signUp: signUp.exposedService(),
|
|
@@ -120,10 +120,10 @@ class Core {
|
|
|
120
120
|
};
|
|
121
121
|
Object.freeze(capsForStartup);
|
|
122
122
|
const initFromSignUp$ = signUp.newUser$
|
|
123
|
-
.pipe(operators_1.mergeMap(this.initForNewUser, 1));
|
|
123
|
+
.pipe((0, operators_1.mergeMap)(this.initForNewUser, 1));
|
|
124
124
|
const initFromSignIn$ = signIn.existingUser$;
|
|
125
|
-
const coreInit = rxjs_1.merge(initFromSignIn$, initFromSignUp$)
|
|
126
|
-
.pipe(operators_1.take(1), operators_1.mergeMap(idManager => this.initCore(idManager), 1))
|
|
125
|
+
const coreInit = (0, rxjs_1.merge)(initFromSignIn$, initFromSignUp$)
|
|
126
|
+
.pipe((0, operators_1.take)(1), (0, operators_1.mergeMap)(idManager => this.initCore(idManager), 1))
|
|
127
127
|
.toPromise();
|
|
128
128
|
return { coreInit, capsForStartup };
|
|
129
129
|
}
|
|
@@ -201,7 +201,7 @@ class Core {
|
|
|
201
201
|
return this.idManager.getId();
|
|
202
202
|
}
|
|
203
203
|
catch (err) {
|
|
204
|
-
throw error_1.errWithCause(err, 'Failed to initialize core');
|
|
204
|
+
throw (0, error_1.errWithCause)(err, 'Failed to initialize core');
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
207
|
getStorages() {
|
|
@@ -229,7 +229,7 @@ function makeStoragePolicy(appDomain, requestedCAPs) {
|
|
|
229
229
|
const okDomains = capReq.appFS
|
|
230
230
|
.filter(fsInfo => (fsInfo.domain === appDomain) ||
|
|
231
231
|
fsInfo.domain.endsWith('.' + appDomain))
|
|
232
|
-
.map(fsInfo => json_utils_1.copy(fsInfo));
|
|
232
|
+
.map(fsInfo => (0, json_utils_1.copy)(fsInfo));
|
|
233
233
|
policy = {
|
|
234
234
|
canOpenAppFS: severalDomainsAppFSChecker(okDomains)
|
|
235
235
|
};
|
|
@@ -259,7 +259,7 @@ function makeStoragePolicy(appDomain, requestedCAPs) {
|
|
|
259
259
|
}
|
|
260
260
|
const noFS = () => false;
|
|
261
261
|
function singleDomainAppFSChecker(appFS) {
|
|
262
|
-
const revDomain = storage_1.reverseDomain(appFS.domain);
|
|
262
|
+
const revDomain = (0, storage_1.reverseDomain)(appFS.domain);
|
|
263
263
|
const allowedType = appFS.storage;
|
|
264
264
|
return (appFolder, type) => {
|
|
265
265
|
return (appFSTypeAllowed(allowedType, type) && (appFolder === revDomain));
|
|
@@ -286,7 +286,7 @@ function appFSTypeAllowed(allowed, type) {
|
|
|
286
286
|
}
|
|
287
287
|
function severalDomainsAppFSChecker(appFSs) {
|
|
288
288
|
const settings = appFSs.map(s => ({
|
|
289
|
-
revDomain: storage_1.reverseDomain(s.domain),
|
|
289
|
+
revDomain: (0, storage_1.reverseDomain)(s.domain),
|
|
290
290
|
storage: s.storage
|
|
291
291
|
}));
|
|
292
292
|
return (appFolder, type) => !!settings.find(s => ((s.revDomain === appFolder) && appFSTypeAllowed(s.storage, type)));
|
package/build/core/sign-in.js
CHANGED
|
@@ -43,9 +43,9 @@ class SignIn {
|
|
|
43
43
|
}
|
|
44
44
|
try {
|
|
45
45
|
const midKeyProgressCB = makeKeyGenProgressCB(0, 50, progressCB);
|
|
46
|
-
const midKeyGen = async (params) => (await key_derivation_1.deriveMidKeyPair(this.cryptor, pass, params, midKeyProgressCB)).skey;
|
|
46
|
+
const midKeyGen = async (params) => (await (0, key_derivation_1.deriveMidKeyPair)(this.cryptor, pass, params, midKeyProgressCB)).skey;
|
|
47
47
|
const storeKeyProgressCB = makeKeyGenProgressCB(51, 100, progressCB);
|
|
48
|
-
const storeKeyGen = (params) => key_derivation_1.deriveStorageSKey(this.cryptor, pass, params, storeKeyProgressCB);
|
|
48
|
+
const storeKeyGen = (params) => (0, key_derivation_1.deriveStorageSKey)(this.cryptor, pass, params, storeKeyProgressCB);
|
|
49
49
|
const idManager = await this.completeInitWithoutCache(midKeyGen, storeKeyGen);
|
|
50
50
|
if (!idManager) {
|
|
51
51
|
return false;
|
|
@@ -62,7 +62,7 @@ class SignIn {
|
|
|
62
62
|
this.useExistingStorage = async (user, pass, progressCB) => {
|
|
63
63
|
try {
|
|
64
64
|
const storeKeyProgressCB = makeKeyGenProgressCB(0, 99, progressCB);
|
|
65
|
-
const storeKeyGen = params => key_derivation_1.deriveStorageSKey(this.cryptor, pass, params, storeKeyProgressCB);
|
|
65
|
+
const storeKeyGen = params => (0, key_derivation_1.deriveStorageSKey)(this.cryptor, pass, params, storeKeyProgressCB);
|
|
66
66
|
const res = await this.initWithCache(user, storeKeyGen);
|
|
67
67
|
if (!res) {
|
|
68
68
|
return false;
|
|
@@ -73,7 +73,7 @@ class SignIn {
|
|
|
73
73
|
}
|
|
74
74
|
progressCB(49);
|
|
75
75
|
const midKeyProgressCB = makeKeyGenProgressCB(50, 99, progressCB);
|
|
76
|
-
const midKeyGen = async (params) => (await key_derivation_1.deriveMidKeyPair(this.cryptor, pass, params, midKeyProgressCB)).skey;
|
|
76
|
+
const midKeyGen = async (params) => (await (0, key_derivation_1.deriveMidKeyPair)(this.cryptor, pass, params, midKeyProgressCB)).skey;
|
|
77
77
|
const idManager = await res(midKeyGen);
|
|
78
78
|
if (!idManager) {
|
|
79
79
|
return false;
|
|
@@ -98,7 +98,7 @@ class SignIn {
|
|
|
98
98
|
}
|
|
99
99
|
async logAndWrap(err, msg) {
|
|
100
100
|
await this.logError(err, msg);
|
|
101
|
-
return error_1.errWithCause(err, msg);
|
|
101
|
+
return (0, error_1.errWithCause)(err, msg);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
exports.SignIn = SignIn;
|
package/build/core/sign-up.js
CHANGED
|
@@ -42,13 +42,13 @@ const SALT_LEN = 32;
|
|
|
42
42
|
const KEY_ID_LEN = 10;
|
|
43
43
|
async function makeLabeledMidLoginKey(cryptor) {
|
|
44
44
|
const sk = await random.bytes(ecma_nacl_1.box.KEY_LENGTH);
|
|
45
|
-
const skey = jwkeys_1.keyToJson({
|
|
45
|
+
const skey = (0, jwkeys_1.keyToJson)({
|
|
46
46
|
k: sk,
|
|
47
47
|
alg: ecma_nacl_1.box.JWK_ALG_NAME,
|
|
48
48
|
use: jwkeys_1.use.MID_PKLOGIN,
|
|
49
49
|
kid: await random.stringOfB64Chars(KEY_ID_LEN)
|
|
50
50
|
});
|
|
51
|
-
const pkey = jwkeys_1.keyToJson({
|
|
51
|
+
const pkey = (0, jwkeys_1.keyToJson)({
|
|
52
52
|
k: await cryptor.box.generate_pubkey(sk),
|
|
53
53
|
alg: skey.alg,
|
|
54
54
|
use: skey.use,
|
|
@@ -66,7 +66,7 @@ class SignUp {
|
|
|
66
66
|
this.store = undefined;
|
|
67
67
|
this.netLazyInit = undefined;
|
|
68
68
|
this.getAvailableAddresses = async (name, signupToken) => {
|
|
69
|
-
const addresses = await _3nweb_signup_1.checkAvailableAddressesForName(this.net, this.serviceURL, name, signupToken);
|
|
69
|
+
const addresses = await (0, _3nweb_signup_1.checkAvailableAddressesForName)(this.net, this.serviceURL, name, signupToken);
|
|
70
70
|
return addresses;
|
|
71
71
|
};
|
|
72
72
|
this.createUserParams = async (pass, progressCB) => {
|
|
@@ -75,11 +75,11 @@ class SignUp {
|
|
|
75
75
|
};
|
|
76
76
|
this.addUser = async (address, signupToken) => {
|
|
77
77
|
for (const user of await this.getUsersOnDisk()) {
|
|
78
|
-
if (canonical_address_1.areAddressesEqual(address, user)) {
|
|
78
|
+
if ((0, canonical_address_1.areAddressesEqual)(address, user)) {
|
|
79
79
|
throw new Error(`Account ${user} already exists on a disk.`);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
const accountCreated = await _3nweb_signup_1.addUser(this.net, this.serviceURL, {
|
|
82
|
+
const accountCreated = await (0, _3nweb_signup_1.addUser)(this.net, this.serviceURL, {
|
|
83
83
|
userId: address,
|
|
84
84
|
mailerId: this.mid.params,
|
|
85
85
|
storage: this.store.params,
|
|
@@ -113,7 +113,7 @@ class SignUp {
|
|
|
113
113
|
return this.netLazyInit;
|
|
114
114
|
}
|
|
115
115
|
setServiceURL(serviceURL) {
|
|
116
|
-
const url = url_1.parse(serviceURL);
|
|
116
|
+
const url = (0, url_1.parse)(serviceURL);
|
|
117
117
|
if (url.protocol !== 'https:') {
|
|
118
118
|
throw new Error("Url protocol must be https.");
|
|
119
119
|
}
|
|
@@ -138,7 +138,7 @@ class SignUp {
|
|
|
138
138
|
p: defaultDerivParams.p,
|
|
139
139
|
salt: buffer_utils_1.base64.pack(await random.bytes(SALT_LEN))
|
|
140
140
|
};
|
|
141
|
-
const progressCB = sign_in_1.makeKeyGenProgressCB(progressStart, progressEnd, originalProgressCB);
|
|
141
|
+
const progressCB = (0, sign_in_1.makeKeyGenProgressCB)(progressStart, progressEnd, originalProgressCB);
|
|
142
142
|
const skey = await keyDeriv.deriveStorageSKey(this.cryptor, pass, derivParams, progressCB);
|
|
143
143
|
this.store = {
|
|
144
144
|
skey: skey,
|
|
@@ -154,7 +154,7 @@ class SignUp {
|
|
|
154
154
|
p: defaultDerivParams.p,
|
|
155
155
|
salt: buffer_utils_1.base64.pack(await random.bytes(SALT_LEN))
|
|
156
156
|
};
|
|
157
|
-
const progressCB = sign_in_1.makeKeyGenProgressCB(progressStart, progressEnd, originalProgressCB);
|
|
157
|
+
const progressCB = (0, sign_in_1.makeKeyGenProgressCB)(progressStart, progressEnd, originalProgressCB);
|
|
158
158
|
const defaultPair = await keyDeriv.deriveMidKeyPair(this.cryptor, pass, derivParams, progressCB, jwkeys_1.use.MID_PKLOGIN, '_');
|
|
159
159
|
const labeledKey = await makeLabeledMidLoginKey(this.cryptor);
|
|
160
160
|
this.mid = {
|
|
@@ -171,7 +171,7 @@ class SignUp {
|
|
|
171
171
|
}
|
|
172
172
|
async logAndWrap(err, msg) {
|
|
173
173
|
await this.logError(err, msg);
|
|
174
|
-
return error_1.errWithCause(err, msg);
|
|
174
|
+
return (0, error_1.errWithCause)(err, msg);
|
|
175
175
|
}
|
|
176
176
|
forgetKeys() {
|
|
177
177
|
this.store = undefined;
|
|
@@ -54,7 +54,7 @@ class JSONSavingProc {
|
|
|
54
54
|
this.jsonNeedsSaving = false;
|
|
55
55
|
const serialForm = this.getForSerialization();
|
|
56
56
|
if (serialForm === undefined) {
|
|
57
|
-
await async_fs_node_1.unlink(this.path)
|
|
57
|
+
await (0, async_fs_node_1.unlink)(this.path)
|
|
58
58
|
.catch((e) => {
|
|
59
59
|
if (!e.notFound) {
|
|
60
60
|
throw e;
|
|
@@ -63,7 +63,7 @@ class JSONSavingProc {
|
|
|
63
63
|
}
|
|
64
64
|
else {
|
|
65
65
|
const json = JSON.stringify(serialForm);
|
|
66
|
-
await async_fs_node_1.writeFile(this.path, json, { encoding: 'utf8' });
|
|
66
|
+
await (0, async_fs_node_1.writeFile)(this.path, json, { encoding: 'utf8' });
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
finally {
|
|
@@ -9,10 +9,10 @@ export interface VersionsInfo {
|
|
|
9
9
|
*/
|
|
10
10
|
archived?: number[];
|
|
11
11
|
/**
|
|
12
|
-
* This is a map from base version to diff-ed version
|
|
12
|
+
* This is a map from base version to diff-ed version, that uses base.
|
|
13
13
|
*/
|
|
14
14
|
baseToDiff: {
|
|
15
|
-
[baseVersion: number]: number
|
|
15
|
+
[baseVersion: number]: number;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* This is a map from diff version to base version.
|
|
@@ -27,7 +27,8 @@ export interface VersionsInfo {
|
|
|
27
27
|
* @param diffVer
|
|
28
28
|
* @param baseVer
|
|
29
29
|
*/
|
|
30
|
-
export declare function
|
|
30
|
+
export declare function addBaseToDiffLinkInVersInfo(versions: VersionsInfo, diffVer: number, baseVer: number): void;
|
|
31
|
+
export declare function isVersionIn(version: number, vers: VersionsInfo): boolean;
|
|
31
32
|
/**
|
|
32
33
|
* This function removes given version from versions info, if it is neither
|
|
33
34
|
* archived, nor is a base for another version. If given version is itself
|
|
@@ -37,8 +38,15 @@ export declare function addBaseToDiffLinkInStatus(versions: VersionsInfo, diffVe
|
|
|
37
38
|
* @param ver
|
|
38
39
|
*/
|
|
39
40
|
export declare function rmNonArchVersionsIn(versions: VersionsInfo, ver: number): void;
|
|
40
|
-
export declare function
|
|
41
|
+
export declare function rmArchVersionFrom(versions: VersionsInfo, ver: number): boolean;
|
|
41
42
|
export declare function setCurrentVersionIn(versions: VersionsInfo, version: number, baseVer: number | undefined): void;
|
|
42
43
|
export declare function rmCurrentVersionIn(versions: VersionsInfo): number | undefined;
|
|
44
|
+
export declare function rmVersionIn(version: number, vers: VersionsInfo): void;
|
|
43
45
|
export declare function nonGarbageVersionsIn(versions: VersionsInfo): Set<number>;
|
|
46
|
+
export interface NonGarbageVersions {
|
|
47
|
+
gcMaxVer?: number;
|
|
48
|
+
nonGarbage: Set<number>;
|
|
49
|
+
}
|
|
44
50
|
export declare function addWithBasesTo(nonGarbage: Set<number>, ver: number | undefined, versions: VersionsInfo): void;
|
|
51
|
+
export declare function addArchived(versions: VersionsInfo, version: number): boolean;
|
|
52
|
+
export declare function isEmptyVersions(versions: VersionsInfo): boolean;
|