core-3nweb-client-lib 0.25.6 → 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.
Files changed (215) hide show
  1. package/README.md +2 -2
  2. package/build/api-defs/asmail.d.ts +1 -1
  3. package/build/api-defs/files.d.ts +282 -70
  4. package/build/core/app-files.js +7 -7
  5. package/build/core/asmail/config/common.js +4 -4
  6. package/build/core/asmail/config/index.js +2 -2
  7. package/build/core/asmail/config/published-intro-key.js +1 -1
  8. package/build/core/asmail/delivery/common.js +7 -7
  9. package/build/core/asmail/delivery/index.js +7 -6
  10. package/build/core/asmail/delivery/msg.js +8 -7
  11. package/build/core/asmail/delivery/per-recipient-wip.js +3 -3
  12. package/build/core/asmail/inbox/attachments/fs.js +11 -1
  13. package/build/core/asmail/inbox/cached-msgs.js +3 -3
  14. package/build/core/asmail/inbox/inbox-events.js +5 -4
  15. package/build/core/asmail/inbox/index.js +12 -12
  16. package/build/core/asmail/inbox/msg-downloader.js +3 -3
  17. package/build/core/asmail/inbox/msg-indexing.js +4 -4
  18. package/build/core/asmail/inbox/msg-on-disk.js +7 -7
  19. package/build/core/asmail/index.d.ts +3 -3
  20. package/build/core/asmail/index.js +13 -8
  21. package/build/core/asmail/key-verification.js +5 -5
  22. package/build/core/asmail/keyring/common.js +7 -6
  23. package/build/core/asmail/keyring/correspondent-keys.js +8 -7
  24. package/build/core/asmail/keyring/id-to-email-map.js +2 -1
  25. package/build/core/asmail/keyring/index.d.ts +7 -8
  26. package/build/core/asmail/keyring/index.js +15 -14
  27. package/build/core/asmail/keyring/keyring-storage.js +4 -3
  28. package/build/core/asmail/msg/opener.js +3 -3
  29. package/build/core/asmail/msg/packer.js +13 -13
  30. package/build/core/asmail/sending-params/own-params.js +4 -4
  31. package/build/core/asmail/sending-params/params-from-others.js +3 -3
  32. package/build/core/id-manager.js +8 -5
  33. package/build/core/index.d.ts +2 -1
  34. package/build/core/index.js +14 -14
  35. package/build/core/sign-in.d.ts +5 -4
  36. package/build/core/sign-in.js +12 -14
  37. package/build/core/sign-up.d.ts +1 -0
  38. package/build/core/sign-up.js +15 -11
  39. package/build/core/storage/common/json-saving.d.ts +21 -0
  40. package/build/core/storage/common/json-saving.js +82 -0
  41. package/build/core/storage/common/obj-info-file.d.ts +51 -0
  42. package/build/core/storage/common/obj-info-file.js +153 -5
  43. package/build/core/storage/common/utils.d.ts +2 -0
  44. package/build/core/storage/common/utils.js +32 -0
  45. package/build/core/storage/index.d.ts +3 -17
  46. package/build/core/storage/index.js +57 -77
  47. package/build/core/storage/local/obj-files-gc.d.ts +2 -0
  48. package/build/core/storage/local/obj-files-gc.js +53 -39
  49. package/build/core/storage/local/obj-files.d.ts +6 -9
  50. package/build/core/storage/local/obj-files.js +16 -19
  51. package/build/core/storage/local/obj-status.d.ts +20 -30
  52. package/build/core/storage/local/obj-status.js +46 -113
  53. package/build/core/storage/local/storage.d.ts +15 -5
  54. package/build/core/storage/local/storage.js +37 -18
  55. package/build/core/storage/synced/downloader.js +7 -6
  56. package/build/core/storage/synced/obj-files-gc.d.ts +6 -1
  57. package/build/core/storage/synced/obj-files-gc.js +106 -13
  58. package/build/core/storage/synced/obj-files.d.ts +46 -47
  59. package/build/core/storage/synced/obj-files.js +207 -154
  60. package/build/core/storage/synced/obj-status.d.ts +103 -42
  61. package/build/core/storage/synced/obj-status.js +525 -137
  62. package/build/core/storage/synced/remote-events.d.ts +11 -12
  63. package/build/core/storage/synced/remote-events.js +80 -57
  64. package/build/core/storage/synced/storage.d.ts +24 -5
  65. package/build/core/storage/synced/storage.js +123 -38
  66. package/build/core/storage/synced/upload-header-file.d.ts +4 -0
  67. package/build/core/storage/synced/upload-header-file.js +64 -0
  68. package/build/core/storage/synced/upsyncer.d.ts +15 -9
  69. package/build/core/storage/synced/upsyncer.js +219 -246
  70. package/build/core/storage/system-folders/apps-data.d.ts +16 -0
  71. package/build/core/storage/system-folders/apps-data.js +110 -0
  72. package/build/core/storage/system-folders/index.d.ts +18 -0
  73. package/build/core/storage/system-folders/index.js +77 -0
  74. package/build/core-ipc/common-caps.js +3 -3
  75. package/build/core-ipc/generic.js +8 -8
  76. package/build/core-ipc/startup-caps.js +2 -2
  77. package/build/cryptors.js +6 -2
  78. package/build/ipc-via-protobuf/asmail-cap.js +67 -83
  79. package/build/ipc-via-protobuf/bytes.js +16 -17
  80. package/build/ipc-via-protobuf/connector-clients-side.d.ts +3 -0
  81. package/build/ipc-via-protobuf/connector-clients-side.js +62 -25
  82. package/build/ipc-via-protobuf/connector-services-side.js +10 -10
  83. package/build/ipc-via-protobuf/connector.js +4 -4
  84. package/build/ipc-via-protobuf/file.d.ts +48 -12
  85. package/build/ipc-via-protobuf/file.js +476 -120
  86. package/build/ipc-via-protobuf/fs.d.ts +8 -0
  87. package/build/ipc-via-protobuf/fs.js +592 -159
  88. package/build/ipc-via-protobuf/log-cap.js +2 -2
  89. package/build/ipc-via-protobuf/mailerid.js +3 -3
  90. package/build/ipc-via-protobuf/protobuf-msg.d.ts +1 -0
  91. package/build/ipc-via-protobuf/protobuf-msg.js +11 -7
  92. package/build/ipc-via-protobuf/startup-cap.js +23 -23
  93. package/build/ipc-via-protobuf/storage-cap.js +12 -12
  94. package/build/ipc.js +7 -2
  95. package/build/lib-client/3nstorage/exceptions.d.ts +12 -8
  96. package/build/lib-client/3nstorage/exceptions.js +31 -10
  97. package/build/lib-client/3nstorage/service.d.ts +16 -2
  98. package/build/lib-client/3nstorage/service.js +109 -39
  99. package/build/lib-client/3nstorage/util/file-based-json.d.ts +2 -1
  100. package/build/lib-client/3nstorage/util/file-based-json.js +1 -1
  101. package/build/lib-client/3nstorage/xsp-fs/attrs.js +17 -17
  102. package/build/lib-client/3nstorage/xsp-fs/common.d.ts +52 -14
  103. package/build/lib-client/3nstorage/xsp-fs/common.js +31 -16
  104. package/build/lib-client/3nstorage/xsp-fs/file-node.d.ts +1 -0
  105. package/build/lib-client/3nstorage/xsp-fs/file-node.js +18 -14
  106. package/build/lib-client/3nstorage/xsp-fs/file.d.ts +31 -6
  107. package/build/lib-client/3nstorage/xsp-fs/file.js +74 -23
  108. package/build/lib-client/3nstorage/xsp-fs/folder-node-serialization.js +4 -4
  109. package/build/lib-client/3nstorage/xsp-fs/folder-node.d.ts +24 -11
  110. package/build/lib-client/3nstorage/xsp-fs/folder-node.js +599 -189
  111. package/build/lib-client/3nstorage/xsp-fs/fs.d.ts +45 -9
  112. package/build/lib-client/3nstorage/xsp-fs/fs.js +326 -74
  113. package/build/lib-client/3nstorage/xsp-fs/link-node.d.ts +1 -0
  114. package/build/lib-client/3nstorage/xsp-fs/link-node.js +7 -2
  115. package/build/lib-client/3nstorage/xsp-fs/node-in-fs.d.ts +30 -20
  116. package/build/lib-client/3nstorage/xsp-fs/node-in-fs.js +239 -106
  117. package/build/lib-client/3nstorage/xsp-fs/node-persistence.d.ts +1 -1
  118. package/build/lib-client/3nstorage/xsp-fs/node-persistence.js +18 -19
  119. package/build/lib-client/3nstorage/xsp-fs/xsp-payload-v1.js +5 -5
  120. package/build/lib-client/3nstorage/xsp-fs/xsp-payload-v2.js +56 -56
  121. package/build/lib-client/3nweb-signup.js +4 -4
  122. package/build/lib-client/asmail/recipient.js +15 -15
  123. package/build/lib-client/asmail/sender.js +22 -22
  124. package/build/lib-client/asmail/service-config.js +3 -3
  125. package/build/lib-client/cryptor/cryptor-in-worker.js +19 -17
  126. package/build/lib-client/cryptor/cryptor-wasm.js +1 -1
  127. package/build/lib-client/cryptor/cryptor.js +4 -2
  128. package/build/lib-client/cryptor/cryptor.wasm +0 -0
  129. package/build/lib-client/cryptor/in-proc-js.js +1 -1
  130. package/build/lib-client/cryptor/in-proc-wasm.js +7 -7
  131. package/build/lib-client/cryptor/worker-js.js +2 -2
  132. package/build/lib-client/cryptor/worker-wasm.js +2 -2
  133. package/build/lib-client/files-select.js +1 -1
  134. package/build/lib-client/files.d.ts +1 -1
  135. package/build/lib-client/files.js +71 -4
  136. package/build/lib-client/fs-collection.js +3 -2
  137. package/build/lib-client/fs-sync-utils.d.ts +5 -0
  138. package/build/lib-client/fs-sync-utils.js +61 -0
  139. package/build/lib-client/fs-view.d.ts +14 -0
  140. package/build/lib-client/fs-view.js +33 -0
  141. package/build/lib-client/key-derivation.js +1 -1
  142. package/build/lib-client/local-files/dev-file-sink.js +9 -9
  143. package/build/lib-client/local-files/dev-file-src.js +2 -2
  144. package/build/lib-client/local-files/device-fs.d.ts +1 -1
  145. package/build/lib-client/local-files/device-fs.js +56 -54
  146. package/build/lib-client/logging/log-to-file.d.ts +1 -1
  147. package/build/lib-client/logging/log-to-file.js +11 -11
  148. package/build/lib-client/mailer-id/login.js +7 -7
  149. package/build/lib-client/mailer-id/provisioner.js +12 -12
  150. package/build/lib-client/objs-on-disk/file-writing-proc.js +5 -5
  151. package/build/lib-client/objs-on-disk/obj-folders.js +33 -33
  152. package/build/lib-client/objs-on-disk/obj-on-disk.d.ts +13 -2
  153. package/build/lib-client/objs-on-disk/obj-on-disk.js +24 -9
  154. package/build/lib-client/request-utils.d.ts +1 -0
  155. package/build/lib-client/request-utils.js +14 -14
  156. package/build/lib-client/server-events.d.ts +3 -3
  157. package/build/lib-client/server-events.js +12 -10
  158. package/build/lib-client/service-locator.js +10 -10
  159. package/build/lib-client/user-with-mid-session.js +7 -7
  160. package/build/lib-client/user-with-pkl-session.js +25 -25
  161. package/build/lib-client/ws-utils.js +3 -3
  162. package/build/lib-common/async-cryptor-wrap.js +4 -4
  163. package/build/lib-common/async-fs-node.d.ts +5 -3
  164. package/build/lib-common/async-fs-node.js +19 -18
  165. package/build/lib-common/byte-streaming/pipe.js +1 -1
  166. package/build/lib-common/byte-streaming/wrapping.js +17 -17
  167. package/build/lib-common/canonical-address.js +1 -1
  168. package/build/lib-common/exceptions/error.d.ts +1 -0
  169. package/build/lib-common/exceptions/error.js +7 -6
  170. package/build/lib-common/exceptions/file.js +10 -1
  171. package/build/lib-common/ipc/generic-ipc.js +2 -2
  172. package/build/lib-common/ipc/ws-ipc.js +2 -2
  173. package/build/lib-common/json-utils.js +2 -1
  174. package/build/lib-common/mid-sigs-NaCl-Ed.js +14 -14
  175. package/build/lib-common/objs-on-disk/file-layout.d.ts +19 -0
  176. package/build/lib-common/objs-on-disk/file-layout.js +130 -12
  177. package/build/lib-common/objs-on-disk/obj-file.d.ts +13 -2
  178. package/build/lib-common/objs-on-disk/obj-file.js +99 -37
  179. package/build/lib-common/objs-on-disk/utils.d.ts +1 -0
  180. package/build/lib-common/objs-on-disk/utils.js +4 -4
  181. package/build/lib-common/objs-on-disk/v1-obj-file-format.js +14 -14
  182. package/build/lib-common/processes/deferred.d.ts +6 -0
  183. package/build/lib-common/processes/deferred.js +30 -0
  184. package/build/lib-common/processes/labelled-exec-pools.d.ts +33 -0
  185. package/build/lib-common/processes/labelled-exec-pools.js +141 -0
  186. package/build/lib-common/processes/pressure.d.ts +7 -0
  187. package/build/lib-common/processes/pressure.js +56 -0
  188. package/build/lib-common/processes/sleep.d.ts +1 -0
  189. package/build/lib-common/processes/sleep.js +26 -0
  190. package/build/lib-common/{processes.d.ts → processes/synced.d.ts} +0 -40
  191. package/build/lib-common/{processes.js → processes/synced.js} +187 -204
  192. package/build/lib-common/processes/timeout.d.ts +1 -0
  193. package/build/lib-common/processes/timeout.js +51 -0
  194. package/build/lib-common/random-node.js +7 -7
  195. package/build/lib-common/service-api/3nstorage/owner.d.ts +100 -39
  196. package/build/lib-common/service-api/3nstorage/owner.js +85 -42
  197. package/build/lib-common/service-api/asmail/delivery.js +2 -2
  198. package/build/lib-common/service-api/asmail/retrieval.js +1 -1
  199. package/build/lib-common/timed-cache.d.ts +1 -0
  200. package/build/lib-common/timed-non-weak-cache.d.ts +1 -0
  201. package/build/lib-common/timed-non-weak-cache.js +11 -0
  202. package/build/lib-common/utils-for-observables.d.ts +15 -1
  203. package/build/lib-common/utils-for-observables.js +70 -19
  204. package/build/lib-common/weak-cache.d.ts +1 -0
  205. package/build/lib-common/weak-cache.js +12 -1
  206. package/build/lib-index.d.ts +2 -1
  207. package/build/lib-index.js +10 -7
  208. package/build/protos/asmail.proto.js +12912 -7127
  209. package/build/protos/file.proto.js +4848 -2399
  210. package/build/protos/fs.proto.js +9230 -3445
  211. package/package.json +8 -7
  212. package/protos/file.proto +91 -11
  213. package/protos/fs.proto +107 -8
  214. package/build/core/storage/synced/upsync-status.d.ts +0 -41
  215. package/build/core/storage/synced/upsync-status.js +0 -158
@@ -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.msgKeyPackSizeFor = exports.extractKeyBytes = exports.extractPKeyBytes = exports.extractSKeyBytes = exports.generateSymmetricKey = exports.generateKeyPair = exports.KEY_USE = exports.PID_LENGTH = exports.KID_LENGTH = void 0;
19
20
  /**
@@ -21,7 +22,7 @@ exports.msgKeyPackSizeFor = exports.extractKeyBytes = exports.extractPKeyBytes =
21
22
  */
22
23
  const ecma_nacl_1 = require("ecma-nacl");
23
24
  const buffer_utils_1 = require("../../../lib-common/buffer-utils");
24
- const random = require("../../../lib-common/random-node");
25
+ const random_node_1 = require("../../../lib-common/random-node");
25
26
  exports.KID_LENGTH = 16;
26
27
  exports.PID_LENGTH = 2;
27
28
  exports.KEY_USE = {
@@ -37,9 +38,9 @@ Object.freeze(exports.KEY_USE);
37
38
  * Key ids are the same in this intimate pair.
38
39
  */
39
40
  async function generateKeyPair() {
40
- const skeyBytes = await random.bytes(ecma_nacl_1.box.KEY_LENGTH);
41
+ const skeyBytes = await (0, random_node_1.bytes)(ecma_nacl_1.box.KEY_LENGTH);
41
42
  const pkeyBytes = ecma_nacl_1.box.generate_pubkey(skeyBytes);
42
- const kid = await random.stringOfB64Chars(exports.KID_LENGTH);
43
+ const kid = await (0, random_node_1.stringOfB64Chars)(exports.KID_LENGTH);
43
44
  const skey = {
44
45
  use: exports.KEY_USE.SECRET,
45
46
  alg: ecma_nacl_1.box.JWK_ALG_NAME,
@@ -66,9 +67,9 @@ exports.generateKeyPair = generateKeyPair;
66
67
  async function generateSymmetricKey() {
67
68
  return {
68
69
  use: exports.KEY_USE.SYMMETRIC,
69
- k: buffer_utils_1.base64.pack(await random.bytes(ecma_nacl_1.secret_box.KEY_LENGTH)),
70
+ k: buffer_utils_1.base64.pack(await (0, random_node_1.bytes)(ecma_nacl_1.secret_box.KEY_LENGTH)),
70
71
  alg: ecma_nacl_1.secret_box.JWK_ALG_NAME,
71
- kid: await random.stringOfB64Chars(exports.KID_LENGTH)
72
+ kid: await (0, random_node_1.stringOfB64Chars)(exports.KID_LENGTH)
72
73
  };
73
74
  }
74
75
  exports.generateSymmetricKey = generateSymmetricKey;
@@ -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.CorrespondentKeys = exports.msgMasterDecryptor = void 0;
19
20
  /**
@@ -34,15 +35,15 @@ function generatePids() {
34
35
  }
35
36
  function msgMasterDecryptor(cryptor, skey, pkey) {
36
37
  const msgMasterKey = calcMsgMasterKey(skey, pkey);
37
- const masterDecr = async_cryptor_wrap_1.makeDecryptor(cryptor, msgMasterKey);
38
+ const masterDecr = (0, async_cryptor_wrap_1.makeDecryptor)(cryptor, msgMasterKey);
38
39
  msgMasterKey.fill(0);
39
40
  return masterDecr;
40
41
  }
41
42
  exports.msgMasterDecryptor = msgMasterDecryptor;
42
43
  function calcMsgMasterKey(skey, pkey) {
43
44
  if (skey.alg === ecma_nacl_1.box.JWK_ALG_NAME) {
44
- const sk = common_1.extractSKeyBytes(skey);
45
- const pk = common_1.extractKeyBytes(pkey);
45
+ const sk = (0, common_1.extractSKeyBytes)(skey);
46
+ const pk = (0, common_1.extractKeyBytes)(pkey);
46
47
  const dhShared = ecma_nacl_1.box.calc_dhshared_key(pk, sk);
47
48
  sk.fill(0);
48
49
  pk.fill(0);
@@ -126,7 +127,7 @@ class CorrespondentKeys {
126
127
  // generate new suggested pair
127
128
  const corrPKey = this.keys.sendingPair.recipientPKey;
128
129
  const isSenderIntroKey = (this.keys.sendingPair.type === 'intro');
129
- const recipientKey = await common_1.generateKeyPair();
130
+ const recipientKey = await (0, common_1.generateKeyPair)();
130
131
  const msgMasterKey = calcMsgMasterKeyB64(recipientKey.skey, corrPKey);
131
132
  const pair = {
132
133
  pids: generatePids(),
@@ -249,7 +250,7 @@ class CorrespondentKeys {
249
250
  };
250
251
  }
251
252
  catch (err) {
252
- throw error_1.errWithCause(err, "Public key in a given pair cannot be used");
253
+ throw (0, error_1.errWithCause)(err, "Public key in a given pair cannot be used");
253
254
  }
254
255
  }
255
256
  /**
@@ -294,7 +295,7 @@ class CorrespondentKeys {
294
295
  let msgMasterKey;
295
296
  let msgCount;
296
297
  if (p.type === 'intro') {
297
- const senderKey = await common_1.generateKeyPair();
298
+ const senderKey = await (0, common_1.generateKeyPair)();
298
299
  msgMasterKey = calcMsgMasterKey(senderKey.skey, p.recipientPKey);
299
300
  currentPair = {
300
301
  senderPKey: senderKey.pkey,
@@ -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.IdToEmailMap = void 0;
19
20
  /**
@@ -1,4 +1,3 @@
1
- import { CorrespondentKeys } from './correspondent-keys';
2
1
  import { IdToEmailMap } from './id-to-email-map';
3
2
  import { MsgKeyRole } from './common';
4
3
  import { AsyncSBoxCryptor } from 'xsp-files';
@@ -27,13 +26,13 @@ declare type WritableFS = web3n.files.WritableFS;
27
26
  declare type SendingResources = ResourcesForSending['correspondents'];
28
27
  declare type ReceptionResources = ResourcesForReceiving['correspondents'];
29
28
  export declare class KeyRing {
30
- private cryptor;
31
- private publishedKeys;
29
+ private readonly cryptor;
30
+ private readonly publishedKeys;
32
31
  /**
33
32
  * This is a map from correspondents' canonical addresses to key objects.
34
33
  */
35
- corrKeys: Map<string, CorrespondentKeys>;
36
- pairIdToEmailMap: IdToEmailMap;
34
+ private readonly corrKeys;
35
+ readonly pairIdToEmailMap: IdToEmailMap;
37
36
  private storage;
38
37
  constructor(cryptor: AsyncSBoxCryptor, publishedKeys: ConfigOfASMailServer['publishedKeys']);
39
38
  private addCorrespondent;
@@ -41,8 +40,8 @@ export declare class KeyRing {
41
40
  static makeAndStart(cryptor: AsyncSBoxCryptor, fs: WritableFS, publishedKeys: ConfigOfASMailServer['publishedKeys']): Promise<KeyRing>;
42
41
  saveChanges(): void;
43
42
  needIntroKeyFor: SendingResources['needIntroKeyFor'];
44
- generateKeysToSend: SendingResources['generateKeysToSend'];
45
- nextCrypto: SendingResources['nextCrypto'];
43
+ readonly generateKeysToSend: SendingResources['generateKeysToSend'];
44
+ readonly nextCrypto: SendingResources['nextCrypto'];
46
45
  private decryptMsgKeyWithIntroPair;
47
46
  private findEstablishedReceptionPairs;
48
47
  private decryptMsgKeyWithEstablishedPair;
@@ -55,6 +54,6 @@ export declare class KeyRing {
55
54
  */
56
55
  private updateReceivedMsgCountIn;
57
56
  private absorbSuggestedNextKeyPair;
58
- decrypt: ReceptionResources['msgDecryptor'];
57
+ readonly decrypt: ReceptionResources['msgDecryptor'];
59
58
  close(): Promise<void>;
60
59
  }
@@ -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,13 +13,14 @@
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
- const processes_1 = require("../../../lib-common/processes");
20
+ const synced_1 = require("../../../lib-common/processes/synced");
20
21
  const KEYRING_FNAME = 'keyring.json';
21
22
  function makeKeyringStorage(fs) {
22
- const proc = new processes_1.SingleProc();
23
+ const proc = new synced_1.SingleProc();
23
24
  // initialization for code that works only with version 1
24
25
  proc.start(async () => {
25
26
  fs = await checkAndUpgradeDataToV1(fs);
@@ -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,
@@ -17,7 +17,7 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.OwnSendingParams = void 0;
19
19
  const file_based_json_1 = require("../../../lib-client/3nstorage/util/file-based-json");
20
- const processes_1 = require("../../../lib-common/processes");
20
+ const synced_1 = require("../../../lib-common/processes/synced");
21
21
  const json_utils_1 = require("../../../lib-common/json-utils");
22
22
  const DEFAULT_INVITE_LABEL = 'Default';
23
23
  const DEFAULT_INVITE_MAX_MSG_SIZE = 1024 * 1024 * 1024;
@@ -33,7 +33,7 @@ class OwnSendingParams extends file_based_json_1.JsonFileProc {
33
33
  this.anonInvites = anonInvites;
34
34
  this.params = new Map();
35
35
  this.defaultParams = undefined;
36
- this.changesProc = new processes_1.SingleProc();
36
+ this.changesProc = new synced_1.SingleProc();
37
37
  this.getFor = async (address) => {
38
38
  let p = this.params.get(address);
39
39
  if (p) {
@@ -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 (!ev.isRemote) {
119
+ if (ev.src === 'local') {
120
120
  return;
121
121
  }
122
122
  if (ev.type === 'removed') {
@@ -17,12 +17,12 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.ParamsFromOthers = void 0;
19
19
  const file_based_json_1 = require("../../../lib-client/3nstorage/util/file-based-json");
20
- const processes_1 = require("../../../lib-common/processes");
20
+ const synced_1 = require("../../../lib-common/processes/synced");
21
21
  class ParamsFromOthers extends file_based_json_1.JsonFileProc {
22
22
  constructor() {
23
23
  super();
24
24
  this.params = new Map();
25
- this.changesProc = new processes_1.SingleProc();
25
+ this.changesProc = new synced_1.SingleProc();
26
26
  this.getFor = (address) => {
27
27
  const p = this.params.get(address);
28
28
  if (!p) {
@@ -55,7 +55,7 @@ class ParamsFromOthers extends file_based_json_1.JsonFileProc {
55
55
  json.forEach(p => this.params.set(p.address, p));
56
56
  }
57
57
  async onFileEvent(ev) {
58
- if (!ev.isRemote) {
58
+ if (ev.src === 'local') {
59
59
  return;
60
60
  }
61
61
  if (ev.type === 'removed') {
@@ -20,7 +20,7 @@ exports.IdManager = void 0;
20
20
  const ecma_nacl_1 = require("ecma-nacl");
21
21
  const provisioner_1 = require("../lib-client/mailer-id/provisioner");
22
22
  const jwkeys_1 = require("../lib-common/jwkeys");
23
- const processes_1 = require("../lib-common/processes");
23
+ const synced_1 = require("../lib-common/processes/synced");
24
24
  const login_1 = require("../lib-client/mailer-id/login");
25
25
  const CERTIFICATE_DURATION_SECONDS = 16 * 60 * 60;
26
26
  const ASSERTION_VALIDITY = 15 * 60;
@@ -36,7 +36,7 @@ class IdManager {
36
36
  this.signer = undefined;
37
37
  this.localFS = undefined;
38
38
  this.syncedFS = undefined;
39
- this.provisioningProc = new processes_1.SingleProc();
39
+ this.provisioningProc = new synced_1.SingleProc();
40
40
  this.getSigner = async () => {
41
41
  if (!this.address) {
42
42
  throw new Error('Address is not set in id manager');
@@ -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);
@@ -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: () => NetClient, makeResolver: ServiceLocatorMaker, makeCryptor: makeCryptor): Core;
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>;
@@ -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)));
@@ -20,10 +20,11 @@ export declare class SignIn {
20
20
  exposedService(): SignInService;
21
21
  private startLoginToRemoteStorage;
22
22
  private completeLoginAndLocalSetup;
23
- private doneBroadcast;
24
- existingUser$: import("rxjs").Observable<IdManager>;
23
+ private readonly doneBroadcast;
24
+ readonly existingUser$: import("rxjs").Observable<IdManager>;
25
25
  private useExistingStorage;
26
- private log;
26
+ private logAndWrap;
27
27
  }
28
- export declare function makeKeyGenProgressCB(progressStart: number, progressEnd: number, progressCB: (progress: number) => void): (p: number) => void;
28
+ export declare type ProgressCB = (p: number) => void;
29
+ export declare function makeKeyGenProgressCB(progressStart: number, progressEnd: number, progressCB: ProgressCB): ProgressCB;
29
30
  export {};