@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.
- package/LICENSE +21 -0
- package/README.md +49 -0
- package/dist/API/DirectFileManipulator.d.ts +2 -0
- package/dist/API/DirectFileManipulator.js +4 -0
- package/dist/API/DirectFileManipulatorV2.d.ts +150 -0
- package/dist/API/DirectFileManipulatorV2.js +424 -0
- package/dist/API/processSetting.d.ts +41 -0
- package/dist/API/processSetting.js +140 -0
- package/dist/ContentSplitter/ContentSplitter.d.ts +28 -0
- package/dist/ContentSplitter/ContentSplitter.js +5 -0
- package/dist/ContentSplitter/ContentSplitterBase.d.ts +51 -0
- package/dist/ContentSplitter/ContentSplitterBase.js +83 -0
- package/dist/ContentSplitter/ContentSplitterRabinKarp.d.ts +9 -0
- package/dist/ContentSplitter/ContentSplitterRabinKarp.js +32 -0
- package/dist/ContentSplitter/ContentSplitterV1.d.ts +9 -0
- package/dist/ContentSplitter/ContentSplitterV1.js +34 -0
- package/dist/ContentSplitter/ContentSplitterV2.d.ts +9 -0
- package/dist/ContentSplitter/ContentSplitterV2.js +34 -0
- package/dist/ContentSplitter/ContentSplitters.d.ts +12 -0
- package/dist/ContentSplitter/ContentSplitters.js +29 -0
- package/dist/bureau/bureau.d.ts +7 -0
- package/dist/bureau/bureau.js +5 -0
- package/dist/common/ConnectionString.d.ts +30 -0
- package/dist/common/ConnectionString.js +179 -0
- package/dist/common/LSError.d.ts +48 -0
- package/dist/common/LSError.js +112 -0
- package/dist/common/configForDoc.d.ts +79 -0
- package/dist/common/configForDoc.js +312 -0
- package/dist/common/coreEnvFunctions.d.ts +21 -0
- package/dist/common/coreEnvFunctions.js +22 -0
- package/dist/common/coreEnvVars.d.ts +3 -0
- package/dist/common/coreEnvVars.js +6 -0
- package/dist/common/i18n.d.ts +18 -0
- package/dist/common/i18n.js +7193 -0
- package/dist/common/logger.d.ts +2 -0
- package/dist/common/logger.js +1 -0
- package/dist/common/messages/combinedMessages.dev.d.ts +7 -0
- package/dist/common/messages/combinedMessages.dev.js +44 -0
- package/dist/common/messages/combinedMessages.prod.d.ts +9264 -0
- package/dist/common/messages/combinedMessages.prod.js +9271 -0
- package/dist/common/messages/de.d.ts +297 -0
- package/dist/common/messages/de.js +7 -0
- package/dist/common/messages/def.d.ts +1119 -0
- package/dist/common/messages/def.js +7 -0
- package/dist/common/messages/es.d.ts +689 -0
- package/dist/common/messages/es.js +7 -0
- package/dist/common/messages/fr.d.ts +582 -0
- package/dist/common/messages/fr.js +7 -0
- package/dist/common/messages/he.d.ts +583 -0
- package/dist/common/messages/he.js +7 -0
- package/dist/common/messages/ja.d.ts +838 -0
- package/dist/common/messages/ja.js +7 -0
- package/dist/common/messages/ko.d.ts +800 -0
- package/dist/common/messages/ko.js +7 -0
- package/dist/common/messages/ru.d.ts +858 -0
- package/dist/common/messages/ru.js +7 -0
- package/dist/common/messages/zh-tw.d.ts +384 -0
- package/dist/common/messages/zh-tw.js +7 -0
- package/dist/common/messages/zh.d.ts +1093 -0
- package/dist/common/messages/zh.js +7 -0
- package/dist/common/messagesJson/de.json +295 -0
- package/dist/common/messagesJson/en.json +1117 -0
- package/dist/common/messagesJson/es.json +687 -0
- package/dist/common/messagesJson/fr.json +580 -0
- package/dist/common/messagesJson/he.json +581 -0
- package/dist/common/messagesJson/ja.json +836 -0
- package/dist/common/messagesJson/ko.json +798 -0
- package/dist/common/messagesJson/ru.json +856 -0
- package/dist/common/messagesJson/zh-tw.json +382 -0
- package/dist/common/messagesJson/zh.json +1091 -0
- package/dist/common/models/auth.type.d.ts +41 -0
- package/dist/common/models/auth.type.js +0 -0
- package/dist/common/models/db.const.d.ts +20 -0
- package/dist/common/models/db.const.js +28 -0
- package/dist/common/models/db.definition.d.ts +56 -0
- package/dist/common/models/db.definition.js +6 -0
- package/dist/common/models/db.type.d.ts +142 -0
- package/dist/common/models/db.type.js +0 -0
- package/dist/common/models/diff.definition.d.ts +16 -0
- package/dist/common/models/diff.definition.js +0 -0
- package/dist/common/models/fileaccess.const.d.ts +7 -0
- package/dist/common/models/fileaccess.const.js +16 -0
- package/dist/common/models/fileaccess.type.d.ts +72 -0
- package/dist/common/models/fileaccess.type.js +0 -0
- package/dist/common/models/redflag.const.d.ts +32 -0
- package/dist/common/models/redflag.const.js +27 -0
- package/dist/common/models/setting.const.d.ts +49 -0
- package/dist/common/models/setting.const.defaults.d.ts +3 -0
- package/dist/common/models/setting.const.defaults.js +185 -0
- package/dist/common/models/setting.const.js +68 -0
- package/dist/common/models/setting.const.preferred.d.ts +5 -0
- package/dist/common/models/setting.const.preferred.js +35 -0
- package/dist/common/models/setting.const.qr.d.ts +2 -0
- package/dist/common/models/setting.const.qr.js +174 -0
- package/dist/common/models/setting.type.d.ts +900 -0
- package/dist/common/models/setting.type.js +8 -0
- package/dist/common/models/shared.const.behabiour.d.ts +28 -0
- package/dist/common/models/shared.const.behabiour.js +36 -0
- package/dist/common/models/shared.const.d.ts +5 -0
- package/dist/common/models/shared.const.js +12 -0
- package/dist/common/models/shared.const.symbols.d.ts +9 -0
- package/dist/common/models/shared.const.symbols.js +20 -0
- package/dist/common/models/shared.definition.configNames.d.ts +36 -0
- package/dist/common/models/shared.definition.configNames.js +203 -0
- package/dist/common/models/shared.definition.d.ts +22 -0
- package/dist/common/models/shared.definition.js +24 -0
- package/dist/common/models/shared.type.util.d.ts +8 -0
- package/dist/common/models/shared.type.util.js +0 -0
- package/dist/common/models/sync.definition.d.ts +18 -0
- package/dist/common/models/sync.definition.js +20 -0
- package/dist/common/models/tweak.definition.d.ts +191 -0
- package/dist/common/models/tweak.definition.js +77 -0
- package/dist/common/rosetta.d.ts +42 -0
- package/dist/common/rosetta.js +57 -0
- package/dist/common/settingConstants.d.ts +216 -0
- package/dist/common/settingConstants.js +434 -0
- package/dist/common/typeUtils.d.ts +17 -0
- package/dist/common/typeUtils.js +51 -0
- package/dist/common/types.d.ts +107 -0
- package/dist/common/types.js +212 -0
- package/dist/common/utils.d.ts +129 -0
- package/dist/common/utils.doc.d.ts +11 -0
- package/dist/common/utils.doc.js +35 -0
- package/dist/common/utils.js +583 -0
- package/dist/common/utils.object.d.ts +2 -0
- package/dist/common/utils.object.js +14 -0
- package/dist/common/utils.patch.d.ts +8 -0
- package/dist/common/utils.patch.js +178 -0
- package/dist/common/utils.type.d.ts +1 -0
- package/dist/common/utils.type.js +0 -0
- package/dist/context.d.ts +8 -0
- package/dist/context.js +14 -0
- package/dist/databases/IndexedDBKeyValueDatabase.d.ts +26 -0
- package/dist/databases/IndexedDBKeyValueDatabase.js +130 -0
- package/dist/dataobject/StoredMap.d.ts +12 -0
- package/dist/dataobject/StoredMap.js +47 -0
- package/dist/dev/checks.d.ts +5 -0
- package/dist/dev/checks.js +38 -0
- package/dist/encryption/encryptHKDF.d.ts +3 -0
- package/dist/encryption/encryptHKDF.js +7 -0
- package/dist/encryption/stringEncryption.d.ts +27 -0
- package/dist/encryption/stringEncryption.js +59 -0
- package/dist/events/coreEvents.d.ts +54 -0
- package/dist/events/coreEvents.js +46 -0
- package/dist/hub/hub.d.ts +11 -0
- package/dist/hub/hub.js +7 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -0
- package/dist/interfaces/AsyncActivityRunner.d.ts +18 -0
- package/dist/interfaces/AsyncActivityRunner.js +7 -0
- package/dist/interfaces/Confirm.d.ts +17 -0
- package/dist/interfaces/Confirm.js +0 -0
- package/dist/interfaces/DatabaseFileAccess.d.ts +14 -0
- package/dist/interfaces/DatabaseFileAccess.js +0 -0
- package/dist/interfaces/DatabaseRebuilder.d.ts +13 -0
- package/dist/interfaces/DatabaseRebuilder.js +0 -0
- package/dist/interfaces/FileHandler.d.ts +13 -0
- package/dist/interfaces/FileHandler.js +0 -0
- package/dist/interfaces/KeyValueDatabase.d.ts +11 -0
- package/dist/interfaces/KeyValueDatabase.js +0 -0
- package/dist/interfaces/ServiceModule.d.ts +59 -0
- package/dist/interfaces/ServiceModule.js +19 -0
- package/dist/interfaces/StorageAccess.d.ts +44 -0
- package/dist/interfaces/StorageAccess.js +0 -0
- package/dist/interfaces/StorageEventManager.d.ts +16 -0
- package/dist/interfaces/StorageEventManager.js +5 -0
- package/dist/managers/ChangeManager.d.ts +61 -0
- package/dist/managers/ChangeManager.js +104 -0
- package/dist/managers/ChunkDeliveryCoordinator.d.ts +51 -0
- package/dist/managers/ChunkDeliveryCoordinator.js +136 -0
- package/dist/managers/ChunkFetcher.d.ts +44 -0
- package/dist/managers/ChunkFetcher.js +251 -0
- package/dist/managers/ChunkManager.d.ts +2 -0
- package/dist/managers/ChunkManager.js +4 -0
- package/dist/managers/ConflictManager.d.ts +37 -0
- package/dist/managers/ConflictManager.js +322 -0
- package/dist/managers/EntryManager/EntryManager.d.ts +37 -0
- package/dist/managers/EntryManager/EntryManager.js +73 -0
- package/dist/managers/EntryManager/EntryManagerImpls.d.ts +74 -0
- package/dist/managers/EntryManager/EntryManagerImpls.js +499 -0
- package/dist/managers/HashManager/HashManager.d.ts +60 -0
- package/dist/managers/HashManager/HashManager.js +97 -0
- package/dist/managers/HashManager/HashManagerCore.d.ts +114 -0
- package/dist/managers/HashManager/HashManagerCore.js +99 -0
- package/dist/managers/HashManager/PureJSHashManager.d.ts +77 -0
- package/dist/managers/HashManager/PureJSHashManager.js +84 -0
- package/dist/managers/HashManager/XXHashHashManager.d.ts +96 -0
- package/dist/managers/HashManager/XXHashHashManager.js +111 -0
- package/dist/managers/LayeredChunkManager/ArrivalWaitLayer.d.ts +30 -0
- package/dist/managers/LayeredChunkManager/ArrivalWaitLayer.js +115 -0
- package/dist/managers/LayeredChunkManager/CacheLayer.d.ts +59 -0
- package/dist/managers/LayeredChunkManager/CacheLayer.js +161 -0
- package/dist/managers/LayeredChunkManager/ChunkLayerInterfaces.d.ts +37 -0
- package/dist/managers/LayeredChunkManager/ChunkLayerInterfaces.js +0 -0
- package/dist/managers/LayeredChunkManager/DatabaseReadLayer.d.ts +14 -0
- package/dist/managers/LayeredChunkManager/DatabaseReadLayer.js +78 -0
- package/dist/managers/LayeredChunkManager/DatabaseWriteLayer.d.ts +11 -0
- package/dist/managers/LayeredChunkManager/DatabaseWriteLayer.js +43 -0
- package/dist/managers/LayeredChunkManager/HotPackLayer.d.ts +9 -0
- package/dist/managers/LayeredChunkManager/HotPackLayer.js +8 -0
- package/dist/managers/LayeredChunkManager/types.d.ts +39 -0
- package/dist/managers/LayeredChunkManager/types.js +0 -0
- package/dist/managers/LayeredChunkManager.d.ts +53 -0
- package/dist/managers/LayeredChunkManager.js +240 -0
- package/dist/managers/LiveSyncManagers.d.ts +48 -0
- package/dist/managers/LiveSyncManagers.js +136 -0
- package/dist/managers/StorageEventManager.d.ts +135 -0
- package/dist/managers/StorageEventManager.js +564 -0
- package/dist/managers/StorageProcessingManager.d.ts +14 -0
- package/dist/managers/StorageProcessingManager.js +48 -0
- package/dist/managers/adapters/IStorageEventConverterAdapter.d.ts +16 -0
- package/dist/managers/adapters/IStorageEventConverterAdapter.js +0 -0
- package/dist/managers/adapters/IStorageEventManagerAdapter.d.ts +18 -0
- package/dist/managers/adapters/IStorageEventManagerAdapter.js +0 -0
- package/dist/managers/adapters/IStorageEventPersistenceAdapter.d.ts +15 -0
- package/dist/managers/adapters/IStorageEventPersistenceAdapter.js +0 -0
- package/dist/managers/adapters/IStorageEventStatusAdapter.d.ts +13 -0
- package/dist/managers/adapters/IStorageEventStatusAdapter.js +0 -0
- package/dist/managers/adapters/IStorageEventTypeGuardAdapter.d.ts +16 -0
- package/dist/managers/adapters/IStorageEventTypeGuardAdapter.js +0 -0
- package/dist/managers/adapters/IStorageEventWatchAdapter.d.ts +21 -0
- package/dist/managers/adapters/IStorageEventWatchAdapter.js +0 -0
- package/dist/managers/adapters/index.d.ts +6 -0
- package/dist/managers/adapters/index.js +0 -0
- package/dist/mock_and_interop/stores.d.ts +21 -0
- package/dist/mock_and_interop/stores.js +15 -0
- package/dist/mock_and_interop/wrapper.d.ts +7 -0
- package/dist/mock_and_interop/wrapper.js +37 -0
- package/dist/mods.d.ts +1 -0
- package/dist/mods.js +18 -0
- package/dist/platform/browser/index.d.ts +1 -0
- package/dist/platform/browser/index.js +10 -0
- package/dist/platform/browser/storage.d.ts +35 -0
- package/dist/platform/browser/storage.js +139 -0
- package/dist/platform/node/index.d.ts +23 -0
- package/dist/platform/node/index.js +33 -0
- package/dist/platform/node/storage.d.ts +31 -0
- package/dist/platform/node/storage.js +104 -0
- package/dist/platform/storagePath.d.ts +7 -0
- package/dist/platform/storagePath.js +20 -0
- package/dist/pouchdb/LiveSyncDBFunctions.d.ts +14 -0
- package/dist/pouchdb/LiveSyncDBFunctions.js +129 -0
- package/dist/pouchdb/LiveSyncLocalDB.d.ts +196 -0
- package/dist/pouchdb/LiveSyncLocalDB.js +381 -0
- package/dist/pouchdb/PouchDBConstructor.d.ts +3 -0
- package/dist/pouchdb/PouchDBConstructor.js +0 -0
- package/dist/pouchdb/ReplicatorShim.d.ts +51 -0
- package/dist/pouchdb/ReplicatorShim.js +109 -0
- package/dist/pouchdb/StreamingFetch.d.ts +19 -0
- package/dist/pouchdb/StreamingFetch.js +263 -0
- package/dist/pouchdb/chunks.d.ts +38 -0
- package/dist/pouchdb/chunks.js +314 -0
- package/dist/pouchdb/compress.d.ts +11 -0
- package/dist/pouchdb/compress.js +99 -0
- package/dist/pouchdb/encryption.d.ts +20 -0
- package/dist/pouchdb/encryption.js +458 -0
- package/dist/pouchdb/negotiation.d.ts +9 -0
- package/dist/pouchdb/negotiation.js +109 -0
- package/dist/pouchdb/pouchdb-browser.d.ts +2 -0
- package/dist/pouchdb/pouchdb-browser.js +96 -0
- package/dist/pouchdb/pouchdb-http.d.ts +2 -0
- package/dist/pouchdb/pouchdb-http.js +94 -0
- package/dist/pouchdb/pouchdb-test.d.ts +2 -0
- package/dist/pouchdb/pouchdb-test.js +12 -0
- package/dist/pouchdb/utils_couchdb.d.ts +4 -0
- package/dist/pouchdb/utils_couchdb.js +38 -0
- package/dist/replication/LiveSyncAbstractReplicator.d.ts +69 -0
- package/dist/replication/LiveSyncAbstractReplicator.js +92 -0
- package/dist/replication/SyncParamsHandler.d.ts +35 -0
- package/dist/replication/SyncParamsHandler.js +118 -0
- package/dist/replication/couchdb/LiveSyncReplicator.d.ts +85 -0
- package/dist/replication/couchdb/LiveSyncReplicator.js +1132 -0
- package/dist/replication/httplib.d.ts +75 -0
- package/dist/replication/httplib.js +187 -0
- package/dist/replication/journal/JournalSyncCore.d.ts +70 -0
- package/dist/replication/journal/JournalSyncCore.js +737 -0
- package/dist/replication/journal/JournalSyncTypes.d.ts +9 -0
- package/dist/replication/journal/JournalSyncTypes.js +11 -0
- package/dist/replication/journal/LiveSyncJournalReplicator.d.ts +40 -0
- package/dist/replication/journal/LiveSyncJournalReplicator.js +294 -0
- package/dist/replication/journal/LiveSyncJournalReplicatorEnv.d.ts +3 -0
- package/dist/replication/journal/LiveSyncJournalReplicatorEnv.js +0 -0
- package/dist/replication/journal/objectstore/JournalStorageAdapter.d.ts +15 -0
- package/dist/replication/journal/objectstore/JournalStorageAdapter.js +0 -0
- package/dist/replication/journal/objectstore/MinioStorageAdapter.d.ts +21 -0
- package/dist/replication/journal/objectstore/MinioStorageAdapter.js +204 -0
- package/dist/replication/trystero/LiveSyncTrysteroReplicator.d.ts +90 -0
- package/dist/replication/trystero/LiveSyncTrysteroReplicator.js +380 -0
- package/dist/replication/trystero/P2PLogCollector.d.ts +8 -0
- package/dist/replication/trystero/P2PLogCollector.js +91 -0
- package/dist/replication/trystero/P2PReplicatorBase.d.ts +19 -0
- package/dist/replication/trystero/P2PReplicatorBase.js +0 -0
- package/dist/replication/trystero/P2PReplicatorCore.d.ts +12 -0
- package/dist/replication/trystero/P2PReplicatorCore.js +126 -0
- package/dist/replication/trystero/P2PReplicatorPaneCommon.d.ts +41 -0
- package/dist/replication/trystero/P2PReplicatorPaneCommon.js +20 -0
- package/dist/replication/trystero/ProxiedDB.d.ts +13 -0
- package/dist/replication/trystero/ProxiedDB.js +20 -0
- package/dist/replication/trystero/TrysteroReplicator.d.ts +152 -0
- package/dist/replication/trystero/TrysteroReplicator.js +683 -0
- package/dist/replication/trystero/TrysteroReplicatorP2PClient.d.ts +19 -0
- package/dist/replication/trystero/TrysteroReplicatorP2PClient.js +80 -0
- package/dist/replication/trystero/TrysteroReplicatorP2PConnection.d.ts +2 -0
- package/dist/replication/trystero/TrysteroReplicatorP2PConnection.js +4 -0
- package/dist/replication/trystero/TrysteroReplicatorP2PServer.d.ts +117 -0
- package/dist/replication/trystero/TrysteroReplicatorP2PServer.js +540 -0
- package/dist/replication/trystero/UseP2PReplicatorResult.d.ts +11 -0
- package/dist/replication/trystero/UseP2PReplicatorResult.js +0 -0
- package/dist/replication/trystero/addP2PEventHandlers.d.ts +35 -0
- package/dist/replication/trystero/addP2PEventHandlers.js +43 -0
- package/dist/replication/trystero/rpcCompat.d.ts +1 -0
- package/dist/replication/trystero/rpcCompat.js +9 -0
- package/dist/replication/trystero/types.d.ts +95 -0
- package/dist/replication/trystero/types.js +27 -0
- package/dist/replication/trystero/useP2PReplicatorCommands.d.ts +7 -0
- package/dist/replication/trystero/useP2PReplicatorCommands.js +25 -0
- package/dist/replication/trystero/useP2PReplicatorFeature.d.ts +17 -0
- package/dist/replication/trystero/useP2PReplicatorFeature.js +82 -0
- package/dist/rpc/RpcRoom.d.ts +24 -0
- package/dist/rpc/RpcRoom.js +300 -0
- package/dist/rpc/RpcSession.d.ts +9 -0
- package/dist/rpc/RpcSession.js +32 -0
- package/dist/rpc/chunking.d.ts +11 -0
- package/dist/rpc/chunking.js +58 -0
- package/dist/rpc/errors.d.ts +8 -0
- package/dist/rpc/errors.js +26 -0
- package/dist/rpc/index.d.ts +6 -0
- package/dist/rpc/index.js +12 -0
- package/dist/rpc/pouchdb/RpcPouchDBProxy.d.ts +75 -0
- package/dist/rpc/pouchdb/RpcPouchDBProxy.js +115 -0
- package/dist/rpc/pouchdb/RpcPouchDBServer.d.ts +16 -0
- package/dist/rpc/pouchdb/RpcPouchDBServer.js +55 -0
- package/dist/rpc/transports/DiagRTCPeerConnections.d.ts +24 -0
- package/dist/rpc/transports/DiagRTCPeerConnections.js +208 -0
- package/dist/rpc/transports/DiagRTCPeerConnections.types.d.ts +64 -0
- package/dist/rpc/transports/DiagRTCPeerConnections.types.js +12 -0
- package/dist/rpc/transports/DiagRTCPeerConnections.utils.d.ts +33 -0
- package/dist/rpc/transports/DiagRTCPeerConnections.utils.js +217 -0
- package/dist/rpc/transports/TrysteroTransport.d.ts +216 -0
- package/dist/rpc/transports/TrysteroTransport.js +134 -0
- package/dist/rpc/transports/trysteroUtils.d.ts +3 -0
- package/dist/rpc/transports/trysteroUtils.js +37 -0
- package/dist/rpc/types.d.ts +75 -0
- package/dist/rpc/types.js +6 -0
- package/dist/serviceFeatures/checkRemoteSize.d.ts +28 -0
- package/dist/serviceFeatures/checkRemoteSize.js +178 -0
- package/dist/serviceFeatures/offlineScanner.d.ts +128 -0
- package/dist/serviceFeatures/offlineScanner.js +553 -0
- package/dist/serviceFeatures/prepareDatabaseForUse.d.ts +20 -0
- package/dist/serviceFeatures/prepareDatabaseForUse.js +39 -0
- package/dist/serviceFeatures/remoteConfig.d.ts +46 -0
- package/dist/serviceFeatures/remoteConfig.js +247 -0
- package/dist/serviceFeatures/setupObsidian/qrCode.d.ts +4 -0
- package/dist/serviceFeatures/setupObsidian/qrCode.js +67 -0
- package/dist/serviceFeatures/setupObsidian/setupUri.d.ts +7 -0
- package/dist/serviceFeatures/setupObsidian/setupUri.js +70 -0
- package/dist/serviceFeatures/setupObsidian/types.d.ts +2 -0
- package/dist/serviceFeatures/setupObsidian/types.js +0 -0
- package/dist/serviceFeatures/targetFilter.d.ts +24 -0
- package/dist/serviceFeatures/targetFilter.js +178 -0
- package/dist/serviceModules/FileAccessBase.d.ts +93 -0
- package/dist/serviceModules/FileAccessBase.js +219 -0
- package/dist/serviceModules/Rebuilder.d.ts +92 -0
- package/dist/serviceModules/Rebuilder.js +449 -0
- package/dist/serviceModules/ServiceDatabaseFileAccessBase.d.ts +40 -0
- package/dist/serviceModules/ServiceDatabaseFileAccessBase.js +306 -0
- package/dist/serviceModules/ServiceFileAccessBase.d.ts +64 -0
- package/dist/serviceModules/ServiceFileAccessBase.js +312 -0
- package/dist/serviceModules/ServiceFileHandlerBase.d.ts +52 -0
- package/dist/serviceModules/ServiceFileHandlerBase.js +493 -0
- package/dist/serviceModules/ServiceModuleBase.d.ts +10 -0
- package/dist/serviceModules/ServiceModuleBase.js +13 -0
- package/dist/serviceModules/adapters/IConversionAdapter.d.ts +15 -0
- package/dist/serviceModules/adapters/IConversionAdapter.js +0 -0
- package/dist/serviceModules/adapters/IFileSystemAdapter.d.ts +47 -0
- package/dist/serviceModules/adapters/IFileSystemAdapter.js +0 -0
- package/dist/serviceModules/adapters/IPathAdapter.d.ts +15 -0
- package/dist/serviceModules/adapters/IPathAdapter.js +0 -0
- package/dist/serviceModules/adapters/IStorageAdapter.d.ts +56 -0
- package/dist/serviceModules/adapters/IStorageAdapter.js +0 -0
- package/dist/serviceModules/adapters/ITypeGuardAdapter.d.ts +14 -0
- package/dist/serviceModules/adapters/ITypeGuardAdapter.js +0 -0
- package/dist/serviceModules/adapters/IVaultAdapter.d.ts +51 -0
- package/dist/serviceModules/adapters/IVaultAdapter.js +0 -0
- package/dist/serviceModules/adapters/index.d.ts +6 -0
- package/dist/serviceModules/adapters/index.js +0 -0
- package/dist/services/BrowserServices.d.ts +36 -0
- package/dist/services/BrowserServices.js +123 -0
- package/dist/services/HeadlessServices.d.ts +14 -0
- package/dist/services/HeadlessServices.js +144 -0
- package/dist/services/InjectableServices.d.ts +1 -0
- package/dist/services/InjectableServices.js +4 -0
- package/dist/services/ServiceHub.d.ts +82 -0
- package/dist/services/ServiceHub.js +66 -0
- package/dist/services/base/APIService.d.ts +93 -0
- package/dist/services/base/APIService.js +44 -0
- package/dist/services/base/AppLifecycleService.d.ts +132 -0
- package/dist/services/base/AppLifecycleService.js +123 -0
- package/dist/services/base/ConfigService.d.ts +7 -0
- package/dist/services/base/ConfigService.js +6 -0
- package/dist/services/base/ConflictService.d.ts +54 -0
- package/dist/services/base/ConflictService.js +22 -0
- package/dist/services/base/ControlService.d.ts +54 -0
- package/dist/services/base/ControlService.js +103 -0
- package/dist/services/base/DatabaseEventService.d.ts +38 -0
- package/dist/services/base/DatabaseEventService.js +38 -0
- package/dist/services/base/DatabaseService.d.ts +40 -0
- package/dist/services/base/DatabaseService.js +79 -0
- package/dist/services/base/FileProcessingService.d.ts +25 -0
- package/dist/services/base/FileProcessingService.js +28 -0
- package/dist/services/base/IService.d.ts +284 -0
- package/dist/services/base/IService.js +1 -0
- package/dist/services/base/KeyValueDBService.d.ts +42 -0
- package/dist/services/base/KeyValueDBService.js +133 -0
- package/dist/services/base/MessageTranslator.d.ts +6 -0
- package/dist/services/base/MessageTranslator.js +4 -0
- package/dist/services/base/PathService.d.ts +38 -0
- package/dist/services/base/PathService.js +66 -0
- package/dist/services/base/RemoteService.d.ts +61 -0
- package/dist/services/base/RemoteService.js +212 -0
- package/dist/services/base/ReplicationService.d.ts +92 -0
- package/dist/services/base/ReplicationService.js +261 -0
- package/dist/services/base/ReplicatorService.d.ts +66 -0
- package/dist/services/base/ReplicatorService.js +164 -0
- package/dist/services/base/ServiceBase.d.ts +33 -0
- package/dist/services/base/ServiceBase.js +27 -0
- package/dist/services/base/SettingService.d.ts +112 -0
- package/dist/services/base/SettingService.js +543 -0
- package/dist/services/base/TestService.d.ts +28 -0
- package/dist/services/base/TestService.js +19 -0
- package/dist/services/base/TweakValueService.d.ts +40 -0
- package/dist/services/base/TweakValueService.js +6 -0
- package/dist/services/base/UnresolvedErrorManager.d.ts +15 -0
- package/dist/services/base/UnresolvedErrorManager.js +44 -0
- package/dist/services/base/VaultService.d.ts +69 -0
- package/dist/services/base/VaultService.js +70 -0
- package/dist/services/implements/base/SvelteDialog.d.ts +79 -0
- package/dist/services/implements/base/SvelteDialog.js +134 -0
- package/dist/services/implements/base/UIService.d.ts +24 -0
- package/dist/services/implements/base/UIService.js +37 -0
- package/dist/services/implements/browser/BrowserAPIService.d.ts +54 -0
- package/dist/services/implements/browser/BrowserAPIService.js +298 -0
- package/dist/services/implements/browser/BrowserDatabaseService.d.ts +7 -0
- package/dist/services/implements/browser/BrowserDatabaseService.js +10 -0
- package/dist/services/implements/browser/ConfigServiceBrowserCompat.d.ts +16 -0
- package/dist/services/implements/browser/ConfigServiceBrowserCompat.js +23 -0
- package/dist/services/implements/headless/HeadlessAPIService.d.ts +52 -0
- package/dist/services/implements/headless/HeadlessAPIService.js +127 -0
- package/dist/services/implements/headless/HeadlessDatabaseService.d.ts +7 -0
- package/dist/services/implements/headless/HeadlessDatabaseService.js +10 -0
- package/dist/services/implements/injectable/InjectableAPIService.d.ts +7 -0
- package/dist/services/implements/injectable/InjectableAPIService.js +18 -0
- package/dist/services/implements/injectable/InjectableAppLifecycleService.d.ts +11 -0
- package/dist/services/implements/injectable/InjectableAppLifecycleService.js +14 -0
- package/dist/services/implements/injectable/InjectableConflictService.d.ts +11 -0
- package/dist/services/implements/injectable/InjectableConflictService.js +14 -0
- package/dist/services/implements/injectable/InjectableDatabaseEventService.d.ts +4 -0
- package/dist/services/implements/injectable/InjectableDatabaseEventService.js +7 -0
- package/dist/services/implements/injectable/InjectableFileProcessingService.d.ts +4 -0
- package/dist/services/implements/injectable/InjectableFileProcessingService.js +6 -0
- package/dist/services/implements/injectable/InjectablePathService.d.ts +12 -0
- package/dist/services/implements/injectable/InjectablePathService.js +36 -0
- package/dist/services/implements/injectable/InjectableRemoteService.d.ts +4 -0
- package/dist/services/implements/injectable/InjectableRemoteService.js +7 -0
- package/dist/services/implements/injectable/InjectableReplicationService.d.ts +4 -0
- package/dist/services/implements/injectable/InjectableReplicationService.js +6 -0
- package/dist/services/implements/injectable/InjectableReplicatorService.d.ts +4 -0
- package/dist/services/implements/injectable/InjectableReplicatorService.js +7 -0
- package/dist/services/implements/injectable/InjectableServiceHub.d.ts +72 -0
- package/dist/services/implements/injectable/InjectableServiceHub.js +125 -0
- package/dist/services/implements/injectable/InjectableServices.d.ts +36 -0
- package/dist/services/implements/injectable/InjectableServices.js +1 -0
- package/dist/services/implements/injectable/InjectableSettingService.d.ts +11 -0
- package/dist/services/implements/injectable/InjectableSettingService.js +33 -0
- package/dist/services/implements/injectable/InjectableTestService.d.ts +5 -0
- package/dist/services/implements/injectable/InjectableTestService.js +8 -0
- package/dist/services/implements/injectable/InjectableTweakValueService.d.ts +15 -0
- package/dist/services/implements/injectable/InjectableTweakValueService.js +12 -0
- package/dist/services/implements/injectable/InjectableVaultService.d.ts +9 -0
- package/dist/services/implements/injectable/InjectableVaultService.js +20 -0
- package/dist/services/lib/HandlerUtils.d.ts +374 -0
- package/dist/services/lib/HandlerUtils.js +412 -0
- package/dist/services/lib/logUtils.d.ts +13 -0
- package/dist/services/lib/logUtils.js +28 -0
- package/dist/services/lib/remoteActivity.d.ts +13 -0
- package/dist/services/lib/remoteActivity.js +11 -0
- package/dist/string_and_binary/chunks.d.ts +10 -0
- package/dist/string_and_binary/chunks.js +561 -0
- package/dist/string_and_binary/convert.d.ts +8 -0
- package/dist/string_and_binary/convert.js +46 -0
- package/dist/string_and_binary/hash.d.ts +2 -0
- package/dist/string_and_binary/hash.js +1 -0
- package/dist/string_and_binary/path.d.ts +35 -0
- package/dist/string_and_binary/path.js +240 -0
- package/dist/worker/bg.common.d.ts +2 -0
- package/dist/worker/bg.common.js +6 -0
- package/dist/worker/bg.worker.d.ts +1 -0
- package/dist/worker/bg.worker.encryption.d.ts +7 -0
- package/dist/worker/bg.worker.encryption.js +30 -0
- package/dist/worker/bg.worker.js +14 -0
- package/dist/worker/bg.worker.splitting.d.ts +6 -0
- package/dist/worker/bg.worker.splitting.js +36 -0
- package/dist/worker/bgWorker.d.ts +25 -0
- package/dist/worker/bgWorker.direct.d.ts +40 -0
- package/dist/worker/bgWorker.direct.js +65 -0
- package/dist/worker/bgWorker.encryption.d.ts +22 -0
- package/dist/worker/bgWorker.encryption.js +40 -0
- package/dist/worker/bgWorker.js +348 -0
- package/dist/worker/bgWorker.splitting.d.ts +27 -0
- package/dist/worker/bgWorker.splitting.js +123 -0
- package/dist/worker/universalTypes.d.ts +63 -0
- package/dist/worker/universalTypes.js +4 -0
- package/docs/development.md +51 -0
- package/docs/platform-storage.md +60 -0
- package/docs/releasing.md +69 -0
- package/package.json +693 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
const PROXY_SCHEME = "https";
|
|
2
|
+
function parseSlsUri(uriString) {
|
|
3
|
+
const match = uriString.match(/^sls\+([^:]+):(.*)$/);
|
|
4
|
+
if (!match) {
|
|
5
|
+
throw new Error(`Unsupported URI: ${uriString}`);
|
|
6
|
+
}
|
|
7
|
+
const subscheme = match[1];
|
|
8
|
+
const rest = match[2];
|
|
9
|
+
return { url: new URL(`${PROXY_SCHEME}:${rest}`), subscheme };
|
|
10
|
+
}
|
|
11
|
+
function withSlsScheme(url, subscheme) {
|
|
12
|
+
const out = url.toString();
|
|
13
|
+
return `sls+${subscheme}:${out.slice(PROXY_SCHEME.length + 1)}`;
|
|
14
|
+
}
|
|
15
|
+
class ConnectionStringParser {
|
|
16
|
+
/**
|
|
17
|
+
* Restore settings from URI
|
|
18
|
+
*/
|
|
19
|
+
static parse(uriString) {
|
|
20
|
+
const match = uriString.match(/^sls\+([^:]+):/);
|
|
21
|
+
if (!match) {
|
|
22
|
+
throw new Error(`Unsupported URI: ${uriString}`);
|
|
23
|
+
}
|
|
24
|
+
const subscheme = match[1];
|
|
25
|
+
if (subscheme === "p2p") {
|
|
26
|
+
return {
|
|
27
|
+
type: "p2p",
|
|
28
|
+
settings: this.parseP2P(uriString)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const { url } = parseSlsUri(uriString);
|
|
32
|
+
switch (subscheme) {
|
|
33
|
+
case "http":
|
|
34
|
+
case "https":
|
|
35
|
+
return {
|
|
36
|
+
type: "couchdb",
|
|
37
|
+
settings: this.parseCouchDB(url, subscheme)
|
|
38
|
+
};
|
|
39
|
+
case "s3":
|
|
40
|
+
return {
|
|
41
|
+
type: "s3",
|
|
42
|
+
settings: this.parseS3(url)
|
|
43
|
+
};
|
|
44
|
+
default:
|
|
45
|
+
throw new Error(`Unsupported protocol: sls+${subscheme}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 設定からURIを生成する
|
|
50
|
+
*/
|
|
51
|
+
static serialize(config) {
|
|
52
|
+
switch (config.type) {
|
|
53
|
+
case "couchdb":
|
|
54
|
+
return this.serializeCouchDB(config.settings);
|
|
55
|
+
case "s3":
|
|
56
|
+
return this.serializeS3(config.settings);
|
|
57
|
+
case "p2p":
|
|
58
|
+
return this.serializeP2P(config.settings);
|
|
59
|
+
default:
|
|
60
|
+
throw new Error(`Unsupported type: ${config.type}`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
static parseCouchDB(url, originalScheme) {
|
|
64
|
+
return {
|
|
65
|
+
couchDB_URI: `${originalScheme}://${url.host}${url.pathname === "/" ? "" : url.pathname}`,
|
|
66
|
+
couchDB_USER: decodeURIComponent(url.username),
|
|
67
|
+
couchDB_PASSWORD: decodeURIComponent(url.password),
|
|
68
|
+
couchDB_DBNAME: url.searchParams.get("db") || "",
|
|
69
|
+
couchDB_CustomHeaders: url.searchParams.get("headers") || "",
|
|
70
|
+
useJWT: url.searchParams.get("useJWT") === "true",
|
|
71
|
+
jwtAlgorithm: url.searchParams.get("jwtAlg") || "",
|
|
72
|
+
jwtKey: url.searchParams.get("jwtKey") || "",
|
|
73
|
+
jwtKid: url.searchParams.get("jwtKid") || "",
|
|
74
|
+
jwtSub: url.searchParams.get("jwtSub") || "",
|
|
75
|
+
jwtExpDuration: parseInt(url.searchParams.get("jwtExp") || "5"),
|
|
76
|
+
useRequestAPI: url.searchParams.get("useRequestAPI") === "true"
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
static serializeCouchDB(settings) {
|
|
80
|
+
const url = new URL(settings.couchDB_URI);
|
|
81
|
+
const subscheme = url.protocol.replace(":", "");
|
|
82
|
+
const newUrl = new URL(`${PROXY_SCHEME}://${url.host}${url.pathname}`);
|
|
83
|
+
newUrl.username = encodeURIComponent(settings.couchDB_USER);
|
|
84
|
+
newUrl.password = encodeURIComponent(settings.couchDB_PASSWORD);
|
|
85
|
+
newUrl.searchParams.set("db", settings.couchDB_DBNAME);
|
|
86
|
+
if (settings.couchDB_CustomHeaders) newUrl.searchParams.set("headers", settings.couchDB_CustomHeaders);
|
|
87
|
+
if (settings.useJWT) {
|
|
88
|
+
newUrl.searchParams.set("useJWT", "true");
|
|
89
|
+
newUrl.searchParams.set("jwtAlg", settings.jwtAlgorithm);
|
|
90
|
+
if (settings.jwtKey) newUrl.searchParams.set("jwtKey", settings.jwtKey);
|
|
91
|
+
if (settings.jwtKid) newUrl.searchParams.set("jwtKid", settings.jwtKid);
|
|
92
|
+
if (settings.jwtSub) newUrl.searchParams.set("jwtSub", settings.jwtSub);
|
|
93
|
+
newUrl.searchParams.set("jwtExp", `${settings.jwtExpDuration || 5}`);
|
|
94
|
+
}
|
|
95
|
+
if (settings.useRequestAPI) newUrl.searchParams.set("useRequestAPI", "true");
|
|
96
|
+
return withSlsScheme(newUrl, subscheme);
|
|
97
|
+
}
|
|
98
|
+
static parseS3(url) {
|
|
99
|
+
const endpoint = url.searchParams.get("endpoint") || `https://${url.host}`;
|
|
100
|
+
return {
|
|
101
|
+
accessKey: decodeURIComponent(url.username),
|
|
102
|
+
secretKey: decodeURIComponent(url.password),
|
|
103
|
+
endpoint,
|
|
104
|
+
bucket: url.searchParams.get("bucket") || "",
|
|
105
|
+
region: url.searchParams.get("region") || "auto",
|
|
106
|
+
bucketPrefix: url.searchParams.get("prefix") || "",
|
|
107
|
+
useCustomRequestHandler: url.searchParams.get("useProxy") === "true",
|
|
108
|
+
bucketCustomHeaders: url.searchParams.get("headers") || "",
|
|
109
|
+
forcePathStyle: url.searchParams.get("pathStyle") !== "false"
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
static serializeS3(settings) {
|
|
113
|
+
const url = new URL(settings.endpoint);
|
|
114
|
+
const newUrl = new URL(`${PROXY_SCHEME}://${url.host}`);
|
|
115
|
+
newUrl.username = encodeURIComponent(settings.accessKey);
|
|
116
|
+
newUrl.password = encodeURIComponent(settings.secretKey);
|
|
117
|
+
newUrl.searchParams.set("endpoint", settings.endpoint);
|
|
118
|
+
newUrl.searchParams.set("bucket", settings.bucket);
|
|
119
|
+
newUrl.searchParams.set("region", settings.region);
|
|
120
|
+
if (settings.bucketPrefix) newUrl.searchParams.set("prefix", settings.bucketPrefix);
|
|
121
|
+
if (settings.bucketCustomHeaders) newUrl.searchParams.set("headers", settings.bucketCustomHeaders);
|
|
122
|
+
if (settings.useCustomRequestHandler) newUrl.searchParams.set("useProxy", "true");
|
|
123
|
+
if (!settings.forcePathStyle) newUrl.searchParams.set("pathStyle", "false");
|
|
124
|
+
return withSlsScheme(newUrl, "s3");
|
|
125
|
+
}
|
|
126
|
+
static parseP2P(uriString) {
|
|
127
|
+
const match = uriString.match(/^sls\+p2p:\/\/([^?#]+)(?:\?([^#]*))?(?:#(.*))?$/);
|
|
128
|
+
if (!match) {
|
|
129
|
+
throw new Error(`Invalid P2P URI: ${uriString}`);
|
|
130
|
+
}
|
|
131
|
+
const authority = match[1];
|
|
132
|
+
const queryString = match[2] || "";
|
|
133
|
+
let userinfo = "";
|
|
134
|
+
let host = authority;
|
|
135
|
+
const lastAtIndex = authority.lastIndexOf("@");
|
|
136
|
+
if (lastAtIndex !== -1) {
|
|
137
|
+
userinfo = authority.slice(0, lastAtIndex);
|
|
138
|
+
host = authority.slice(lastAtIndex + 1);
|
|
139
|
+
}
|
|
140
|
+
let password = "";
|
|
141
|
+
if (userinfo) {
|
|
142
|
+
const colonIndex = userinfo.indexOf(":");
|
|
143
|
+
if (colonIndex !== -1) {
|
|
144
|
+
password = userinfo.slice(colonIndex + 1);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
const searchParams = new URLSearchParams(queryString);
|
|
148
|
+
return {
|
|
149
|
+
P2P_Enabled: searchParams.get("enabled") !== "false",
|
|
150
|
+
P2P_roomID: decodeURIComponent(host),
|
|
151
|
+
P2P_passphrase: decodeURIComponent(password),
|
|
152
|
+
P2P_relays: searchParams.get("relays") || "",
|
|
153
|
+
P2P_AppID: searchParams.get("appId") || "self-hosted-livesync",
|
|
154
|
+
P2P_AutoStart: searchParams.get("autoStart") === "true",
|
|
155
|
+
P2P_AutoBroadcast: searchParams.get("autoBroadcast") === "true",
|
|
156
|
+
P2P_turnServers: searchParams.get("turnServers") || "",
|
|
157
|
+
P2P_turnUsername: searchParams.get("turnUser") || "",
|
|
158
|
+
P2P_turnCredential: searchParams.get("turnPass") || ""
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
static serializeP2P(settings) {
|
|
162
|
+
const searchParams = new URLSearchParams();
|
|
163
|
+
if (!settings.P2P_Enabled) searchParams.set("enabled", "false");
|
|
164
|
+
searchParams.set("relays", settings.P2P_relays);
|
|
165
|
+
searchParams.set("appId", settings.P2P_AppID);
|
|
166
|
+
if (settings.P2P_AutoStart) searchParams.set("autoStart", "true");
|
|
167
|
+
if (settings.P2P_AutoBroadcast) searchParams.set("autoBroadcast", "true");
|
|
168
|
+
if (settings.P2P_turnServers) searchParams.set("turnServers", settings.P2P_turnServers);
|
|
169
|
+
if (settings.P2P_turnUsername) searchParams.set("turnUser", settings.P2P_turnUsername);
|
|
170
|
+
if (settings.P2P_turnCredential) searchParams.set("turnPass", settings.P2P_turnCredential);
|
|
171
|
+
const credentials = settings.P2P_passphrase ? `:${encodeURIComponent(settings.P2P_passphrase)}@` : "";
|
|
172
|
+
const host = encodeURIComponent(settings.P2P_roomID);
|
|
173
|
+
const query = searchParams.toString() ? `?${searchParams.toString()}` : "";
|
|
174
|
+
return `sls+p2p://${credentials}${host}${query}`;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
export {
|
|
178
|
+
ConnectionStringParser
|
|
179
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Constructor } from "./utils.type.js";
|
|
2
|
+
interface ErrorWithCause extends Error {
|
|
3
|
+
cause?: unknown;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Error class for Self-hosted LiveSync errors.
|
|
7
|
+
* This class extends the base LiveSyncError class and provides additional context for errors related to LiveSync operations.
|
|
8
|
+
* It includes a name property and a cause property to capture the original error.
|
|
9
|
+
* The status property returns the HTTP status code if available, defaulting to 500 for internal server errors.
|
|
10
|
+
* The class also includes static methods to check whether an error is caused by a specific error class.
|
|
11
|
+
*/
|
|
12
|
+
export declare class LiveSyncError extends Error implements ErrorWithCause {
|
|
13
|
+
name: string;
|
|
14
|
+
cause?: Error | object | string;
|
|
15
|
+
overrideStatus?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Returns the HTTP status code associated with the error, if available.
|
|
18
|
+
* If the error has a status property, it returns that; otherwise, it defaults to 500 (Internal Server Error).
|
|
19
|
+
* @returns {number} The HTTP status code.
|
|
20
|
+
*/
|
|
21
|
+
get status(): number;
|
|
22
|
+
/**
|
|
23
|
+
* Constructs a new LiveSyncError instance.
|
|
24
|
+
* @param message The error message to be displayed.
|
|
25
|
+
*/
|
|
26
|
+
constructor(message: string, options?: {
|
|
27
|
+
cause?: unknown;
|
|
28
|
+
status?: number;
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Determines whether an error is caused by a specific error class.
|
|
32
|
+
* @param error The error to examine.
|
|
33
|
+
* @param errorClass The error class to compare against.
|
|
34
|
+
* @returns True if the error is caused by the specified error class; otherwise, false.
|
|
35
|
+
* @example
|
|
36
|
+
* LiveSyncError.isCausedBy(someSyncParamsFetchError, SyncParamsNotFoundError); // Returns true if the error is caused by SyncParamsNotFoundError; this is usually represented as SyncParamsFetchError at the uppermost layer.
|
|
37
|
+
*/
|
|
38
|
+
static isCausedBy<T extends LiveSyncError>(error: unknown, errorClass: Constructor<T>): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Creates a new instance of the error class from an existing error.
|
|
41
|
+
* @param error The error to wrap.
|
|
42
|
+
* @returns A new instance of the error class with the original error's message and stack trace.
|
|
43
|
+
*/
|
|
44
|
+
static fromError<T extends typeof LiveSyncError>(this: T, error: unknown): InstanceType<T>;
|
|
45
|
+
}
|
|
46
|
+
export declare class LiveSyncFatalError extends LiveSyncError {
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
function getStatusFromError(error) {
|
|
2
|
+
if (error && typeof error === "object") {
|
|
3
|
+
if ("status" in error && typeof error.status === "number") {
|
|
4
|
+
return error.status;
|
|
5
|
+
}
|
|
6
|
+
if ("cause" in error) {
|
|
7
|
+
return getStatusFromError(error.cause);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return 500;
|
|
11
|
+
}
|
|
12
|
+
function getMessageFromError(error) {
|
|
13
|
+
if (error instanceof Error) {
|
|
14
|
+
return error.message;
|
|
15
|
+
}
|
|
16
|
+
if (typeof error === "object" && error !== null) {
|
|
17
|
+
return JSON.stringify(error);
|
|
18
|
+
}
|
|
19
|
+
return String(error);
|
|
20
|
+
}
|
|
21
|
+
function getErrorCause(error) {
|
|
22
|
+
if (error && typeof error === "object" && "cause" in error) {
|
|
23
|
+
return error.cause;
|
|
24
|
+
}
|
|
25
|
+
return void 0;
|
|
26
|
+
}
|
|
27
|
+
class LiveSyncError extends Error {
|
|
28
|
+
name = this.constructor.name;
|
|
29
|
+
cause;
|
|
30
|
+
overrideStatus;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the HTTP status code associated with the error, if available.
|
|
33
|
+
* If the error has a status property, it returns that; otherwise, it defaults to 500 (Internal Server Error).
|
|
34
|
+
* @returns {number} The HTTP status code.
|
|
35
|
+
*/
|
|
36
|
+
get status() {
|
|
37
|
+
if (this.overrideStatus !== void 0) {
|
|
38
|
+
return this.overrideStatus;
|
|
39
|
+
}
|
|
40
|
+
if (this.cause) {
|
|
41
|
+
const status = getStatusFromError(this.cause);
|
|
42
|
+
if (status !== void 0) {
|
|
43
|
+
return status;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return 500;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Constructs a new LiveSyncError instance.
|
|
50
|
+
* @param message The error message to be displayed.
|
|
51
|
+
*/
|
|
52
|
+
constructor(message, options) {
|
|
53
|
+
super(message);
|
|
54
|
+
if (options?.cause) {
|
|
55
|
+
const actualCause = getErrorCause(options);
|
|
56
|
+
this.cause = actualCause instanceof Error ? actualCause : new Error(`Unknown cause: ${getMessageFromError(actualCause)}`);
|
|
57
|
+
}
|
|
58
|
+
if (options?.status !== void 0) {
|
|
59
|
+
this.overrideStatus = options.status;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Determines whether an error is caused by a specific error class.
|
|
64
|
+
* @param error The error to examine.
|
|
65
|
+
* @param errorClass The error class to compare against.
|
|
66
|
+
* @returns True if the error is caused by the specified error class; otherwise, false.
|
|
67
|
+
* @example
|
|
68
|
+
* LiveSyncError.isCausedBy(someSyncParamsFetchError, SyncParamsNotFoundError); // Returns true if the error is caused by SyncParamsNotFoundError; this is usually represented as SyncParamsFetchError at the uppermost layer.
|
|
69
|
+
*/
|
|
70
|
+
static isCausedBy(error, errorClass) {
|
|
71
|
+
if (!error) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
if (error instanceof errorClass) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if (typeof error === "object" && !!error && "cause" in error) {
|
|
78
|
+
const cause = getErrorCause(error);
|
|
79
|
+
if (cause === error) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
return LiveSyncError.isCausedBy(cause, errorClass);
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Creates a new instance of the error class from an existing error.
|
|
88
|
+
* @param error The error to wrap.
|
|
89
|
+
* @returns A new instance of the error class with the original error's message and stack trace.
|
|
90
|
+
*/
|
|
91
|
+
static fromError(error) {
|
|
92
|
+
if (error instanceof this) {
|
|
93
|
+
return error;
|
|
94
|
+
}
|
|
95
|
+
const instance = new this(`${this.name}: ${getMessageFromError(error)}`, {
|
|
96
|
+
cause: error,
|
|
97
|
+
status: getStatusFromError(error)
|
|
98
|
+
});
|
|
99
|
+
if (error instanceof Error) {
|
|
100
|
+
instance.stack = error.stack;
|
|
101
|
+
} else {
|
|
102
|
+
instance.stack = new Error().stack;
|
|
103
|
+
}
|
|
104
|
+
return instance;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
class LiveSyncFatalError extends LiveSyncError {
|
|
108
|
+
}
|
|
109
|
+
export {
|
|
110
|
+
LiveSyncError,
|
|
111
|
+
LiveSyncFatalError
|
|
112
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Confirm } from "../interfaces/Confirm.js";
|
|
2
|
+
import type { MessageTranslator } from "../services/base/MessageTranslator.js";
|
|
3
|
+
import { type ObsidianLiveSyncSettings } from "./types.js";
|
|
4
|
+
declare enum ConditionType {
|
|
5
|
+
PLATFORM_CASE_INSENSITIVE = "platform-case-insensitive",
|
|
6
|
+
PLATFORM_CASE_SENSITIVE = "platform-case-sensitive",
|
|
7
|
+
REMOTE_CASE_SENSITIVE = "remote-case-sensitive"
|
|
8
|
+
}
|
|
9
|
+
export declare enum RuleLevel {
|
|
10
|
+
Must = 0,
|
|
11
|
+
Necessary = 1,
|
|
12
|
+
Recommended = 2,
|
|
13
|
+
Optional = 3
|
|
14
|
+
}
|
|
15
|
+
type BaseRule<TType extends string, TValue> = {
|
|
16
|
+
level?: RuleLevel;
|
|
17
|
+
requireRebuild?: boolean;
|
|
18
|
+
requireRebuildLocal?: boolean;
|
|
19
|
+
recommendRebuild?: boolean;
|
|
20
|
+
reason?: string;
|
|
21
|
+
reasonFunc?: (settings: Partial<ObsidianLiveSyncSettings>, translate: MessageTranslator) => string;
|
|
22
|
+
condition?: ConditionType[];
|
|
23
|
+
detectionFunc?: (settings: Partial<ObsidianLiveSyncSettings>) => boolean;
|
|
24
|
+
value?: TValue;
|
|
25
|
+
valueDisplay?: string;
|
|
26
|
+
valueDisplayFunc?: (settings: Partial<ObsidianLiveSyncSettings>) => string;
|
|
27
|
+
obsoleteValues?: TValue[];
|
|
28
|
+
};
|
|
29
|
+
type NumberRuleExact = BaseRule<"number", number> & {};
|
|
30
|
+
type NumberRuleRange = BaseRule<"number", number> & {
|
|
31
|
+
min?: number;
|
|
32
|
+
max?: number;
|
|
33
|
+
step?: number;
|
|
34
|
+
};
|
|
35
|
+
type StringRangeRule = BaseRule<"string", string> & {
|
|
36
|
+
minLength?: number;
|
|
37
|
+
maxLength?: number;
|
|
38
|
+
regexp?: string;
|
|
39
|
+
};
|
|
40
|
+
type StringRule = BaseRule<"string", string> & {};
|
|
41
|
+
type BooleanRule = BaseRule<"boolean", boolean> & {};
|
|
42
|
+
export type RuleForType<T> = T extends number ? NumberRuleExact | NumberRuleRange : T extends string ? StringRule | StringRangeRule : T extends boolean ? BooleanRule : never;
|
|
43
|
+
type DoctorCheckSettings = Omit<Partial<ObsidianLiveSyncSettings>, "remoteConfigurations" | "pluginSyncExtendedSetting">;
|
|
44
|
+
export type DoctorRegulation = {
|
|
45
|
+
version: string;
|
|
46
|
+
rules: {
|
|
47
|
+
[P in keyof DoctorCheckSettings]: RuleForType<DoctorCheckSettings[P]>;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export declare const DoctorRegulationV0_24_16: DoctorRegulation;
|
|
51
|
+
export declare const DoctorRegulationV0_24_30: DoctorRegulation;
|
|
52
|
+
export declare const DoctorRegulationV0_25_0: DoctorRegulation;
|
|
53
|
+
export declare const DoctorRegulationV0_25_27: DoctorRegulation;
|
|
54
|
+
export declare const DoctorRegulation: DoctorRegulation;
|
|
55
|
+
export declare function checkUnsuitableValues(setting: Partial<ObsidianLiveSyncSettings>, regulation?: DoctorRegulation): DoctorRegulation;
|
|
56
|
+
export declare const RebuildOptions: {
|
|
57
|
+
readonly AutomaticAcceptable: 0;
|
|
58
|
+
readonly ConfirmIfRequired: 1;
|
|
59
|
+
readonly SkipEvenIfRequired: 2;
|
|
60
|
+
};
|
|
61
|
+
export type RebuildOptionsType = (typeof RebuildOptions)[keyof typeof RebuildOptions];
|
|
62
|
+
export type DoctorOptions = {
|
|
63
|
+
localRebuild: RebuildOptionsType;
|
|
64
|
+
remoteRebuild: RebuildOptionsType;
|
|
65
|
+
activateReason?: string;
|
|
66
|
+
forceRescan?: boolean;
|
|
67
|
+
};
|
|
68
|
+
export type DoctorResult = {
|
|
69
|
+
settings: ObsidianLiveSyncSettings;
|
|
70
|
+
shouldRebuild: boolean;
|
|
71
|
+
shouldRebuildLocal: boolean;
|
|
72
|
+
isModified: boolean;
|
|
73
|
+
};
|
|
74
|
+
export type HasConfirm = {
|
|
75
|
+
confirm: Confirm;
|
|
76
|
+
translate: MessageTranslator;
|
|
77
|
+
};
|
|
78
|
+
export declare function performDoctorConsultation(env: HasConfirm, settings: ObsidianLiveSyncSettings, { localRebuild, remoteRebuild, activateReason, forceRescan, }: DoctorOptions): Promise<DoctorResult>;
|
|
79
|
+
export {};
|