@connecttomahdi/rxdb 17.0.0-beta.17
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/AGENTS.md +54 -0
- package/CHANGELOG.md +2469 -0
- package/CLAUDE.md +63 -0
- package/LICENSE.txt +201 -0
- package/README.md +263 -0
- package/babel.config.js +58 -0
- package/dist/cjs/change-event-buffer.js +146 -0
- package/dist/cjs/change-event-buffer.js.map +1 -0
- package/dist/cjs/custom-index.js +284 -0
- package/dist/cjs/custom-index.js.map +1 -0
- package/dist/cjs/doc-cache.js +231 -0
- package/dist/cjs/doc-cache.js.map +1 -0
- package/dist/cjs/event-reduce.js +102 -0
- package/dist/cjs/event-reduce.js.map +1 -0
- package/dist/cjs/hooks.js +131 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/incremental-write.js +169 -0
- package/dist/cjs/incremental-write.js.map +1 -0
- package/dist/cjs/index.js +270 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/overwritable.js +39 -0
- package/dist/cjs/overwritable.js.map +1 -0
- package/dist/cjs/plugin-helpers.js +223 -0
- package/dist/cjs/plugin-helpers.js.map +1 -0
- package/dist/cjs/plugin.js +94 -0
- package/dist/cjs/plugin.js.map +1 -0
- package/dist/cjs/plugins/attachments/attachments-utils.js +49 -0
- package/dist/cjs/plugins/attachments/attachments-utils.js.map +1 -0
- package/dist/cjs/plugins/attachments/index.js +237 -0
- package/dist/cjs/plugins/attachments/index.js.map +1 -0
- package/dist/cjs/plugins/attachments-compression/index.js +143 -0
- package/dist/cjs/plugins/attachments-compression/index.js.map +1 -0
- package/dist/cjs/plugins/backup/file-util.js +102 -0
- package/dist/cjs/plugins/backup/file-util.js.map +1 -0
- package/dist/cjs/plugins/backup/index.js +206 -0
- package/dist/cjs/plugins/backup/index.js.map +1 -0
- package/dist/cjs/plugins/cleanup/cleanup-helper.js +17 -0
- package/dist/cjs/plugins/cleanup/cleanup-helper.js.map +1 -0
- package/dist/cjs/plugins/cleanup/cleanup-state.js +83 -0
- package/dist/cjs/plugins/cleanup/cleanup-state.js.map +1 -0
- package/dist/cjs/plugins/cleanup/cleanup.js +116 -0
- package/dist/cjs/plugins/cleanup/cleanup.js.map +1 -0
- package/dist/cjs/plugins/cleanup/index.js +64 -0
- package/dist/cjs/plugins/cleanup/index.js.map +1 -0
- package/dist/cjs/plugins/crdt/index.js +392 -0
- package/dist/cjs/plugins/crdt/index.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/check-document.js +158 -0
- package/dist/cjs/plugins/dev-mode/check-document.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/check-migration-strategies.js +43 -0
- package/dist/cjs/plugins/dev-mode/check-migration-strategies.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/check-orm.js +53 -0
- package/dist/cjs/plugins/dev-mode/check-orm.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/check-query.js +183 -0
- package/dist/cjs/plugins/dev-mode/check-query.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/check-schema.js +487 -0
- package/dist/cjs/plugins/dev-mode/check-schema.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/dev-mode-tracking.js +93 -0
- package/dist/cjs/plugins/dev-mode/dev-mode-tracking.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/entity-properties.js +56 -0
- package/dist/cjs/plugins/dev-mode/entity-properties.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/error-messages.js +1295 -0
- package/dist/cjs/plugins/dev-mode/error-messages.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/index.js +195 -0
- package/dist/cjs/plugins/dev-mode/index.js.map +1 -0
- package/dist/cjs/plugins/dev-mode/unallowed-properties.js +88 -0
- package/dist/cjs/plugins/dev-mode/unallowed-properties.js.map +1 -0
- package/dist/cjs/plugins/electron/electron-helper.js +9 -0
- package/dist/cjs/plugins/electron/electron-helper.js.map +1 -0
- package/dist/cjs/plugins/electron/index.js +39 -0
- package/dist/cjs/plugins/electron/index.js.map +1 -0
- package/dist/cjs/plugins/electron/rx-storage-ipc-main.js +45 -0
- package/dist/cjs/plugins/electron/rx-storage-ipc-main.js.map +1 -0
- package/dist/cjs/plugins/electron/rx-storage-ipc-renderer.js +37 -0
- package/dist/cjs/plugins/electron/rx-storage-ipc-renderer.js.map +1 -0
- package/dist/cjs/plugins/encryption-crypto-js/index.js +165 -0
- package/dist/cjs/plugins/encryption-crypto-js/index.js.map +1 -0
- package/dist/cjs/plugins/flutter/index.js +62 -0
- package/dist/cjs/plugins/flutter/index.js.map +1 -0
- package/dist/cjs/plugins/json-dump/index.js +94 -0
- package/dist/cjs/plugins/json-dump/index.js.map +1 -0
- package/dist/cjs/plugins/key-compression/index.js +136 -0
- package/dist/cjs/plugins/key-compression/index.js.map +1 -0
- package/dist/cjs/plugins/leader-election/index.js +107 -0
- package/dist/cjs/plugins/leader-election/index.js.map +1 -0
- package/dist/cjs/plugins/local-documents/index.js +109 -0
- package/dist/cjs/plugins/local-documents/index.js.map +1 -0
- package/dist/cjs/plugins/local-documents/local-documents-helper.js +78 -0
- package/dist/cjs/plugins/local-documents/local-documents-helper.js.map +1 -0
- package/dist/cjs/plugins/local-documents/local-documents.js +107 -0
- package/dist/cjs/plugins/local-documents/local-documents.js.map +1 -0
- package/dist/cjs/plugins/local-documents/rx-local-document.js +257 -0
- package/dist/cjs/plugins/local-documents/rx-local-document.js.map +1 -0
- package/dist/cjs/plugins/migration-schema/index.js +84 -0
- package/dist/cjs/plugins/migration-schema/index.js.map +1 -0
- package/dist/cjs/plugins/migration-schema/migration-helpers.js +116 -0
- package/dist/cjs/plugins/migration-schema/migration-helpers.js.map +1 -0
- package/dist/cjs/plugins/migration-schema/migration-types.js +2 -0
- package/dist/cjs/plugins/migration-schema/migration-types.js.map +1 -0
- package/dist/cjs/plugins/migration-schema/rx-migration-state.js +410 -0
- package/dist/cjs/plugins/migration-schema/rx-migration-state.js.map +1 -0
- package/dist/cjs/plugins/migration-storage/index.js +173 -0
- package/dist/cjs/plugins/migration-storage/index.js.map +1 -0
- package/dist/cjs/plugins/pipeline/flagged-functions.js +129 -0
- package/dist/cjs/plugins/pipeline/flagged-functions.js.map +1 -0
- package/dist/cjs/plugins/pipeline/index.js +43 -0
- package/dist/cjs/plugins/pipeline/index.js.map +1 -0
- package/dist/cjs/plugins/pipeline/rx-pipeline.js +219 -0
- package/dist/cjs/plugins/pipeline/rx-pipeline.js.map +1 -0
- package/dist/cjs/plugins/pipeline/types.js +2 -0
- package/dist/cjs/plugins/pipeline/types.js.map +1 -0
- package/dist/cjs/plugins/query-builder/index.js +70 -0
- package/dist/cjs/plugins/query-builder/index.js.map +1 -0
- package/dist/cjs/plugins/query-builder/mquery/mquery-utils.js +40 -0
- package/dist/cjs/plugins/query-builder/mquery/mquery-utils.js.map +1 -0
- package/dist/cjs/plugins/query-builder/mquery/nosql-query-builder.js +488 -0
- package/dist/cjs/plugins/query-builder/mquery/nosql-query-builder.js.map +1 -0
- package/dist/cjs/plugins/react/database-context.js +15 -0
- package/dist/cjs/plugins/react/database-context.js.map +1 -0
- package/dist/cjs/plugins/react/database-provider.js +41 -0
- package/dist/cjs/plugins/react/database-provider.js.map +1 -0
- package/dist/cjs/plugins/react/hooks/index.js +50 -0
- package/dist/cjs/plugins/react/hooks/index.js.map +1 -0
- package/dist/cjs/plugins/react/hooks/use-live-rx-query.js +27 -0
- package/dist/cjs/plugins/react/hooks/use-live-rx-query.js.map +1 -0
- package/dist/cjs/plugins/react/hooks/use-rx-collection.js +39 -0
- package/dist/cjs/plugins/react/hooks/use-rx-collection.js.map +1 -0
- package/dist/cjs/plugins/react/hooks/use-rx-database.js +24 -0
- package/dist/cjs/plugins/react/hooks/use-rx-database.js.map +1 -0
- package/dist/cjs/plugins/react/hooks/use-rx-query.js +99 -0
- package/dist/cjs/plugins/react/hooks/use-rx-query.js.map +1 -0
- package/dist/cjs/plugins/react/index.js +28 -0
- package/dist/cjs/plugins/react/index.js.map +1 -0
- package/dist/cjs/plugins/reactivity-angular/index.js +30 -0
- package/dist/cjs/plugins/reactivity-angular/index.js.map +1 -0
- package/dist/cjs/plugins/reactivity-preact-signals/index.js +67 -0
- package/dist/cjs/plugins/reactivity-preact-signals/index.js.map +1 -0
- package/dist/cjs/plugins/reactivity-vue/index.js +32 -0
- package/dist/cjs/plugins/reactivity-vue/index.js.map +1 -0
- package/dist/cjs/plugins/replication/index.js +487 -0
- package/dist/cjs/plugins/replication/index.js.map +1 -0
- package/dist/cjs/plugins/replication/replication-helper.js +97 -0
- package/dist/cjs/plugins/replication/replication-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-appwrite/appwrite-helpers.js +33 -0
- package/dist/cjs/plugins/replication-appwrite/appwrite-helpers.js.map +1 -0
- package/dist/cjs/plugins/replication-appwrite/appwrite-types.js +2 -0
- package/dist/cjs/plugins/replication-appwrite/appwrite-types.js.map +1 -0
- package/dist/cjs/plugins/replication-appwrite/index.js +176 -0
- package/dist/cjs/plugins/replication-appwrite/index.js.map +1 -0
- package/dist/cjs/plugins/replication-couchdb/couchdb-helper.js +77 -0
- package/dist/cjs/plugins/replication-couchdb/couchdb-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-couchdb/couchdb-types.js +2 -0
- package/dist/cjs/plugins/replication-couchdb/couchdb-types.js.map +1 -0
- package/dist/cjs/plugins/replication-couchdb/index.js +287 -0
- package/dist/cjs/plugins/replication-couchdb/index.js.map +1 -0
- package/dist/cjs/plugins/replication-firestore/firestore-helper.js +61 -0
- package/dist/cjs/plugins/replication-firestore/firestore-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-firestore/firestore-types.js +2 -0
- package/dist/cjs/plugins/replication-firestore/firestore-types.js.map +1 -0
- package/dist/cjs/plugins/replication-firestore/index.js +266 -0
- package/dist/cjs/plugins/replication-firestore/index.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/document-handling.js +150 -0
- package/dist/cjs/plugins/replication-google-drive/document-handling.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/downstream.js +73 -0
- package/dist/cjs/plugins/replication-google-drive/downstream.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/google-drive-helper.js +349 -0
- package/dist/cjs/plugins/replication-google-drive/google-drive-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/google-drive-types.js +2 -0
- package/dist/cjs/plugins/replication-google-drive/google-drive-types.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/index.js +233 -0
- package/dist/cjs/plugins/replication-google-drive/index.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/init.js +76 -0
- package/dist/cjs/plugins/replication-google-drive/init.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/multipart.js +74 -0
- package/dist/cjs/plugins/replication-google-drive/multipart.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/signaling.js +262 -0
- package/dist/cjs/plugins/replication-google-drive/signaling.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/transaction.js +134 -0
- package/dist/cjs/plugins/replication-google-drive/transaction.js.map +1 -0
- package/dist/cjs/plugins/replication-google-drive/upstream.js +182 -0
- package/dist/cjs/plugins/replication-google-drive/upstream.js.map +1 -0
- package/dist/cjs/plugins/replication-graphql/graphql-schema-from-rx-schema.js +235 -0
- package/dist/cjs/plugins/replication-graphql/graphql-schema-from-rx-schema.js.map +1 -0
- package/dist/cjs/plugins/replication-graphql/graphql-websocket.js +43 -0
- package/dist/cjs/plugins/replication-graphql/graphql-websocket.js.map +1 -0
- package/dist/cjs/plugins/replication-graphql/helper.js +29 -0
- package/dist/cjs/plugins/replication-graphql/helper.js.map +1 -0
- package/dist/cjs/plugins/replication-graphql/index.js +215 -0
- package/dist/cjs/plugins/replication-graphql/index.js.map +1 -0
- package/dist/cjs/plugins/replication-graphql/query-builder-from-rx-schema.js +141 -0
- package/dist/cjs/plugins/replication-graphql/query-builder-from-rx-schema.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/document-handling.js +187 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/document-handling.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/downstream.js +78 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/downstream.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/index.js +222 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/index.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/init.js +76 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/init.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/microsoft-onedrive-helper.js +273 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/microsoft-onedrive-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/microsoft-onedrive-types.js +2 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/microsoft-onedrive-types.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/signaling.js +235 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/signaling.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/transaction.js +138 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/transaction.js.map +1 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/upstream.js +190 -0
- package/dist/cjs/plugins/replication-microsoft-onedrive/upstream.js.map +1 -0
- package/dist/cjs/plugins/replication-mongodb/index.js +229 -0
- package/dist/cjs/plugins/replication-mongodb/index.js.map +1 -0
- package/dist/cjs/plugins/replication-mongodb/mongodb-checkpoint.js +140 -0
- package/dist/cjs/plugins/replication-mongodb/mongodb-checkpoint.js.map +1 -0
- package/dist/cjs/plugins/replication-mongodb/mongodb-helper.js +53 -0
- package/dist/cjs/plugins/replication-mongodb/mongodb-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-mongodb/mongodb-types.js +2 -0
- package/dist/cjs/plugins/replication-mongodb/mongodb-types.js.map +1 -0
- package/dist/cjs/plugins/replication-nats/index.js +232 -0
- package/dist/cjs/plugins/replication-nats/index.js.map +1 -0
- package/dist/cjs/plugins/replication-nats/nats-helper.js +13 -0
- package/dist/cjs/plugins/replication-nats/nats-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-nats/nats-types.js +2 -0
- package/dist/cjs/plugins/replication-nats/nats-types.js.map +1 -0
- package/dist/cjs/plugins/replication-supabase/helper.js +42 -0
- package/dist/cjs/plugins/replication-supabase/helper.js.map +1 -0
- package/dist/cjs/plugins/replication-supabase/index.js +239 -0
- package/dist/cjs/plugins/replication-supabase/index.js.map +1 -0
- package/dist/cjs/plugins/replication-supabase/types.js +2 -0
- package/dist/cjs/plugins/replication-supabase/types.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/connection-handler-p2pcf.js +79 -0
- package/dist/cjs/plugins/replication-webrtc/connection-handler-p2pcf.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/connection-handler-simple-peer.js +199 -0
- package/dist/cjs/plugins/replication-webrtc/connection-handler-simple-peer.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/connection-handler-webtorrent.js +137 -0
- package/dist/cjs/plugins/replication-webrtc/connection-handler-webtorrent.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/index.js +260 -0
- package/dist/cjs/plugins/replication-webrtc/index.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/signaling-server.js +151 -0
- package/dist/cjs/plugins/replication-webrtc/signaling-server.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/webrtc-helper.js +32 -0
- package/dist/cjs/plugins/replication-webrtc/webrtc-helper.js.map +1 -0
- package/dist/cjs/plugins/replication-webrtc/webrtc-types.js +2 -0
- package/dist/cjs/plugins/replication-webrtc/webrtc-types.js.map +1 -0
- package/dist/cjs/plugins/replication-websocket/index.js +39 -0
- package/dist/cjs/plugins/replication-websocket/index.js.map +1 -0
- package/dist/cjs/plugins/replication-websocket/websocket-client.js +133 -0
- package/dist/cjs/plugins/replication-websocket/websocket-client.js.map +1 -0
- package/dist/cjs/plugins/replication-websocket/websocket-server.js +108 -0
- package/dist/cjs/plugins/replication-websocket/websocket-server.js.map +1 -0
- package/dist/cjs/plugins/replication-websocket/websocket-types.js +2 -0
- package/dist/cjs/plugins/replication-websocket/websocket-types.js.map +1 -0
- package/dist/cjs/plugins/state/helpers.js +81 -0
- package/dist/cjs/plugins/state/helpers.js.map +1 -0
- package/dist/cjs/plugins/state/index.js +42 -0
- package/dist/cjs/plugins/state/index.js.map +1 -0
- package/dist/cjs/plugins/state/rx-state.js +293 -0
- package/dist/cjs/plugins/state/rx-state.js.map +1 -0
- package/dist/cjs/plugins/state/types.js +2 -0
- package/dist/cjs/plugins/state/types.js.map +1 -0
- package/dist/cjs/plugins/storage-denokv/denokv-helper.js +49 -0
- package/dist/cjs/plugins/storage-denokv/denokv-helper.js.map +1 -0
- package/dist/cjs/plugins/storage-denokv/denokv-query.js +99 -0
- package/dist/cjs/plugins/storage-denokv/denokv-query.js.map +1 -0
- package/dist/cjs/plugins/storage-denokv/denokv-types.js +2 -0
- package/dist/cjs/plugins/storage-denokv/denokv-types.js.map +1 -0
- package/dist/cjs/plugins/storage-denokv/index.js +31 -0
- package/dist/cjs/plugins/storage-denokv/index.js.map +1 -0
- package/dist/cjs/plugins/storage-denokv/rx-storage-instance-denokv.js +332 -0
- package/dist/cjs/plugins/storage-denokv/rx-storage-instance-denokv.js.map +1 -0
- package/dist/cjs/plugins/storage-dexie/dexie-helper.js +259 -0
- package/dist/cjs/plugins/storage-dexie/dexie-helper.js.map +1 -0
- package/dist/cjs/plugins/storage-dexie/dexie-query.js +178 -0
- package/dist/cjs/plugins/storage-dexie/dexie-query.js.map +1 -0
- package/dist/cjs/plugins/storage-dexie/index.js +50 -0
- package/dist/cjs/plugins/storage-dexie/index.js.map +1 -0
- package/dist/cjs/plugins/storage-dexie/rx-storage-dexie.js +46 -0
- package/dist/cjs/plugins/storage-dexie/rx-storage-dexie.js.map +1 -0
- package/dist/cjs/plugins/storage-dexie/rx-storage-instance-dexie.js +229 -0
- package/dist/cjs/plugins/storage-dexie/rx-storage-instance-dexie.js.map +1 -0
- package/dist/cjs/plugins/storage-foundationdb/foundationdb-helpers.js +13 -0
- package/dist/cjs/plugins/storage-foundationdb/foundationdb-helpers.js.map +1 -0
- package/dist/cjs/plugins/storage-foundationdb/foundationdb-query.js +96 -0
- package/dist/cjs/plugins/storage-foundationdb/foundationdb-query.js.map +1 -0
- package/dist/cjs/plugins/storage-foundationdb/foundationdb-types.js +2 -0
- package/dist/cjs/plugins/storage-foundationdb/foundationdb-types.js.map +1 -0
- package/dist/cjs/plugins/storage-foundationdb/index.js +62 -0
- package/dist/cjs/plugins/storage-foundationdb/index.js.map +1 -0
- package/dist/cjs/plugins/storage-foundationdb/rx-storage-instance-foundationdb.js +309 -0
- package/dist/cjs/plugins/storage-foundationdb/rx-storage-instance-foundationdb.js.map +1 -0
- package/dist/cjs/plugins/storage-localstorage/index.js +45 -0
- package/dist/cjs/plugins/storage-localstorage/index.js.map +1 -0
- package/dist/cjs/plugins/storage-localstorage/localstorage-mock.js +38 -0
- package/dist/cjs/plugins/storage-localstorage/localstorage-mock.js.map +1 -0
- package/dist/cjs/plugins/storage-localstorage/rx-storage-instance-localstorage.js +443 -0
- package/dist/cjs/plugins/storage-localstorage/rx-storage-instance-localstorage.js.map +1 -0
- package/dist/cjs/plugins/storage-memory/binary-search-bounds.js +113 -0
- package/dist/cjs/plugins/storage-memory/binary-search-bounds.js.map +1 -0
- package/dist/cjs/plugins/storage-memory/index.js +91 -0
- package/dist/cjs/plugins/storage-memory/index.js.map +1 -0
- package/dist/cjs/plugins/storage-memory/memory-helper.js +177 -0
- package/dist/cjs/plugins/storage-memory/memory-helper.js.map +1 -0
- package/dist/cjs/plugins/storage-memory/memory-indexes.js +28 -0
- package/dist/cjs/plugins/storage-memory/memory-indexes.js.map +1 -0
- package/dist/cjs/plugins/storage-memory/memory-types.js +2 -0
- package/dist/cjs/plugins/storage-memory/memory-types.js.map +1 -0
- package/dist/cjs/plugins/storage-memory/rx-storage-instance-memory.js +371 -0
- package/dist/cjs/plugins/storage-memory/rx-storage-instance-memory.js.map +1 -0
- package/dist/cjs/plugins/storage-mongodb/index.js +50 -0
- package/dist/cjs/plugins/storage-mongodb/index.js.map +1 -0
- package/dist/cjs/plugins/storage-mongodb/mongodb-helper.js +97 -0
- package/dist/cjs/plugins/storage-mongodb/mongodb-helper.js.map +1 -0
- package/dist/cjs/plugins/storage-mongodb/mongodb-types.js +2 -0
- package/dist/cjs/plugins/storage-mongodb/mongodb-types.js.map +1 -0
- package/dist/cjs/plugins/storage-mongodb/rx-storage-instance-mongodb.js +324 -0
- package/dist/cjs/plugins/storage-mongodb/rx-storage-instance-mongodb.js.map +1 -0
- package/dist/cjs/plugins/storage-mongodb/rx-storage-mongodb.js +29 -0
- package/dist/cjs/plugins/storage-mongodb/rx-storage-mongodb.js.map +1 -0
- package/dist/cjs/plugins/storage-remote/index.js +61 -0
- package/dist/cjs/plugins/storage-remote/index.js.map +1 -0
- package/dist/cjs/plugins/storage-remote/message-channel-cache.js +52 -0
- package/dist/cjs/plugins/storage-remote/message-channel-cache.js.map +1 -0
- package/dist/cjs/plugins/storage-remote/remote.js +217 -0
- package/dist/cjs/plugins/storage-remote/remote.js.map +1 -0
- package/dist/cjs/plugins/storage-remote/rx-storage-remote.js +199 -0
- package/dist/cjs/plugins/storage-remote/rx-storage-remote.js.map +1 -0
- package/dist/cjs/plugins/storage-remote/storage-remote-helpers.js +25 -0
- package/dist/cjs/plugins/storage-remote/storage-remote-helpers.js.map +1 -0
- package/dist/cjs/plugins/storage-remote/storage-remote-types.js +2 -0
- package/dist/cjs/plugins/storage-remote/storage-remote-types.js.map +1 -0
- package/dist/cjs/plugins/storage-remote-websocket/index.js +183 -0
- package/dist/cjs/plugins/storage-remote-websocket/index.js.map +1 -0
- package/dist/cjs/plugins/storage-remote-websocket/types.js +2 -0
- package/dist/cjs/plugins/storage-remote-websocket/types.js.map +1 -0
- package/dist/cjs/plugins/storage-sqlite/index.js +84 -0
- package/dist/cjs/plugins/storage-sqlite/index.js.map +1 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-basics-helpers.js +530 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-basics-helpers.js.map +1 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-helpers.js +203 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-helpers.js.map +1 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-storage-instance.js +291 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-storage-instance.js.map +1 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-types.js +2 -0
- package/dist/cjs/plugins/storage-sqlite/sqlite-types.js.map +1 -0
- package/dist/cjs/plugins/test-utils/config.js +120 -0
- package/dist/cjs/plugins/test-utils/config.js.map +1 -0
- package/dist/cjs/plugins/test-utils/humans-collection.js +420 -0
- package/dist/cjs/plugins/test-utils/humans-collection.js.map +1 -0
- package/dist/cjs/plugins/test-utils/index.js +130 -0
- package/dist/cjs/plugins/test-utils/index.js.map +1 -0
- package/dist/cjs/plugins/test-utils/performance.js +275 -0
- package/dist/cjs/plugins/test-utils/performance.js.map +1 -0
- package/dist/cjs/plugins/test-utils/replication-base-test-suite.js +179 -0
- package/dist/cjs/plugins/test-utils/replication-base-test-suite.js.map +1 -0
- package/dist/cjs/plugins/test-utils/replication.js +54 -0
- package/dist/cjs/plugins/test-utils/replication.js.map +1 -0
- package/dist/cjs/plugins/test-utils/revisions.js +11 -0
- package/dist/cjs/plugins/test-utils/revisions.js.map +1 -0
- package/dist/cjs/plugins/test-utils/schema-objects.js +315 -0
- package/dist/cjs/plugins/test-utils/schema-objects.js.map +1 -0
- package/dist/cjs/plugins/test-utils/schemas.js +1254 -0
- package/dist/cjs/plugins/test-utils/schemas.js.map +1 -0
- package/dist/cjs/plugins/test-utils/test-util.js +72 -0
- package/dist/cjs/plugins/test-utils/test-util.js.map +1 -0
- package/dist/cjs/plugins/update/index.js +45 -0
- package/dist/cjs/plugins/update/index.js.map +1 -0
- package/dist/cjs/plugins/update/mingo-updater.js +20 -0
- package/dist/cjs/plugins/update/mingo-updater.js.map +1 -0
- package/dist/cjs/plugins/utils/index.js +226 -0
- package/dist/cjs/plugins/utils/index.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-array.js +150 -0
- package/dist/cjs/plugins/utils/utils-array.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-base64.js +57 -0
- package/dist/cjs/plugins/utils/utils-base64.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-blob.js +62 -0
- package/dist/cjs/plugins/utils/utils-blob.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-document.js +100 -0
- package/dist/cjs/plugins/utils/utils-document.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-error.js +42 -0
- package/dist/cjs/plugins/utils/utils-error.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-global.js +12 -0
- package/dist/cjs/plugins/utils/utils-global.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-hash.js +59 -0
- package/dist/cjs/plugins/utils/utils-hash.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-map.js +25 -0
- package/dist/cjs/plugins/utils/utils-map.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-number.js +16 -0
- package/dist/cjs/plugins/utils/utils-number.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-object-deep-equal.js +42 -0
- package/dist/cjs/plugins/utils/utils-object-deep-equal.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-object-dot-prop.js +306 -0
- package/dist/cjs/plugins/utils/utils-object-dot-prop.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-object.js +245 -0
- package/dist/cjs/plugins/utils/utils-object.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-other.js +69 -0
- package/dist/cjs/plugins/utils/utils-other.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-premium.js +37 -0
- package/dist/cjs/plugins/utils/utils-premium.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-promise.js +149 -0
- package/dist/cjs/plugins/utils/utils-promise.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-regex.js +9 -0
- package/dist/cjs/plugins/utils/utils-regex.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-revision.js +60 -0
- package/dist/cjs/plugins/utils/utils-revision.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-rxdb-version.js +11 -0
- package/dist/cjs/plugins/utils/utils-rxdb-version.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-rxdb-version.template.js +11 -0
- package/dist/cjs/plugins/utils/utils-rxdb-version.template.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-string.js +97 -0
- package/dist/cjs/plugins/utils/utils-string.js.map +1 -0
- package/dist/cjs/plugins/utils/utils-time.js +42 -0
- package/dist/cjs/plugins/utils/utils-time.js.map +1 -0
- package/dist/cjs/plugins/validate-ajv/index.js +53 -0
- package/dist/cjs/plugins/validate-ajv/index.js.map +1 -0
- package/dist/cjs/plugins/validate-is-my-json-valid/index.js +29 -0
- package/dist/cjs/plugins/validate-is-my-json-valid/index.js.map +1 -0
- package/dist/cjs/plugins/validate-z-schema/index.js +58 -0
- package/dist/cjs/plugins/validate-z-schema/index.js.map +1 -0
- package/dist/cjs/plugins/vector/helper.js +2 -0
- package/dist/cjs/plugins/vector/helper.js.map +1 -0
- package/dist/cjs/plugins/vector/index.js +17 -0
- package/dist/cjs/plugins/vector/index.js.map +1 -0
- package/dist/cjs/plugins/vector/types.js +2 -0
- package/dist/cjs/plugins/vector/types.js.map +1 -0
- package/dist/cjs/plugins/vector/vector-distance.js +38 -0
- package/dist/cjs/plugins/vector/vector-distance.js.map +1 -0
- package/dist/cjs/plugins/webmcp/index.js +28 -0
- package/dist/cjs/plugins/webmcp/index.js.map +1 -0
- package/dist/cjs/plugins/webmcp/nosql-query-schema.js +360 -0
- package/dist/cjs/plugins/webmcp/nosql-query-schema.js.map +1 -0
- package/dist/cjs/plugins/webmcp/webmcp.js +315 -0
- package/dist/cjs/plugins/webmcp/webmcp.js.map +1 -0
- package/dist/cjs/query-cache.js +110 -0
- package/dist/cjs/query-cache.js.map +1 -0
- package/dist/cjs/query-planner.js +307 -0
- package/dist/cjs/query-planner.js.map +1 -0
- package/dist/cjs/replication-protocol/checkpoint.js +103 -0
- package/dist/cjs/replication-protocol/checkpoint.js.map +1 -0
- package/dist/cjs/replication-protocol/conflicts.js +36 -0
- package/dist/cjs/replication-protocol/conflicts.js.map +1 -0
- package/dist/cjs/replication-protocol/default-conflict-handler.js +39 -0
- package/dist/cjs/replication-protocol/default-conflict-handler.js.map +1 -0
- package/dist/cjs/replication-protocol/downstream.js +339 -0
- package/dist/cjs/replication-protocol/downstream.js.map +1 -0
- package/dist/cjs/replication-protocol/helper.js +58 -0
- package/dist/cjs/replication-protocol/helper.js.map +1 -0
- package/dist/cjs/replication-protocol/index.js +314 -0
- package/dist/cjs/replication-protocol/index.js.map +1 -0
- package/dist/cjs/replication-protocol/meta-instance.js +130 -0
- package/dist/cjs/replication-protocol/meta-instance.js.map +1 -0
- package/dist/cjs/replication-protocol/upstream.js +384 -0
- package/dist/cjs/replication-protocol/upstream.js.map +1 -0
- package/dist/cjs/rx-change-event.js +112 -0
- package/dist/cjs/rx-change-event.js.map +1 -0
- package/dist/cjs/rx-collection-helper.js +205 -0
- package/dist/cjs/rx-collection-helper.js.map +1 -0
- package/dist/cjs/rx-collection.js +931 -0
- package/dist/cjs/rx-collection.js.map +1 -0
- package/dist/cjs/rx-database-internal-store.js +283 -0
- package/dist/cjs/rx-database-internal-store.js.map +1 -0
- package/dist/cjs/rx-database.js +682 -0
- package/dist/cjs/rx-database.js.map +1 -0
- package/dist/cjs/rx-document-prototype-merge.js +87 -0
- package/dist/cjs/rx-document-prototype-merge.js.map +1 -0
- package/dist/cjs/rx-document.js +404 -0
- package/dist/cjs/rx-document.js.map +1 -0
- package/dist/cjs/rx-error.js +167 -0
- package/dist/cjs/rx-error.js.map +1 -0
- package/dist/cjs/rx-query-helper.js +277 -0
- package/dist/cjs/rx-query-helper.js.map +1 -0
- package/dist/cjs/rx-query-mingo.js +60 -0
- package/dist/cjs/rx-query-mingo.js.map +1 -0
- package/dist/cjs/rx-query-single-result.js +105 -0
- package/dist/cjs/rx-query-single-result.js.map +1 -0
- package/dist/cjs/rx-query.js +703 -0
- package/dist/cjs/rx-query.js.map +1 -0
- package/dist/cjs/rx-schema-helper.js +333 -0
- package/dist/cjs/rx-schema-helper.js.map +1 -0
- package/dist/cjs/rx-schema.js +189 -0
- package/dist/cjs/rx-schema.js.map +1 -0
- package/dist/cjs/rx-storage-helper.js +808 -0
- package/dist/cjs/rx-storage-helper.js.map +1 -0
- package/dist/cjs/rx-storage-multiinstance.js +121 -0
- package/dist/cjs/rx-storage-multiinstance.js.map +1 -0
- package/dist/cjs/types/conflict-handling.d.js +2 -0
- package/dist/cjs/types/conflict-handling.d.js.map +1 -0
- package/dist/cjs/types/couchdb.d.js +2 -0
- package/dist/cjs/types/couchdb.d.js.map +1 -0
- package/dist/cjs/types/index.d.js +2 -0
- package/dist/cjs/types/index.d.js.map +1 -0
- package/dist/cjs/types/modules/index.d.js +2 -0
- package/dist/cjs/types/modules/index.d.js.map +1 -0
- package/dist/cjs/types/modules/mocha.parallel.d.js +2 -0
- package/dist/cjs/types/modules/mocha.parallel.d.js.map +1 -0
- package/dist/cjs/types/plugins/backup.d.js +2 -0
- package/dist/cjs/types/plugins/backup.d.js.map +1 -0
- package/dist/cjs/types/plugins/cleanup.d.js +2 -0
- package/dist/cjs/types/plugins/cleanup.d.js.map +1 -0
- package/dist/cjs/types/plugins/crdt.d.js +2 -0
- package/dist/cjs/types/plugins/crdt.d.js.map +1 -0
- package/dist/cjs/types/plugins/dexie.d.js +2 -0
- package/dist/cjs/types/plugins/dexie.d.js.map +1 -0
- package/dist/cjs/types/plugins/local-documents.d.js +2 -0
- package/dist/cjs/types/plugins/local-documents.d.js.map +1 -0
- package/dist/cjs/types/plugins/migration.d.js +2 -0
- package/dist/cjs/types/plugins/migration.d.js.map +1 -0
- package/dist/cjs/types/plugins/reactivity.d.js +2 -0
- package/dist/cjs/types/plugins/reactivity.d.js.map +1 -0
- package/dist/cjs/types/plugins/replication-graphql.d.js +2 -0
- package/dist/cjs/types/plugins/replication-graphql.d.js.map +1 -0
- package/dist/cjs/types/plugins/replication.d.js +2 -0
- package/dist/cjs/types/plugins/replication.d.js.map +1 -0
- package/dist/cjs/types/plugins/state.d.js +2 -0
- package/dist/cjs/types/plugins/state.d.js.map +1 -0
- package/dist/cjs/types/plugins/update.d.js +2 -0
- package/dist/cjs/types/plugins/update.d.js.map +1 -0
- package/dist/cjs/types/plugins/webmcp.d.js +2 -0
- package/dist/cjs/types/plugins/webmcp.d.js.map +1 -0
- package/dist/cjs/types/query-planner.d.js +2 -0
- package/dist/cjs/types/query-planner.d.js.map +1 -0
- package/dist/cjs/types/replication-protocol.d.js +2 -0
- package/dist/cjs/types/replication-protocol.d.js.map +1 -0
- package/dist/cjs/types/rx-attachment.d.js +2 -0
- package/dist/cjs/types/rx-attachment.d.js.map +1 -0
- package/dist/cjs/types/rx-change-event.d.js +2 -0
- package/dist/cjs/types/rx-change-event.d.js.map +1 -0
- package/dist/cjs/types/rx-collection.d.js +2 -0
- package/dist/cjs/types/rx-collection.d.js.map +1 -0
- package/dist/cjs/types/rx-database-internal-store.d.js +2 -0
- package/dist/cjs/types/rx-database-internal-store.d.js.map +1 -0
- package/dist/cjs/types/rx-database.d.js +2 -0
- package/dist/cjs/types/rx-database.d.js.map +1 -0
- package/dist/cjs/types/rx-document.d.js +2 -0
- package/dist/cjs/types/rx-document.d.js.map +1 -0
- package/dist/cjs/types/rx-error.d.js +2 -0
- package/dist/cjs/types/rx-error.d.js.map +1 -0
- package/dist/cjs/types/rx-plugin.d.js +2 -0
- package/dist/cjs/types/rx-plugin.d.js.map +1 -0
- package/dist/cjs/types/rx-query.d.js +2 -0
- package/dist/cjs/types/rx-query.d.js.map +1 -0
- package/dist/cjs/types/rx-schema.d.js +2 -0
- package/dist/cjs/types/rx-schema.d.js.map +1 -0
- package/dist/cjs/types/rx-storage.d.js +2 -0
- package/dist/cjs/types/rx-storage.d.js.map +1 -0
- package/dist/cjs/types/rx-storage.interface.d.js +2 -0
- package/dist/cjs/types/rx-storage.interface.d.js.map +1 -0
- package/dist/cjs/types/util.d.js +2 -0
- package/dist/cjs/types/util.d.js.map +1 -0
- package/dist/esm/change-event-buffer.js +141 -0
- package/dist/esm/change-event-buffer.js.map +1 -0
- package/dist/esm/custom-index.js +271 -0
- package/dist/esm/custom-index.js.map +1 -0
- package/dist/esm/doc-cache.js +227 -0
- package/dist/esm/doc-cache.js.map +1 -0
- package/dist/esm/event-reduce.js +93 -0
- package/dist/esm/event-reduce.js.map +1 -0
- package/dist/esm/hooks.js +122 -0
- package/dist/esm/hooks.js.map +1 -0
- package/dist/esm/incremental-write.js +161 -0
- package/dist/esm/incremental-write.js.map +1 -0
- package/dist/esm/index.js +30 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/overwritable.js +33 -0
- package/dist/esm/overwritable.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/plugin-helpers.js +217 -0
- package/dist/esm/plugin-helpers.js.map +1 -0
- package/dist/esm/plugin.js +88 -0
- package/dist/esm/plugin.js.map +1 -0
- package/dist/esm/plugins/attachments/attachments-utils.js +41 -0
- package/dist/esm/plugins/attachments/attachments-utils.js.map +1 -0
- package/dist/esm/plugins/attachments/index.js +202 -0
- package/dist/esm/plugins/attachments/index.js.map +1 -0
- package/dist/esm/plugins/attachments-compression/index.js +134 -0
- package/dist/esm/plugins/attachments-compression/index.js.map +1 -0
- package/dist/esm/plugins/backup/file-util.js +87 -0
- package/dist/esm/plugins/backup/file-util.js.map +1 -0
- package/dist/esm/plugins/backup/index.js +183 -0
- package/dist/esm/plugins/backup/index.js.map +1 -0
- package/dist/esm/plugins/cleanup/cleanup-helper.js +11 -0
- package/dist/esm/plugins/cleanup/cleanup-helper.js.map +1 -0
- package/dist/esm/plugins/cleanup/cleanup-state.js +75 -0
- package/dist/esm/plugins/cleanup/cleanup-state.js.map +1 -0
- package/dist/esm/plugins/cleanup/cleanup.js +108 -0
- package/dist/esm/plugins/cleanup/cleanup.js.map +1 -0
- package/dist/esm/plugins/cleanup/index.js +35 -0
- package/dist/esm/plugins/cleanup/index.js.map +1 -0
- package/dist/esm/plugins/crdt/index.js +378 -0
- package/dist/esm/plugins/crdt/index.js.map +1 -0
- package/dist/esm/plugins/dev-mode/check-document.js +150 -0
- package/dist/esm/plugins/dev-mode/check-document.js.map +1 -0
- package/dist/esm/plugins/dev-mode/check-migration-strategies.js +38 -0
- package/dist/esm/plugins/dev-mode/check-migration-strategies.js.map +1 -0
- package/dist/esm/plugins/dev-mode/check-orm.js +47 -0
- package/dist/esm/plugins/dev-mode/check-orm.js.map +1 -0
- package/dist/esm/plugins/dev-mode/check-query.js +174 -0
- package/dist/esm/plugins/dev-mode/check-query.js.map +1 -0
- package/dist/esm/plugins/dev-mode/check-schema.js +478 -0
- package/dist/esm/plugins/dev-mode/check-schema.js.map +1 -0
- package/dist/esm/plugins/dev-mode/dev-mode-tracking.js +87 -0
- package/dist/esm/plugins/dev-mode/dev-mode-tracking.js.map +1 -0
- package/dist/esm/plugins/dev-mode/entity-properties.js +49 -0
- package/dist/esm/plugins/dev-mode/entity-properties.js.map +1 -0
- package/dist/esm/plugins/dev-mode/error-messages.js +1289 -0
- package/dist/esm/plugins/dev-mode/error-messages.js.map +1 -0
- package/dist/esm/plugins/dev-mode/index.js +151 -0
- package/dist/esm/plugins/dev-mode/index.js.map +1 -0
- package/dist/esm/plugins/dev-mode/unallowed-properties.js +81 -0
- package/dist/esm/plugins/dev-mode/unallowed-properties.js.map +1 -0
- package/dist/esm/plugins/electron/electron-helper.js +3 -0
- package/dist/esm/plugins/electron/electron-helper.js.map +1 -0
- package/dist/esm/plugins/electron/index.js +4 -0
- package/dist/esm/plugins/electron/index.js.map +1 -0
- package/dist/esm/plugins/electron/rx-storage-ipc-main.js +39 -0
- package/dist/esm/plugins/electron/rx-storage-ipc-main.js.map +1 -0
- package/dist/esm/plugins/electron/rx-storage-ipc-renderer.js +31 -0
- package/dist/esm/plugins/electron/rx-storage-ipc-renderer.js.map +1 -0
- package/dist/esm/plugins/encryption-crypto-js/index.js +154 -0
- package/dist/esm/plugins/encryption-crypto-js/index.js.map +1 -0
- package/dist/esm/plugins/flutter/index.js +55 -0
- package/dist/esm/plugins/flutter/index.js.map +1 -0
- package/dist/esm/plugins/json-dump/index.js +87 -0
- package/dist/esm/plugins/json-dump/index.js.map +1 -0
- package/dist/esm/plugins/key-compression/index.js +127 -0
- package/dist/esm/plugins/key-compression/index.js.map +1 -0
- package/dist/esm/plugins/leader-election/index.js +95 -0
- package/dist/esm/plugins/leader-election/index.js.map +1 -0
- package/dist/esm/plugins/local-documents/index.js +70 -0
- package/dist/esm/plugins/local-documents/index.js.map +1 -0
- package/dist/esm/plugins/local-documents/local-documents-helper.js +67 -0
- package/dist/esm/plugins/local-documents/local-documents-helper.js.map +1 -0
- package/dist/esm/plugins/local-documents/local-documents.js +99 -0
- package/dist/esm/plugins/local-documents/local-documents.js.map +1 -0
- package/dist/esm/plugins/local-documents/rx-local-document.js +248 -0
- package/dist/esm/plugins/local-documents/rx-local-document.js.map +1 -0
- package/dist/esm/plugins/migration-schema/index.js +42 -0
- package/dist/esm/plugins/migration-schema/index.js.map +1 -0
- package/dist/esm/plugins/migration-schema/migration-helpers.js +103 -0
- package/dist/esm/plugins/migration-schema/migration-helpers.js.map +1 -0
- package/dist/esm/plugins/migration-schema/migration-types.js +3 -0
- package/dist/esm/plugins/migration-schema/migration-types.js.map +1 -0
- package/dist/esm/plugins/migration-schema/rx-migration-state.js +404 -0
- package/dist/esm/plugins/migration-schema/rx-migration-state.js.map +1 -0
- package/dist/esm/plugins/migration-storage/index.js +166 -0
- package/dist/esm/plugins/migration-storage/index.js.map +1 -0
- package/dist/esm/plugins/pipeline/flagged-functions.js +122 -0
- package/dist/esm/plugins/pipeline/flagged-functions.js.map +1 -0
- package/dist/esm/plugins/pipeline/index.js +13 -0
- package/dist/esm/plugins/pipeline/index.js.map +1 -0
- package/dist/esm/plugins/pipeline/rx-pipeline.js +210 -0
- package/dist/esm/plugins/pipeline/rx-pipeline.js.map +1 -0
- package/dist/esm/plugins/pipeline/types.js +3 -0
- package/dist/esm/plugins/pipeline/types.js.map +1 -0
- package/dist/esm/plugins/query-builder/index.js +48 -0
- package/dist/esm/plugins/query-builder/index.js.map +1 -0
- package/dist/esm/plugins/query-builder/mquery/mquery-utils.js +33 -0
- package/dist/esm/plugins/query-builder/mquery/mquery-utils.js.map +1 -0
- package/dist/esm/plugins/query-builder/mquery/nosql-query-builder.js +478 -0
- package/dist/esm/plugins/query-builder/mquery/nosql-query-builder.js.map +1 -0
- package/dist/esm/plugins/react/database-context.js +8 -0
- package/dist/esm/plugins/react/database-context.js.map +1 -0
- package/dist/esm/plugins/react/database-provider.js +34 -0
- package/dist/esm/plugins/react/database-provider.js.map +1 -0
- package/dist/esm/plugins/react/hooks/index.js +5 -0
- package/dist/esm/plugins/react/hooks/index.js.map +1 -0
- package/dist/esm/plugins/react/hooks/use-live-rx-query.js +22 -0
- package/dist/esm/plugins/react/hooks/use-live-rx-query.js.map +1 -0
- package/dist/esm/plugins/react/hooks/use-rx-collection.js +34 -0
- package/dist/esm/plugins/react/hooks/use-rx-collection.js.map +1 -0
- package/dist/esm/plugins/react/hooks/use-rx-database.js +19 -0
- package/dist/esm/plugins/react/hooks/use-rx-database.js.map +1 -0
- package/dist/esm/plugins/react/hooks/use-rx-query.js +92 -0
- package/dist/esm/plugins/react/hooks/use-rx-query.js.map +1 -0
- package/dist/esm/plugins/react/index.js +3 -0
- package/dist/esm/plugins/react/index.js.map +1 -0
- package/dist/esm/plugins/reactivity-angular/index.js +25 -0
- package/dist/esm/plugins/reactivity-angular/index.js.map +1 -0
- package/dist/esm/plugins/reactivity-preact-signals/index.js +62 -0
- package/dist/esm/plugins/reactivity-preact-signals/index.js.map +1 -0
- package/dist/esm/plugins/reactivity-vue/index.js +27 -0
- package/dist/esm/plugins/reactivity-vue/index.js.map +1 -0
- package/dist/esm/plugins/replication/index.js +479 -0
- package/dist/esm/plugins/replication/index.js.map +1 -0
- package/dist/esm/plugins/replication/replication-helper.js +86 -0
- package/dist/esm/plugins/replication/replication-helper.js.map +1 -0
- package/dist/esm/plugins/replication-appwrite/appwrite-helpers.js +26 -0
- package/dist/esm/plugins/replication-appwrite/appwrite-helpers.js.map +1 -0
- package/dist/esm/plugins/replication-appwrite/appwrite-types.js +3 -0
- package/dist/esm/plugins/replication-appwrite/appwrite-types.js.map +1 -0
- package/dist/esm/plugins/replication-appwrite/index.js +168 -0
- package/dist/esm/plugins/replication-appwrite/index.js.map +1 -0
- package/dist/esm/plugins/replication-couchdb/couchdb-helper.js +65 -0
- package/dist/esm/plugins/replication-couchdb/couchdb-helper.js.map +1 -0
- package/dist/esm/plugins/replication-couchdb/couchdb-types.js +3 -0
- package/dist/esm/plugins/replication-couchdb/couchdb-types.js.map +1 -0
- package/dist/esm/plugins/replication-couchdb/index.js +254 -0
- package/dist/esm/plugins/replication-couchdb/index.js.map +1 -0
- package/dist/esm/plugins/replication-firestore/firestore-helper.js +49 -0
- package/dist/esm/plugins/replication-firestore/firestore-helper.js.map +1 -0
- package/dist/esm/plugins/replication-firestore/firestore-types.js +3 -0
- package/dist/esm/plugins/replication-firestore/firestore-types.js.map +1 -0
- package/dist/esm/plugins/replication-firestore/index.js +233 -0
- package/dist/esm/plugins/replication-firestore/index.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/document-handling.js +140 -0
- package/dist/esm/plugins/replication-google-drive/document-handling.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/downstream.js +66 -0
- package/dist/esm/plugins/replication-google-drive/downstream.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/google-drive-helper.js +331 -0
- package/dist/esm/plugins/replication-google-drive/google-drive-helper.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/google-drive-types.js +3 -0
- package/dist/esm/plugins/replication-google-drive/google-drive-types.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/index.js +126 -0
- package/dist/esm/plugins/replication-google-drive/index.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/init.js +70 -0
- package/dist/esm/plugins/replication-google-drive/init.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/multipart.js +67 -0
- package/dist/esm/plugins/replication-google-drive/multipart.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/signaling.js +253 -0
- package/dist/esm/plugins/replication-google-drive/signaling.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/transaction.js +123 -0
- package/dist/esm/plugins/replication-google-drive/transaction.js.map +1 -0
- package/dist/esm/plugins/replication-google-drive/upstream.js +171 -0
- package/dist/esm/plugins/replication-google-drive/upstream.js.map +1 -0
- package/dist/esm/plugins/replication-graphql/graphql-schema-from-rx-schema.js +228 -0
- package/dist/esm/plugins/replication-graphql/graphql-schema-from-rx-schema.js.map +1 -0
- package/dist/esm/plugins/replication-graphql/graphql-websocket.js +35 -0
- package/dist/esm/plugins/replication-graphql/graphql-websocket.js.map +1 -0
- package/dist/esm/plugins/replication-graphql/helper.js +21 -0
- package/dist/esm/plugins/replication-graphql/helper.js.map +1 -0
- package/dist/esm/plugins/replication-graphql/index.js +161 -0
- package/dist/esm/plugins/replication-graphql/index.js.map +1 -0
- package/dist/esm/plugins/replication-graphql/query-builder-from-rx-schema.js +133 -0
- package/dist/esm/plugins/replication-graphql/query-builder-from-rx-schema.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/document-handling.js +178 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/document-handling.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/downstream.js +71 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/downstream.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/index.js +126 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/index.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/init.js +70 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/init.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/microsoft-onedrive-helper.js +258 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/microsoft-onedrive-helper.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/microsoft-onedrive-types.js +3 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/microsoft-onedrive-types.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/signaling.js +226 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/signaling.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/transaction.js +127 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/transaction.js.map +1 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/upstream.js +179 -0
- package/dist/esm/plugins/replication-microsoft-onedrive/upstream.js.map +1 -0
- package/dist/esm/plugins/replication-mongodb/index.js +197 -0
- package/dist/esm/plugins/replication-mongodb/index.js.map +1 -0
- package/dist/esm/plugins/replication-mongodb/mongodb-checkpoint.js +131 -0
- package/dist/esm/plugins/replication-mongodb/mongodb-checkpoint.js.map +1 -0
- package/dist/esm/plugins/replication-mongodb/mongodb-helper.js +45 -0
- package/dist/esm/plugins/replication-mongodb/mongodb-helper.js.map +1 -0
- package/dist/esm/plugins/replication-mongodb/mongodb-types.js +3 -0
- package/dist/esm/plugins/replication-mongodb/mongodb-types.js.map +1 -0
- package/dist/esm/plugins/replication-nats/index.js +199 -0
- package/dist/esm/plugins/replication-nats/index.js.map +1 -0
- package/dist/esm/plugins/replication-nats/nats-helper.js +7 -0
- package/dist/esm/plugins/replication-nats/nats-helper.js.map +1 -0
- package/dist/esm/plugins/replication-nats/nats-types.js +3 -0
- package/dist/esm/plugins/replication-nats/nats-types.js.map +1 -0
- package/dist/esm/plugins/replication-supabase/helper.js +35 -0
- package/dist/esm/plugins/replication-supabase/helper.js.map +1 -0
- package/dist/esm/plugins/replication-supabase/index.js +231 -0
- package/dist/esm/plugins/replication-supabase/index.js.map +1 -0
- package/dist/esm/plugins/replication-supabase/types.js +3 -0
- package/dist/esm/plugins/replication-supabase/types.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/connection-handler-p2pcf.js +78 -0
- package/dist/esm/plugins/replication-webrtc/connection-handler-p2pcf.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/connection-handler-simple-peer.js +192 -0
- package/dist/esm/plugins/replication-webrtc/connection-handler-simple-peer.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/connection-handler-webtorrent.js +136 -0
- package/dist/esm/plugins/replication-webrtc/connection-handler-webtorrent.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/index.js +207 -0
- package/dist/esm/plugins/replication-webrtc/index.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/signaling-server.js +144 -0
- package/dist/esm/plugins/replication-webrtc/signaling-server.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/webrtc-helper.js +26 -0
- package/dist/esm/plugins/replication-webrtc/webrtc-helper.js.map +1 -0
- package/dist/esm/plugins/replication-webrtc/webrtc-types.js +3 -0
- package/dist/esm/plugins/replication-webrtc/webrtc-types.js.map +1 -0
- package/dist/esm/plugins/replication-websocket/index.js +4 -0
- package/dist/esm/plugins/replication-websocket/index.js.map +1 -0
- package/dist/esm/plugins/replication-websocket/websocket-client.js +125 -0
- package/dist/esm/plugins/replication-websocket/websocket-client.js.map +1 -0
- package/dist/esm/plugins/replication-websocket/websocket-server.js +100 -0
- package/dist/esm/plugins/replication-websocket/websocket-server.js.map +1 -0
- package/dist/esm/plugins/replication-websocket/websocket-types.js +3 -0
- package/dist/esm/plugins/replication-websocket/websocket-types.js.map +1 -0
- package/dist/esm/plugins/state/helpers.js +73 -0
- package/dist/esm/plugins/state/helpers.js.map +1 -0
- package/dist/esm/plugins/state/index.js +20 -0
- package/dist/esm/plugins/state/index.js.map +1 -0
- package/dist/esm/plugins/state/rx-state.js +285 -0
- package/dist/esm/plugins/state/rx-state.js.map +1 -0
- package/dist/esm/plugins/state/types.js +3 -0
- package/dist/esm/plugins/state/types.js.map +1 -0
- package/dist/esm/plugins/storage-denokv/denokv-helper.js +40 -0
- package/dist/esm/plugins/storage-denokv/denokv-helper.js.map +1 -0
- package/dist/esm/plugins/storage-denokv/denokv-query.js +93 -0
- package/dist/esm/plugins/storage-denokv/denokv-query.js.map +1 -0
- package/dist/esm/plugins/storage-denokv/denokv-types.js +3 -0
- package/dist/esm/plugins/storage-denokv/denokv-types.js.map +1 -0
- package/dist/esm/plugins/storage-denokv/index.js +24 -0
- package/dist/esm/plugins/storage-denokv/index.js.map +1 -0
- package/dist/esm/plugins/storage-denokv/rx-storage-instance-denokv.js +325 -0
- package/dist/esm/plugins/storage-denokv/rx-storage-instance-denokv.js.map +1 -0
- package/dist/esm/plugins/storage-dexie/dexie-helper.js +241 -0
- package/dist/esm/plugins/storage-dexie/dexie-helper.js.map +1 -0
- package/dist/esm/plugins/storage-dexie/dexie-query.js +169 -0
- package/dist/esm/plugins/storage-dexie/dexie-query.js.map +1 -0
- package/dist/esm/plugins/storage-dexie/index.js +5 -0
- package/dist/esm/plugins/storage-dexie/index.js.map +1 -0
- package/dist/esm/plugins/storage-dexie/rx-storage-dexie.js +39 -0
- package/dist/esm/plugins/storage-dexie/rx-storage-dexie.js.map +1 -0
- package/dist/esm/plugins/storage-dexie/rx-storage-instance-dexie.js +222 -0
- package/dist/esm/plugins/storage-dexie/rx-storage-instance-dexie.js.map +1 -0
- package/dist/esm/plugins/storage-foundationdb/foundationdb-helpers.js +6 -0
- package/dist/esm/plugins/storage-foundationdb/foundationdb-helpers.js.map +1 -0
- package/dist/esm/plugins/storage-foundationdb/foundationdb-query.js +90 -0
- package/dist/esm/plugins/storage-foundationdb/foundationdb-query.js.map +1 -0
- package/dist/esm/plugins/storage-foundationdb/foundationdb-types.js +3 -0
- package/dist/esm/plugins/storage-foundationdb/foundationdb-types.js.map +1 -0
- package/dist/esm/plugins/storage-foundationdb/index.js +31 -0
- package/dist/esm/plugins/storage-foundationdb/index.js.map +1 -0
- package/dist/esm/plugins/storage-foundationdb/rx-storage-instance-foundationdb.js +302 -0
- package/dist/esm/plugins/storage-foundationdb/rx-storage-instance-foundationdb.js.map +1 -0
- package/dist/esm/plugins/storage-localstorage/index.js +23 -0
- package/dist/esm/plugins/storage-localstorage/index.js.map +1 -0
- package/dist/esm/plugins/storage-localstorage/localstorage-mock.js +33 -0
- package/dist/esm/plugins/storage-localstorage/localstorage-mock.js.map +1 -0
- package/dist/esm/plugins/storage-localstorage/rx-storage-instance-localstorage.js +432 -0
- package/dist/esm/plugins/storage-localstorage/rx-storage-instance-localstorage.js.map +1 -0
- package/dist/esm/plugins/storage-memory/binary-search-bounds.js +103 -0
- package/dist/esm/plugins/storage-memory/binary-search-bounds.js.map +1 -0
- package/dist/esm/plugins/storage-memory/index.js +29 -0
- package/dist/esm/plugins/storage-memory/index.js.map +1 -0
- package/dist/esm/plugins/storage-memory/memory-helper.js +165 -0
- package/dist/esm/plugins/storage-memory/memory-helper.js.map +1 -0
- package/dist/esm/plugins/storage-memory/memory-indexes.js +21 -0
- package/dist/esm/plugins/storage-memory/memory-indexes.js.map +1 -0
- package/dist/esm/plugins/storage-memory/memory-types.js +3 -0
- package/dist/esm/plugins/storage-memory/memory-types.js.map +1 -0
- package/dist/esm/plugins/storage-memory/rx-storage-instance-memory.js +364 -0
- package/dist/esm/plugins/storage-memory/rx-storage-instance-memory.js.map +1 -0
- package/dist/esm/plugins/storage-mongodb/index.js +5 -0
- package/dist/esm/plugins/storage-mongodb/index.js.map +1 -0
- package/dist/esm/plugins/storage-mongodb/mongodb-helper.js +85 -0
- package/dist/esm/plugins/storage-mongodb/mongodb-helper.js.map +1 -0
- package/dist/esm/plugins/storage-mongodb/mongodb-types.js +3 -0
- package/dist/esm/plugins/storage-mongodb/mongodb-types.js.map +1 -0
- package/dist/esm/plugins/storage-mongodb/rx-storage-instance-mongodb.js +316 -0
- package/dist/esm/plugins/storage-mongodb/rx-storage-instance-mongodb.js.map +1 -0
- package/dist/esm/plugins/storage-mongodb/rx-storage-mongodb.js +22 -0
- package/dist/esm/plugins/storage-mongodb/rx-storage-mongodb.js.map +1 -0
- package/dist/esm/plugins/storage-remote/index.js +6 -0
- package/dist/esm/plugins/storage-remote/index.js.map +1 -0
- package/dist/esm/plugins/storage-remote/message-channel-cache.js +44 -0
- package/dist/esm/plugins/storage-remote/message-channel-cache.js.map +1 -0
- package/dist/esm/plugins/storage-remote/remote.js +212 -0
- package/dist/esm/plugins/storage-remote/remote.js.map +1 -0
- package/dist/esm/plugins/storage-remote/rx-storage-remote.js +193 -0
- package/dist/esm/plugins/storage-remote/rx-storage-remote.js.map +1 -0
- package/dist/esm/plugins/storage-remote/storage-remote-helpers.js +18 -0
- package/dist/esm/plugins/storage-remote/storage-remote-helpers.js.map +1 -0
- package/dist/esm/plugins/storage-remote/storage-remote-types.js +3 -0
- package/dist/esm/plugins/storage-remote/storage-remote-types.js.map +1 -0
- package/dist/esm/plugins/storage-remote-websocket/index.js +161 -0
- package/dist/esm/plugins/storage-remote-websocket/index.js.map +1 -0
- package/dist/esm/plugins/storage-remote-websocket/types.js +3 -0
- package/dist/esm/plugins/storage-remote-websocket/types.js.map +1 -0
- package/dist/esm/plugins/storage-sqlite/index.js +31 -0
- package/dist/esm/plugins/storage-sqlite/index.js.map +1 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-basics-helpers.js +510 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-basics-helpers.js.map +1 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-helpers.js +187 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-helpers.js.map +1 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-storage-instance.js +283 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-storage-instance.js.map +1 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-types.js +3 -0
- package/dist/esm/plugins/storage-sqlite/sqlite-types.js.map +1 -0
- package/dist/esm/plugins/test-utils/config.js +104 -0
- package/dist/esm/plugins/test-utils/config.js.map +1 -0
- package/dist/esm/plugins/test-utils/humans-collection.js +397 -0
- package/dist/esm/plugins/test-utils/humans-collection.js.map +1 -0
- package/dist/esm/plugins/test-utils/index.js +22 -0
- package/dist/esm/plugins/test-utils/index.js.map +1 -0
- package/dist/esm/plugins/test-utils/performance.js +267 -0
- package/dist/esm/plugins/test-utils/performance.js.map +1 -0
- package/dist/esm/plugins/test-utils/replication-base-test-suite.js +170 -0
- package/dist/esm/plugins/test-utils/replication-base-test-suite.js.map +1 -0
- package/dist/esm/plugins/test-utils/replication.js +46 -0
- package/dist/esm/plugins/test-utils/replication.js.map +1 -0
- package/dist/esm/plugins/test-utils/revisions.js +5 -0
- package/dist/esm/plugins/test-utils/revisions.js.map +1 -0
- package/dist/esm/plugins/test-utils/schema-objects.js +283 -0
- package/dist/esm/plugins/test-utils/schema-objects.js.map +1 -0
- package/dist/esm/plugins/test-utils/schemas.js +1244 -0
- package/dist/esm/plugins/test-utils/schemas.js.map +1 -0
- package/dist/esm/plugins/test-utils/test-util.js +62 -0
- package/dist/esm/plugins/test-utils/test-util.js.map +1 -0
- package/dist/esm/plugins/update/index.js +35 -0
- package/dist/esm/plugins/update/index.js.map +1 -0
- package/dist/esm/plugins/update/mingo-updater.js +13 -0
- package/dist/esm/plugins/update/mingo-updater.js.map +1 -0
- package/dist/esm/plugins/utils/index.js +21 -0
- package/dist/esm/plugins/utils/index.js.map +1 -0
- package/dist/esm/plugins/utils/utils-array.js +130 -0
- package/dist/esm/plugins/utils/utils-array.js.map +1 -0
- package/dist/esm/plugins/utils/utils-base64.js +48 -0
- package/dist/esm/plugins/utils/utils-base64.js.map +1 -0
- package/dist/esm/plugins/utils/utils-blob.js +54 -0
- package/dist/esm/plugins/utils/utils-blob.js.map +1 -0
- package/dist/esm/plugins/utils/utils-document.js +87 -0
- package/dist/esm/plugins/utils/utils-document.js.map +1 -0
- package/dist/esm/plugins/utils/utils-error.js +36 -0
- package/dist/esm/plugins/utils/utils-error.js.map +1 -0
- package/dist/esm/plugins/utils/utils-global.js +6 -0
- package/dist/esm/plugins/utils/utils-global.js.map +1 -0
- package/dist/esm/plugins/utils/utils-hash.js +51 -0
- package/dist/esm/plugins/utils/utils-hash.js.map +1 -0
- package/dist/esm/plugins/utils/utils-map.js +18 -0
- package/dist/esm/plugins/utils/utils-map.js.map +1 -0
- package/dist/esm/plugins/utils/utils-number.js +10 -0
- package/dist/esm/plugins/utils/utils-number.js.map +1 -0
- package/dist/esm/plugins/utils/utils-object-deep-equal.js +36 -0
- package/dist/esm/plugins/utils/utils-object-deep-equal.js.map +1 -0
- package/dist/esm/plugins/utils/utils-object-dot-prop.js +296 -0
- package/dist/esm/plugins/utils/utils-object-dot-prop.js.map +1 -0
- package/dist/esm/plugins/utils/utils-object.js +228 -0
- package/dist/esm/plugins/utils/utils-object.js.map +1 -0
- package/dist/esm/plugins/utils/utils-other.js +58 -0
- package/dist/esm/plugins/utils/utils-other.js.map +1 -0
- package/dist/esm/plugins/utils/utils-premium.js +30 -0
- package/dist/esm/plugins/utils/utils-premium.js.map +1 -0
- package/dist/esm/plugins/utils/utils-promise.js +134 -0
- package/dist/esm/plugins/utils/utils-promise.js.map +1 -0
- package/dist/esm/plugins/utils/utils-regex.js +3 -0
- package/dist/esm/plugins/utils/utils-regex.js.map +1 -0
- package/dist/esm/plugins/utils/utils-revision.js +53 -0
- package/dist/esm/plugins/utils/utils-revision.js.map +1 -0
- package/dist/esm/plugins/utils/utils-rxdb-version.js +5 -0
- package/dist/esm/plugins/utils/utils-rxdb-version.js.map +1 -0
- package/dist/esm/plugins/utils/utils-rxdb-version.template.js +5 -0
- package/dist/esm/plugins/utils/utils-rxdb-version.template.js.map +1 -0
- package/dist/esm/plugins/utils/utils-string.js +83 -0
- package/dist/esm/plugins/utils/utils-string.js.map +1 -0
- package/dist/esm/plugins/utils/utils-time.js +36 -0
- package/dist/esm/plugins/utils/utils-time.js.map +1 -0
- package/dist/esm/plugins/validate-ajv/index.js +43 -0
- package/dist/esm/plugins/validate-ajv/index.js.map +1 -0
- package/dist/esm/plugins/validate-is-my-json-valid/index.js +20 -0
- package/dist/esm/plugins/validate-is-my-json-valid/index.js.map +1 -0
- package/dist/esm/plugins/validate-z-schema/index.js +47 -0
- package/dist/esm/plugins/validate-z-schema/index.js.map +1 -0
- package/dist/esm/plugins/vector/helper.js +2 -0
- package/dist/esm/plugins/vector/helper.js.map +1 -0
- package/dist/esm/plugins/vector/index.js +2 -0
- package/dist/esm/plugins/vector/index.js.map +1 -0
- package/dist/esm/plugins/vector/types.js +3 -0
- package/dist/esm/plugins/vector/types.js.map +1 -0
- package/dist/esm/plugins/vector/vector-distance.js +29 -0
- package/dist/esm/plugins/vector/vector-distance.js.map +1 -0
- package/dist/esm/plugins/webmcp/index.js +3 -0
- package/dist/esm/plugins/webmcp/index.js.map +1 -0
- package/dist/esm/plugins/webmcp/nosql-query-schema.js +354 -0
- package/dist/esm/plugins/webmcp/nosql-query-schema.js.map +1 -0
- package/dist/esm/plugins/webmcp/webmcp.js +307 -0
- package/dist/esm/plugins/webmcp/webmcp.js.map +1 -0
- package/dist/esm/query-cache.js +99 -0
- package/dist/esm/query-cache.js.map +1 -0
- package/dist/esm/query-planner.js +297 -0
- package/dist/esm/query-planner.js.map +1 -0
- package/dist/esm/replication-protocol/checkpoint.js +95 -0
- package/dist/esm/replication-protocol/checkpoint.js.map +1 -0
- package/dist/esm/replication-protocol/conflicts.js +31 -0
- package/dist/esm/replication-protocol/conflicts.js.map +1 -0
- package/dist/esm/replication-protocol/default-conflict-handler.js +33 -0
- package/dist/esm/replication-protocol/default-conflict-handler.js.map +1 -0
- package/dist/esm/replication-protocol/downstream.js +334 -0
- package/dist/esm/replication-protocol/downstream.js.map +1 -0
- package/dist/esm/replication-protocol/helper.js +49 -0
- package/dist/esm/replication-protocol/helper.js.map +1 -0
- package/dist/esm/replication-protocol/index.js +221 -0
- package/dist/esm/replication-protocol/index.js.map +1 -0
- package/dist/esm/replication-protocol/meta-instance.js +121 -0
- package/dist/esm/replication-protocol/meta-instance.js.map +1 -0
- package/dist/esm/replication-protocol/upstream.js +379 -0
- package/dist/esm/replication-protocol/upstream.js.map +1 -0
- package/dist/esm/rx-change-event.js +103 -0
- package/dist/esm/rx-change-event.js.map +1 -0
- package/dist/esm/rx-collection-helper.js +196 -0
- package/dist/esm/rx-collection-helper.js.map +1 -0
- package/dist/esm/rx-collection.js +923 -0
- package/dist/esm/rx-collection.js.map +1 -0
- package/dist/esm/rx-database-internal-store.js +270 -0
- package/dist/esm/rx-database-internal-store.js.map +1 -0
- package/dist/esm/rx-database.js +670 -0
- package/dist/esm/rx-database.js.map +1 -0
- package/dist/esm/rx-document-prototype-merge.js +78 -0
- package/dist/esm/rx-document-prototype-merge.js.map +1 -0
- package/dist/esm/rx-document.js +394 -0
- package/dist/esm/rx-document.js.map +1 -0
- package/dist/esm/rx-error.js +153 -0
- package/dist/esm/rx-error.js.map +1 -0
- package/dist/esm/rx-query-helper.js +268 -0
- package/dist/esm/rx-query-helper.js.map +1 -0
- package/dist/esm/rx-query-mingo.js +54 -0
- package/dist/esm/rx-query-mingo.js.map +1 -0
- package/dist/esm/rx-query-single-result.js +98 -0
- package/dist/esm/rx-query-single-result.js.map +1 -0
- package/dist/esm/rx-query.js +690 -0
- package/dist/esm/rx-query.js.map +1 -0
- package/dist/esm/rx-schema-helper.js +316 -0
- package/dist/esm/rx-schema-helper.js.map +1 -0
- package/dist/esm/rx-schema.js +177 -0
- package/dist/esm/rx-schema.js.map +1 -0
- package/dist/esm/rx-storage-helper.js +785 -0
- package/dist/esm/rx-storage-helper.js.map +1 -0
- package/dist/esm/rx-storage-multiinstance.js +113 -0
- package/dist/esm/rx-storage-multiinstance.js.map +1 -0
- package/dist/esm/types/conflict-handling.d.js +3 -0
- package/dist/esm/types/conflict-handling.d.js.map +1 -0
- package/dist/esm/types/couchdb.d.js +3 -0
- package/dist/esm/types/couchdb.d.js.map +1 -0
- package/dist/esm/types/index.d.js +2 -0
- package/dist/esm/types/index.d.js.map +1 -0
- package/dist/esm/types/modules/index.d.js +2 -0
- package/dist/esm/types/modules/index.d.js.map +1 -0
- package/dist/esm/types/modules/mocha.parallel.d.js +2 -0
- package/dist/esm/types/modules/mocha.parallel.d.js.map +1 -0
- package/dist/esm/types/plugins/backup.d.js +3 -0
- package/dist/esm/types/plugins/backup.d.js.map +1 -0
- package/dist/esm/types/plugins/cleanup.d.js +3 -0
- package/dist/esm/types/plugins/cleanup.d.js.map +1 -0
- package/dist/esm/types/plugins/crdt.d.js +3 -0
- package/dist/esm/types/plugins/crdt.d.js.map +1 -0
- package/dist/esm/types/plugins/dexie.d.js +3 -0
- package/dist/esm/types/plugins/dexie.d.js.map +1 -0
- package/dist/esm/types/plugins/local-documents.d.js +3 -0
- package/dist/esm/types/plugins/local-documents.d.js.map +1 -0
- package/dist/esm/types/plugins/migration.d.js +3 -0
- package/dist/esm/types/plugins/migration.d.js.map +1 -0
- package/dist/esm/types/plugins/reactivity.d.js +3 -0
- package/dist/esm/types/plugins/reactivity.d.js.map +1 -0
- package/dist/esm/types/plugins/replication-graphql.d.js +3 -0
- package/dist/esm/types/plugins/replication-graphql.d.js.map +1 -0
- package/dist/esm/types/plugins/replication.d.js +3 -0
- package/dist/esm/types/plugins/replication.d.js.map +1 -0
- package/dist/esm/types/plugins/state.d.js +3 -0
- package/dist/esm/types/plugins/state.d.js.map +1 -0
- package/dist/esm/types/plugins/update.d.js +3 -0
- package/dist/esm/types/plugins/update.d.js.map +1 -0
- package/dist/esm/types/plugins/webmcp.d.js +3 -0
- package/dist/esm/types/plugins/webmcp.d.js.map +1 -0
- package/dist/esm/types/query-planner.d.js +3 -0
- package/dist/esm/types/query-planner.d.js.map +1 -0
- package/dist/esm/types/replication-protocol.d.js +3 -0
- package/dist/esm/types/replication-protocol.d.js.map +1 -0
- package/dist/esm/types/rx-attachment.d.js +3 -0
- package/dist/esm/types/rx-attachment.d.js.map +1 -0
- package/dist/esm/types/rx-change-event.d.js +3 -0
- package/dist/esm/types/rx-change-event.d.js.map +1 -0
- package/dist/esm/types/rx-collection.d.js +3 -0
- package/dist/esm/types/rx-collection.d.js.map +1 -0
- package/dist/esm/types/rx-database-internal-store.d.js +3 -0
- package/dist/esm/types/rx-database-internal-store.d.js.map +1 -0
- package/dist/esm/types/rx-database.d.js +3 -0
- package/dist/esm/types/rx-database.d.js.map +1 -0
- package/dist/esm/types/rx-document.d.js +3 -0
- package/dist/esm/types/rx-document.d.js.map +1 -0
- package/dist/esm/types/rx-error.d.js +3 -0
- package/dist/esm/types/rx-error.d.js.map +1 -0
- package/dist/esm/types/rx-plugin.d.js +3 -0
- package/dist/esm/types/rx-plugin.d.js.map +1 -0
- package/dist/esm/types/rx-query.d.js +3 -0
- package/dist/esm/types/rx-query.d.js.map +1 -0
- package/dist/esm/types/rx-schema.d.js +3 -0
- package/dist/esm/types/rx-schema.d.js.map +1 -0
- package/dist/esm/types/rx-storage.d.js +3 -0
- package/dist/esm/types/rx-storage.d.js.map +1 -0
- package/dist/esm/types/rx-storage.interface.d.js +3 -0
- package/dist/esm/types/rx-storage.interface.d.js.map +1 -0
- package/dist/esm/types/util.d.js +3 -0
- package/dist/esm/types/util.d.js.map +1 -0
- package/dist/types/change-event-buffer.d.ts +50 -0
- package/dist/types/custom-index.d.ts +58 -0
- package/dist/types/doc-cache.d.ts +96 -0
- package/dist/types/event-reduce.d.ts +15 -0
- package/dist/types/hooks.d.ts +109 -0
- package/dist/types/incremental-write.d.ts +29 -0
- package/dist/types/index.d.ts +30 -0
- package/dist/types/overwritable.d.ts +26 -0
- package/dist/types/plugin-helpers.d.ts +30 -0
- package/dist/types/plugin.d.ts +6 -0
- package/dist/types/plugins/attachments/attachments-utils.d.ts +10 -0
- package/dist/types/plugins/attachments/index.d.ts +42 -0
- package/dist/types/plugins/attachments-compression/index.d.ts +38 -0
- package/dist/types/plugins/backup/file-util.d.ts +17 -0
- package/dist/types/plugins/backup/index.d.ts +37 -0
- package/dist/types/plugins/cleanup/cleanup-helper.d.ts +2 -0
- package/dist/types/plugins/cleanup/cleanup-state.d.ts +7 -0
- package/dist/types/plugins/cleanup/cleanup.d.ts +8 -0
- package/dist/types/plugins/cleanup/index.d.ts +4 -0
- package/dist/types/plugins/crdt/index.d.ts +12 -0
- package/dist/types/plugins/dev-mode/check-document.d.ts +9 -0
- package/dist/types/plugins/dev-mode/check-migration-strategies.d.ts +6 -0
- package/dist/types/plugins/dev-mode/check-orm.d.ts +7 -0
- package/dist/types/plugins/dev-mode/check-query.d.ts +21 -0
- package/dist/types/plugins/dev-mode/check-schema.d.ts +18 -0
- package/dist/types/plugins/dev-mode/dev-mode-tracking.d.ts +4 -0
- package/dist/types/plugins/dev-mode/entity-properties.d.ts +3 -0
- package/dist/types/plugins/dev-mode/error-messages.d.ts +1230 -0
- package/dist/types/plugins/dev-mode/index.d.ts +19 -0
- package/dist/types/plugins/dev-mode/unallowed-properties.d.ts +20 -0
- package/dist/types/plugins/electron/electron-helper.d.ts +2 -0
- package/dist/types/plugins/electron/index.d.ts +3 -0
- package/dist/types/plugins/electron/rx-storage-ipc-main.d.ts +10 -0
- package/dist/types/plugins/electron/rx-storage-ipc-renderer.d.ts +13 -0
- package/dist/types/plugins/encryption-crypto-js/index.d.ts +10 -0
- package/dist/types/plugins/flutter/index.d.ts +11 -0
- package/dist/types/plugins/json-dump/index.d.ts +2 -0
- package/dist/types/plugins/key-compression/index.d.ts +18 -0
- package/dist/types/plugins/leader-election/index.d.ts +25 -0
- package/dist/types/plugins/local-documents/index.d.ts +6 -0
- package/dist/types/plugins/local-documents/local-documents-helper.d.ts +9 -0
- package/dist/types/plugins/local-documents/local-documents.d.ts +14 -0
- package/dist/types/plugins/local-documents/rx-local-document.d.ts +11 -0
- package/dist/types/plugins/migration-schema/index.d.ts +8 -0
- package/dist/types/plugins/migration-schema/migration-helpers.d.ts +29 -0
- package/dist/types/plugins/migration-schema/migration-types.d.ts +33 -0
- package/dist/types/plugins/migration-schema/rx-migration-state.d.ts +50 -0
- package/dist/types/plugins/migration-storage/index.d.ts +32 -0
- package/dist/types/plugins/pipeline/flagged-functions.d.ts +69 -0
- package/dist/types/plugins/pipeline/index.d.ts +5 -0
- package/dist/types/plugins/pipeline/rx-pipeline.d.ts +37 -0
- package/dist/types/plugins/pipeline/types.d.ts +17 -0
- package/dist/types/plugins/query-builder/index.d.ts +5 -0
- package/dist/types/plugins/query-builder/mquery/mquery-utils.d.ts +12 -0
- package/dist/types/plugins/query-builder/mquery/nosql-query-builder.d.ts +165 -0
- package/dist/types/plugins/react/database-context.d.ts +4 -0
- package/dist/types/plugins/react/database-provider.d.ts +24 -0
- package/dist/types/plugins/react/hooks/index.d.ts +4 -0
- package/dist/types/plugins/react/hooks/use-live-rx-query.d.ts +11 -0
- package/dist/types/plugins/react/hooks/use-rx-collection.d.ts +10 -0
- package/dist/types/plugins/react/hooks/use-rx-database.d.ts +9 -0
- package/dist/types/plugins/react/hooks/use-rx-query.d.ts +24 -0
- package/dist/types/plugins/react/index.d.ts +2 -0
- package/dist/types/plugins/reactivity-angular/index.d.ts +16 -0
- package/dist/types/plugins/reactivity-preact-signals/index.d.ts +27 -0
- package/dist/types/plugins/reactivity-vue/index.d.ts +17 -0
- package/dist/types/plugins/replication/index.d.ts +84 -0
- package/dist/types/plugins/replication/replication-helper.d.ts +23 -0
- package/dist/types/plugins/replication-appwrite/appwrite-helpers.d.ts +3 -0
- package/dist/types/plugins/replication-appwrite/appwrite-types.d.ts +16 -0
- package/dist/types/plugins/replication-appwrite/index.d.ts +14 -0
- package/dist/types/plugins/replication-couchdb/couchdb-helper.d.ts +19 -0
- package/dist/types/plugins/replication-couchdb/couchdb-types.d.ts +22 -0
- package/dist/types/plugins/replication-couchdb/index.d.ts +18 -0
- package/dist/types/plugins/replication-firestore/firestore-helper.d.ts +10 -0
- package/dist/types/plugins/replication-firestore/firestore-types.d.ts +46 -0
- package/dist/types/plugins/replication-firestore/index.d.ts +17 -0
- package/dist/types/plugins/replication-google-drive/document-handling.d.ts +13 -0
- package/dist/types/plugins/replication-google-drive/downstream.d.ts +10 -0
- package/dist/types/plugins/replication-google-drive/google-drive-helper.d.ts +35 -0
- package/dist/types/plugins/replication-google-drive/google-drive-types.d.ts +67 -0
- package/dist/types/plugins/replication-google-drive/index.d.ts +39 -0
- package/dist/types/plugins/replication-google-drive/init.d.ts +29 -0
- package/dist/types/plugins/replication-google-drive/multipart.d.ts +10 -0
- package/dist/types/plugins/replication-google-drive/signaling.d.ts +41 -0
- package/dist/types/plugins/replication-google-drive/transaction.d.ts +22 -0
- package/dist/types/plugins/replication-google-drive/upstream.d.ts +24 -0
- package/dist/types/plugins/replication-graphql/graphql-schema-from-rx-schema.d.ts +51 -0
- package/dist/types/plugins/replication-graphql/graphql-websocket.d.ts +12 -0
- package/dist/types/plugins/replication-graphql/helper.d.ts +15 -0
- package/dist/types/plugins/replication-graphql/index.d.ts +26 -0
- package/dist/types/plugins/replication-graphql/query-builder-from-rx-schema.d.ts +5 -0
- package/dist/types/plugins/replication-microsoft-onedrive/document-handling.d.ts +14 -0
- package/dist/types/plugins/replication-microsoft-onedrive/downstream.d.ts +10 -0
- package/dist/types/plugins/replication-microsoft-onedrive/index.d.ts +38 -0
- package/dist/types/plugins/replication-microsoft-onedrive/init.d.ts +29 -0
- package/dist/types/plugins/replication-microsoft-onedrive/microsoft-onedrive-helper.d.ts +30 -0
- package/dist/types/plugins/replication-microsoft-onedrive/microsoft-onedrive-types.d.ts +71 -0
- package/dist/types/plugins/replication-microsoft-onedrive/signaling.d.ts +41 -0
- package/dist/types/plugins/replication-microsoft-onedrive/transaction.d.ts +22 -0
- package/dist/types/plugins/replication-microsoft-onedrive/upstream.d.ts +25 -0
- package/dist/types/plugins/replication-mongodb/index.d.ts +22 -0
- package/dist/types/plugins/replication-mongodb/mongodb-checkpoint.d.ts +15 -0
- package/dist/types/plugins/replication-mongodb/mongodb-helper.d.ts +13 -0
- package/dist/types/plugins/replication-mongodb/mongodb-types.d.ts +33 -0
- package/dist/types/plugins/replication-nats/index.d.ts +16 -0
- package/dist/types/plugins/replication-nats/nats-helper.d.ts +2 -0
- package/dist/types/plugins/replication-nats/nats-types.d.ts +21 -0
- package/dist/types/plugins/replication-supabase/helper.d.ts +5 -0
- package/dist/types/plugins/replication-supabase/index.d.ts +14 -0
- package/dist/types/plugins/replication-supabase/types.d.ts +28 -0
- package/dist/types/plugins/replication-webrtc/connection-handler-p2pcf.d.ts +0 -0
- package/dist/types/plugins/replication-webrtc/connection-handler-simple-peer.d.ts +57 -0
- package/dist/types/plugins/replication-webrtc/connection-handler-webtorrent.d.ts +0 -0
- package/dist/types/plugins/replication-webrtc/index.d.ts +27 -0
- package/dist/types/plugins/replication-webrtc/signaling-server.d.ts +17 -0
- package/dist/types/plugins/replication-webrtc/webrtc-helper.d.ts +16 -0
- package/dist/types/plugins/replication-webrtc/webrtc-types.d.ts +51 -0
- package/dist/types/plugins/replication-websocket/index.d.ts +3 -0
- package/dist/types/plugins/replication-websocket/websocket-client.d.ts +13 -0
- package/dist/types/plugins/replication-websocket/websocket-server.d.ts +6 -0
- package/dist/types/plugins/replication-websocket/websocket-types.d.ts +32 -0
- package/dist/types/plugins/state/helpers.d.ts +10 -0
- package/dist/types/plugins/state/index.d.ts +4 -0
- package/dist/types/plugins/state/rx-state.d.ts +46 -0
- package/dist/types/plugins/state/types.d.ts +28 -0
- package/dist/types/plugins/storage-denokv/denokv-helper.d.ts +16 -0
- package/dist/types/plugins/storage-denokv/denokv-query.d.ts +3 -0
- package/dist/types/plugins/storage-denokv/denokv-types.d.ts +17 -0
- package/dist/types/plugins/storage-denokv/index.d.ts +11 -0
- package/dist/types/plugins/storage-denokv/rx-storage-instance-denokv.d.ts +41 -0
- package/dist/types/plugins/storage-dexie/dexie-helper.d.ts +40 -0
- package/dist/types/plugins/storage-dexie/dexie-query.d.ts +9 -0
- package/dist/types/plugins/storage-dexie/index.d.ts +4 -0
- package/dist/types/plugins/storage-dexie/rx-storage-dexie.d.ts +11 -0
- package/dist/types/plugins/storage-dexie/rx-storage-instance-dexie.d.ts +29 -0
- package/dist/types/plugins/storage-foundationdb/foundationdb-helpers.d.ts +3 -0
- package/dist/types/plugins/storage-foundationdb/foundationdb-query.d.ts +3 -0
- package/dist/types/plugins/storage-foundationdb/foundationdb-types.d.ts +46 -0
- package/dist/types/plugins/storage-foundationdb/index.d.ts +4 -0
- package/dist/types/plugins/storage-foundationdb/rx-storage-instance-foundationdb.d.ts +26 -0
- package/dist/types/plugins/storage-localstorage/index.d.ts +11 -0
- package/dist/types/plugins/storage-localstorage/localstorage-mock.d.ts +1 -0
- package/dist/types/plugins/storage-localstorage/rx-storage-instance-localstorage.d.ts +84 -0
- package/dist/types/plugins/storage-memory/binary-search-bounds.d.ts +14 -0
- package/dist/types/plugins/storage-memory/index.d.ts +7 -0
- package/dist/types/plugins/storage-memory/memory-helper.d.ts +22 -0
- package/dist/types/plugins/storage-memory/memory-indexes.d.ts +4 -0
- package/dist/types/plugins/storage-memory/memory-types.d.ts +72 -0
- package/dist/types/plugins/storage-memory/rx-storage-instance-memory.d.ts +47 -0
- package/dist/types/plugins/storage-mongodb/index.d.ts +4 -0
- package/dist/types/plugins/storage-mongodb/mongodb-helper.d.ts +22 -0
- package/dist/types/plugins/storage-mongodb/mongodb-types.d.ts +21 -0
- package/dist/types/plugins/storage-mongodb/rx-storage-instance-mongodb.d.ts +52 -0
- package/dist/types/plugins/storage-mongodb/rx-storage-mongodb.d.ts +11 -0
- package/dist/types/plugins/storage-remote/index.d.ts +5 -0
- package/dist/types/plugins/storage-remote/message-channel-cache.d.ts +13 -0
- package/dist/types/plugins/storage-remote/remote.d.ts +6 -0
- package/dist/types/plugins/storage-remote/rx-storage-remote.d.ts +43 -0
- package/dist/types/plugins/storage-remote/storage-remote-helpers.d.ts +4 -0
- package/dist/types/plugins/storage-remote/storage-remote-types.d.ts +88 -0
- package/dist/types/plugins/storage-remote-websocket/index.d.ts +4 -0
- package/dist/types/plugins/storage-remote-websocket/types.d.ts +24 -0
- package/dist/types/plugins/storage-sqlite/index.d.ts +15 -0
- package/dist/types/plugins/storage-sqlite/sqlite-basics-helpers.d.ts +53 -0
- package/dist/types/plugins/storage-sqlite/sqlite-helpers.d.ts +48 -0
- package/dist/types/plugins/storage-sqlite/sqlite-storage-instance.d.ts +38 -0
- package/dist/types/plugins/storage-sqlite/sqlite-types.d.ts +116 -0
- package/dist/types/plugins/test-utils/config.d.ts +16 -0
- package/dist/types/plugins/test-utils/humans-collection.d.ts +26 -0
- package/dist/types/plugins/test-utils/index.d.ts +20 -0
- package/dist/types/plugins/test-utils/performance.d.ts +68 -0
- package/dist/types/plugins/test-utils/replication-base-test-suite.d.ts +66 -0
- package/dist/types/plugins/test-utils/replication.d.ts +10 -0
- package/dist/types/plugins/test-utils/revisions.d.ts +4 -0
- package/dist/types/plugins/test-utils/schema-objects.d.ts +219 -0
- package/dist/types/plugins/test-utils/schemas.d.ts +356 -0
- package/dist/types/plugins/test-utils/test-util.d.ts +10 -0
- package/dist/types/plugins/update/index.d.ts +5 -0
- package/dist/types/plugins/update/mingo-updater.d.ts +2 -0
- package/dist/types/plugins/utils/index.d.ts +20 -0
- package/dist/types/plugins/utils/utils-array.d.ts +40 -0
- package/dist/types/plugins/utils/utils-base64.d.ts +15 -0
- package/dist/types/plugins/utils/utils-blob.d.ts +12 -0
- package/dist/types/plugins/utils/utils-document.d.ts +26 -0
- package/dist/types/plugins/utils/utils-error.d.ts +8 -0
- package/dist/types/plugins/utils/utils-global.d.ts +5 -0
- package/dist/types/plugins/utils/utils-hash.d.ts +4 -0
- package/dist/types/plugins/utils/utils-map.d.ts +2 -0
- package/dist/types/plugins/utils/utils-number.d.ts +7 -0
- package/dist/types/plugins/utils/utils-object-deep-equal.d.ts +7 -0
- package/dist/types/plugins/utils/utils-object-dot-prop.d.ts +14 -0
- package/dist/types/plugins/utils/utils-object.d.ts +61 -0
- package/dist/types/plugins/utils/utils-other.d.ts +20 -0
- package/dist/types/plugins/utils/utils-premium.d.ts +10 -0
- package/dist/types/plugins/utils/utils-promise.d.ts +43 -0
- package/dist/types/plugins/utils/utils-regex.d.ts +2 -0
- package/dist/types/plugins/utils/utils-revision.d.ts +22 -0
- package/dist/types/plugins/utils/utils-rxdb-version.d.ts +4 -0
- package/dist/types/plugins/utils/utils-rxdb-version.template.d.ts +4 -0
- package/dist/types/plugins/utils/utils-string.d.ts +35 -0
- package/dist/types/plugins/utils/utils-time.d.ts +5 -0
- package/dist/types/plugins/validate-ajv/index.d.ts +13 -0
- package/dist/types/plugins/validate-is-my-json-valid/index.d.ts +5 -0
- package/dist/types/plugins/validate-z-schema/index.d.ts +13 -0
- package/dist/types/plugins/vector/helper.d.ts +0 -0
- package/dist/types/plugins/vector/index.d.ts +2 -0
- package/dist/types/plugins/vector/types.d.ts +1 -0
- package/dist/types/plugins/vector/vector-distance.d.ts +13 -0
- package/dist/types/plugins/webmcp/index.d.ts +2 -0
- package/dist/types/plugins/webmcp/nosql-query-schema.d.ts +549 -0
- package/dist/types/plugins/webmcp/webmcp.d.ts +12 -0
- package/dist/types/query-cache.d.ts +35 -0
- package/dist/types/query-planner.d.ts +30 -0
- package/dist/types/replication-protocol/checkpoint.d.ts +8 -0
- package/dist/types/replication-protocol/conflicts.d.ts +10 -0
- package/dist/types/replication-protocol/default-conflict-handler.d.ts +2 -0
- package/dist/types/replication-protocol/downstream.d.ts +10 -0
- package/dist/types/replication-protocol/helper.d.ts +5 -0
- package/dist/types/replication-protocol/index.d.ts +30 -0
- package/dist/types/replication-protocol/meta-instance.d.ts +12 -0
- package/dist/types/replication-protocol/upstream.d.ts +10 -0
- package/dist/types/rx-change-event.d.ts +20 -0
- package/dist/types/rx-collection-helper.d.ts +41 -0
- package/dist/types/rx-collection.d.ts +185 -0
- package/dist/types/rx-database-internal-store.d.ts +37 -0
- package/dist/types/rx-database.d.ts +213 -0
- package/dist/types/rx-document-prototype-merge.d.ts +24 -0
- package/dist/types/rx-document.d.ts +274 -0
- package/dist/types/rx-error.d.ts +37 -0
- package/dist/types/rx-query-helper.d.ts +31 -0
- package/dist/types/rx-query-mingo.d.ts +10 -0
- package/dist/types/rx-query-single-result.d.ts +31 -0
- package/dist/types/rx-query.d.ts +153 -0
- package/dist/types/rx-schema-helper.d.ts +57 -0
- package/dist/types/rx-schema.d.ts +43 -0
- package/dist/types/rx-storage-helper.d.ts +111 -0
- package/dist/types/rx-storage-multiinstance.d.ts +51 -0
- package/dist/types/types/conflict-handling.d.ts +48 -0
- package/dist/types/types/couchdb.d.ts +293 -0
- package/dist/types/types/index.d.ts +32 -0
- package/dist/types/types/modules/index.d.ts +0 -0
- package/dist/types/types/modules/mocha.parallel.d.ts +1 -0
- package/dist/types/types/plugins/backup.d.ts +35 -0
- package/dist/types/types/plugins/cleanup.d.ts +38 -0
- package/dist/types/types/plugins/crdt.d.ts +76 -0
- package/dist/types/types/plugins/dexie.d.ts +30 -0
- package/dist/types/types/plugins/local-documents.d.ts +49 -0
- package/dist/types/types/plugins/migration.d.ts +14 -0
- package/dist/types/types/plugins/reactivity.d.ts +40 -0
- package/dist/types/types/plugins/replication-graphql.d.ts +98 -0
- package/dist/types/types/plugins/replication.d.ts +175 -0
- package/dist/types/types/plugins/state.d.ts +4 -0
- package/dist/types/types/plugins/update.d.ts +23 -0
- package/dist/types/types/plugins/webmcp.d.ts +40 -0
- package/dist/types/types/query-planner.d.ts +47 -0
- package/dist/types/types/replication-protocol.d.ts +296 -0
- package/dist/types/types/rx-attachment.d.ts +46 -0
- package/dist/types/types/rx-change-event.d.ts +85 -0
- package/dist/types/types/rx-collection.d.ts +117 -0
- package/dist/types/types/rx-database-internal-store.d.ts +54 -0
- package/dist/types/types/rx-database.d.ts +124 -0
- package/dist/types/types/rx-document.d.ts +160 -0
- package/dist/types/types/rx-error.d.ts +222 -0
- package/dist/types/types/rx-plugin.d.ts +167 -0
- package/dist/types/types/rx-query.d.ts +144 -0
- package/dist/types/types/rx-schema.d.ts +209 -0
- package/dist/types/types/rx-storage.d.ts +347 -0
- package/dist/types/types/rx-storage.interface.d.ts +312 -0
- package/dist/types/types/util.d.ts +180 -0
- package/eslint.config.mjs +514 -0
- package/package.json +729 -0
- package/plugins/attachments/index.cjs +2 -0
- package/plugins/attachments/index.d.cts +1 -0
- package/plugins/attachments/index.d.mts +1 -0
- package/plugins/attachments/index.mjs +1 -0
- package/plugins/attachments/index.ts +1 -0
- package/plugins/attachments/package.json +18 -0
- package/plugins/attachments-compression/index.cjs +2 -0
- package/plugins/attachments-compression/index.d.cts +1 -0
- package/plugins/attachments-compression/index.d.mts +1 -0
- package/plugins/attachments-compression/index.mjs +1 -0
- package/plugins/attachments-compression/index.ts +1 -0
- package/plugins/attachments-compression/package.json +18 -0
- package/plugins/backup/index.cjs +2 -0
- package/plugins/backup/index.d.cts +1 -0
- package/plugins/backup/index.d.mts +1 -0
- package/plugins/backup/index.mjs +1 -0
- package/plugins/backup/index.ts +1 -0
- package/plugins/backup/package.json +18 -0
- package/plugins/cleanup/index.cjs +2 -0
- package/plugins/cleanup/index.d.cts +1 -0
- package/plugins/cleanup/index.d.mts +1 -0
- package/plugins/cleanup/index.mjs +1 -0
- package/plugins/cleanup/index.ts +1 -0
- package/plugins/cleanup/package.json +18 -0
- package/plugins/core/index.cjs +2 -0
- package/plugins/core/index.d.cts +1 -0
- package/plugins/core/index.d.mts +1 -0
- package/plugins/core/index.mjs +1 -0
- package/plugins/core/index.ts +1 -0
- package/plugins/core/package.json +18 -0
- package/plugins/crdt/index.cjs +2 -0
- package/plugins/crdt/index.d.cts +1 -0
- package/plugins/crdt/index.d.mts +1 -0
- package/plugins/crdt/index.mjs +1 -0
- package/plugins/crdt/index.ts +1 -0
- package/plugins/crdt/package.json +18 -0
- package/plugins/dev-mode/index.cjs +2 -0
- package/plugins/dev-mode/index.d.cts +1 -0
- package/plugins/dev-mode/index.d.mts +1 -0
- package/plugins/dev-mode/index.mjs +1 -0
- package/plugins/dev-mode/index.ts +1 -0
- package/plugins/dev-mode/package.json +18 -0
- package/plugins/electron/index.cjs +2 -0
- package/plugins/electron/index.d.cts +1 -0
- package/plugins/electron/index.d.mts +1 -0
- package/plugins/electron/index.mjs +1 -0
- package/plugins/electron/index.ts +1 -0
- package/plugins/electron/package.json +18 -0
- package/plugins/encryption-crypto-js/index.cjs +2 -0
- package/plugins/encryption-crypto-js/index.d.cts +1 -0
- package/plugins/encryption-crypto-js/index.d.mts +1 -0
- package/plugins/encryption-crypto-js/index.mjs +1 -0
- package/plugins/encryption-crypto-js/index.ts +1 -0
- package/plugins/encryption-crypto-js/package.json +18 -0
- package/plugins/flutter/index.cjs +2 -0
- package/plugins/flutter/index.d.cts +1 -0
- package/plugins/flutter/index.d.mts +1 -0
- package/plugins/flutter/index.mjs +1 -0
- package/plugins/flutter/index.ts +1 -0
- package/plugins/flutter/package.json +18 -0
- package/plugins/json-dump/index.cjs +2 -0
- package/plugins/json-dump/index.d.cts +1 -0
- package/plugins/json-dump/index.d.mts +1 -0
- package/plugins/json-dump/index.mjs +1 -0
- package/plugins/json-dump/index.ts +1 -0
- package/plugins/json-dump/package.json +18 -0
- package/plugins/key-compression/index.cjs +2 -0
- package/plugins/key-compression/index.d.cts +1 -0
- package/plugins/key-compression/index.d.mts +1 -0
- package/plugins/key-compression/index.mjs +1 -0
- package/plugins/key-compression/index.ts +1 -0
- package/plugins/key-compression/package.json +18 -0
- package/plugins/leader-election/index.cjs +2 -0
- package/plugins/leader-election/index.d.cts +1 -0
- package/plugins/leader-election/index.d.mts +1 -0
- package/plugins/leader-election/index.mjs +1 -0
- package/plugins/leader-election/index.ts +1 -0
- package/plugins/leader-election/package.json +18 -0
- package/plugins/local-documents/index.cjs +2 -0
- package/plugins/local-documents/index.d.cts +1 -0
- package/plugins/local-documents/index.d.mts +1 -0
- package/plugins/local-documents/index.mjs +1 -0
- package/plugins/local-documents/index.ts +1 -0
- package/plugins/local-documents/package.json +18 -0
- package/plugins/migration-schema/index.cjs +2 -0
- package/plugins/migration-schema/index.d.cts +1 -0
- package/plugins/migration-schema/index.d.mts +1 -0
- package/plugins/migration-schema/index.mjs +1 -0
- package/plugins/migration-schema/index.ts +1 -0
- package/plugins/migration-schema/package.json +18 -0
- package/plugins/migration-storage/index.cjs +2 -0
- package/plugins/migration-storage/index.d.cts +1 -0
- package/plugins/migration-storage/index.d.mts +1 -0
- package/plugins/migration-storage/index.mjs +1 -0
- package/plugins/migration-storage/index.ts +1 -0
- package/plugins/migration-storage/package.json +18 -0
- package/plugins/pipeline/index.cjs +2 -0
- package/plugins/pipeline/index.d.cts +1 -0
- package/plugins/pipeline/index.d.mts +1 -0
- package/plugins/pipeline/index.mjs +1 -0
- package/plugins/pipeline/index.ts +1 -0
- package/plugins/pipeline/package.json +18 -0
- package/plugins/query-builder/index.cjs +2 -0
- package/plugins/query-builder/index.d.cts +1 -0
- package/plugins/query-builder/index.d.mts +1 -0
- package/plugins/query-builder/index.mjs +1 -0
- package/plugins/query-builder/index.ts +1 -0
- package/plugins/query-builder/package.json +18 -0
- package/plugins/react/index.cjs +2 -0
- package/plugins/react/index.d.cts +1 -0
- package/plugins/react/index.d.mts +1 -0
- package/plugins/react/index.mjs +1 -0
- package/plugins/react/index.ts +1 -0
- package/plugins/react/package.json +18 -0
- package/plugins/reactivity-angular/index.cjs +2 -0
- package/plugins/reactivity-angular/index.d.cts +1 -0
- package/plugins/reactivity-angular/index.d.mts +1 -0
- package/plugins/reactivity-angular/index.mjs +1 -0
- package/plugins/reactivity-angular/index.ts +1 -0
- package/plugins/reactivity-angular/package.json +18 -0
- package/plugins/reactivity-preact-signals/index.cjs +2 -0
- package/plugins/reactivity-preact-signals/index.d.cts +1 -0
- package/plugins/reactivity-preact-signals/index.d.mts +1 -0
- package/plugins/reactivity-preact-signals/index.mjs +1 -0
- package/plugins/reactivity-preact-signals/index.ts +1 -0
- package/plugins/reactivity-preact-signals/package.json +18 -0
- package/plugins/reactivity-vue/index.cjs +2 -0
- package/plugins/reactivity-vue/index.d.cts +1 -0
- package/plugins/reactivity-vue/index.d.mts +1 -0
- package/plugins/reactivity-vue/index.mjs +1 -0
- package/plugins/reactivity-vue/index.ts +1 -0
- package/plugins/reactivity-vue/package.json +18 -0
- package/plugins/replication/index.cjs +2 -0
- package/plugins/replication/index.d.cts +1 -0
- package/plugins/replication/index.d.mts +1 -0
- package/plugins/replication/index.mjs +1 -0
- package/plugins/replication/index.ts +1 -0
- package/plugins/replication/package.json +18 -0
- package/plugins/replication-appwrite/index.cjs +2 -0
- package/plugins/replication-appwrite/index.d.cts +1 -0
- package/plugins/replication-appwrite/index.d.mts +1 -0
- package/plugins/replication-appwrite/index.mjs +1 -0
- package/plugins/replication-appwrite/index.ts +1 -0
- package/plugins/replication-appwrite/package.json +18 -0
- package/plugins/replication-couchdb/index.cjs +2 -0
- package/plugins/replication-couchdb/index.d.cts +1 -0
- package/plugins/replication-couchdb/index.d.mts +1 -0
- package/plugins/replication-couchdb/index.mjs +1 -0
- package/plugins/replication-couchdb/index.ts +1 -0
- package/plugins/replication-couchdb/package.json +18 -0
- package/plugins/replication-firestore/index.cjs +2 -0
- package/plugins/replication-firestore/index.d.cts +1 -0
- package/plugins/replication-firestore/index.d.mts +1 -0
- package/plugins/replication-firestore/index.mjs +1 -0
- package/plugins/replication-firestore/index.ts +1 -0
- package/plugins/replication-firestore/package.json +18 -0
- package/plugins/replication-google-drive/index.cjs +2 -0
- package/plugins/replication-google-drive/index.d.cts +1 -0
- package/plugins/replication-google-drive/index.d.mts +1 -0
- package/plugins/replication-google-drive/index.mjs +1 -0
- package/plugins/replication-google-drive/index.ts +1 -0
- package/plugins/replication-google-drive/package.json +18 -0
- package/plugins/replication-graphql/index.cjs +2 -0
- package/plugins/replication-graphql/index.d.cts +1 -0
- package/plugins/replication-graphql/index.d.mts +1 -0
- package/plugins/replication-graphql/index.mjs +1 -0
- package/plugins/replication-graphql/index.ts +1 -0
- package/plugins/replication-graphql/package.json +18 -0
- package/plugins/replication-microsoft-onedrive/index.cjs +2 -0
- package/plugins/replication-microsoft-onedrive/index.d.cts +1 -0
- package/plugins/replication-microsoft-onedrive/index.d.mts +1 -0
- package/plugins/replication-microsoft-onedrive/index.mjs +1 -0
- package/plugins/replication-microsoft-onedrive/index.ts +1 -0
- package/plugins/replication-microsoft-onedrive/package.json +18 -0
- package/plugins/replication-mongodb/index.cjs +2 -0
- package/plugins/replication-mongodb/index.d.cts +1 -0
- package/plugins/replication-mongodb/index.d.mts +1 -0
- package/plugins/replication-mongodb/index.mjs +1 -0
- package/plugins/replication-mongodb/index.ts +1 -0
- package/plugins/replication-mongodb/package.json +18 -0
- package/plugins/replication-nats/index.cjs +2 -0
- package/plugins/replication-nats/index.d.cts +1 -0
- package/plugins/replication-nats/index.d.mts +1 -0
- package/plugins/replication-nats/index.mjs +1 -0
- package/plugins/replication-nats/index.ts +1 -0
- package/plugins/replication-nats/package.json +18 -0
- package/plugins/replication-supabase/index.cjs +2 -0
- package/plugins/replication-supabase/index.d.cts +1 -0
- package/plugins/replication-supabase/index.d.mts +1 -0
- package/plugins/replication-supabase/index.mjs +1 -0
- package/plugins/replication-supabase/index.ts +1 -0
- package/plugins/replication-supabase/package.json +18 -0
- package/plugins/replication-webrtc/index.cjs +2 -0
- package/plugins/replication-webrtc/index.d.cts +1 -0
- package/plugins/replication-webrtc/index.d.mts +1 -0
- package/plugins/replication-webrtc/index.mjs +1 -0
- package/plugins/replication-webrtc/index.ts +1 -0
- package/plugins/replication-webrtc/package.json +18 -0
- package/plugins/replication-websocket/index.cjs +2 -0
- package/plugins/replication-websocket/index.d.cts +1 -0
- package/plugins/replication-websocket/index.d.mts +1 -0
- package/plugins/replication-websocket/index.mjs +1 -0
- package/plugins/replication-websocket/index.ts +1 -0
- package/plugins/replication-websocket/package.json +18 -0
- package/plugins/state/index.cjs +2 -0
- package/plugins/state/index.d.cts +1 -0
- package/plugins/state/index.d.mts +1 -0
- package/plugins/state/index.mjs +1 -0
- package/plugins/state/index.ts +1 -0
- package/plugins/state/package.json +18 -0
- package/plugins/storage-denokv/index.cjs +2 -0
- package/plugins/storage-denokv/index.d.cts +1 -0
- package/plugins/storage-denokv/index.d.mts +1 -0
- package/plugins/storage-denokv/index.mjs +1 -0
- package/plugins/storage-denokv/index.ts +1 -0
- package/plugins/storage-denokv/package.json +18 -0
- package/plugins/storage-dexie/index.cjs +2 -0
- package/plugins/storage-dexie/index.d.cts +1 -0
- package/plugins/storage-dexie/index.d.mts +1 -0
- package/plugins/storage-dexie/index.mjs +1 -0
- package/plugins/storage-dexie/index.ts +1 -0
- package/plugins/storage-dexie/package.json +18 -0
- package/plugins/storage-foundationdb/index.cjs +2 -0
- package/plugins/storage-foundationdb/index.d.cts +1 -0
- package/plugins/storage-foundationdb/index.d.mts +1 -0
- package/plugins/storage-foundationdb/index.mjs +1 -0
- package/plugins/storage-foundationdb/index.ts +1 -0
- package/plugins/storage-foundationdb/package.json +18 -0
- package/plugins/storage-localstorage/index.cjs +2 -0
- package/plugins/storage-localstorage/index.d.cts +1 -0
- package/plugins/storage-localstorage/index.d.mts +1 -0
- package/plugins/storage-localstorage/index.mjs +1 -0
- package/plugins/storage-localstorage/index.ts +1 -0
- package/plugins/storage-localstorage/package.json +18 -0
- package/plugins/storage-memory/index.cjs +2 -0
- package/plugins/storage-memory/index.d.cts +1 -0
- package/plugins/storage-memory/index.d.mts +1 -0
- package/plugins/storage-memory/index.mjs +1 -0
- package/plugins/storage-memory/index.ts +1 -0
- package/plugins/storage-memory/package.json +18 -0
- package/plugins/storage-mongodb/index.cjs +2 -0
- package/plugins/storage-mongodb/index.d.cts +1 -0
- package/plugins/storage-mongodb/index.d.mts +1 -0
- package/plugins/storage-mongodb/index.mjs +1 -0
- package/plugins/storage-mongodb/index.ts +1 -0
- package/plugins/storage-mongodb/package.json +18 -0
- package/plugins/storage-remote/index.cjs +2 -0
- package/plugins/storage-remote/index.d.cts +1 -0
- package/plugins/storage-remote/index.d.mts +1 -0
- package/plugins/storage-remote/index.mjs +1 -0
- package/plugins/storage-remote/index.ts +1 -0
- package/plugins/storage-remote/package.json +18 -0
- package/plugins/storage-remote-websocket/index.cjs +2 -0
- package/plugins/storage-remote-websocket/index.d.cts +1 -0
- package/plugins/storage-remote-websocket/index.d.mts +1 -0
- package/plugins/storage-remote-websocket/index.mjs +1 -0
- package/plugins/storage-remote-websocket/index.ts +1 -0
- package/plugins/storage-remote-websocket/package.json +18 -0
- package/plugins/storage-sqlite/index.cjs +2 -0
- package/plugins/storage-sqlite/index.d.cts +1 -0
- package/plugins/storage-sqlite/index.d.mts +1 -0
- package/plugins/storage-sqlite/index.mjs +1 -0
- package/plugins/storage-sqlite/index.ts +1 -0
- package/plugins/storage-sqlite/package.json +18 -0
- package/plugins/test-utils/index.cjs +2 -0
- package/plugins/test-utils/index.d.cts +1 -0
- package/plugins/test-utils/index.d.mts +1 -0
- package/plugins/test-utils/index.mjs +1 -0
- package/plugins/test-utils/index.ts +1 -0
- package/plugins/test-utils/package.json +18 -0
- package/plugins/update/index.cjs +2 -0
- package/plugins/update/index.d.cts +1 -0
- package/plugins/update/index.d.mts +1 -0
- package/plugins/update/index.mjs +1 -0
- package/plugins/update/index.ts +1 -0
- package/plugins/update/package.json +18 -0
- package/plugins/utils/index.cjs +2 -0
- package/plugins/utils/index.d.cts +1 -0
- package/plugins/utils/index.d.mts +1 -0
- package/plugins/utils/index.mjs +1 -0
- package/plugins/utils/index.ts +1 -0
- package/plugins/utils/package.json +18 -0
- package/plugins/validate-ajv/index.cjs +2 -0
- package/plugins/validate-ajv/index.d.cts +1 -0
- package/plugins/validate-ajv/index.d.mts +1 -0
- package/plugins/validate-ajv/index.mjs +1 -0
- package/plugins/validate-ajv/index.ts +1 -0
- package/plugins/validate-ajv/package.json +18 -0
- package/plugins/validate-is-my-json-valid/index.cjs +2 -0
- package/plugins/validate-is-my-json-valid/index.d.cts +1 -0
- package/plugins/validate-is-my-json-valid/index.d.mts +1 -0
- package/plugins/validate-is-my-json-valid/index.mjs +1 -0
- package/plugins/validate-is-my-json-valid/index.ts +1 -0
- package/plugins/validate-is-my-json-valid/package.json +18 -0
- package/plugins/validate-z-schema/index.cjs +2 -0
- package/plugins/validate-z-schema/index.d.cts +1 -0
- package/plugins/validate-z-schema/index.d.mts +1 -0
- package/plugins/validate-z-schema/index.mjs +1 -0
- package/plugins/validate-z-schema/index.ts +1 -0
- package/plugins/validate-z-schema/package.json +18 -0
- package/plugins/vector/index.cjs +2 -0
- package/plugins/vector/index.d.cts +1 -0
- package/plugins/vector/index.d.mts +1 -0
- package/plugins/vector/index.mjs +1 -0
- package/plugins/vector/index.ts +1 -0
- package/plugins/vector/package.json +18 -0
- package/plugins/webmcp/index.cjs +2 -0
- package/plugins/webmcp/index.d.cts +1 -0
- package/plugins/webmcp/index.d.mts +1 -0
- package/plugins/webmcp/index.mjs +1 -0
- package/plugins/webmcp/index.ts +1 -0
- package/plugins/webmcp/package.json +18 -0
- package/scripts/acme-challenge/.gittouch +0 -0
- package/scripts/ai-context-generator.mjs +63 -0
- package/scripts/cloud-signaling-script.sh +6 -0
- package/scripts/docs-remove-time.mjs +55 -0
- package/scripts/fix-types.mjs +23 -0
- package/scripts/generate-all-headers.ts +102 -0
- package/scripts/generate-error-messages.mjs +41 -0
- package/scripts/generate-header.ts +226 -0
- package/scripts/generate-plugins-package-json.mjs +133 -0
- package/scripts/install-foundationdb.sh +14 -0
- package/scripts/module_package.json +1 -0
- package/scripts/module_package_no_side.json +1 -0
- package/scripts/postinstall.js +33 -0
- package/scripts/profile.mjs +31 -0
- package/scripts/set-version.mjs +162 -0
- package/scripts/start-cloud-signaling-server.mjs +120 -0
- package/scripts/transpile.mjs +229 -0
- package/scripts/update-version-variable.mjs +49 -0
- package/src/change-event-buffer.ts +171 -0
- package/src/custom-index.ts +376 -0
- package/src/doc-cache.ts +294 -0
- package/src/event-reduce.ts +159 -0
- package/src/hooks.ts +128 -0
- package/src/incremental-write.ts +227 -0
- package/src/index.ts +30 -0
- package/src/overwritable.ts +41 -0
- package/src/plugin-helpers.ts +319 -0
- package/src/plugin.ts +113 -0
- package/src/plugins/attachments/attachments-utils.ts +84 -0
- package/src/plugins/attachments/index.ts +316 -0
- package/src/plugins/attachments-compression/index.ts +221 -0
- package/src/plugins/backup/file-util.ts +132 -0
- package/src/plugins/backup/index.ts +281 -0
- package/src/plugins/cleanup/cleanup-helper.ts +11 -0
- package/src/plugins/cleanup/cleanup-state.ts +92 -0
- package/src/plugins/cleanup/cleanup.ts +140 -0
- package/src/plugins/cleanup/index.ts +45 -0
- package/src/plugins/crdt/index.ts +505 -0
- package/src/plugins/dev-mode/check-document.ts +176 -0
- package/src/plugins/dev-mode/check-migration-strategies.ts +53 -0
- package/src/plugins/dev-mode/check-orm.ts +65 -0
- package/src/plugins/dev-mode/check-query.ts +231 -0
- package/src/plugins/dev-mode/check-schema.ts +564 -0
- package/src/plugins/dev-mode/dev-mode-tracking.ts +125 -0
- package/src/plugins/dev-mode/entity-properties.ts +56 -0
- package/src/plugins/dev-mode/error-messages.ts +1331 -0
- package/src/plugins/dev-mode/index.ts +203 -0
- package/src/plugins/dev-mode/unallowed-properties.ts +96 -0
- package/src/plugins/electron/electron-helper.ts +2 -0
- package/src/plugins/electron/index.ts +3 -0
- package/src/plugins/electron/rx-storage-ipc-main.ts +58 -0
- package/src/plugins/electron/rx-storage-ipc-renderer.ts +62 -0
- package/src/plugins/encryption-crypto-js/index.ts +220 -0
- package/src/plugins/flutter/dart/analysis_options.yaml +30 -0
- package/src/plugins/flutter/dart/example/rxdb_example.dart +6 -0
- package/src/plugins/flutter/dart/lib/rxdb.dart +7 -0
- package/src/plugins/flutter/dart/lib/src/rxdb_base.dart +332 -0
- package/src/plugins/flutter/dart/pubspec.yaml +15 -0
- package/src/plugins/flutter/index.ts +65 -0
- package/src/plugins/json-dump/index.ts +146 -0
- package/src/plugins/key-compression/index.ts +238 -0
- package/src/plugins/leader-election/index.ts +129 -0
- package/src/plugins/local-documents/index.ts +95 -0
- package/src/plugins/local-documents/local-documents-helper.ts +103 -0
- package/src/plugins/local-documents/local-documents.ts +146 -0
- package/src/plugins/local-documents/rx-local-document.ts +388 -0
- package/src/plugins/migration-schema/index.ts +75 -0
- package/src/plugins/migration-schema/migration-helpers.ts +162 -0
- package/src/plugins/migration-schema/migration-types.ts +42 -0
- package/src/plugins/migration-schema/rx-migration-state.ts +632 -0
- package/src/plugins/migration-storage/index.ts +255 -0
- package/src/plugins/pipeline/flagged-functions.ts +131 -0
- package/src/plugins/pipeline/index.ts +18 -0
- package/src/plugins/pipeline/rx-pipeline.ts +303 -0
- package/src/plugins/pipeline/types.ts +28 -0
- package/src/plugins/query-builder/index.ts +81 -0
- package/src/plugins/query-builder/mquery/README.md +5 -0
- package/src/plugins/query-builder/mquery/mquery-utils.ts +37 -0
- package/src/plugins/query-builder/mquery/nosql-query-builder.ts +578 -0
- package/src/plugins/react/database-context.ts +10 -0
- package/src/plugins/react/database-provider.tsx +38 -0
- package/src/plugins/react/hooks/index.ts +4 -0
- package/src/plugins/react/hooks/use-live-rx-query.ts +34 -0
- package/src/plugins/react/hooks/use-rx-collection.ts +73 -0
- package/src/plugins/react/hooks/use-rx-database.ts +35 -0
- package/src/plugins/react/hooks/use-rx-query.ts +168 -0
- package/src/plugins/react/index.ts +2 -0
- package/src/plugins/reactivity-angular/index.ts +32 -0
- package/src/plugins/reactivity-preact-signals/index.ts +85 -0
- package/src/plugins/reactivity-vue/index.ts +43 -0
- package/src/plugins/replication/index.ts +668 -0
- package/src/plugins/replication/replication-helper.ts +122 -0
- package/src/plugins/replication-appwrite/appwrite-helpers.ts +38 -0
- package/src/plugins/replication-appwrite/appwrite-types.ts +31 -0
- package/src/plugins/replication-appwrite/index.ts +269 -0
- package/src/plugins/replication-couchdb/couchdb-helper.ts +100 -0
- package/src/plugins/replication-couchdb/couchdb-types.ts +34 -0
- package/src/plugins/replication-couchdb/index.ts +341 -0
- package/src/plugins/replication-firestore/firestore-helper.ts +79 -0
- package/src/plugins/replication-firestore/firestore-types.ts +72 -0
- package/src/plugins/replication-firestore/index.ts +387 -0
- package/src/plugins/replication-google-drive/AGENTS.md +5 -0
- package/src/plugins/replication-google-drive/document-handling.ts +203 -0
- package/src/plugins/replication-google-drive/download-specs.sh +49 -0
- package/src/plugins/replication-google-drive/downstream.ts +118 -0
- package/src/plugins/replication-google-drive/google-drive-helper.ts +467 -0
- package/src/plugins/replication-google-drive/google-drive-types.ts +84 -0
- package/src/plugins/replication-google-drive/index.ts +221 -0
- package/src/plugins/replication-google-drive/init.ts +108 -0
- package/src/plugins/replication-google-drive/multipart.ts +86 -0
- package/src/plugins/replication-google-drive/signaling.ts +399 -0
- package/src/plugins/replication-google-drive/transaction.ts +222 -0
- package/src/plugins/replication-google-drive/upstream.ts +279 -0
- package/src/plugins/replication-graphql/graphql-schema-from-rx-schema.ts +337 -0
- package/src/plugins/replication-graphql/graphql-websocket.ts +56 -0
- package/src/plugins/replication-graphql/helper.ts +52 -0
- package/src/plugins/replication-graphql/index.ts +255 -0
- package/src/plugins/replication-graphql/query-builder-from-rx-schema.ts +195 -0
- package/src/plugins/replication-microsoft-onedrive/document-handling.ts +216 -0
- package/src/plugins/replication-microsoft-onedrive/downstream.ts +121 -0
- package/src/plugins/replication-microsoft-onedrive/index.ts +220 -0
- package/src/plugins/replication-microsoft-onedrive/init.ts +107 -0
- package/src/plugins/replication-microsoft-onedrive/microsoft-onedrive-helper.ts +355 -0
- package/src/plugins/replication-microsoft-onedrive/microsoft-onedrive-types.ts +88 -0
- package/src/plugins/replication-microsoft-onedrive/signaling.ts +333 -0
- package/src/plugins/replication-microsoft-onedrive/transaction.ts +220 -0
- package/src/plugins/replication-microsoft-onedrive/upstream.ts +282 -0
- package/src/plugins/replication-mongodb/index.ts +275 -0
- package/src/plugins/replication-mongodb/mongodb-checkpoint.ts +184 -0
- package/src/plugins/replication-mongodb/mongodb-helper.ts +69 -0
- package/src/plugins/replication-mongodb/mongodb-types.ts +50 -0
- package/src/plugins/replication-nats/index.ts +289 -0
- package/src/plugins/replication-nats/nats-helper.ts +15 -0
- package/src/plugins/replication-nats/nats-types.ts +43 -0
- package/src/plugins/replication-supabase/helper.ts +63 -0
- package/src/plugins/replication-supabase/index.ts +308 -0
- package/src/plugins/replication-supabase/types.ts +47 -0
- package/src/plugins/replication-webrtc/connection-handler-p2pcf.ts +77 -0
- package/src/plugins/replication-webrtc/connection-handler-simple-peer.ts +302 -0
- package/src/plugins/replication-webrtc/connection-handler-webtorrent.ts +137 -0
- package/src/plugins/replication-webrtc/index.ts +307 -0
- package/src/plugins/replication-webrtc/signaling-server.ts +193 -0
- package/src/plugins/replication-webrtc/webrtc-helper.ts +55 -0
- package/src/plugins/replication-webrtc/webrtc-types.ts +91 -0
- package/src/plugins/replication-websocket/index.ts +3 -0
- package/src/plugins/replication-websocket/websocket-client.ts +187 -0
- package/src/plugins/replication-websocket/websocket-server.ts +135 -0
- package/src/plugins/replication-websocket/websocket-types.ts +47 -0
- package/src/plugins/state/helpers.ts +86 -0
- package/src/plugins/state/index.ts +40 -0
- package/src/plugins/state/rx-state.ts +386 -0
- package/src/plugins/state/types.ts +32 -0
- package/src/plugins/storage-denokv/denokv-helper.ts +46 -0
- package/src/plugins/storage-denokv/denokv-query.ts +135 -0
- package/src/plugins/storage-denokv/denokv-types.ts +19 -0
- package/src/plugins/storage-denokv/index.ts +37 -0
- package/src/plugins/storage-denokv/rx-storage-instance-denokv.ts +426 -0
- package/src/plugins/storage-dexie/dexie-helper.ts +302 -0
- package/src/plugins/storage-dexie/dexie-query.ts +252 -0
- package/src/plugins/storage-dexie/index.ts +4 -0
- package/src/plugins/storage-dexie/rx-storage-dexie.ts +62 -0
- package/src/plugins/storage-dexie/rx-storage-instance-dexie.ts +378 -0
- package/src/plugins/storage-foundationdb/foundationdb-helpers.ts +6 -0
- package/src/plugins/storage-foundationdb/foundationdb-query.ts +140 -0
- package/src/plugins/storage-foundationdb/foundationdb-types.ts +64 -0
- package/src/plugins/storage-foundationdb/index.ts +57 -0
- package/src/plugins/storage-foundationdb/rx-storage-instance-foundationdb.ts +449 -0
- package/src/plugins/storage-localstorage/index.ts +44 -0
- package/src/plugins/storage-localstorage/localstorage-mock.ts +32 -0
- package/src/plugins/storage-localstorage/rx-storage-instance-localstorage.ts +686 -0
- package/src/plugins/storage-memory/binary-search-bounds.ts +106 -0
- package/src/plugins/storage-memory/index.ts +52 -0
- package/src/plugins/storage-memory/memory-helper.ts +259 -0
- package/src/plugins/storage-memory/memory-indexes.ts +34 -0
- package/src/plugins/storage-memory/memory-types.ts +90 -0
- package/src/plugins/storage-memory/rx-storage-instance-memory.ts +609 -0
- package/src/plugins/storage-mongodb/index.ts +4 -0
- package/src/plugins/storage-mongodb/mongodb-helper.ts +119 -0
- package/src/plugins/storage-mongodb/mongodb-types.ts +32 -0
- package/src/plugins/storage-mongodb/rx-storage-instance-mongodb.ts +464 -0
- package/src/plugins/storage-mongodb/rx-storage-mongodb.ts +33 -0
- package/src/plugins/storage-remote/index.ts +5 -0
- package/src/plugins/storage-remote/message-channel-cache.ts +88 -0
- package/src/plugins/storage-remote/remote.ts +285 -0
- package/src/plugins/storage-remote/rx-storage-remote.ts +286 -0
- package/src/plugins/storage-remote/storage-remote-helpers.ts +33 -0
- package/src/plugins/storage-remote/storage-remote-types.ts +118 -0
- package/src/plugins/storage-remote-websocket/index.ts +218 -0
- package/src/plugins/storage-remote-websocket/types.ts +34 -0
- package/src/plugins/storage-sqlite/index.ts +64 -0
- package/src/plugins/storage-sqlite/sqlite-basics-helpers.ts +656 -0
- package/src/plugins/storage-sqlite/sqlite-helpers.ts +287 -0
- package/src/plugins/storage-sqlite/sqlite-storage-instance.ts +507 -0
- package/src/plugins/storage-sqlite/sqlite-types.ts +151 -0
- package/src/plugins/test-utils/config.ts +135 -0
- package/src/plugins/test-utils/humans-collection.ts +557 -0
- package/src/plugins/test-utils/index.ts +24 -0
- package/src/plugins/test-utils/performance.ts +344 -0
- package/src/plugins/test-utils/replication-base-test-suite.ts +236 -0
- package/src/plugins/test-utils/replication.ts +95 -0
- package/src/plugins/test-utils/revisions.ts +4 -0
- package/src/plugins/test-utils/schema-objects.ts +527 -0
- package/src/plugins/test-utils/schemas.ts +1391 -0
- package/src/plugins/test-utils/test-util.ts +85 -0
- package/src/plugins/update/index.ts +57 -0
- package/src/plugins/update/mingo-updater.ts +26 -0
- package/src/plugins/utils/index.ts +20 -0
- package/src/plugins/utils/utils-array.ts +152 -0
- package/src/plugins/utils/utils-base64.ts +49 -0
- package/src/plugins/utils/utils-blob.ts +65 -0
- package/src/plugins/utils/utils-document.ts +117 -0
- package/src/plugins/utils/utils-error.ts +53 -0
- package/src/plugins/utils/utils-global.ts +5 -0
- package/src/plugins/utils/utils-hash.ts +62 -0
- package/src/plugins/utils/utils-map.ts +23 -0
- package/src/plugins/utils/utils-number.ts +9 -0
- package/src/plugins/utils/utils-object-deep-equal.ts +46 -0
- package/src/plugins/utils/utils-object-dot-prop.ts +365 -0
- package/src/plugins/utils/utils-object.ts +272 -0
- package/src/plugins/utils/utils-other.ts +58 -0
- package/src/plugins/utils/utils-premium.ts +37 -0
- package/src/plugins/utils/utils-promise.ts +171 -0
- package/src/plugins/utils/utils-regex.ts +2 -0
- package/src/plugins/utils/utils-revision.ts +55 -0
- package/src/plugins/utils/utils-rxdb-version.template.ts +4 -0
- package/src/plugins/utils/utils-rxdb-version.ts +4 -0
- package/src/plugins/utils/utils-string.ts +91 -0
- package/src/plugins/utils/utils-time.ts +37 -0
- package/src/plugins/validate-ajv/index.ts +61 -0
- package/src/plugins/validate-is-my-json-valid/index.ts +30 -0
- package/src/plugins/validate-z-schema/index.ts +58 -0
- package/src/plugins/vector/helper.ts +0 -0
- package/src/plugins/vector/index.ts +2 -0
- package/src/plugins/vector/types.ts +1 -0
- package/src/plugins/vector/vector-distance.ts +34 -0
- package/src/plugins/webmcp/index.ts +2 -0
- package/src/plugins/webmcp/nosql-query-schema.ts +299 -0
- package/src/plugins/webmcp/webmcp.ts +319 -0
- package/src/query-cache.ts +139 -0
- package/src/query-planner.ts +386 -0
- package/src/replication-protocol/checkpoint.ts +154 -0
- package/src/replication-protocol/conflicts.ts +53 -0
- package/src/replication-protocol/default-conflict-handler.ts +43 -0
- package/src/replication-protocol/downstream.ts +550 -0
- package/src/replication-protocol/helper.ts +96 -0
- package/src/replication-protocol/index.ts +348 -0
- package/src/replication-protocol/meta-instance.ts +195 -0
- package/src/replication-protocol/upstream.ts +560 -0
- package/src/rx-change-event.ts +137 -0
- package/src/rx-collection-helper.ts +262 -0
- package/src/rx-collection.ts +1306 -0
- package/src/rx-database-internal-store.ts +402 -0
- package/src/rx-database.ts +919 -0
- package/src/rx-document-prototype-merge.ts +124 -0
- package/src/rx-document.ts +557 -0
- package/src/rx-error.ts +190 -0
- package/src/rx-query-helper.ts +317 -0
- package/src/rx-query-mingo.ts +87 -0
- package/src/rx-query-single-result.ts +110 -0
- package/src/rx-query.ts +887 -0
- package/src/rx-schema-helper.ts +391 -0
- package/src/rx-schema.ts +247 -0
- package/src/rx-storage-helper.ts +1050 -0
- package/src/rx-storage-multiinstance.ts +188 -0
- package/src/types/conflict-handling.d.ts +48 -0
- package/src/types/couchdb.d.ts +293 -0
- package/src/types/index.d.ts +32 -0
- package/src/types/modules/index.d.ts +0 -0
- package/src/types/modules/mocha.parallel.d.ts +1 -0
- package/src/types/plugins/backup.d.ts +35 -0
- package/src/types/plugins/cleanup.d.ts +38 -0
- package/src/types/plugins/crdt.d.ts +76 -0
- package/src/types/plugins/dexie.d.ts +30 -0
- package/src/types/plugins/local-documents.d.ts +49 -0
- package/src/types/plugins/migration.d.ts +14 -0
- package/src/types/plugins/reactivity.d.ts +40 -0
- package/src/types/plugins/replication-graphql.d.ts +98 -0
- package/src/types/plugins/replication.d.ts +175 -0
- package/src/types/plugins/state.d.ts +4 -0
- package/src/types/plugins/update.d.ts +23 -0
- package/src/types/plugins/webmcp.d.ts +40 -0
- package/src/types/query-planner.d.ts +47 -0
- package/src/types/replication-protocol.d.ts +296 -0
- package/src/types/rx-attachment.d.ts +46 -0
- package/src/types/rx-change-event.d.ts +85 -0
- package/src/types/rx-collection.d.ts +117 -0
- package/src/types/rx-database-internal-store.d.ts +54 -0
- package/src/types/rx-database.d.ts +124 -0
- package/src/types/rx-document.d.ts +160 -0
- package/src/types/rx-error.d.ts +222 -0
- package/src/types/rx-plugin.d.ts +167 -0
- package/src/types/rx-query.d.ts +144 -0
- package/src/types/rx-schema.d.ts +209 -0
- package/src/types/rx-storage.d.ts +347 -0
- package/src/types/rx-storage.interface.d.ts +312 -0
- package/src/types/util.d.ts +180 -0
- package/tsconfig.json +54 -0
- package/tsconfig.lint.json +18 -0
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.startReplicationUpstream = startReplicationUpstream;
|
|
7
|
+
var _rxjs = require("rxjs");
|
|
8
|
+
var _rxStorageHelper = require("../rx-storage-helper.js");
|
|
9
|
+
var _index = require("../plugins/utils/index.js");
|
|
10
|
+
var _checkpoint = require("./checkpoint.js");
|
|
11
|
+
var _conflicts = require("./conflicts.js");
|
|
12
|
+
var _helper = require("./helper.js");
|
|
13
|
+
var _metaInstance = require("./meta-instance.js");
|
|
14
|
+
var _index2 = require("../plugins/attachments/index.js");
|
|
15
|
+
var _rxError = require("../rx-error.js");
|
|
16
|
+
/**
|
|
17
|
+
* Writes all document changes from the fork to the master.
|
|
18
|
+
* The upstream runs on two modes:
|
|
19
|
+
* - For initial replication, a checkpoint-iteration is used
|
|
20
|
+
* - For ongoing local writes, we just subscribe to the changeStream of the fork.
|
|
21
|
+
* In contrast to the master, the fork can be assumed to never loose connection,
|
|
22
|
+
* so we do not have to prepare for missed out events.
|
|
23
|
+
*/
|
|
24
|
+
async function startReplicationUpstream(state) {
|
|
25
|
+
if (state.input.initialCheckpoint && state.input.initialCheckpoint.upstream) {
|
|
26
|
+
var checkpointDoc = await (0, _checkpoint.getLastCheckpointDoc)(state, 'up');
|
|
27
|
+
if (!checkpointDoc) {
|
|
28
|
+
await (0, _checkpoint.setCheckpoint)(state, 'up', state.input.initialCheckpoint.upstream);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
var replicationHandler = state.input.replicationHandler;
|
|
32
|
+
state.streamQueue.up = state.streamQueue.up.then(() => {
|
|
33
|
+
return upstreamInitialSync().then(() => {
|
|
34
|
+
return processTasks();
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// used to detect which tasks etc can in it at which order.
|
|
39
|
+
var timer = 0;
|
|
40
|
+
var initialSyncStartTime = -1;
|
|
41
|
+
var openTasks = [];
|
|
42
|
+
var persistenceQueue = _index.PROMISE_RESOLVE_FALSE;
|
|
43
|
+
var nonPersistedFromMaster = {
|
|
44
|
+
docs: {}
|
|
45
|
+
};
|
|
46
|
+
var sub = state.input.forkInstance.changeStream().subscribe(eventBulk => {
|
|
47
|
+
if (state.events.paused.getValue()) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
state.stats.up.forkChangeStreamEmit = state.stats.up.forkChangeStreamEmit + 1;
|
|
51
|
+
openTasks.push({
|
|
52
|
+
task: eventBulk,
|
|
53
|
+
time: timer++
|
|
54
|
+
});
|
|
55
|
+
if (!state.events.active.up.getValue()) {
|
|
56
|
+
state.events.active.up.next(true);
|
|
57
|
+
}
|
|
58
|
+
if (state.input.waitBeforePersist) {
|
|
59
|
+
return state.input.waitBeforePersist().then(() => processTasks());
|
|
60
|
+
} else {
|
|
61
|
+
return processTasks();
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
var subResync = replicationHandler.masterChangeStream$.pipe((0, _rxjs.filter)(ev => ev === 'RESYNC')).subscribe(() => {
|
|
65
|
+
openTasks.push({
|
|
66
|
+
task: 'RESYNC',
|
|
67
|
+
time: timer++
|
|
68
|
+
});
|
|
69
|
+
processTasks();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// unsubscribe when replication is canceled
|
|
73
|
+
(0, _rxjs.firstValueFrom)(state.events.canceled.pipe((0, _rxjs.filter)(canceled => !!canceled))).then(() => {
|
|
74
|
+
sub.unsubscribe();
|
|
75
|
+
subResync.unsubscribe();
|
|
76
|
+
});
|
|
77
|
+
async function upstreamInitialSync() {
|
|
78
|
+
state.stats.up.upstreamInitialSync = state.stats.up.upstreamInitialSync + 1;
|
|
79
|
+
if (state.events.canceled.getValue()) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
state.checkpointQueue = state.checkpointQueue.then(() => (0, _checkpoint.getLastCheckpointDoc)(state, 'up'));
|
|
83
|
+
var lastCheckpoint = await state.checkpointQueue;
|
|
84
|
+
var promises = new Set();
|
|
85
|
+
var _loop = async function () {
|
|
86
|
+
initialSyncStartTime = timer++;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Throttle the calls to
|
|
90
|
+
* forkInstance.getChangedDocumentsSince() so that
|
|
91
|
+
* if the pushing to the remote is slower compared to the
|
|
92
|
+
* pulling out of forkInstance, we do not block the UI too much
|
|
93
|
+
* and have a big memory spike with all forkInstance documents.
|
|
94
|
+
*/
|
|
95
|
+
if (promises.size > 3) {
|
|
96
|
+
await Promise.race(Array.from(promises));
|
|
97
|
+
}
|
|
98
|
+
var upResult = await (0, _rxStorageHelper.getChangedDocumentsSince)(state.input.forkInstance, state.input.pushBatchSize, lastCheckpoint);
|
|
99
|
+
if (upResult.documents.length === 0) {
|
|
100
|
+
return 1; // break
|
|
101
|
+
}
|
|
102
|
+
lastCheckpoint = (0, _rxStorageHelper.stackCheckpoints)([lastCheckpoint, upResult.checkpoint]);
|
|
103
|
+
var promise = persistToMaster(upResult.documents, (0, _index.ensureNotFalsy)(lastCheckpoint));
|
|
104
|
+
promises.add(promise);
|
|
105
|
+
promise.catch().then(() => promises.delete(promise));
|
|
106
|
+
};
|
|
107
|
+
while (!state.events.canceled.getValue()) {
|
|
108
|
+
if (await _loop()) break;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* If we had conflicts during the initial sync,
|
|
113
|
+
* it means that we likely have new writes to the fork
|
|
114
|
+
* and so we have to run the initial sync again to upstream these new writes.
|
|
115
|
+
*/
|
|
116
|
+
var resolvedPromises = await Promise.all(promises);
|
|
117
|
+
var hadConflicts = resolvedPromises.find(r => !!r);
|
|
118
|
+
if (hadConflicts) {
|
|
119
|
+
await upstreamInitialSync();
|
|
120
|
+
} else if (!state.firstSyncDone.up.getValue() && !state.events.canceled.getValue()) {
|
|
121
|
+
state.firstSyncDone.up.next(true);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Takes all open tasks an processes them at once.
|
|
127
|
+
*/
|
|
128
|
+
function processTasks() {
|
|
129
|
+
if (state.events.canceled.getValue() || openTasks.length === 0) {
|
|
130
|
+
state.events.active.up.next(false);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
state.stats.up.processTasks = state.stats.up.processTasks + 1;
|
|
134
|
+
state.events.active.up.next(true);
|
|
135
|
+
state.streamQueue.up = state.streamQueue.up.then(async () => {
|
|
136
|
+
/**
|
|
137
|
+
* Merge/filter all open tasks
|
|
138
|
+
*/
|
|
139
|
+
var docs = [];
|
|
140
|
+
var checkpoint;
|
|
141
|
+
while (openTasks.length > 0) {
|
|
142
|
+
var taskWithTime = (0, _index.ensureNotFalsy)(openTasks.shift());
|
|
143
|
+
/**
|
|
144
|
+
* If the task came in before the last time the initial sync fetching
|
|
145
|
+
* has run, we can ignore the task because the initial sync already processed
|
|
146
|
+
* these documents.
|
|
147
|
+
*/
|
|
148
|
+
if (taskWithTime.time < initialSyncStartTime) {
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (taskWithTime.task === 'RESYNC') {
|
|
152
|
+
state.events.active.up.next(false);
|
|
153
|
+
await upstreamInitialSync();
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* If the task came from the downstream, we can ignore these documents
|
|
159
|
+
* because we know they are replicated already.
|
|
160
|
+
* But even if they can be ignored, we later have to call persistToMaster()
|
|
161
|
+
* to have the correct checkpoint set.
|
|
162
|
+
*/
|
|
163
|
+
if (taskWithTime.task.context !== (await state.downstreamBulkWriteFlag)) {
|
|
164
|
+
docs = docs.concat(taskWithTime.task.events.map(r => {
|
|
165
|
+
return r.documentData;
|
|
166
|
+
}));
|
|
167
|
+
}
|
|
168
|
+
checkpoint = (0, _rxStorageHelper.stackCheckpoints)([checkpoint, taskWithTime.task.checkpoint]);
|
|
169
|
+
}
|
|
170
|
+
await persistToMaster(docs, checkpoint);
|
|
171
|
+
|
|
172
|
+
// might have got more tasks while running persistToMaster()
|
|
173
|
+
if (openTasks.length === 0) {
|
|
174
|
+
state.events.active.up.next(false);
|
|
175
|
+
} else {
|
|
176
|
+
return processTasks();
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Returns true if had conflicts,
|
|
183
|
+
* false if not.
|
|
184
|
+
*/
|
|
185
|
+
function persistToMaster(docs, checkpoint) {
|
|
186
|
+
state.stats.up.persistToMaster = state.stats.up.persistToMaster + 1;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Add the new docs to the non-persistent list
|
|
190
|
+
*/
|
|
191
|
+
docs.forEach(docData => {
|
|
192
|
+
var docId = docData[state.primaryPath];
|
|
193
|
+
nonPersistedFromMaster.docs[docId] = docData;
|
|
194
|
+
});
|
|
195
|
+
nonPersistedFromMaster.checkpoint = checkpoint;
|
|
196
|
+
persistenceQueue = persistenceQueue.then(async () => {
|
|
197
|
+
if (state.events.canceled.getValue()) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
var upDocsById = nonPersistedFromMaster.docs;
|
|
201
|
+
nonPersistedFromMaster.docs = {};
|
|
202
|
+
var useCheckpoint = nonPersistedFromMaster.checkpoint;
|
|
203
|
+
var docIds = Object.keys(upDocsById);
|
|
204
|
+
/**
|
|
205
|
+
* Even if we do not have anything to push,
|
|
206
|
+
* we still have to store the up-checkpoint.
|
|
207
|
+
* This ensures that when many documents have been pulled
|
|
208
|
+
* from the remote (that do not have to be pushed again),
|
|
209
|
+
* we continue at the correct position and do not have to load
|
|
210
|
+
* these documents from the storage again when the replication is restarted.
|
|
211
|
+
*/
|
|
212
|
+
function rememberCheckpointBeforeReturn() {
|
|
213
|
+
return (0, _checkpoint.setCheckpoint)(state, 'up', useCheckpoint);
|
|
214
|
+
}
|
|
215
|
+
;
|
|
216
|
+
if (docIds.length === 0) {
|
|
217
|
+
rememberCheckpointBeforeReturn();
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
var assumedMasterState = await (0, _metaInstance.getAssumedMasterState)(state, docIds);
|
|
221
|
+
var writeRowsToMaster = {};
|
|
222
|
+
var writeRowsToMasterIds = [];
|
|
223
|
+
var writeRowsToMeta = {};
|
|
224
|
+
var forkStateById = {};
|
|
225
|
+
await Promise.all(docIds.map(async docId => {
|
|
226
|
+
var fullDocData = upDocsById[docId];
|
|
227
|
+
forkStateById[docId] = fullDocData;
|
|
228
|
+
var docData = (0, _helper.writeDocToDocState)(fullDocData, state.hasAttachments, !!state.input.keepMeta);
|
|
229
|
+
var assumedMasterDoc = assumedMasterState[docId];
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* If the master state is equal to the
|
|
233
|
+
* fork state, we can assume that the document state is already
|
|
234
|
+
* replicated.
|
|
235
|
+
*/
|
|
236
|
+
if (assumedMasterDoc &&
|
|
237
|
+
// if the isResolvedConflict is correct, we do not have to compare the documents.
|
|
238
|
+
assumedMasterDoc.metaDocument.isResolvedConflict !== fullDocData._rev && state.input.conflictHandler.isEqual(assumedMasterDoc.docData, docData, 'upstream-check-if-equal') || (
|
|
239
|
+
/**
|
|
240
|
+
* If the master works with _rev fields,
|
|
241
|
+
* we use that to check if our current doc state
|
|
242
|
+
* is different from the assumedMasterDoc.
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
assumedMasterDoc && assumedMasterDoc.docData._rev && (0, _index.getHeightOfRevision)(fullDocData._rev) === fullDocData._meta[state.input.identifier])) {
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
writeRowsToMasterIds.push(docId);
|
|
249
|
+
writeRowsToMaster[docId] = {
|
|
250
|
+
assumedMasterState: assumedMasterDoc ? assumedMasterDoc.docData : undefined,
|
|
251
|
+
newDocumentState: docData
|
|
252
|
+
};
|
|
253
|
+
writeRowsToMeta[docId] = await (0, _metaInstance.getMetaWriteRow)(state, docData, assumedMasterDoc ? assumedMasterDoc.metaDocument : undefined);
|
|
254
|
+
}));
|
|
255
|
+
if (writeRowsToMasterIds.length === 0) {
|
|
256
|
+
rememberCheckpointBeforeReturn();
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
var writeRowsArray = Object.values(writeRowsToMaster);
|
|
260
|
+
var conflictIds = new Set();
|
|
261
|
+
var conflictsById = {};
|
|
262
|
+
|
|
263
|
+
/**
|
|
264
|
+
* To always respect the push.batchSize,
|
|
265
|
+
* we have to split the write rows into batches
|
|
266
|
+
* to ensure that replicationHandler.masterWrite() is never
|
|
267
|
+
* called with more documents than what the batchSize limits.
|
|
268
|
+
*/
|
|
269
|
+
var writeBatches = (0, _index.batchArray)(writeRowsArray, state.input.pushBatchSize);
|
|
270
|
+
await Promise.all(writeBatches.map(async writeBatch => {
|
|
271
|
+
// enhance docs with attachments
|
|
272
|
+
if (state.hasAttachments) {
|
|
273
|
+
await Promise.all(writeBatch.map(async row => {
|
|
274
|
+
row.newDocumentState = await (0, _index2.fillWriteDataForAttachmentsChange)(state.primaryPath, state.input.forkInstance, (0, _index.clone)(row.newDocumentState), row.assumedMasterState);
|
|
275
|
+
}));
|
|
276
|
+
}
|
|
277
|
+
var masterWriteResult = await replicationHandler.masterWrite(writeBatch);
|
|
278
|
+
masterWriteResult.forEach(conflictDoc => {
|
|
279
|
+
var id = conflictDoc[state.primaryPath];
|
|
280
|
+
conflictIds.add(id);
|
|
281
|
+
conflictsById[id] = conflictDoc;
|
|
282
|
+
});
|
|
283
|
+
}));
|
|
284
|
+
var useWriteRowsToMeta = [];
|
|
285
|
+
writeRowsToMasterIds.forEach(docId => {
|
|
286
|
+
if (!conflictIds.has(docId)) {
|
|
287
|
+
state.events.processed.up.next(writeRowsToMaster[docId]);
|
|
288
|
+
useWriteRowsToMeta.push(writeRowsToMeta[docId]);
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
if (state.events.canceled.getValue()) {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
if (!state.skipStoringPullMeta && useWriteRowsToMeta.length > 0) {
|
|
295
|
+
await state.input.metaInstance.bulkWrite((0, _helper.stripAttachmentsDataFromMetaWriteRows)(state, useWriteRowsToMeta), 'replication-up-write-meta');
|
|
296
|
+
// TODO what happens when we have conflicts here?
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Resolve conflicts by writing a new document
|
|
301
|
+
* state to the fork instance and the 'real' master state
|
|
302
|
+
* to the meta instance.
|
|
303
|
+
* Non-409 errors will be detected by resolveConflictError()
|
|
304
|
+
*/
|
|
305
|
+
var hadConflictWrites = false;
|
|
306
|
+
if (conflictIds.size > 0) {
|
|
307
|
+
state.stats.up.persistToMasterHadConflicts = state.stats.up.persistToMasterHadConflicts + 1;
|
|
308
|
+
var conflictWriteFork = [];
|
|
309
|
+
var conflictWriteMeta = {};
|
|
310
|
+
await Promise.all(Object.entries(conflictsById).map(([docId, realMasterState]) => {
|
|
311
|
+
var writeToMasterRow = writeRowsToMaster[docId];
|
|
312
|
+
var input = {
|
|
313
|
+
newDocumentState: writeToMasterRow.newDocumentState,
|
|
314
|
+
assumedMasterState: writeToMasterRow.assumedMasterState,
|
|
315
|
+
realMasterState
|
|
316
|
+
};
|
|
317
|
+
return (0, _conflicts.resolveConflictError)(state, input, forkStateById[docId]).then(async resolved => {
|
|
318
|
+
if (resolved) {
|
|
319
|
+
state.events.resolvedConflicts.next({
|
|
320
|
+
input,
|
|
321
|
+
output: resolved
|
|
322
|
+
});
|
|
323
|
+
conflictWriteFork.push({
|
|
324
|
+
previous: forkStateById[docId],
|
|
325
|
+
document: resolved
|
|
326
|
+
});
|
|
327
|
+
var assumedMasterDoc = assumedMasterState[docId];
|
|
328
|
+
conflictWriteMeta[docId] = await (0, _metaInstance.getMetaWriteRow)(state, (0, _index.ensureNotFalsy)(realMasterState), assumedMasterDoc ? assumedMasterDoc.metaDocument : undefined, resolved._rev);
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
}));
|
|
332
|
+
if (conflictWriteFork.length > 0) {
|
|
333
|
+
hadConflictWrites = true;
|
|
334
|
+
state.stats.up.persistToMasterConflictWrites = state.stats.up.persistToMasterConflictWrites + 1;
|
|
335
|
+
var forkWriteResult = await state.input.forkInstance.bulkWrite(conflictWriteFork, 'replication-up-write-conflict');
|
|
336
|
+
var mustThrow;
|
|
337
|
+
forkWriteResult.error.forEach(error => {
|
|
338
|
+
/**
|
|
339
|
+
* Conflict-Errors in the forkWriteResult must not be handled
|
|
340
|
+
* because they have been caused by a write to the forkInstance
|
|
341
|
+
* in between which will anyway trigger a new upstream cycle
|
|
342
|
+
* that will then resolved the conflict again.
|
|
343
|
+
*/
|
|
344
|
+
if (error.status === 409) {
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
// other non-conflict errors must be handled
|
|
348
|
+
var throwMe = (0, _rxError.newRxError)('RC_PUSH', {
|
|
349
|
+
writeError: error
|
|
350
|
+
});
|
|
351
|
+
state.events.error.next(throwMe);
|
|
352
|
+
mustThrow = throwMe;
|
|
353
|
+
});
|
|
354
|
+
if (mustThrow) {
|
|
355
|
+
throw mustThrow;
|
|
356
|
+
}
|
|
357
|
+
var useMetaWrites = [];
|
|
358
|
+
var success = (0, _rxStorageHelper.getWrittenDocumentsFromBulkWriteResponse)(state.primaryPath, conflictWriteFork, forkWriteResult);
|
|
359
|
+
success.forEach(docData => {
|
|
360
|
+
var docId = docData[state.primaryPath];
|
|
361
|
+
useMetaWrites.push(conflictWriteMeta[docId]);
|
|
362
|
+
});
|
|
363
|
+
if (useMetaWrites.length > 0) {
|
|
364
|
+
await state.input.metaInstance.bulkWrite((0, _helper.stripAttachmentsDataFromMetaWriteRows)(state, useMetaWrites), 'replication-up-write-conflict-meta');
|
|
365
|
+
}
|
|
366
|
+
// TODO what to do with conflicts while writing to the metaInstance?
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* For better performance we do not await checkpoint writes,
|
|
372
|
+
* but to ensure order on parallel checkpoint writes,
|
|
373
|
+
* we have to use a queue.
|
|
374
|
+
*/
|
|
375
|
+
rememberCheckpointBeforeReturn();
|
|
376
|
+
return hadConflictWrites;
|
|
377
|
+
}).catch(unhandledError => {
|
|
378
|
+
state.events.error.next(unhandledError);
|
|
379
|
+
return false;
|
|
380
|
+
});
|
|
381
|
+
return persistenceQueue;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
//# sourceMappingURL=upstream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upstream.js","names":["_rxjs","require","_rxStorageHelper","_index","_checkpoint","_conflicts","_helper","_metaInstance","_index2","_rxError","startReplicationUpstream","state","input","initialCheckpoint","upstream","checkpointDoc","getLastCheckpointDoc","setCheckpoint","replicationHandler","streamQueue","up","then","upstreamInitialSync","processTasks","timer","initialSyncStartTime","openTasks","persistenceQueue","PROMISE_RESOLVE_FALSE","nonPersistedFromMaster","docs","sub","forkInstance","changeStream","subscribe","eventBulk","events","paused","getValue","stats","forkChangeStreamEmit","push","task","time","active","next","waitBeforePersist","subResync","masterChangeStream$","pipe","filter","ev","firstValueFrom","canceled","unsubscribe","checkpointQueue","lastCheckpoint","promises","Set","_loop","size","Promise","race","Array","from","upResult","getChangedDocumentsSince","pushBatchSize","documents","length","stackCheckpoints","checkpoint","promise","persistToMaster","ensureNotFalsy","add","catch","delete","resolvedPromises","all","hadConflicts","find","r","firstSyncDone","taskWithTime","shift","context","downstreamBulkWriteFlag","concat","map","documentData","forEach","docData","docId","primaryPath","upDocsById","useCheckpoint","docIds","Object","keys","rememberCheckpointBeforeReturn","assumedMasterState","getAssumedMasterState","writeRowsToMaster","writeRowsToMasterIds","writeRowsToMeta","forkStateById","fullDocData","writeDocToDocState","hasAttachments","keepMeta","assumedMasterDoc","metaDocument","isResolvedConflict","_rev","conflictHandler","isEqual","getHeightOfRevision","_meta","identifier","undefined","newDocumentState","getMetaWriteRow","writeRowsArray","values","conflictIds","conflictsById","writeBatches","batchArray","writeBatch","row","fillWriteDataForAttachmentsChange","clone","masterWriteResult","masterWrite","conflictDoc","id","useWriteRowsToMeta","has","processed","skipStoringPullMeta","metaInstance","bulkWrite","stripAttachmentsDataFromMetaWriteRows","hadConflictWrites","persistToMasterHadConflicts","conflictWriteFork","conflictWriteMeta","entries","realMasterState","writeToMasterRow","resolveConflictError","resolved","resolvedConflicts","output","previous","document","persistToMasterConflictWrites","forkWriteResult","mustThrow","error","status","throwMe","newRxError","writeError","useMetaWrites","success","getWrittenDocumentsFromBulkWriteResponse","unhandledError"],"sources":["../../../src/replication-protocol/upstream.ts"],"sourcesContent":["import { firstValueFrom, filter } from 'rxjs';\r\nimport {\r\n getChangedDocumentsSince,\r\n getWrittenDocumentsFromBulkWriteResponse,\r\n stackCheckpoints\r\n} from '../rx-storage-helper.ts';\r\nimport type {\r\n BulkWriteRow,\r\n BulkWriteRowById,\r\n ById,\r\n EventBulk,\r\n RxDocumentData,\r\n RxError,\r\n RxReplicationWriteToMasterRow,\r\n RxStorageChangeEvent,\r\n RxStorageInstanceReplicationState,\r\n RxStorageReplicationMeta,\r\n WithDeleted\r\n} from '../types/index.d.ts';\r\nimport {\r\n batchArray,\r\n clone,\r\n ensureNotFalsy,\r\n getHeightOfRevision,\r\n PROMISE_RESOLVE_FALSE\r\n} from '../plugins/utils/index.ts';\r\nimport {\r\n getLastCheckpointDoc,\r\n setCheckpoint\r\n} from './checkpoint.ts';\r\nimport {\r\n resolveConflictError\r\n} from './conflicts.ts';\r\nimport {\r\n stripAttachmentsDataFromMetaWriteRows,\r\n writeDocToDocState\r\n} from './helper.ts';\r\nimport {\r\n getAssumedMasterState,\r\n getMetaWriteRow\r\n} from './meta-instance.ts';\r\nimport { fillWriteDataForAttachmentsChange } from '../plugins/attachments/index.ts';\r\nimport { newRxError } from '../rx-error.ts';\r\n\r\n/**\r\n * Writes all document changes from the fork to the master.\r\n * The upstream runs on two modes:\r\n * - For initial replication, a checkpoint-iteration is used\r\n * - For ongoing local writes, we just subscribe to the changeStream of the fork.\r\n * In contrast to the master, the fork can be assumed to never loose connection,\r\n * so we do not have to prepare for missed out events.\r\n */\r\nexport async function startReplicationUpstream<RxDocType, CheckpointType>(\r\n state: RxStorageInstanceReplicationState<RxDocType>\r\n) {\r\n if (\r\n state.input.initialCheckpoint &&\r\n state.input.initialCheckpoint.upstream\r\n ) {\r\n const checkpointDoc = await getLastCheckpointDoc(state, 'up');\r\n if (!checkpointDoc) {\r\n await setCheckpoint(\r\n state,\r\n 'up',\r\n state.input.initialCheckpoint.upstream\r\n );\r\n }\r\n }\r\n\r\n const replicationHandler = state.input.replicationHandler;\r\n state.streamQueue.up = state.streamQueue.up.then(() => {\r\n return upstreamInitialSync().then(() => {\r\n return processTasks();\r\n });\r\n });\r\n\r\n // used to detect which tasks etc can in it at which order.\r\n let timer = 0;\r\n let initialSyncStartTime = -1;\r\n\r\n type Task = EventBulk<RxStorageChangeEvent<RxDocType>, any> | 'RESYNC';\r\n type TaskWithTime = {\r\n task: Task;\r\n time: number;\r\n };\r\n const openTasks: TaskWithTime[] = [];\r\n let persistenceQueue: Promise<boolean> = PROMISE_RESOLVE_FALSE;\r\n const nonPersistedFromMaster: {\r\n checkpoint?: CheckpointType;\r\n docs: ById<RxDocumentData<RxDocType>>;\r\n } = {\r\n docs: {}\r\n };\r\n\r\n const sub = state.input.forkInstance.changeStream()\r\n .subscribe((eventBulk: EventBulk<RxStorageChangeEvent<RxDocType>, any>) => {\r\n if (state.events.paused.getValue()) {\r\n return;\r\n }\r\n\r\n\r\n state.stats.up.forkChangeStreamEmit = state.stats.up.forkChangeStreamEmit + 1;\r\n openTasks.push({\r\n task: eventBulk,\r\n time: timer++\r\n });\r\n if (!state.events.active.up.getValue()) {\r\n state.events.active.up.next(true);\r\n }\r\n if (state.input.waitBeforePersist) {\r\n return state.input.waitBeforePersist()\r\n .then(() => processTasks());\r\n } else {\r\n return processTasks();\r\n }\r\n });\r\n const subResync = replicationHandler\r\n .masterChangeStream$\r\n .pipe(\r\n filter((ev: any) => ev === 'RESYNC')\r\n )\r\n .subscribe(() => {\r\n openTasks.push({\r\n task: 'RESYNC',\r\n time: timer++\r\n });\r\n processTasks();\r\n });\r\n\r\n // unsubscribe when replication is canceled\r\n firstValueFrom(\r\n state.events.canceled.pipe(\r\n filter((canceled: boolean) => !!canceled)\r\n )\r\n ).then(() => {\r\n sub.unsubscribe();\r\n subResync.unsubscribe();\r\n });\r\n\r\n\r\n async function upstreamInitialSync() {\r\n state.stats.up.upstreamInitialSync = state.stats.up.upstreamInitialSync + 1;\r\n if (state.events.canceled.getValue()) {\r\n return;\r\n }\r\n\r\n state.checkpointQueue = state.checkpointQueue.then(() => getLastCheckpointDoc(state, 'up'));\r\n let lastCheckpoint: CheckpointType = await state.checkpointQueue;\r\n\r\n const promises: Set<Promise<any>> = new Set();\r\n\r\n while (!state.events.canceled.getValue()) {\r\n initialSyncStartTime = timer++;\r\n\r\n /**\r\n * Throttle the calls to\r\n * forkInstance.getChangedDocumentsSince() so that\r\n * if the pushing to the remote is slower compared to the\r\n * pulling out of forkInstance, we do not block the UI too much\r\n * and have a big memory spike with all forkInstance documents.\r\n */\r\n if (promises.size > 3) {\r\n await Promise.race(Array.from(promises));\r\n }\r\n const upResult = await getChangedDocumentsSince(\r\n state.input.forkInstance,\r\n state.input.pushBatchSize,\r\n lastCheckpoint\r\n );\r\n if (upResult.documents.length === 0) {\r\n break;\r\n }\r\n\r\n lastCheckpoint = stackCheckpoints([lastCheckpoint, upResult.checkpoint]);\r\n\r\n const promise = persistToMaster(\r\n upResult.documents,\r\n ensureNotFalsy(lastCheckpoint)\r\n );\r\n promises.add(promise);\r\n promise.catch().then(() => promises.delete(promise));\r\n }\r\n\r\n /**\r\n * If we had conflicts during the initial sync,\r\n * it means that we likely have new writes to the fork\r\n * and so we have to run the initial sync again to upstream these new writes.\r\n */\r\n const resolvedPromises = await Promise.all(promises);\r\n const hadConflicts = resolvedPromises.find(r => !!r);\r\n if (hadConflicts) {\r\n await upstreamInitialSync();\r\n } else if (\r\n !state.firstSyncDone.up.getValue() &&\r\n !state.events.canceled.getValue()\r\n ) {\r\n state.firstSyncDone.up.next(true);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Takes all open tasks an processes them at once.\r\n */\r\n function processTasks() {\r\n if (\r\n state.events.canceled.getValue() ||\r\n openTasks.length === 0\r\n ) {\r\n state.events.active.up.next(false);\r\n return;\r\n }\r\n state.stats.up.processTasks = state.stats.up.processTasks + 1;\r\n state.events.active.up.next(true);\r\n state.streamQueue.up = state.streamQueue.up.then(async () => {\r\n /**\r\n * Merge/filter all open tasks\r\n */\r\n let docs: RxDocumentData<RxDocType>[] = [];\r\n let checkpoint: CheckpointType | undefined;\r\n while (openTasks.length > 0) {\r\n const taskWithTime = ensureNotFalsy(openTasks.shift());\r\n /**\r\n * If the task came in before the last time the initial sync fetching\r\n * has run, we can ignore the task because the initial sync already processed\r\n * these documents.\r\n */\r\n if (taskWithTime.time < initialSyncStartTime) {\r\n continue;\r\n }\r\n\r\n if (taskWithTime.task === 'RESYNC') {\r\n state.events.active.up.next(false);\r\n await upstreamInitialSync();\r\n return;\r\n }\r\n\r\n /**\r\n * If the task came from the downstream, we can ignore these documents\r\n * because we know they are replicated already.\r\n * But even if they can be ignored, we later have to call persistToMaster()\r\n * to have the correct checkpoint set.\r\n */\r\n if (taskWithTime.task.context !== await state.downstreamBulkWriteFlag) {\r\n docs = docs.concat(taskWithTime.task.events.map(r => {\r\n return r.documentData as any;\r\n }));\r\n }\r\n checkpoint = stackCheckpoints([checkpoint, taskWithTime.task.checkpoint]);\r\n }\r\n\r\n await persistToMaster(\r\n docs,\r\n checkpoint as any\r\n );\r\n\r\n // might have got more tasks while running persistToMaster()\r\n if (openTasks.length === 0) {\r\n state.events.active.up.next(false);\r\n } else {\r\n return processTasks();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Returns true if had conflicts,\r\n * false if not.\r\n */\r\n function persistToMaster(\r\n docs: RxDocumentData<RxDocType>[],\r\n checkpoint: CheckpointType\r\n ): Promise<boolean> {\r\n state.stats.up.persistToMaster = state.stats.up.persistToMaster + 1;\r\n\r\n /**\r\n * Add the new docs to the non-persistent list\r\n */\r\n docs.forEach(docData => {\r\n const docId: string = (docData as any)[state.primaryPath];\r\n nonPersistedFromMaster.docs[docId] = docData;\r\n });\r\n nonPersistedFromMaster.checkpoint = checkpoint;\r\n\r\n persistenceQueue = persistenceQueue.then(async () => {\r\n if (state.events.canceled.getValue()) {\r\n return false;\r\n }\r\n\r\n const upDocsById: ById<RxDocumentData<RxDocType>> = nonPersistedFromMaster.docs;\r\n nonPersistedFromMaster.docs = {};\r\n const useCheckpoint = nonPersistedFromMaster.checkpoint;\r\n const docIds = Object.keys(upDocsById);\r\n /**\r\n * Even if we do not have anything to push,\r\n * we still have to store the up-checkpoint.\r\n * This ensures that when many documents have been pulled\r\n * from the remote (that do not have to be pushed again),\r\n * we continue at the correct position and do not have to load\r\n * these documents from the storage again when the replication is restarted.\r\n */\r\n function rememberCheckpointBeforeReturn() {\r\n return setCheckpoint(\r\n state,\r\n 'up',\r\n useCheckpoint\r\n );\r\n };\r\n\r\n\r\n if (docIds.length === 0) {\r\n rememberCheckpointBeforeReturn();\r\n return false;\r\n }\r\n\r\n const assumedMasterState = await getAssumedMasterState(\r\n state,\r\n docIds\r\n );\r\n\r\n const writeRowsToMaster: ById<RxReplicationWriteToMasterRow<RxDocType>> = {};\r\n const writeRowsToMasterIds: string[] = [];\r\n const writeRowsToMeta: BulkWriteRowById<RxStorageReplicationMeta<RxDocType, any>> = {};\r\n const forkStateById: ById<RxDocumentData<RxDocType>> = {};\r\n\r\n await Promise.all(\r\n docIds.map(async (docId) => {\r\n const fullDocData: RxDocumentData<RxDocType> = upDocsById[docId];\r\n forkStateById[docId] = fullDocData;\r\n const docData: WithDeleted<RxDocType> = writeDocToDocState(fullDocData, state.hasAttachments, !!state.input.keepMeta);\r\n const assumedMasterDoc = assumedMasterState[docId];\r\n\r\n /**\r\n * If the master state is equal to the\r\n * fork state, we can assume that the document state is already\r\n * replicated.\r\n */\r\n if (\r\n (\r\n assumedMasterDoc &&\r\n // if the isResolvedConflict is correct, we do not have to compare the documents.\r\n assumedMasterDoc.metaDocument.isResolvedConflict !== fullDocData._rev\r\n &&\r\n (\r\n state.input.conflictHandler.isEqual(\r\n assumedMasterDoc.docData,\r\n docData,\r\n 'upstream-check-if-equal'\r\n )\r\n )\r\n )\r\n ||\r\n /**\r\n * If the master works with _rev fields,\r\n * we use that to check if our current doc state\r\n * is different from the assumedMasterDoc.\r\n */\r\n (\r\n assumedMasterDoc &&\r\n (assumedMasterDoc.docData as any)._rev &&\r\n getHeightOfRevision(fullDocData._rev) === fullDocData._meta[state.input.identifier]\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n writeRowsToMasterIds.push(docId);\r\n\r\n writeRowsToMaster[docId] = {\r\n assumedMasterState: assumedMasterDoc ? assumedMasterDoc.docData : undefined,\r\n newDocumentState: docData\r\n };\r\n writeRowsToMeta[docId] = await getMetaWriteRow(\r\n state,\r\n docData,\r\n assumedMasterDoc ? assumedMasterDoc.metaDocument : undefined\r\n );\r\n })\r\n );\r\n\r\n if (writeRowsToMasterIds.length === 0) {\r\n rememberCheckpointBeforeReturn();\r\n return false;\r\n }\r\n\r\n\r\n const writeRowsArray = Object.values(writeRowsToMaster);\r\n const conflictIds: Set<string> = new Set();\r\n const conflictsById: ById<WithDeleted<RxDocType>> = {};\r\n\r\n /**\r\n * To always respect the push.batchSize,\r\n * we have to split the write rows into batches\r\n * to ensure that replicationHandler.masterWrite() is never\r\n * called with more documents than what the batchSize limits.\r\n */\r\n const writeBatches = batchArray(writeRowsArray, state.input.pushBatchSize);\r\n await Promise.all(\r\n writeBatches.map(async (writeBatch) => {\r\n\r\n // enhance docs with attachments\r\n if (state.hasAttachments) {\r\n await Promise.all(\r\n writeBatch.map(async (row) => {\r\n row.newDocumentState = await fillWriteDataForAttachmentsChange(\r\n state.primaryPath,\r\n state.input.forkInstance,\r\n clone(row.newDocumentState),\r\n row.assumedMasterState\r\n );\r\n })\r\n );\r\n }\r\n const masterWriteResult = await replicationHandler.masterWrite(writeBatch);\r\n masterWriteResult.forEach(conflictDoc => {\r\n const id = (conflictDoc as any)[state.primaryPath];\r\n conflictIds.add(id);\r\n conflictsById[id] = conflictDoc;\r\n });\r\n })\r\n );\r\n\r\n const useWriteRowsToMeta: BulkWriteRow<RxStorageReplicationMeta<RxDocType, any>>[] = [];\r\n\r\n writeRowsToMasterIds.forEach(docId => {\r\n if (!conflictIds.has(docId)) {\r\n state.events.processed.up.next(writeRowsToMaster[docId]);\r\n useWriteRowsToMeta.push(writeRowsToMeta[docId]);\r\n }\r\n });\r\n\r\n if (state.events.canceled.getValue()) {\r\n return false;\r\n }\r\n\r\n if (!state.skipStoringPullMeta && useWriteRowsToMeta.length > 0) {\r\n await state.input.metaInstance.bulkWrite(\r\n stripAttachmentsDataFromMetaWriteRows(state, useWriteRowsToMeta),\r\n 'replication-up-write-meta'\r\n );\r\n // TODO what happens when we have conflicts here?\r\n }\r\n\r\n /**\r\n * Resolve conflicts by writing a new document\r\n * state to the fork instance and the 'real' master state\r\n * to the meta instance.\r\n * Non-409 errors will be detected by resolveConflictError()\r\n */\r\n let hadConflictWrites = false;\r\n if (conflictIds.size > 0) {\r\n state.stats.up.persistToMasterHadConflicts = state.stats.up.persistToMasterHadConflicts + 1;\r\n const conflictWriteFork: BulkWriteRow<RxDocType>[] = [];\r\n const conflictWriteMeta: BulkWriteRowById<RxStorageReplicationMeta<RxDocType, any>> = {};\r\n await Promise.all(\r\n Object\r\n .entries(conflictsById)\r\n .map(([docId, realMasterState]) => {\r\n const writeToMasterRow = writeRowsToMaster[docId];\r\n const input = {\r\n newDocumentState: writeToMasterRow.newDocumentState,\r\n assumedMasterState: writeToMasterRow.assumedMasterState,\r\n realMasterState\r\n };\r\n return resolveConflictError(\r\n state,\r\n input,\r\n forkStateById[docId]\r\n ).then(async (resolved) => {\r\n if (resolved) {\r\n state.events.resolvedConflicts.next({\r\n input,\r\n output: resolved\r\n });\r\n conflictWriteFork.push({\r\n previous: forkStateById[docId],\r\n document: resolved\r\n });\r\n const assumedMasterDoc = assumedMasterState[docId];\r\n conflictWriteMeta[docId] = await getMetaWriteRow(\r\n state,\r\n ensureNotFalsy(realMasterState),\r\n assumedMasterDoc ? assumedMasterDoc.metaDocument : undefined,\r\n resolved._rev\r\n );\r\n }\r\n });\r\n })\r\n );\r\n\r\n if (conflictWriteFork.length > 0) {\r\n hadConflictWrites = true;\r\n\r\n state.stats.up.persistToMasterConflictWrites = state.stats.up.persistToMasterConflictWrites + 1;\r\n const forkWriteResult = await state.input.forkInstance.bulkWrite(\r\n conflictWriteFork,\r\n 'replication-up-write-conflict'\r\n );\r\n\r\n let mustThrow: RxError | undefined;\r\n forkWriteResult.error.forEach(error => {\r\n /**\r\n * Conflict-Errors in the forkWriteResult must not be handled\r\n * because they have been caused by a write to the forkInstance\r\n * in between which will anyway trigger a new upstream cycle\r\n * that will then resolved the conflict again.\r\n */\r\n if (error.status === 409) {\r\n return;\r\n }\r\n // other non-conflict errors must be handled\r\n const throwMe = newRxError('RC_PUSH', {\r\n writeError: error\r\n });\r\n state.events.error.next(throwMe);\r\n mustThrow = throwMe;\r\n });\r\n if (mustThrow) {\r\n throw mustThrow;\r\n }\r\n\r\n const useMetaWrites: BulkWriteRow<RxStorageReplicationMeta<RxDocType, any>>[] = [];\r\n const success = getWrittenDocumentsFromBulkWriteResponse(\r\n state.primaryPath,\r\n conflictWriteFork,\r\n forkWriteResult\r\n );\r\n success\r\n .forEach(docData => {\r\n const docId = (docData as any)[state.primaryPath];\r\n useMetaWrites.push(\r\n conflictWriteMeta[docId]\r\n );\r\n });\r\n if (useMetaWrites.length > 0) {\r\n await state.input.metaInstance.bulkWrite(\r\n stripAttachmentsDataFromMetaWriteRows(state, useMetaWrites),\r\n 'replication-up-write-conflict-meta'\r\n );\r\n }\r\n // TODO what to do with conflicts while writing to the metaInstance?\r\n }\r\n }\r\n\r\n /**\r\n * For better performance we do not await checkpoint writes,\r\n * but to ensure order on parallel checkpoint writes,\r\n * we have to use a queue.\r\n */\r\n rememberCheckpointBeforeReturn();\r\n\r\n return hadConflictWrites;\r\n }).catch(unhandledError => {\r\n state.events.error.next(unhandledError);\r\n return false;\r\n });\r\n\r\n return persistenceQueue;\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.flattenEvents = flattenEvents;
|
|
7
|
+
exports.getDocumentDataOfRxChangeEvent = getDocumentDataOfRxChangeEvent;
|
|
8
|
+
exports.rxChangeEventBulkToRxChangeEvents = rxChangeEventBulkToRxChangeEvents;
|
|
9
|
+
exports.rxChangeEventToEventReduceChangeEvent = rxChangeEventToEventReduceChangeEvent;
|
|
10
|
+
var _overwritable = require("./overwritable.js");
|
|
11
|
+
var _index = require("./plugins/utils/index.js");
|
|
12
|
+
/**
|
|
13
|
+
* RxChangeEvents a emitted when something in the database changes
|
|
14
|
+
* they can be grabbed by the observables of database, collection and document
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
function getDocumentDataOfRxChangeEvent(rxChangeEvent) {
|
|
18
|
+
if (rxChangeEvent.documentData) {
|
|
19
|
+
return rxChangeEvent.documentData;
|
|
20
|
+
} else {
|
|
21
|
+
return rxChangeEvent.previousDocumentData;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Might return null which means an
|
|
27
|
+
* already deleted document got modified but still is deleted.
|
|
28
|
+
* These kind of events are not relevant for the event-reduce algorithm
|
|
29
|
+
* and must be filtered out.
|
|
30
|
+
*/
|
|
31
|
+
function rxChangeEventToEventReduceChangeEvent(rxChangeEvent) {
|
|
32
|
+
switch (rxChangeEvent.operation) {
|
|
33
|
+
case 'INSERT':
|
|
34
|
+
return {
|
|
35
|
+
operation: rxChangeEvent.operation,
|
|
36
|
+
id: rxChangeEvent.documentId,
|
|
37
|
+
doc: rxChangeEvent.documentData,
|
|
38
|
+
previous: null
|
|
39
|
+
};
|
|
40
|
+
case 'UPDATE':
|
|
41
|
+
return {
|
|
42
|
+
operation: rxChangeEvent.operation,
|
|
43
|
+
id: rxChangeEvent.documentId,
|
|
44
|
+
doc: _overwritable.overwritable.deepFreezeWhenDevMode(rxChangeEvent.documentData),
|
|
45
|
+
previous: rxChangeEvent.previousDocumentData ? rxChangeEvent.previousDocumentData : 'UNKNOWN'
|
|
46
|
+
};
|
|
47
|
+
case 'DELETE':
|
|
48
|
+
return {
|
|
49
|
+
operation: rxChangeEvent.operation,
|
|
50
|
+
id: rxChangeEvent.documentId,
|
|
51
|
+
doc: null,
|
|
52
|
+
previous: rxChangeEvent.previousDocumentData
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Flattens the given events into a single array of events.
|
|
59
|
+
* Used mostly in tests.
|
|
60
|
+
*/
|
|
61
|
+
function flattenEvents(input) {
|
|
62
|
+
var output = [];
|
|
63
|
+
if (Array.isArray(input)) {
|
|
64
|
+
input.forEach(inputItem => {
|
|
65
|
+
var add = flattenEvents(inputItem);
|
|
66
|
+
output = output.concat(add);
|
|
67
|
+
});
|
|
68
|
+
} else {
|
|
69
|
+
if (input.id && input.events) {
|
|
70
|
+
// is bulk
|
|
71
|
+
input.events.forEach(ev => output.push(ev));
|
|
72
|
+
} else {
|
|
73
|
+
output.push(input);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
var usedIds = new Set();
|
|
77
|
+
var nonDuplicate = [];
|
|
78
|
+
function getEventId(ev) {
|
|
79
|
+
return [ev.documentId, ev.documentData ? ev.documentData._rev : '', ev.previousDocumentData ? ev.previousDocumentData._rev : ''].join('|');
|
|
80
|
+
}
|
|
81
|
+
output.forEach(ev => {
|
|
82
|
+
var eventId = getEventId(ev);
|
|
83
|
+
if (!usedIds.has(eventId)) {
|
|
84
|
+
usedIds.add(eventId);
|
|
85
|
+
nonDuplicate.push(ev);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return nonDuplicate;
|
|
89
|
+
}
|
|
90
|
+
var EVENT_BULK_CACHE = new Map();
|
|
91
|
+
function rxChangeEventBulkToRxChangeEvents(eventBulk) {
|
|
92
|
+
return (0, _index.getFromMapOrCreate)(EVENT_BULK_CACHE, eventBulk, () => {
|
|
93
|
+
var events = new Array(eventBulk.events.length);
|
|
94
|
+
var rawEvents = eventBulk.events;
|
|
95
|
+
var collectionName = eventBulk.collectionName;
|
|
96
|
+
var isLocal = eventBulk.isLocal;
|
|
97
|
+
var deepFreezeWhenDevMode = _overwritable.overwritable.deepFreezeWhenDevMode;
|
|
98
|
+
for (var index = 0; index < rawEvents.length; index++) {
|
|
99
|
+
var event = rawEvents[index];
|
|
100
|
+
events[index] = {
|
|
101
|
+
documentId: event.documentId,
|
|
102
|
+
collectionName,
|
|
103
|
+
isLocal,
|
|
104
|
+
operation: event.operation,
|
|
105
|
+
documentData: deepFreezeWhenDevMode(event.documentData),
|
|
106
|
+
previousDocumentData: deepFreezeWhenDevMode(event.previousDocumentData)
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
return events;
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=rx-change-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rx-change-event.js","names":["_overwritable","require","_index","getDocumentDataOfRxChangeEvent","rxChangeEvent","documentData","previousDocumentData","rxChangeEventToEventReduceChangeEvent","operation","id","documentId","doc","previous","overwritable","deepFreezeWhenDevMode","flattenEvents","input","output","Array","isArray","forEach","inputItem","add","concat","events","ev","push","usedIds","Set","nonDuplicate","getEventId","_rev","join","eventId","has","EVENT_BULK_CACHE","Map","rxChangeEventBulkToRxChangeEvents","eventBulk","getFromMapOrCreate","length","rawEvents","collectionName","isLocal","index","event"],"sources":["../../src/rx-change-event.ts"],"sourcesContent":["/**\r\n * RxChangeEvents a emitted when something in the database changes\r\n * they can be grabbed by the observables of database, collection and document\r\n */\r\n\r\nimport type {\r\n ChangeEvent as EventReduceChangeEvent,\r\n} from 'event-reduce-js';\r\nimport { overwritable } from './overwritable.ts';\r\n\r\nimport type {\r\n EventBulk,\r\n RxChangeEvent,\r\n RxChangeEventBulk,\r\n RxDocumentData,\r\n RxStorageChangeEvent\r\n} from './types/index.d.ts';\r\nimport { getFromMapOrCreate } from './plugins/utils/index.ts';\r\n\r\nexport function getDocumentDataOfRxChangeEvent<T>(\r\n rxChangeEvent: RxStorageChangeEvent<T>\r\n): RxDocumentData<T> {\r\n if ((rxChangeEvent as any).documentData) {\r\n return (rxChangeEvent as any).documentData;\r\n } else {\r\n return (rxChangeEvent as any).previousDocumentData;\r\n }\r\n}\r\n\r\n/**\r\n * Might return null which means an\r\n * already deleted document got modified but still is deleted.\r\n * These kind of events are not relevant for the event-reduce algorithm\r\n * and must be filtered out.\r\n */\r\nexport function rxChangeEventToEventReduceChangeEvent<DocType>(\r\n rxChangeEvent: RxStorageChangeEvent<DocType>\r\n): EventReduceChangeEvent<DocType> | null {\r\n switch (rxChangeEvent.operation) {\r\n case 'INSERT':\r\n return {\r\n operation: rxChangeEvent.operation,\r\n id: rxChangeEvent.documentId,\r\n doc: rxChangeEvent.documentData as any,\r\n previous: null\r\n };\r\n case 'UPDATE':\r\n return {\r\n operation: rxChangeEvent.operation,\r\n id: rxChangeEvent.documentId,\r\n doc: overwritable.deepFreezeWhenDevMode(rxChangeEvent.documentData) as any,\r\n previous: rxChangeEvent.previousDocumentData ? rxChangeEvent.previousDocumentData as any : 'UNKNOWN'\r\n };\r\n case 'DELETE':\r\n return {\r\n operation: rxChangeEvent.operation,\r\n id: rxChangeEvent.documentId,\r\n doc: null,\r\n previous: rxChangeEvent.previousDocumentData as DocType\r\n };\r\n }\r\n}\r\n\r\n/**\r\n * Flattens the given events into a single array of events.\r\n * Used mostly in tests.\r\n */\r\nexport function flattenEvents<EventType>(\r\n input: EventBulk<EventType, any> | EventBulk<EventType, any>[] | EventType | EventType[]\r\n): EventType[] {\r\n let output: EventType[] = [];\r\n if (Array.isArray(input)) {\r\n input.forEach(inputItem => {\r\n const add = flattenEvents(inputItem);\r\n output = output.concat(add);\r\n });\r\n } else {\r\n if ((input as any).id && (input as any).events) {\r\n // is bulk\r\n (input as EventBulk<EventType, any>)\r\n .events\r\n .forEach(ev => output.push(ev));\r\n } else {\r\n output.push(input as any);\r\n }\r\n }\r\n\r\n const usedIds = new Set<string>();\r\n const nonDuplicate: EventType[] = [];\r\n\r\n function getEventId(ev: any): string {\r\n return [\r\n ev.documentId,\r\n ev.documentData ? ev.documentData._rev : '',\r\n ev.previousDocumentData ? ev.previousDocumentData._rev : ''\r\n ].join('|');\r\n }\r\n\r\n output.forEach(ev => {\r\n const eventId = getEventId(ev);\r\n if (!usedIds.has(eventId)) {\r\n usedIds.add(eventId);\r\n nonDuplicate.push(ev);\r\n }\r\n });\r\n\r\n return nonDuplicate;\r\n}\r\n\r\nconst EVENT_BULK_CACHE = new Map<RxChangeEventBulk<any>, RxChangeEvent<any>[]>();\r\nexport function rxChangeEventBulkToRxChangeEvents(\r\n eventBulk: RxChangeEventBulk<any>\r\n) {\r\n return getFromMapOrCreate(\r\n EVENT_BULK_CACHE,\r\n eventBulk,\r\n () => {\r\n const events: RxChangeEvent<any>[] = new Array(eventBulk.events.length);\r\n const rawEvents = eventBulk.events;\r\n const collectionName = eventBulk.collectionName;\r\n const isLocal = eventBulk.isLocal;\r\n const deepFreezeWhenDevMode = overwritable.deepFreezeWhenDevMode;\r\n for (let index = 0; index < rawEvents.length; index++) {\r\n const event = rawEvents[index];\r\n events[index] = {\r\n documentId: event.documentId,\r\n collectionName,\r\n isLocal,\r\n operation: event.operation,\r\n documentData: deepFreezeWhenDevMode(event.documentData) as any,\r\n previousDocumentData: deepFreezeWhenDevMode(event.previousDocumentData) as any\r\n };\r\n }\r\n return events;\r\n }\r\n );\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|