@vrtmrz/livesync-commonlib 0.1.0-rc.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 (516) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/dist/API/DirectFileManipulator.d.ts +2 -0
  4. package/dist/API/DirectFileManipulator.js +4 -0
  5. package/dist/API/DirectFileManipulatorV2.d.ts +150 -0
  6. package/dist/API/DirectFileManipulatorV2.js +424 -0
  7. package/dist/API/processSetting.d.ts +41 -0
  8. package/dist/API/processSetting.js +140 -0
  9. package/dist/ContentSplitter/ContentSplitter.d.ts +28 -0
  10. package/dist/ContentSplitter/ContentSplitter.js +5 -0
  11. package/dist/ContentSplitter/ContentSplitterBase.d.ts +51 -0
  12. package/dist/ContentSplitter/ContentSplitterBase.js +83 -0
  13. package/dist/ContentSplitter/ContentSplitterRabinKarp.d.ts +9 -0
  14. package/dist/ContentSplitter/ContentSplitterRabinKarp.js +32 -0
  15. package/dist/ContentSplitter/ContentSplitterV1.d.ts +9 -0
  16. package/dist/ContentSplitter/ContentSplitterV1.js +34 -0
  17. package/dist/ContentSplitter/ContentSplitterV2.d.ts +9 -0
  18. package/dist/ContentSplitter/ContentSplitterV2.js +34 -0
  19. package/dist/ContentSplitter/ContentSplitters.d.ts +12 -0
  20. package/dist/ContentSplitter/ContentSplitters.js +29 -0
  21. package/dist/bureau/bureau.d.ts +7 -0
  22. package/dist/bureau/bureau.js +5 -0
  23. package/dist/common/ConnectionString.d.ts +30 -0
  24. package/dist/common/ConnectionString.js +179 -0
  25. package/dist/common/LSError.d.ts +48 -0
  26. package/dist/common/LSError.js +112 -0
  27. package/dist/common/configForDoc.d.ts +79 -0
  28. package/dist/common/configForDoc.js +312 -0
  29. package/dist/common/coreEnvFunctions.d.ts +21 -0
  30. package/dist/common/coreEnvFunctions.js +22 -0
  31. package/dist/common/coreEnvVars.d.ts +3 -0
  32. package/dist/common/coreEnvVars.js +6 -0
  33. package/dist/common/i18n.d.ts +18 -0
  34. package/dist/common/i18n.js +7193 -0
  35. package/dist/common/logger.d.ts +2 -0
  36. package/dist/common/logger.js +1 -0
  37. package/dist/common/messages/combinedMessages.dev.d.ts +7 -0
  38. package/dist/common/messages/combinedMessages.dev.js +44 -0
  39. package/dist/common/messages/combinedMessages.prod.d.ts +9264 -0
  40. package/dist/common/messages/combinedMessages.prod.js +9271 -0
  41. package/dist/common/messages/de.d.ts +297 -0
  42. package/dist/common/messages/de.js +7 -0
  43. package/dist/common/messages/def.d.ts +1119 -0
  44. package/dist/common/messages/def.js +7 -0
  45. package/dist/common/messages/es.d.ts +689 -0
  46. package/dist/common/messages/es.js +7 -0
  47. package/dist/common/messages/fr.d.ts +582 -0
  48. package/dist/common/messages/fr.js +7 -0
  49. package/dist/common/messages/he.d.ts +583 -0
  50. package/dist/common/messages/he.js +7 -0
  51. package/dist/common/messages/ja.d.ts +838 -0
  52. package/dist/common/messages/ja.js +7 -0
  53. package/dist/common/messages/ko.d.ts +800 -0
  54. package/dist/common/messages/ko.js +7 -0
  55. package/dist/common/messages/ru.d.ts +858 -0
  56. package/dist/common/messages/ru.js +7 -0
  57. package/dist/common/messages/zh-tw.d.ts +384 -0
  58. package/dist/common/messages/zh-tw.js +7 -0
  59. package/dist/common/messages/zh.d.ts +1093 -0
  60. package/dist/common/messages/zh.js +7 -0
  61. package/dist/common/messagesJson/de.json +295 -0
  62. package/dist/common/messagesJson/en.json +1117 -0
  63. package/dist/common/messagesJson/es.json +687 -0
  64. package/dist/common/messagesJson/fr.json +580 -0
  65. package/dist/common/messagesJson/he.json +581 -0
  66. package/dist/common/messagesJson/ja.json +836 -0
  67. package/dist/common/messagesJson/ko.json +798 -0
  68. package/dist/common/messagesJson/ru.json +856 -0
  69. package/dist/common/messagesJson/zh-tw.json +382 -0
  70. package/dist/common/messagesJson/zh.json +1091 -0
  71. package/dist/common/models/auth.type.d.ts +41 -0
  72. package/dist/common/models/auth.type.js +0 -0
  73. package/dist/common/models/db.const.d.ts +20 -0
  74. package/dist/common/models/db.const.js +28 -0
  75. package/dist/common/models/db.definition.d.ts +56 -0
  76. package/dist/common/models/db.definition.js +6 -0
  77. package/dist/common/models/db.type.d.ts +142 -0
  78. package/dist/common/models/db.type.js +0 -0
  79. package/dist/common/models/diff.definition.d.ts +16 -0
  80. package/dist/common/models/diff.definition.js +0 -0
  81. package/dist/common/models/fileaccess.const.d.ts +7 -0
  82. package/dist/common/models/fileaccess.const.js +16 -0
  83. package/dist/common/models/fileaccess.type.d.ts +72 -0
  84. package/dist/common/models/fileaccess.type.js +0 -0
  85. package/dist/common/models/redflag.const.d.ts +32 -0
  86. package/dist/common/models/redflag.const.js +27 -0
  87. package/dist/common/models/setting.const.d.ts +49 -0
  88. package/dist/common/models/setting.const.defaults.d.ts +3 -0
  89. package/dist/common/models/setting.const.defaults.js +185 -0
  90. package/dist/common/models/setting.const.js +68 -0
  91. package/dist/common/models/setting.const.preferred.d.ts +5 -0
  92. package/dist/common/models/setting.const.preferred.js +35 -0
  93. package/dist/common/models/setting.const.qr.d.ts +2 -0
  94. package/dist/common/models/setting.const.qr.js +174 -0
  95. package/dist/common/models/setting.type.d.ts +900 -0
  96. package/dist/common/models/setting.type.js +8 -0
  97. package/dist/common/models/shared.const.behabiour.d.ts +28 -0
  98. package/dist/common/models/shared.const.behabiour.js +36 -0
  99. package/dist/common/models/shared.const.d.ts +5 -0
  100. package/dist/common/models/shared.const.js +12 -0
  101. package/dist/common/models/shared.const.symbols.d.ts +9 -0
  102. package/dist/common/models/shared.const.symbols.js +20 -0
  103. package/dist/common/models/shared.definition.configNames.d.ts +36 -0
  104. package/dist/common/models/shared.definition.configNames.js +203 -0
  105. package/dist/common/models/shared.definition.d.ts +22 -0
  106. package/dist/common/models/shared.definition.js +24 -0
  107. package/dist/common/models/shared.type.util.d.ts +8 -0
  108. package/dist/common/models/shared.type.util.js +0 -0
  109. package/dist/common/models/sync.definition.d.ts +18 -0
  110. package/dist/common/models/sync.definition.js +20 -0
  111. package/dist/common/models/tweak.definition.d.ts +191 -0
  112. package/dist/common/models/tweak.definition.js +77 -0
  113. package/dist/common/rosetta.d.ts +42 -0
  114. package/dist/common/rosetta.js +57 -0
  115. package/dist/common/settingConstants.d.ts +216 -0
  116. package/dist/common/settingConstants.js +434 -0
  117. package/dist/common/typeUtils.d.ts +17 -0
  118. package/dist/common/typeUtils.js +51 -0
  119. package/dist/common/types.d.ts +107 -0
  120. package/dist/common/types.js +212 -0
  121. package/dist/common/utils.d.ts +129 -0
  122. package/dist/common/utils.doc.d.ts +11 -0
  123. package/dist/common/utils.doc.js +35 -0
  124. package/dist/common/utils.js +583 -0
  125. package/dist/common/utils.object.d.ts +2 -0
  126. package/dist/common/utils.object.js +14 -0
  127. package/dist/common/utils.patch.d.ts +8 -0
  128. package/dist/common/utils.patch.js +178 -0
  129. package/dist/common/utils.type.d.ts +1 -0
  130. package/dist/common/utils.type.js +0 -0
  131. package/dist/context.d.ts +8 -0
  132. package/dist/context.js +14 -0
  133. package/dist/databases/IndexedDBKeyValueDatabase.d.ts +26 -0
  134. package/dist/databases/IndexedDBKeyValueDatabase.js +130 -0
  135. package/dist/dataobject/StoredMap.d.ts +12 -0
  136. package/dist/dataobject/StoredMap.js +47 -0
  137. package/dist/dev/checks.d.ts +5 -0
  138. package/dist/dev/checks.js +38 -0
  139. package/dist/encryption/encryptHKDF.d.ts +3 -0
  140. package/dist/encryption/encryptHKDF.js +7 -0
  141. package/dist/encryption/stringEncryption.d.ts +27 -0
  142. package/dist/encryption/stringEncryption.js +59 -0
  143. package/dist/events/coreEvents.d.ts +54 -0
  144. package/dist/events/coreEvents.js +46 -0
  145. package/dist/hub/hub.d.ts +11 -0
  146. package/dist/hub/hub.js +7 -0
  147. package/dist/index.d.ts +1 -0
  148. package/dist/index.js +4 -0
  149. package/dist/interfaces/AsyncActivityRunner.d.ts +18 -0
  150. package/dist/interfaces/AsyncActivityRunner.js +7 -0
  151. package/dist/interfaces/Confirm.d.ts +17 -0
  152. package/dist/interfaces/Confirm.js +0 -0
  153. package/dist/interfaces/DatabaseFileAccess.d.ts +14 -0
  154. package/dist/interfaces/DatabaseFileAccess.js +0 -0
  155. package/dist/interfaces/DatabaseRebuilder.d.ts +13 -0
  156. package/dist/interfaces/DatabaseRebuilder.js +0 -0
  157. package/dist/interfaces/FileHandler.d.ts +13 -0
  158. package/dist/interfaces/FileHandler.js +0 -0
  159. package/dist/interfaces/KeyValueDatabase.d.ts +11 -0
  160. package/dist/interfaces/KeyValueDatabase.js +0 -0
  161. package/dist/interfaces/ServiceModule.d.ts +59 -0
  162. package/dist/interfaces/ServiceModule.js +19 -0
  163. package/dist/interfaces/StorageAccess.d.ts +44 -0
  164. package/dist/interfaces/StorageAccess.js +0 -0
  165. package/dist/interfaces/StorageEventManager.d.ts +16 -0
  166. package/dist/interfaces/StorageEventManager.js +5 -0
  167. package/dist/managers/ChangeManager.d.ts +61 -0
  168. package/dist/managers/ChangeManager.js +104 -0
  169. package/dist/managers/ChunkDeliveryCoordinator.d.ts +51 -0
  170. package/dist/managers/ChunkDeliveryCoordinator.js +136 -0
  171. package/dist/managers/ChunkFetcher.d.ts +44 -0
  172. package/dist/managers/ChunkFetcher.js +251 -0
  173. package/dist/managers/ChunkManager.d.ts +2 -0
  174. package/dist/managers/ChunkManager.js +4 -0
  175. package/dist/managers/ConflictManager.d.ts +37 -0
  176. package/dist/managers/ConflictManager.js +322 -0
  177. package/dist/managers/EntryManager/EntryManager.d.ts +37 -0
  178. package/dist/managers/EntryManager/EntryManager.js +73 -0
  179. package/dist/managers/EntryManager/EntryManagerImpls.d.ts +74 -0
  180. package/dist/managers/EntryManager/EntryManagerImpls.js +499 -0
  181. package/dist/managers/HashManager/HashManager.d.ts +60 -0
  182. package/dist/managers/HashManager/HashManager.js +97 -0
  183. package/dist/managers/HashManager/HashManagerCore.d.ts +114 -0
  184. package/dist/managers/HashManager/HashManagerCore.js +99 -0
  185. package/dist/managers/HashManager/PureJSHashManager.d.ts +77 -0
  186. package/dist/managers/HashManager/PureJSHashManager.js +84 -0
  187. package/dist/managers/HashManager/XXHashHashManager.d.ts +96 -0
  188. package/dist/managers/HashManager/XXHashHashManager.js +111 -0
  189. package/dist/managers/LayeredChunkManager/ArrivalWaitLayer.d.ts +30 -0
  190. package/dist/managers/LayeredChunkManager/ArrivalWaitLayer.js +115 -0
  191. package/dist/managers/LayeredChunkManager/CacheLayer.d.ts +59 -0
  192. package/dist/managers/LayeredChunkManager/CacheLayer.js +161 -0
  193. package/dist/managers/LayeredChunkManager/ChunkLayerInterfaces.d.ts +37 -0
  194. package/dist/managers/LayeredChunkManager/ChunkLayerInterfaces.js +0 -0
  195. package/dist/managers/LayeredChunkManager/DatabaseReadLayer.d.ts +14 -0
  196. package/dist/managers/LayeredChunkManager/DatabaseReadLayer.js +78 -0
  197. package/dist/managers/LayeredChunkManager/DatabaseWriteLayer.d.ts +11 -0
  198. package/dist/managers/LayeredChunkManager/DatabaseWriteLayer.js +43 -0
  199. package/dist/managers/LayeredChunkManager/HotPackLayer.d.ts +9 -0
  200. package/dist/managers/LayeredChunkManager/HotPackLayer.js +8 -0
  201. package/dist/managers/LayeredChunkManager/types.d.ts +39 -0
  202. package/dist/managers/LayeredChunkManager/types.js +0 -0
  203. package/dist/managers/LayeredChunkManager.d.ts +53 -0
  204. package/dist/managers/LayeredChunkManager.js +240 -0
  205. package/dist/managers/LiveSyncManagers.d.ts +48 -0
  206. package/dist/managers/LiveSyncManagers.js +136 -0
  207. package/dist/managers/StorageEventManager.d.ts +135 -0
  208. package/dist/managers/StorageEventManager.js +564 -0
  209. package/dist/managers/StorageProcessingManager.d.ts +14 -0
  210. package/dist/managers/StorageProcessingManager.js +48 -0
  211. package/dist/managers/adapters/IStorageEventConverterAdapter.d.ts +16 -0
  212. package/dist/managers/adapters/IStorageEventConverterAdapter.js +0 -0
  213. package/dist/managers/adapters/IStorageEventManagerAdapter.d.ts +18 -0
  214. package/dist/managers/adapters/IStorageEventManagerAdapter.js +0 -0
  215. package/dist/managers/adapters/IStorageEventPersistenceAdapter.d.ts +15 -0
  216. package/dist/managers/adapters/IStorageEventPersistenceAdapter.js +0 -0
  217. package/dist/managers/adapters/IStorageEventStatusAdapter.d.ts +13 -0
  218. package/dist/managers/adapters/IStorageEventStatusAdapter.js +0 -0
  219. package/dist/managers/adapters/IStorageEventTypeGuardAdapter.d.ts +16 -0
  220. package/dist/managers/adapters/IStorageEventTypeGuardAdapter.js +0 -0
  221. package/dist/managers/adapters/IStorageEventWatchAdapter.d.ts +21 -0
  222. package/dist/managers/adapters/IStorageEventWatchAdapter.js +0 -0
  223. package/dist/managers/adapters/index.d.ts +6 -0
  224. package/dist/managers/adapters/index.js +0 -0
  225. package/dist/mock_and_interop/stores.d.ts +21 -0
  226. package/dist/mock_and_interop/stores.js +15 -0
  227. package/dist/mock_and_interop/wrapper.d.ts +7 -0
  228. package/dist/mock_and_interop/wrapper.js +37 -0
  229. package/dist/mods.d.ts +1 -0
  230. package/dist/mods.js +18 -0
  231. package/dist/platform/browser/index.d.ts +1 -0
  232. package/dist/platform/browser/index.js +10 -0
  233. package/dist/platform/browser/storage.d.ts +35 -0
  234. package/dist/platform/browser/storage.js +139 -0
  235. package/dist/platform/node/index.d.ts +23 -0
  236. package/dist/platform/node/index.js +33 -0
  237. package/dist/platform/node/storage.d.ts +31 -0
  238. package/dist/platform/node/storage.js +104 -0
  239. package/dist/platform/storagePath.d.ts +7 -0
  240. package/dist/platform/storagePath.js +20 -0
  241. package/dist/pouchdb/LiveSyncDBFunctions.d.ts +14 -0
  242. package/dist/pouchdb/LiveSyncDBFunctions.js +129 -0
  243. package/dist/pouchdb/LiveSyncLocalDB.d.ts +196 -0
  244. package/dist/pouchdb/LiveSyncLocalDB.js +381 -0
  245. package/dist/pouchdb/PouchDBConstructor.d.ts +3 -0
  246. package/dist/pouchdb/PouchDBConstructor.js +0 -0
  247. package/dist/pouchdb/ReplicatorShim.d.ts +51 -0
  248. package/dist/pouchdb/ReplicatorShim.js +109 -0
  249. package/dist/pouchdb/StreamingFetch.d.ts +19 -0
  250. package/dist/pouchdb/StreamingFetch.js +263 -0
  251. package/dist/pouchdb/chunks.d.ts +38 -0
  252. package/dist/pouchdb/chunks.js +314 -0
  253. package/dist/pouchdb/compress.d.ts +11 -0
  254. package/dist/pouchdb/compress.js +99 -0
  255. package/dist/pouchdb/encryption.d.ts +20 -0
  256. package/dist/pouchdb/encryption.js +458 -0
  257. package/dist/pouchdb/negotiation.d.ts +9 -0
  258. package/dist/pouchdb/negotiation.js +109 -0
  259. package/dist/pouchdb/pouchdb-browser.d.ts +2 -0
  260. package/dist/pouchdb/pouchdb-browser.js +96 -0
  261. package/dist/pouchdb/pouchdb-http.d.ts +2 -0
  262. package/dist/pouchdb/pouchdb-http.js +94 -0
  263. package/dist/pouchdb/pouchdb-test.d.ts +2 -0
  264. package/dist/pouchdb/pouchdb-test.js +12 -0
  265. package/dist/pouchdb/utils_couchdb.d.ts +4 -0
  266. package/dist/pouchdb/utils_couchdb.js +38 -0
  267. package/dist/replication/LiveSyncAbstractReplicator.d.ts +69 -0
  268. package/dist/replication/LiveSyncAbstractReplicator.js +92 -0
  269. package/dist/replication/SyncParamsHandler.d.ts +35 -0
  270. package/dist/replication/SyncParamsHandler.js +118 -0
  271. package/dist/replication/couchdb/LiveSyncReplicator.d.ts +85 -0
  272. package/dist/replication/couchdb/LiveSyncReplicator.js +1132 -0
  273. package/dist/replication/httplib.d.ts +75 -0
  274. package/dist/replication/httplib.js +187 -0
  275. package/dist/replication/journal/JournalSyncCore.d.ts +70 -0
  276. package/dist/replication/journal/JournalSyncCore.js +737 -0
  277. package/dist/replication/journal/JournalSyncTypes.d.ts +9 -0
  278. package/dist/replication/journal/JournalSyncTypes.js +11 -0
  279. package/dist/replication/journal/LiveSyncJournalReplicator.d.ts +40 -0
  280. package/dist/replication/journal/LiveSyncJournalReplicator.js +294 -0
  281. package/dist/replication/journal/LiveSyncJournalReplicatorEnv.d.ts +3 -0
  282. package/dist/replication/journal/LiveSyncJournalReplicatorEnv.js +0 -0
  283. package/dist/replication/journal/objectstore/JournalStorageAdapter.d.ts +15 -0
  284. package/dist/replication/journal/objectstore/JournalStorageAdapter.js +0 -0
  285. package/dist/replication/journal/objectstore/MinioStorageAdapter.d.ts +21 -0
  286. package/dist/replication/journal/objectstore/MinioStorageAdapter.js +204 -0
  287. package/dist/replication/trystero/LiveSyncTrysteroReplicator.d.ts +90 -0
  288. package/dist/replication/trystero/LiveSyncTrysteroReplicator.js +380 -0
  289. package/dist/replication/trystero/P2PLogCollector.d.ts +8 -0
  290. package/dist/replication/trystero/P2PLogCollector.js +91 -0
  291. package/dist/replication/trystero/P2PReplicatorBase.d.ts +19 -0
  292. package/dist/replication/trystero/P2PReplicatorBase.js +0 -0
  293. package/dist/replication/trystero/P2PReplicatorCore.d.ts +12 -0
  294. package/dist/replication/trystero/P2PReplicatorCore.js +126 -0
  295. package/dist/replication/trystero/P2PReplicatorPaneCommon.d.ts +41 -0
  296. package/dist/replication/trystero/P2PReplicatorPaneCommon.js +20 -0
  297. package/dist/replication/trystero/ProxiedDB.d.ts +13 -0
  298. package/dist/replication/trystero/ProxiedDB.js +20 -0
  299. package/dist/replication/trystero/TrysteroReplicator.d.ts +152 -0
  300. package/dist/replication/trystero/TrysteroReplicator.js +683 -0
  301. package/dist/replication/trystero/TrysteroReplicatorP2PClient.d.ts +19 -0
  302. package/dist/replication/trystero/TrysteroReplicatorP2PClient.js +80 -0
  303. package/dist/replication/trystero/TrysteroReplicatorP2PConnection.d.ts +2 -0
  304. package/dist/replication/trystero/TrysteroReplicatorP2PConnection.js +4 -0
  305. package/dist/replication/trystero/TrysteroReplicatorP2PServer.d.ts +117 -0
  306. package/dist/replication/trystero/TrysteroReplicatorP2PServer.js +540 -0
  307. package/dist/replication/trystero/UseP2PReplicatorResult.d.ts +11 -0
  308. package/dist/replication/trystero/UseP2PReplicatorResult.js +0 -0
  309. package/dist/replication/trystero/addP2PEventHandlers.d.ts +35 -0
  310. package/dist/replication/trystero/addP2PEventHandlers.js +43 -0
  311. package/dist/replication/trystero/rpcCompat.d.ts +1 -0
  312. package/dist/replication/trystero/rpcCompat.js +9 -0
  313. package/dist/replication/trystero/types.d.ts +95 -0
  314. package/dist/replication/trystero/types.js +27 -0
  315. package/dist/replication/trystero/useP2PReplicatorCommands.d.ts +7 -0
  316. package/dist/replication/trystero/useP2PReplicatorCommands.js +25 -0
  317. package/dist/replication/trystero/useP2PReplicatorFeature.d.ts +17 -0
  318. package/dist/replication/trystero/useP2PReplicatorFeature.js +82 -0
  319. package/dist/rpc/RpcRoom.d.ts +24 -0
  320. package/dist/rpc/RpcRoom.js +300 -0
  321. package/dist/rpc/RpcSession.d.ts +9 -0
  322. package/dist/rpc/RpcSession.js +32 -0
  323. package/dist/rpc/chunking.d.ts +11 -0
  324. package/dist/rpc/chunking.js +58 -0
  325. package/dist/rpc/errors.d.ts +8 -0
  326. package/dist/rpc/errors.js +26 -0
  327. package/dist/rpc/index.d.ts +6 -0
  328. package/dist/rpc/index.js +12 -0
  329. package/dist/rpc/pouchdb/RpcPouchDBProxy.d.ts +75 -0
  330. package/dist/rpc/pouchdb/RpcPouchDBProxy.js +115 -0
  331. package/dist/rpc/pouchdb/RpcPouchDBServer.d.ts +16 -0
  332. package/dist/rpc/pouchdb/RpcPouchDBServer.js +55 -0
  333. package/dist/rpc/transports/DiagRTCPeerConnections.d.ts +24 -0
  334. package/dist/rpc/transports/DiagRTCPeerConnections.js +208 -0
  335. package/dist/rpc/transports/DiagRTCPeerConnections.types.d.ts +64 -0
  336. package/dist/rpc/transports/DiagRTCPeerConnections.types.js +12 -0
  337. package/dist/rpc/transports/DiagRTCPeerConnections.utils.d.ts +33 -0
  338. package/dist/rpc/transports/DiagRTCPeerConnections.utils.js +217 -0
  339. package/dist/rpc/transports/TrysteroTransport.d.ts +216 -0
  340. package/dist/rpc/transports/TrysteroTransport.js +134 -0
  341. package/dist/rpc/transports/trysteroUtils.d.ts +3 -0
  342. package/dist/rpc/transports/trysteroUtils.js +37 -0
  343. package/dist/rpc/types.d.ts +75 -0
  344. package/dist/rpc/types.js +6 -0
  345. package/dist/serviceFeatures/checkRemoteSize.d.ts +28 -0
  346. package/dist/serviceFeatures/checkRemoteSize.js +178 -0
  347. package/dist/serviceFeatures/offlineScanner.d.ts +128 -0
  348. package/dist/serviceFeatures/offlineScanner.js +553 -0
  349. package/dist/serviceFeatures/prepareDatabaseForUse.d.ts +20 -0
  350. package/dist/serviceFeatures/prepareDatabaseForUse.js +39 -0
  351. package/dist/serviceFeatures/remoteConfig.d.ts +46 -0
  352. package/dist/serviceFeatures/remoteConfig.js +247 -0
  353. package/dist/serviceFeatures/setupObsidian/qrCode.d.ts +4 -0
  354. package/dist/serviceFeatures/setupObsidian/qrCode.js +67 -0
  355. package/dist/serviceFeatures/setupObsidian/setupUri.d.ts +7 -0
  356. package/dist/serviceFeatures/setupObsidian/setupUri.js +70 -0
  357. package/dist/serviceFeatures/setupObsidian/types.d.ts +2 -0
  358. package/dist/serviceFeatures/setupObsidian/types.js +0 -0
  359. package/dist/serviceFeatures/targetFilter.d.ts +24 -0
  360. package/dist/serviceFeatures/targetFilter.js +178 -0
  361. package/dist/serviceModules/FileAccessBase.d.ts +93 -0
  362. package/dist/serviceModules/FileAccessBase.js +219 -0
  363. package/dist/serviceModules/Rebuilder.d.ts +92 -0
  364. package/dist/serviceModules/Rebuilder.js +449 -0
  365. package/dist/serviceModules/ServiceDatabaseFileAccessBase.d.ts +40 -0
  366. package/dist/serviceModules/ServiceDatabaseFileAccessBase.js +306 -0
  367. package/dist/serviceModules/ServiceFileAccessBase.d.ts +64 -0
  368. package/dist/serviceModules/ServiceFileAccessBase.js +312 -0
  369. package/dist/serviceModules/ServiceFileHandlerBase.d.ts +52 -0
  370. package/dist/serviceModules/ServiceFileHandlerBase.js +493 -0
  371. package/dist/serviceModules/ServiceModuleBase.d.ts +10 -0
  372. package/dist/serviceModules/ServiceModuleBase.js +13 -0
  373. package/dist/serviceModules/adapters/IConversionAdapter.d.ts +15 -0
  374. package/dist/serviceModules/adapters/IConversionAdapter.js +0 -0
  375. package/dist/serviceModules/adapters/IFileSystemAdapter.d.ts +47 -0
  376. package/dist/serviceModules/adapters/IFileSystemAdapter.js +0 -0
  377. package/dist/serviceModules/adapters/IPathAdapter.d.ts +15 -0
  378. package/dist/serviceModules/adapters/IPathAdapter.js +0 -0
  379. package/dist/serviceModules/adapters/IStorageAdapter.d.ts +56 -0
  380. package/dist/serviceModules/adapters/IStorageAdapter.js +0 -0
  381. package/dist/serviceModules/adapters/ITypeGuardAdapter.d.ts +14 -0
  382. package/dist/serviceModules/adapters/ITypeGuardAdapter.js +0 -0
  383. package/dist/serviceModules/adapters/IVaultAdapter.d.ts +51 -0
  384. package/dist/serviceModules/adapters/IVaultAdapter.js +0 -0
  385. package/dist/serviceModules/adapters/index.d.ts +6 -0
  386. package/dist/serviceModules/adapters/index.js +0 -0
  387. package/dist/services/BrowserServices.d.ts +36 -0
  388. package/dist/services/BrowserServices.js +123 -0
  389. package/dist/services/HeadlessServices.d.ts +14 -0
  390. package/dist/services/HeadlessServices.js +144 -0
  391. package/dist/services/InjectableServices.d.ts +1 -0
  392. package/dist/services/InjectableServices.js +4 -0
  393. package/dist/services/ServiceHub.d.ts +82 -0
  394. package/dist/services/ServiceHub.js +66 -0
  395. package/dist/services/base/APIService.d.ts +93 -0
  396. package/dist/services/base/APIService.js +44 -0
  397. package/dist/services/base/AppLifecycleService.d.ts +132 -0
  398. package/dist/services/base/AppLifecycleService.js +123 -0
  399. package/dist/services/base/ConfigService.d.ts +7 -0
  400. package/dist/services/base/ConfigService.js +6 -0
  401. package/dist/services/base/ConflictService.d.ts +54 -0
  402. package/dist/services/base/ConflictService.js +22 -0
  403. package/dist/services/base/ControlService.d.ts +54 -0
  404. package/dist/services/base/ControlService.js +103 -0
  405. package/dist/services/base/DatabaseEventService.d.ts +38 -0
  406. package/dist/services/base/DatabaseEventService.js +38 -0
  407. package/dist/services/base/DatabaseService.d.ts +40 -0
  408. package/dist/services/base/DatabaseService.js +79 -0
  409. package/dist/services/base/FileProcessingService.d.ts +25 -0
  410. package/dist/services/base/FileProcessingService.js +28 -0
  411. package/dist/services/base/IService.d.ts +284 -0
  412. package/dist/services/base/IService.js +1 -0
  413. package/dist/services/base/KeyValueDBService.d.ts +42 -0
  414. package/dist/services/base/KeyValueDBService.js +133 -0
  415. package/dist/services/base/MessageTranslator.d.ts +6 -0
  416. package/dist/services/base/MessageTranslator.js +4 -0
  417. package/dist/services/base/PathService.d.ts +38 -0
  418. package/dist/services/base/PathService.js +66 -0
  419. package/dist/services/base/RemoteService.d.ts +61 -0
  420. package/dist/services/base/RemoteService.js +212 -0
  421. package/dist/services/base/ReplicationService.d.ts +92 -0
  422. package/dist/services/base/ReplicationService.js +261 -0
  423. package/dist/services/base/ReplicatorService.d.ts +66 -0
  424. package/dist/services/base/ReplicatorService.js +164 -0
  425. package/dist/services/base/ServiceBase.d.ts +33 -0
  426. package/dist/services/base/ServiceBase.js +27 -0
  427. package/dist/services/base/SettingService.d.ts +112 -0
  428. package/dist/services/base/SettingService.js +543 -0
  429. package/dist/services/base/TestService.d.ts +28 -0
  430. package/dist/services/base/TestService.js +19 -0
  431. package/dist/services/base/TweakValueService.d.ts +40 -0
  432. package/dist/services/base/TweakValueService.js +6 -0
  433. package/dist/services/base/UnresolvedErrorManager.d.ts +15 -0
  434. package/dist/services/base/UnresolvedErrorManager.js +44 -0
  435. package/dist/services/base/VaultService.d.ts +69 -0
  436. package/dist/services/base/VaultService.js +70 -0
  437. package/dist/services/implements/base/SvelteDialog.d.ts +79 -0
  438. package/dist/services/implements/base/SvelteDialog.js +134 -0
  439. package/dist/services/implements/base/UIService.d.ts +24 -0
  440. package/dist/services/implements/base/UIService.js +37 -0
  441. package/dist/services/implements/browser/BrowserAPIService.d.ts +54 -0
  442. package/dist/services/implements/browser/BrowserAPIService.js +298 -0
  443. package/dist/services/implements/browser/BrowserDatabaseService.d.ts +7 -0
  444. package/dist/services/implements/browser/BrowserDatabaseService.js +10 -0
  445. package/dist/services/implements/browser/ConfigServiceBrowserCompat.d.ts +16 -0
  446. package/dist/services/implements/browser/ConfigServiceBrowserCompat.js +23 -0
  447. package/dist/services/implements/headless/HeadlessAPIService.d.ts +52 -0
  448. package/dist/services/implements/headless/HeadlessAPIService.js +127 -0
  449. package/dist/services/implements/headless/HeadlessDatabaseService.d.ts +7 -0
  450. package/dist/services/implements/headless/HeadlessDatabaseService.js +10 -0
  451. package/dist/services/implements/injectable/InjectableAPIService.d.ts +7 -0
  452. package/dist/services/implements/injectable/InjectableAPIService.js +18 -0
  453. package/dist/services/implements/injectable/InjectableAppLifecycleService.d.ts +11 -0
  454. package/dist/services/implements/injectable/InjectableAppLifecycleService.js +14 -0
  455. package/dist/services/implements/injectable/InjectableConflictService.d.ts +11 -0
  456. package/dist/services/implements/injectable/InjectableConflictService.js +14 -0
  457. package/dist/services/implements/injectable/InjectableDatabaseEventService.d.ts +4 -0
  458. package/dist/services/implements/injectable/InjectableDatabaseEventService.js +7 -0
  459. package/dist/services/implements/injectable/InjectableFileProcessingService.d.ts +4 -0
  460. package/dist/services/implements/injectable/InjectableFileProcessingService.js +6 -0
  461. package/dist/services/implements/injectable/InjectablePathService.d.ts +12 -0
  462. package/dist/services/implements/injectable/InjectablePathService.js +36 -0
  463. package/dist/services/implements/injectable/InjectableRemoteService.d.ts +4 -0
  464. package/dist/services/implements/injectable/InjectableRemoteService.js +7 -0
  465. package/dist/services/implements/injectable/InjectableReplicationService.d.ts +4 -0
  466. package/dist/services/implements/injectable/InjectableReplicationService.js +6 -0
  467. package/dist/services/implements/injectable/InjectableReplicatorService.d.ts +4 -0
  468. package/dist/services/implements/injectable/InjectableReplicatorService.js +7 -0
  469. package/dist/services/implements/injectable/InjectableServiceHub.d.ts +72 -0
  470. package/dist/services/implements/injectable/InjectableServiceHub.js +125 -0
  471. package/dist/services/implements/injectable/InjectableServices.d.ts +36 -0
  472. package/dist/services/implements/injectable/InjectableServices.js +1 -0
  473. package/dist/services/implements/injectable/InjectableSettingService.d.ts +11 -0
  474. package/dist/services/implements/injectable/InjectableSettingService.js +33 -0
  475. package/dist/services/implements/injectable/InjectableTestService.d.ts +5 -0
  476. package/dist/services/implements/injectable/InjectableTestService.js +8 -0
  477. package/dist/services/implements/injectable/InjectableTweakValueService.d.ts +15 -0
  478. package/dist/services/implements/injectable/InjectableTweakValueService.js +12 -0
  479. package/dist/services/implements/injectable/InjectableVaultService.d.ts +9 -0
  480. package/dist/services/implements/injectable/InjectableVaultService.js +20 -0
  481. package/dist/services/lib/HandlerUtils.d.ts +374 -0
  482. package/dist/services/lib/HandlerUtils.js +412 -0
  483. package/dist/services/lib/logUtils.d.ts +13 -0
  484. package/dist/services/lib/logUtils.js +28 -0
  485. package/dist/services/lib/remoteActivity.d.ts +13 -0
  486. package/dist/services/lib/remoteActivity.js +11 -0
  487. package/dist/string_and_binary/chunks.d.ts +10 -0
  488. package/dist/string_and_binary/chunks.js +561 -0
  489. package/dist/string_and_binary/convert.d.ts +8 -0
  490. package/dist/string_and_binary/convert.js +46 -0
  491. package/dist/string_and_binary/hash.d.ts +2 -0
  492. package/dist/string_and_binary/hash.js +1 -0
  493. package/dist/string_and_binary/path.d.ts +35 -0
  494. package/dist/string_and_binary/path.js +240 -0
  495. package/dist/worker/bg.common.d.ts +2 -0
  496. package/dist/worker/bg.common.js +6 -0
  497. package/dist/worker/bg.worker.d.ts +1 -0
  498. package/dist/worker/bg.worker.encryption.d.ts +7 -0
  499. package/dist/worker/bg.worker.encryption.js +30 -0
  500. package/dist/worker/bg.worker.js +14 -0
  501. package/dist/worker/bg.worker.splitting.d.ts +6 -0
  502. package/dist/worker/bg.worker.splitting.js +36 -0
  503. package/dist/worker/bgWorker.d.ts +25 -0
  504. package/dist/worker/bgWorker.direct.d.ts +40 -0
  505. package/dist/worker/bgWorker.direct.js +65 -0
  506. package/dist/worker/bgWorker.encryption.d.ts +22 -0
  507. package/dist/worker/bgWorker.encryption.js +40 -0
  508. package/dist/worker/bgWorker.js +348 -0
  509. package/dist/worker/bgWorker.splitting.d.ts +27 -0
  510. package/dist/worker/bgWorker.splitting.js +123 -0
  511. package/dist/worker/universalTypes.d.ts +63 -0
  512. package/dist/worker/universalTypes.js +4 -0
  513. package/docs/development.md +51 -0
  514. package/docs/platform-storage.md +60 -0
  515. package/docs/releasing.md +69 -0
  516. package/package.json +693 -0
@@ -0,0 +1,583 @@
1
+ import { LRUCache } from "octagonal-wheels/memory/LRUCache";
2
+ import { isPlainText } from "../string_and_binary/path.js";
3
+ import { Semaphore } from "octagonal-wheels/concurrency/semaphore";
4
+ import { arrayBufferToBase64Single, decodeBinary, writeString } from "../string_and_binary/convert.js";
5
+ import {
6
+ PREFIX_ENCRYPTED_CHUNK,
7
+ PREFIX_OBFUSCATED,
8
+ SYNCINFO_ID
9
+ } from "./types.js";
10
+ import { isErrorOfMissingDoc } from "../pouchdb/utils_couchdb.js";
11
+ import { replaceAll, replaceAllPairs } from "octagonal-wheels/string";
12
+ import { concatUInt8Array } from "octagonal-wheels/binary";
13
+ import { delay, fireAndForget } from "octagonal-wheels/promises";
14
+ import { arrayToChunkedArray, unique } from "octagonal-wheels/collection";
15
+ import { extractObject, isObjectDifferent } from "octagonal-wheels/object";
16
+ import { sendValue, sendSignal, waitForSignal, waitForValue } from "octagonal-wheels/messagepassing/signal";
17
+ import { throttle } from "octagonal-wheels/function";
18
+ import { BASE_IS_NEW, EVEN, TARGET_IS_NEW } from "./models/shared.const.symbols.js";
19
+ import { sizeToHumanReadable } from "octagonal-wheels/number";
20
+ import { compatGlobal } from "./coreEnvFunctions.js";
21
+ import { ensureError } from "./utils.object.js";
22
+ function resolveWithIgnoreKnownError(p, def) {
23
+ return new Promise((res, rej) => {
24
+ p.then(res).catch((ex) => isErrorOfMissingDoc(ex) ? res(def) : rej(ensureError(ex)));
25
+ });
26
+ }
27
+ const Parallels = (ps = /* @__PURE__ */ new Set()) => ({
28
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
29
+ add: (p) => ps.add(!!p.then(() => ps.delete(p)).catch(() => ps.delete(p)) && p),
30
+ wait: (limit) => ps.size >= limit && Promise.race(ps),
31
+ all: () => Promise.all(ps)
32
+ });
33
+ async function allSettledWithConcurrencyLimit(processes, limit) {
34
+ const ps = Parallels();
35
+ for (const proc of processes) {
36
+ ps.add(proc);
37
+ await ps.wait(limit);
38
+ }
39
+ (await ps.all()).forEach(() => {
40
+ });
41
+ }
42
+ function getDocData(doc) {
43
+ return typeof doc == "string" ? doc : doc.join("");
44
+ }
45
+ function getDocDataAsArray(doc) {
46
+ return typeof doc == "string" ? [doc] : doc;
47
+ }
48
+ function getDocDataAsArrayBuffer(doc) {
49
+ if (doc instanceof ArrayBuffer) return new Uint8Array(doc);
50
+ const docData = getDocDataAsArray(doc);
51
+ const s = docData.map((e) => writeString(e));
52
+ return concatUInt8Array(s);
53
+ }
54
+ function isTextBlob(blob) {
55
+ return blob.type === "text/plain";
56
+ }
57
+ function createTextBlob(data) {
58
+ const d = Array.isArray(data) ? data : [data];
59
+ return new Blob(d, { endings: "transparent", type: "text/plain" });
60
+ }
61
+ function createBinaryBlob(data) {
62
+ return new Blob([data], { endings: "transparent", type: "application/octet-stream" });
63
+ }
64
+ function createBlob(data) {
65
+ if (data instanceof Blob) return data;
66
+ if (data instanceof Uint8Array || data instanceof ArrayBuffer) return createBinaryBlob(data);
67
+ return createTextBlob(data);
68
+ }
69
+ function isTextDocument(doc) {
70
+ if (doc.type == "plain") return true;
71
+ if (doc.datatype == "plain") return true;
72
+ if (isPlainText(doc.path)) return true;
73
+ return false;
74
+ }
75
+ function readAsBlob(doc) {
76
+ if (isTextDocument(doc)) {
77
+ return createTextBlob(doc.data);
78
+ } else {
79
+ return createBinaryBlob(decodeBinary(doc.data));
80
+ }
81
+ }
82
+ function readContent(doc) {
83
+ if (isTextDocument(doc)) {
84
+ return getDocData(doc.data);
85
+ } else {
86
+ return decodeBinary(doc.data);
87
+ }
88
+ }
89
+ const isIndexDBCmpExist = typeof compatGlobal?.indexedDB?.cmp !== "undefined";
90
+ async function isDocContentSame(docA, docB) {
91
+ const blob1 = createBlob(docA);
92
+ const blob2 = createBlob(docB);
93
+ if (blob1.size != blob2.size) return false;
94
+ if (isIndexDBCmpExist) {
95
+ return compatGlobal.indexedDB.cmp(await blob1.arrayBuffer(), await blob2.arrayBuffer()) === 0;
96
+ }
97
+ const checkQuantum = 1e4;
98
+ const length = blob1.size;
99
+ let i = 0;
100
+ while (i < length) {
101
+ const ab1 = await blob1.slice(i, i + checkQuantum).arrayBuffer();
102
+ const ab2 = await blob2.slice(i, i + checkQuantum).arrayBuffer();
103
+ i += checkQuantum;
104
+ if (await arrayBufferToBase64Single(ab1) != await arrayBufferToBase64Single(ab2)) return false;
105
+ }
106
+ return true;
107
+ }
108
+ function isObfuscatedEntry(doc) {
109
+ if (doc._id.startsWith(PREFIX_OBFUSCATED)) {
110
+ return true;
111
+ }
112
+ return false;
113
+ }
114
+ function isEncryptedChunkEntry(doc) {
115
+ if (doc._id.startsWith(PREFIX_ENCRYPTED_CHUNK)) {
116
+ return true;
117
+ }
118
+ return false;
119
+ }
120
+ function isSyncInfoEntry(doc) {
121
+ if (doc._id == SYNCINFO_ID) {
122
+ return true;
123
+ }
124
+ return false;
125
+ }
126
+ function memorizeFuncWithLRUCache(func) {
127
+ const cache = new LRUCache(100, 1e5, true);
128
+ return (key) => {
129
+ const isExists = cache.has(key);
130
+ if (isExists) return cache.get(key);
131
+ const value = func(key);
132
+ cache.set(key, value);
133
+ return value;
134
+ };
135
+ }
136
+ function memorizeFuncWithLRUCacheMulti(func) {
137
+ const cache = new LRUCache(100, 1e5, true);
138
+ return (keys) => {
139
+ const theKey = keys.map(
140
+ (e) => typeof e == "string" || typeof e == "number" || typeof e == "boolean" ? e.toString() : JSON.stringify(e)
141
+ ).join("-");
142
+ const isExists = cache.has(theKey);
143
+ if (isExists) return cache.get(theKey);
144
+ const value = func(...keys);
145
+ cache.set(theKey, value);
146
+ return value;
147
+ };
148
+ }
149
+ function onlyNot(exclusion) {
150
+ function _onlyNot(item) {
151
+ if (item === exclusion) return false;
152
+ return true;
153
+ }
154
+ return _onlyNot;
155
+ }
156
+ const lastProcessed = {};
157
+ function markInterval(key, now) {
158
+ const next = now ?? Date.now();
159
+ if (lastProcessed?.[key] ?? 0 < next) {
160
+ lastProcessed[key] = next;
161
+ }
162
+ }
163
+ async function runWithInterval(key, interval, task) {
164
+ const now = Date.now();
165
+ try {
166
+ if (!(key in lastProcessed)) {
167
+ markInterval(key, now);
168
+ return await task();
169
+ }
170
+ const last = lastProcessed[key];
171
+ const diff = now - last;
172
+ if (diff < interval) {
173
+ markInterval(key, now);
174
+ await delay(diff);
175
+ }
176
+ markInterval(key);
177
+ return await task();
178
+ } finally {
179
+ markInterval(key);
180
+ }
181
+ }
182
+ async function runWithStartInterval(key, interval, task) {
183
+ const now = Date.now();
184
+ if (!(key in lastProcessed)) {
185
+ markInterval(key, now);
186
+ return await task();
187
+ }
188
+ const last = lastProcessed[key];
189
+ const diff = now - last;
190
+ if (diff < interval) {
191
+ markInterval(key, now);
192
+ await delay(diff);
193
+ }
194
+ markInterval(key);
195
+ return await task();
196
+ }
197
+ const globalConcurrencyController = Semaphore(50);
198
+ function determineTypeFromBlob(data) {
199
+ return isTextBlob(data) ? "plain" : "newnote";
200
+ }
201
+ function determineType(path, data) {
202
+ if (data instanceof Blob) {
203
+ return determineTypeFromBlob(data);
204
+ }
205
+ if (isPlainText(path)) return "plain";
206
+ if (data instanceof Uint8Array) return "newnote";
207
+ if (data instanceof ArrayBuffer) return "newnote";
208
+ return "plain";
209
+ }
210
+ function isAnyNote(doc) {
211
+ return "type" in doc && (doc.type == "newnote" || doc.type == "plain");
212
+ }
213
+ function isLoadedEntry(doc) {
214
+ return "type" in doc && (doc.type == "newnote" || doc.type == "plain") && "data" in doc;
215
+ }
216
+ function isDeletedEntry(doc) {
217
+ return doc._deleted || doc.deleted || false;
218
+ }
219
+ function createSavingEntryFromLoadedEntry(doc) {
220
+ const data = readAsBlob(doc);
221
+ const type = determineType(doc.path, data);
222
+ return {
223
+ ...doc,
224
+ data,
225
+ datatype: type,
226
+ type,
227
+ children: []
228
+ };
229
+ }
230
+ function setAllItems(set, items) {
231
+ items.forEach((e) => set.add(e));
232
+ return set;
233
+ }
234
+ const map = {
235
+ "\n": "\\n",
236
+ "\r": "\\r",
237
+ "\\": "\\\\"
238
+ };
239
+ const revMap = {
240
+ "\\n": "\n",
241
+ "\\r": "\r",
242
+ "\\\\": "\\"
243
+ };
244
+ function escapeNewLineFromString(str) {
245
+ if (str.indexOf("\n") === -1 && str.indexOf("\r") === -1) {
246
+ return str;
247
+ }
248
+ const p = str.replace(/(\n|\r|\\)/g, (m) => `${map[m]}`);
249
+ return "\\f" + p;
250
+ }
251
+ function unescapeNewLineFromString(str) {
252
+ if (!str.startsWith("\\f")) {
253
+ return str;
254
+ }
255
+ const p = str.substring(2).replace(/(\\n|\\r|\\\\)/g, (m) => `${revMap[m]}`);
256
+ return p;
257
+ }
258
+ function escapeMarkdownValue(value) {
259
+ if (typeof value === "string") {
260
+ return replaceAllPairs(value, ["|", "\\|"], ["`", "\\`"]);
261
+ } else {
262
+ return value;
263
+ }
264
+ }
265
+ function timeDeltaToHumanReadable(delta) {
266
+ const sec = delta / 1e3;
267
+ if (sec < 60) {
268
+ return `${sec.toFixed(2)}s`;
269
+ }
270
+ const min = sec / 60;
271
+ if (min < 60) {
272
+ return `${min.toFixed(2)}m`;
273
+ }
274
+ const hour = min / 60;
275
+ if (hour < 24) {
276
+ return `${hour.toFixed(2)}h`;
277
+ }
278
+ const day = hour / 24;
279
+ if (day < 365) {
280
+ return `${day.toFixed(2)}d`;
281
+ }
282
+ const year = day / 365;
283
+ return `${year.toFixed(2)}y`;
284
+ }
285
+ async function wrapException(func) {
286
+ try {
287
+ return await func();
288
+ } catch (ex) {
289
+ if (ex instanceof Error) {
290
+ return ex;
291
+ }
292
+ return new Error(String(ex));
293
+ }
294
+ }
295
+ function toRanges(sorted) {
296
+ if (sorted?.length == 0) return "";
297
+ const ranges = [];
298
+ let start = sorted[0];
299
+ let end = sorted[0];
300
+ for (let i = 1; i < sorted.length; i++) {
301
+ if (sorted[i] === end + 1) {
302
+ end = sorted[i];
303
+ } else {
304
+ ranges.push(start === end ? `${start.toString(32)}` : `${start.toString(32)}-${end.toString(32)}`);
305
+ start = sorted[i];
306
+ end = sorted[i];
307
+ }
308
+ }
309
+ ranges.push(start === end ? `${start.toString(32)}` : `${start.toString(32)}-${end.toString(32)}`);
310
+ return ranges.join(",");
311
+ }
312
+ const previousValues = /* @__PURE__ */ new Map();
313
+ function isDirty(key, value) {
314
+ const prev = previousValues.get(key);
315
+ if (prev === value) return false;
316
+ previousValues.set(key, value);
317
+ return true;
318
+ }
319
+ function tryParseJSON(str, fallbackValue) {
320
+ try {
321
+ return JSON.parse(str);
322
+ } catch {
323
+ return fallbackValue;
324
+ }
325
+ }
326
+ import {
327
+ mergeObject,
328
+ applyPatch,
329
+ generatePatchObj,
330
+ flattenObject,
331
+ isObjectMargeApplicable,
332
+ isSensibleMargeApplicable
333
+ } from "./utils.patch.js";
334
+ function parseHeaderValues(strHeader) {
335
+ const headers = {};
336
+ const lines = strHeader.split("\n");
337
+ for (const line of lines) {
338
+ const [key, value] = line.split(":", 2).map((e) => e.trim());
339
+ if (key && value) {
340
+ headers[key] = value;
341
+ }
342
+ }
343
+ return headers;
344
+ }
345
+ function parseCustomRegExp(regexp) {
346
+ if (regexp.startsWith("!!")) {
347
+ return [true, regexp.slice(2)];
348
+ }
349
+ return [false, regexp];
350
+ }
351
+ function matchRegExp(regexp, target) {
352
+ const [negate, regexpWithoutNegate] = parseCustomRegExp(regexp);
353
+ if (regexpWithoutNegate.length == 0) return false;
354
+ const re = new RegExp(regexpWithoutNegate);
355
+ return negate ? !re.test(target) : re.test(target);
356
+ }
357
+ function isValidRegExp(regexp) {
358
+ try {
359
+ const [, exp] = parseCustomRegExp(regexp);
360
+ new RegExp(exp);
361
+ return true;
362
+ } catch {
363
+ return false;
364
+ }
365
+ }
366
+ function isInvertedRegExp(regexp) {
367
+ const [negate] = parseCustomRegExp(regexp);
368
+ return negate;
369
+ }
370
+ function parseCustomRegExpList(list, flags, delimiter) {
371
+ const d = delimiter ?? ",";
372
+ const source = `${list ?? ""}`;
373
+ const items = source.replace(/\n| /g, "").split(d).filter((e) => e);
374
+ return items.map((e) => new CustomRegExp(e, flags));
375
+ }
376
+ function constructCustomRegExpList(items, delimiter) {
377
+ return items.map((e) => `${e}`).join(`${delimiter}`);
378
+ }
379
+ function splitCustomRegExpList(list, delimiter) {
380
+ const d = delimiter;
381
+ const source = `${list ?? ""}`;
382
+ return source.split(d).filter((e) => e);
383
+ }
384
+ class CustomRegExp {
385
+ regexp;
386
+ negate;
387
+ pattern;
388
+ constructor(regexp, flags) {
389
+ const [negate, exp] = parseCustomRegExp(regexp);
390
+ this.pattern = exp;
391
+ this.regexp = new RegExp(exp, flags);
392
+ this.negate = negate;
393
+ }
394
+ test(str) {
395
+ return this.negate ? !this.regexp.test(str) : this.regexp.test(str);
396
+ }
397
+ }
398
+ function getFileRegExp(settings, key) {
399
+ const flagCase = settings.handleFilenameCaseSensitive ? "" : "i";
400
+ if (key === "syncInternalFilesIgnorePatterns" || key === "syncInternalFilesTargetPatterns" || key === "syncInternalFileOverwritePatterns") {
401
+ const regExp2 = settings[key];
402
+ return parseCustomRegExpList(regExp2, flagCase, ",");
403
+ }
404
+ const regExp = settings[key];
405
+ return parseCustomRegExpList(regExp, flagCase, "|[]|");
406
+ }
407
+ function copyTo(source, target) {
408
+ for (const key of Object.keys(target)) {
409
+ target[key] = source[key];
410
+ }
411
+ }
412
+ function pickBucketSyncSettings(setting) {
413
+ return {
414
+ bucket: setting.bucket,
415
+ region: setting.region,
416
+ endpoint: setting.endpoint,
417
+ accessKey: setting.accessKey,
418
+ secretKey: setting.secretKey,
419
+ bucketPrefix: setting.bucketPrefix,
420
+ forcePathStyle: setting.forcePathStyle,
421
+ useCustomRequestHandler: setting.useCustomRequestHandler,
422
+ bucketCustomHeaders: setting.bucketCustomHeaders
423
+ };
424
+ }
425
+ function pickCouchDBSyncSettings(setting) {
426
+ return {
427
+ couchDB_URI: setting.couchDB_URI,
428
+ couchDB_USER: setting.couchDB_USER,
429
+ couchDB_PASSWORD: setting.couchDB_PASSWORD,
430
+ couchDB_DBNAME: setting.couchDB_DBNAME,
431
+ useRequestAPI: setting.useRequestAPI,
432
+ // Advanced settings
433
+ couchDB_CustomHeaders: setting.couchDB_CustomHeaders,
434
+ jwtAlgorithm: setting.jwtAlgorithm,
435
+ jwtExpDuration: setting.jwtExpDuration,
436
+ jwtKey: setting.jwtKey,
437
+ jwtKid: setting.jwtKid,
438
+ jwtSub: setting.jwtSub,
439
+ useJWT: setting.useJWT
440
+ };
441
+ }
442
+ function pickEncryptionSettings(setting) {
443
+ return {
444
+ E2EEAlgorithm: setting.E2EEAlgorithm,
445
+ encrypt: setting.encrypt,
446
+ passphrase: setting.passphrase,
447
+ usePathObfuscation: setting.usePathObfuscation
448
+ };
449
+ }
450
+ function pickP2PSyncSettings(setting) {
451
+ return {
452
+ P2P_Enabled: setting.P2P_Enabled,
453
+ P2P_AppID: setting.P2P_AppID,
454
+ P2P_roomID: setting.P2P_roomID,
455
+ P2P_passphrase: setting.P2P_passphrase,
456
+ P2P_relays: setting.P2P_relays,
457
+ P2P_AutoStart: setting.P2P_AutoStart,
458
+ P2P_AutoBroadcast: setting.P2P_AutoBroadcast,
459
+ P2P_DevicePeerName: setting.P2P_DevicePeerName || "",
460
+ P2P_turnServers: setting.P2P_turnServers,
461
+ P2P_turnUsername: setting.P2P_turnUsername,
462
+ P2P_turnCredential: setting.P2P_turnCredential
463
+ };
464
+ }
465
+ function wrapByDefault(func, onError) {
466
+ try {
467
+ return func();
468
+ } catch (ex) {
469
+ const error = ex instanceof Error ? ex : new Error(String(ex));
470
+ return onError(error);
471
+ }
472
+ }
473
+ const resolution = 2e3;
474
+ function compareMTime(baseMTime, targetMTime) {
475
+ const truncatedBaseMTime = ~~(baseMTime / resolution) * resolution;
476
+ const truncatedTargetMTime = ~~(targetMTime / resolution) * resolution;
477
+ if (truncatedBaseMTime == truncatedTargetMTime) return EVEN;
478
+ if (truncatedBaseMTime > truncatedTargetMTime) return BASE_IS_NEW;
479
+ if (truncatedBaseMTime < truncatedTargetMTime) return TARGET_IS_NEW;
480
+ throw new Error("Unexpected error");
481
+ }
482
+ function displayRev(rev) {
483
+ const [number, hash] = rev.split("-");
484
+ return `${number}-${hash.substring(0, 6)}`;
485
+ }
486
+ function generateP2PRoomId() {
487
+ const randomValues = new Uint16Array(4);
488
+ crypto.getRandomValues(randomValues);
489
+ const MAX_UINT16 = 65536;
490
+ const a = Math.floor(randomValues[0] / MAX_UINT16 * 1e3);
491
+ const b = Math.floor(randomValues[1] / MAX_UINT16 * 1e3);
492
+ const c = Math.floor(randomValues[2] / MAX_UINT16 * 1e3);
493
+ const dRange = 36 * 36 * 36;
494
+ const d = Math.floor(randomValues[3] / MAX_UINT16 * dRange);
495
+ return `${a.toString().padStart(3, "0")}-${b.toString().padStart(3, "0")}-${c.toString().padStart(3, "0")}-${d.toString(36).padStart(3, "0")}`;
496
+ }
497
+ function extractP2PRoomSuffix(roomId) {
498
+ const trimmed = roomId.trim();
499
+ if (trimmed === "") return "";
500
+ const parts = trimmed.split("-").map((e) => e.trim()).filter((e) => e);
501
+ if (parts.length === 0) return "";
502
+ return parts[parts.length - 1] ?? "";
503
+ }
504
+ export {
505
+ CustomRegExp,
506
+ Parallels,
507
+ allSettledWithConcurrencyLimit,
508
+ applyPatch,
509
+ arrayToChunkedArray,
510
+ compareMTime,
511
+ concatUInt8Array,
512
+ constructCustomRegExpList,
513
+ copyTo,
514
+ createBinaryBlob,
515
+ createBlob,
516
+ createSavingEntryFromLoadedEntry,
517
+ createTextBlob,
518
+ delay,
519
+ determineType,
520
+ determineTypeFromBlob,
521
+ displayRev,
522
+ escapeMarkdownValue,
523
+ escapeNewLineFromString,
524
+ extractObject,
525
+ extractP2PRoomSuffix,
526
+ fireAndForget,
527
+ flattenObject,
528
+ generateP2PRoomId,
529
+ generatePatchObj,
530
+ getDocData,
531
+ getDocDataAsArray,
532
+ getDocDataAsArrayBuffer,
533
+ getFileRegExp,
534
+ globalConcurrencyController,
535
+ isAnyNote,
536
+ isDeletedEntry,
537
+ isDirty,
538
+ isDocContentSame,
539
+ isEncryptedChunkEntry,
540
+ isInvertedRegExp,
541
+ isLoadedEntry,
542
+ isObfuscatedEntry,
543
+ isObjectDifferent,
544
+ isObjectMargeApplicable,
545
+ isSensibleMargeApplicable,
546
+ isSyncInfoEntry,
547
+ isTextBlob,
548
+ isTextDocument,
549
+ isValidRegExp,
550
+ matchRegExp,
551
+ memorizeFuncWithLRUCache,
552
+ memorizeFuncWithLRUCacheMulti,
553
+ mergeObject,
554
+ onlyNot,
555
+ parseCustomRegExp,
556
+ parseHeaderValues,
557
+ pickBucketSyncSettings,
558
+ pickCouchDBSyncSettings,
559
+ pickEncryptionSettings,
560
+ pickP2PSyncSettings,
561
+ readAsBlob,
562
+ readContent,
563
+ replaceAll,
564
+ replaceAllPairs,
565
+ resolveWithIgnoreKnownError,
566
+ runWithInterval,
567
+ runWithStartInterval,
568
+ sendSignal,
569
+ sendValue,
570
+ setAllItems,
571
+ sizeToHumanReadable,
572
+ splitCustomRegExpList,
573
+ throttle,
574
+ timeDeltaToHumanReadable,
575
+ toRanges,
576
+ tryParseJSON,
577
+ unescapeNewLineFromString,
578
+ unique,
579
+ waitForSignal,
580
+ waitForValue,
581
+ wrapByDefault,
582
+ wrapException
583
+ };
@@ -0,0 +1,2 @@
1
+ export declare function asCopy<T>(obj: T): T;
2
+ export declare function ensureError(error: unknown): Error;
@@ -0,0 +1,14 @@
1
+ import { LiveSyncError } from "./LSError.js";
2
+ function asCopy(obj) {
3
+ return JSON.parse(JSON.stringify(obj));
4
+ }
5
+ function ensureError(error) {
6
+ if (error instanceof Error) {
7
+ return error;
8
+ }
9
+ return LiveSyncError.fromError(error);
10
+ }
11
+ export {
12
+ asCopy,
13
+ ensureError
14
+ };
@@ -0,0 +1,8 @@
1
+ export declare function generatePatchObj(from: Record<string | number | symbol, unknown>, to: Record<string | number | symbol, unknown>): Record<string | number | symbol, unknown>;
2
+ export declare function applyPatch(from: Record<string | number | symbol, unknown>, patch: Record<string | number | symbol, unknown>): Record<string | number | symbol, unknown>;
3
+ export declare function mergeObject(objA: Record<string | number | symbol, unknown> | [unknown], objB: Record<string | number | symbol, unknown> | [unknown]): unknown[] | {
4
+ [k: string]: unknown;
5
+ };
6
+ export declare function flattenObject(obj: Record<string | number | symbol, unknown>, path?: string[]): [string, unknown][];
7
+ export declare function isSensibleMargeApplicable(path: string): boolean;
8
+ export declare function isObjectMargeApplicable(path: string): boolean;