@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,267 @@
|
|
|
1
|
+
import assert from 'assert';
|
|
2
|
+
import { createRxDatabase, randomToken, requestIdlePromise } from "../../index.js";
|
|
3
|
+
import { wait } from 'async-test-util';
|
|
4
|
+
import { averageSchemaData } from "./schema-objects.js";
|
|
5
|
+
import { averageSchema } from "./schemas.js";
|
|
6
|
+
/**
|
|
7
|
+
* Runs a performance benchmark against the given RxStorage.
|
|
8
|
+
* Useful for comparing different RxStorage implementations.
|
|
9
|
+
*
|
|
10
|
+
* @param storage - The RxStorage to benchmark.
|
|
11
|
+
* @param storageDescription - A human-readable description of the storage (used in results).
|
|
12
|
+
* @param config - Optional configuration to override the defaults.
|
|
13
|
+
* @returns An object with averaged timing values for each measured operation.
|
|
14
|
+
*/
|
|
15
|
+
export async function runPerformanceTests(storage, storageDescription, config = {}) {
|
|
16
|
+
var {
|
|
17
|
+
runs = 40,
|
|
18
|
+
collectionsAmount = 4,
|
|
19
|
+
docsAmount = 3000,
|
|
20
|
+
serialDocsAmount = 50,
|
|
21
|
+
parallelQueryAmount = 4,
|
|
22
|
+
insertBatches = 6,
|
|
23
|
+
waitBetweenTests = 100,
|
|
24
|
+
log = true
|
|
25
|
+
} = config;
|
|
26
|
+
var totalTimes = {};
|
|
27
|
+
var runsDone = 0;
|
|
28
|
+
var _loop = async function () {
|
|
29
|
+
if (log) {
|
|
30
|
+
console.log('runsDone: ' + runsDone + ' of ' + runs);
|
|
31
|
+
}
|
|
32
|
+
runsDone++;
|
|
33
|
+
var time = performance.now();
|
|
34
|
+
var updateTime = flag => {
|
|
35
|
+
if (!flag) {
|
|
36
|
+
time = performance.now();
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
var diff = performance.now() - time;
|
|
40
|
+
if (!totalTimes[flag]) {
|
|
41
|
+
totalTimes[flag] = [diff];
|
|
42
|
+
} else {
|
|
43
|
+
totalTimes[flag].push(diff);
|
|
44
|
+
}
|
|
45
|
+
time = performance.now();
|
|
46
|
+
};
|
|
47
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
48
|
+
updateTime();
|
|
49
|
+
|
|
50
|
+
// create database
|
|
51
|
+
var dbName = 'test-db-performance-' + randomToken(10);
|
|
52
|
+
var schema = averageSchema();
|
|
53
|
+
var collection;
|
|
54
|
+
async function createDbWithCollections() {
|
|
55
|
+
if (collection) {
|
|
56
|
+
await collection.database.close();
|
|
57
|
+
}
|
|
58
|
+
var db = await createRxDatabase({
|
|
59
|
+
name: dbName,
|
|
60
|
+
eventReduce: true,
|
|
61
|
+
/**
|
|
62
|
+
* A RxStorage implementation
|
|
63
|
+
* might need a full leader election cycle to be usable.
|
|
64
|
+
* So we disable multiInstance here because it would make no sense
|
|
65
|
+
* to measure the leader election time instead of the database
|
|
66
|
+
* creation time.
|
|
67
|
+
*/
|
|
68
|
+
multiInstance: false,
|
|
69
|
+
storage
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// create collections
|
|
73
|
+
var collectionData = {};
|
|
74
|
+
var collectionNames = [];
|
|
75
|
+
new Array(collectionsAmount).fill(0).forEach((_v, idx) => {
|
|
76
|
+
var name = dbName + '_col_' + idx;
|
|
77
|
+
collectionNames.push(name);
|
|
78
|
+
collectionData[name] = {
|
|
79
|
+
schema,
|
|
80
|
+
statics: {}
|
|
81
|
+
};
|
|
82
|
+
});
|
|
83
|
+
var firstCollectionName = collectionNames[0];
|
|
84
|
+
var collections = await db.addCollections(collectionData);
|
|
85
|
+
/**
|
|
86
|
+
* Many storages have a lazy initialization.
|
|
87
|
+
* So it makes no sense to measure the time of database/collection creation.
|
|
88
|
+
* Instead we do a single insert and measure the time to the first insert.
|
|
89
|
+
*/
|
|
90
|
+
await collections[collectionNames[1]].insert(averageSchemaData());
|
|
91
|
+
return collections[firstCollectionName];
|
|
92
|
+
}
|
|
93
|
+
collection = await createDbWithCollections();
|
|
94
|
+
updateTime('time-to-first-insert');
|
|
95
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
96
|
+
|
|
97
|
+
// insert documents (in batches)
|
|
98
|
+
var docIds = [];
|
|
99
|
+
var docsPerBatch = docsAmount / insertBatches;
|
|
100
|
+
for (var i = 0; i < insertBatches; i++) {
|
|
101
|
+
var docsData = new Array(docsPerBatch).fill(0).map((_v, idx) => {
|
|
102
|
+
var data = averageSchemaData({
|
|
103
|
+
var1: idx % 2 + '',
|
|
104
|
+
var2: idx % parallelQueryAmount
|
|
105
|
+
});
|
|
106
|
+
docIds.push(data.id);
|
|
107
|
+
return data;
|
|
108
|
+
});
|
|
109
|
+
updateTime();
|
|
110
|
+
await collection.bulkInsert(docsData);
|
|
111
|
+
updateTime('insert-documents-' + docsPerBatch);
|
|
112
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// refresh db to ensure we do not run on caches
|
|
116
|
+
collection = await createDbWithCollections();
|
|
117
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Bulk Find by id
|
|
121
|
+
*/
|
|
122
|
+
updateTime();
|
|
123
|
+
var idsResult = await collection.findByIds(docIds).exec();
|
|
124
|
+
updateTime('find-by-ids-' + docsAmount);
|
|
125
|
+
assert.strictEqual(Array.from(idsResult.keys()).length, docsAmount, 'find-by-id amount');
|
|
126
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Serial inserts
|
|
130
|
+
*/
|
|
131
|
+
updateTime();
|
|
132
|
+
var c = 0;
|
|
133
|
+
var serialIds = [];
|
|
134
|
+
while (c < serialDocsAmount) {
|
|
135
|
+
c++;
|
|
136
|
+
var data = averageSchemaData({
|
|
137
|
+
var2: 1000
|
|
138
|
+
});
|
|
139
|
+
serialIds.push(data.id);
|
|
140
|
+
await collection.insert(data);
|
|
141
|
+
}
|
|
142
|
+
updateTime('serial-inserts-' + serialDocsAmount);
|
|
143
|
+
|
|
144
|
+
// refresh db to ensure we do not run on caches
|
|
145
|
+
collection = await createDbWithCollections();
|
|
146
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Serial find-by-id
|
|
150
|
+
*/
|
|
151
|
+
updateTime();
|
|
152
|
+
for (var id of serialIds) {
|
|
153
|
+
await collection.findByIds([id]).exec();
|
|
154
|
+
}
|
|
155
|
+
updateTime('serial-find-by-id-' + serialDocsAmount);
|
|
156
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
157
|
+
|
|
158
|
+
// find by query
|
|
159
|
+
updateTime();
|
|
160
|
+
var query = collection.find({
|
|
161
|
+
selector: {},
|
|
162
|
+
sort: [{
|
|
163
|
+
var2: 'asc'
|
|
164
|
+
}, {
|
|
165
|
+
var1: 'asc'
|
|
166
|
+
}]
|
|
167
|
+
});
|
|
168
|
+
var queryResult = await query.exec();
|
|
169
|
+
updateTime('find-by-query');
|
|
170
|
+
assert.strictEqual(queryResult.length, docsAmount + serialDocsAmount, 'find-by-query');
|
|
171
|
+
|
|
172
|
+
// refresh db to ensure we do not run on caches
|
|
173
|
+
collection = await createDbWithCollections();
|
|
174
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
175
|
+
|
|
176
|
+
// find by multiple queries in parallel
|
|
177
|
+
updateTime();
|
|
178
|
+
var parallelResult = await Promise.all(new Array(parallelQueryAmount).fill(0).map((_v, idx) => {
|
|
179
|
+
var subQuery = collection.find({
|
|
180
|
+
selector: {
|
|
181
|
+
var2: idx
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
return subQuery.exec();
|
|
185
|
+
}));
|
|
186
|
+
updateTime('find-by-query-parallel-' + parallelQueryAmount);
|
|
187
|
+
var parallelSum = 0;
|
|
188
|
+
parallelResult.forEach(r => parallelSum = parallelSum + r.length);
|
|
189
|
+
assert.strictEqual(parallelSum, docsAmount, 'parallelSum');
|
|
190
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
191
|
+
|
|
192
|
+
// run count query
|
|
193
|
+
updateTime();
|
|
194
|
+
var t = 0;
|
|
195
|
+
while (t < parallelQueryAmount) {
|
|
196
|
+
var countQuery = collection.count({
|
|
197
|
+
selector: {
|
|
198
|
+
var2: {
|
|
199
|
+
$eq: t
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
var countQueryResult = await countQuery.exec();
|
|
204
|
+
assert.ok(countQueryResult >= docsAmount / insertBatches - 5, 'count A ' + countQueryResult);
|
|
205
|
+
assert.ok(countQueryResult < docsAmount * 0.8, 'count B ' + countQueryResult);
|
|
206
|
+
t++;
|
|
207
|
+
}
|
|
208
|
+
updateTime('4x-count');
|
|
209
|
+
await awaitBetweenTest(waitBetweenTests);
|
|
210
|
+
|
|
211
|
+
// test property access time
|
|
212
|
+
updateTime();
|
|
213
|
+
var sum = 0;
|
|
214
|
+
for (var _i = 0; _i < queryResult.length; _i++) {
|
|
215
|
+
var doc = queryResult[_i];
|
|
216
|
+
|
|
217
|
+
// access the same property exactly 2 times
|
|
218
|
+
sum += doc.deep.deeper.deepNr;
|
|
219
|
+
sum += doc.deep.deeper.deepNr;
|
|
220
|
+
}
|
|
221
|
+
updateTime('property-access');
|
|
222
|
+
assert.ok(sum > 10);
|
|
223
|
+
await collection.database.remove();
|
|
224
|
+
};
|
|
225
|
+
while (runsDone < runs) {
|
|
226
|
+
await _loop();
|
|
227
|
+
}
|
|
228
|
+
var result = {
|
|
229
|
+
description: storageDescription,
|
|
230
|
+
collectionsAmount,
|
|
231
|
+
docsAmount
|
|
232
|
+
};
|
|
233
|
+
Object.entries(totalTimes).forEach(([key, times]) => {
|
|
234
|
+
result[key] = roundToThree(averageOfTimeValues(times, 95));
|
|
235
|
+
});
|
|
236
|
+
if (log) {
|
|
237
|
+
console.log('Performance test for ' + storageDescription);
|
|
238
|
+
console.log(JSON.stringify(result, null, 4));
|
|
239
|
+
}
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
242
|
+
export function averageOfTimeValues(times,
|
|
243
|
+
/**
|
|
244
|
+
* To better account for anomalies
|
|
245
|
+
* during time measurements,
|
|
246
|
+
* we strip the highest x percent.
|
|
247
|
+
*/
|
|
248
|
+
striphighestXPercent) {
|
|
249
|
+
times = times.sort((a, b) => a - b);
|
|
250
|
+
var stripAmount = Math.floor(times.length * (striphighestXPercent * 0.01));
|
|
251
|
+
var useNumbers = times.slice(0, times.length - stripAmount);
|
|
252
|
+
var total = 0;
|
|
253
|
+
useNumbers.forEach(nr => total = total + nr);
|
|
254
|
+
return total / useNumbers.length;
|
|
255
|
+
}
|
|
256
|
+
function roundToThree(num) {
|
|
257
|
+
return Math.round(num * 1000) / 1000;
|
|
258
|
+
}
|
|
259
|
+
async function awaitBetweenTest(waitMs) {
|
|
260
|
+
await requestIdlePromise();
|
|
261
|
+
if (waitMs > 0) {
|
|
262
|
+
await wait(waitMs);
|
|
263
|
+
}
|
|
264
|
+
await requestIdlePromise();
|
|
265
|
+
await requestIdlePromise();
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=performance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.js","names":["assert","createRxDatabase","randomToken","requestIdlePromise","wait","averageSchemaData","averageSchema","runPerformanceTests","storage","storageDescription","config","runs","collectionsAmount","docsAmount","serialDocsAmount","parallelQueryAmount","insertBatches","waitBetweenTests","log","totalTimes","runsDone","_loop","console","time","performance","now","updateTime","flag","diff","push","awaitBetweenTest","dbName","schema","collection","createDbWithCollections","database","close","db","name","eventReduce","multiInstance","collectionData","collectionNames","Array","fill","forEach","_v","idx","statics","firstCollectionName","collections","addCollections","insert","docIds","docsPerBatch","i","docsData","map","data","var1","var2","id","bulkInsert","idsResult","findByIds","exec","strictEqual","from","keys","length","c","serialIds","query","find","selector","sort","queryResult","parallelResult","Promise","all","subQuery","parallelSum","r","t","countQuery","count","$eq","countQueryResult","ok","sum","doc","deep","deeper","deepNr","remove","result","description","Object","entries","key","times","roundToThree","averageOfTimeValues","JSON","stringify","striphighestXPercent","a","b","stripAmount","Math","floor","useNumbers","slice","total","nr","num","round","waitMs"],"sources":["../../../../src/plugins/test-utils/performance.ts"],"sourcesContent":["import assert from 'assert';\r\nimport {\r\n createRxDatabase,\r\n randomToken,\r\n requestIdlePromise,\r\n RxCollection,\r\n RxStorage\r\n} from '../../index.ts';\r\nimport { wait } from 'async-test-util';\r\nimport { averageSchemaData, AverageSchemaDocumentType } from './schema-objects.ts';\r\nimport { averageSchema } from './schemas.ts';\r\n\r\nexport type PerformanceTestConfig = {\r\n /**\r\n * How many times the test loop is run.\r\n * More runs give more stable averages but take longer.\r\n * @default 40\r\n */\r\n runs?: number;\r\n /**\r\n * Number of collections created per database.\r\n * @default 4\r\n */\r\n collectionsAmount?: number;\r\n /**\r\n * Number of documents inserted in bulk per run.\r\n * @default 3000\r\n */\r\n docsAmount?: number;\r\n /**\r\n * Number of documents inserted one-by-one (serial) per run.\r\n * @default 50\r\n */\r\n serialDocsAmount?: number;\r\n /**\r\n * Number of parallel queries executed per run.\r\n * @default 4\r\n */\r\n parallelQueryAmount?: number;\r\n /**\r\n * Number of batches used when doing bulk inserts.\r\n * @default 6\r\n */\r\n insertBatches?: number;\r\n /**\r\n * Milliseconds to wait between test operations.\r\n * Set to 0 to disable waiting (useful for smoke tests).\r\n * @default 100\r\n */\r\n waitBetweenTests?: number;\r\n /**\r\n * Whether to log progress and results to the console.\r\n * @default true\r\n */\r\n log?: boolean;\r\n};\r\n\r\nexport type PerformanceTestResult = {\r\n description: string;\r\n collectionsAmount: number;\r\n docsAmount: number;\r\n [timingKey: string]: number | string;\r\n};\r\n\r\n/**\r\n * Runs a performance benchmark against the given RxStorage.\r\n * Useful for comparing different RxStorage implementations.\r\n *\r\n * @param storage - The RxStorage to benchmark.\r\n * @param storageDescription - A human-readable description of the storage (used in results).\r\n * @param config - Optional configuration to override the defaults.\r\n * @returns An object with averaged timing values for each measured operation.\r\n */\r\nexport async function runPerformanceTests(\r\n storage: RxStorage<any, any>,\r\n storageDescription: string,\r\n config: PerformanceTestConfig = {}\r\n): Promise<PerformanceTestResult> {\r\n const {\r\n runs = 40,\r\n collectionsAmount = 4,\r\n docsAmount = 3000,\r\n serialDocsAmount = 50,\r\n parallelQueryAmount = 4,\r\n insertBatches = 6,\r\n waitBetweenTests = 100,\r\n log = true\r\n } = config;\r\n\r\n const totalTimes: { [k: string]: number[]; } = {};\r\n\r\n let runsDone = 0;\r\n while (runsDone < runs) {\r\n if (log) {\r\n console.log('runsDone: ' + runsDone + ' of ' + runs);\r\n }\r\n runsDone++;\r\n\r\n let time = performance.now();\r\n const updateTime = (flag?: string) => {\r\n if (!flag) {\r\n time = performance.now();\r\n return;\r\n }\r\n const diff = performance.now() - time;\r\n if (!totalTimes[flag]) {\r\n totalTimes[flag] = [diff];\r\n } else {\r\n totalTimes[flag].push(diff);\r\n }\r\n time = performance.now();\r\n };\r\n\r\n await awaitBetweenTest(waitBetweenTests);\r\n updateTime();\r\n\r\n // create database\r\n const dbName = 'test-db-performance-' + randomToken(10);\r\n const schema = averageSchema();\r\n let collection: RxCollection<AverageSchemaDocumentType>;\r\n async function createDbWithCollections() {\r\n if (collection) {\r\n await collection.database.close();\r\n }\r\n const db = await createRxDatabase({\r\n name: dbName,\r\n eventReduce: true,\r\n /**\r\n * A RxStorage implementation\r\n * might need a full leader election cycle to be usable.\r\n * So we disable multiInstance here because it would make no sense\r\n * to measure the leader election time instead of the database\r\n * creation time.\r\n */\r\n multiInstance: false,\r\n storage\r\n });\r\n\r\n // create collections\r\n const collectionData: any = {};\r\n const collectionNames: string[] = [];\r\n new Array(collectionsAmount)\r\n .fill(0)\r\n .forEach((_v, idx) => {\r\n const name = dbName + '_col_' + idx;\r\n collectionNames.push(name);\r\n collectionData[name] = {\r\n schema,\r\n statics: {}\r\n };\r\n });\r\n const firstCollectionName: string = collectionNames[0];\r\n const collections = await db.addCollections(collectionData);\r\n /**\r\n * Many storages have a lazy initialization.\r\n * So it makes no sense to measure the time of database/collection creation.\r\n * Instead we do a single insert and measure the time to the first insert.\r\n */\r\n await collections[collectionNames[1]].insert(averageSchemaData());\r\n return collections[firstCollectionName];\r\n }\r\n collection = await createDbWithCollections();\r\n updateTime('time-to-first-insert');\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n // insert documents (in batches)\r\n const docIds: string[] = [];\r\n const docsPerBatch = docsAmount / insertBatches;\r\n for (let i = 0; i < insertBatches; i++) {\r\n const docsData = new Array(docsPerBatch)\r\n .fill(0)\r\n .map((_v, idx) => {\r\n const data = averageSchemaData({\r\n var1: (idx % 2) + '',\r\n var2: idx % parallelQueryAmount\r\n });\r\n docIds.push(data.id);\r\n return data;\r\n });\r\n updateTime();\r\n await collection.bulkInsert(docsData);\r\n updateTime('insert-documents-' + docsPerBatch);\r\n await awaitBetweenTest(waitBetweenTests);\r\n }\r\n\r\n // refresh db to ensure we do not run on caches\r\n collection = await createDbWithCollections();\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n /**\r\n * Bulk Find by id\r\n */\r\n updateTime();\r\n const idsResult = await collection.findByIds(docIds).exec();\r\n updateTime('find-by-ids-' + docsAmount);\r\n assert.strictEqual(Array.from(idsResult.keys()).length, docsAmount, 'find-by-id amount');\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n /**\r\n * Serial inserts\r\n */\r\n updateTime();\r\n let c = 0;\r\n const serialIds: string[] = [];\r\n while (c < serialDocsAmount) {\r\n c++;\r\n const data = averageSchemaData({\r\n var2: 1000\r\n });\r\n serialIds.push(data.id);\r\n await collection.insert(data);\r\n }\r\n updateTime('serial-inserts-' + serialDocsAmount);\r\n\r\n // refresh db to ensure we do not run on caches\r\n collection = await createDbWithCollections();\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n /**\r\n * Serial find-by-id\r\n */\r\n updateTime();\r\n for (const id of serialIds) {\r\n await collection.findByIds([id]).exec();\r\n }\r\n updateTime('serial-find-by-id-' + serialDocsAmount);\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n // find by query\r\n updateTime();\r\n const query = collection.find({\r\n selector: {},\r\n sort: [\r\n { var2: 'asc' },\r\n { var1: 'asc' }\r\n ]\r\n });\r\n const queryResult = await query.exec();\r\n updateTime('find-by-query');\r\n assert.strictEqual(queryResult.length, docsAmount + serialDocsAmount, 'find-by-query');\r\n\r\n // refresh db to ensure we do not run on caches\r\n collection = await createDbWithCollections();\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n // find by multiple queries in parallel\r\n updateTime();\r\n const parallelResult = await Promise.all(\r\n new Array(parallelQueryAmount).fill(0).map((_v, idx) => {\r\n const subQuery = collection.find({\r\n selector: {\r\n var2: idx\r\n }\r\n });\r\n return subQuery.exec();\r\n })\r\n );\r\n updateTime('find-by-query-parallel-' + parallelQueryAmount);\r\n let parallelSum = 0;\r\n parallelResult.forEach(r => parallelSum = parallelSum + r.length);\r\n assert.strictEqual(parallelSum, docsAmount, 'parallelSum');\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n // run count query\r\n updateTime();\r\n let t = 0;\r\n while (t < parallelQueryAmount) {\r\n const countQuery = collection.count({\r\n selector: {\r\n var2: {\r\n $eq: t\r\n }\r\n }\r\n });\r\n const countQueryResult = await countQuery.exec();\r\n assert.ok(countQueryResult >= ((docsAmount / insertBatches) - 5), 'count A ' + countQueryResult);\r\n assert.ok(countQueryResult < (docsAmount * 0.8), 'count B ' + countQueryResult);\r\n t++;\r\n }\r\n updateTime('4x-count');\r\n await awaitBetweenTest(waitBetweenTests);\r\n\r\n // test property access time\r\n updateTime();\r\n let sum = 0;\r\n for (let i = 0; i < queryResult.length; i++) {\r\n const doc = queryResult[i];\r\n\r\n // access the same property exactly 2 times\r\n sum += doc.deep.deeper.deepNr;\r\n sum += doc.deep.deeper.deepNr;\r\n }\r\n updateTime('property-access');\r\n assert.ok(sum > 10);\r\n\r\n await collection.database.remove();\r\n }\r\n\r\n const result: PerformanceTestResult = {\r\n description: storageDescription,\r\n collectionsAmount,\r\n docsAmount\r\n };\r\n Object.entries(totalTimes).forEach(([key, times]) => {\r\n result[key] = roundToThree(averageOfTimeValues(times, 95));\r\n });\r\n\r\n if (log) {\r\n console.log('Performance test for ' + storageDescription);\r\n console.log(JSON.stringify(result, null, 4));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function averageOfTimeValues(\r\n times: number[],\r\n /**\r\n * To better account for anomalies\r\n * during time measurements,\r\n * we strip the highest x percent.\r\n */\r\n striphighestXPercent: number\r\n): number {\r\n times = times.sort((a, b) => a - b);\r\n const stripAmount = Math.floor(times.length * (striphighestXPercent * 0.01));\r\n const useNumbers = times.slice(0, times.length - stripAmount);\r\n let total = 0;\r\n useNumbers.forEach(nr => total = total + nr);\r\n return total / useNumbers.length;\r\n}\r\n\r\nfunction roundToThree(num: number) {\r\n return Math.round(num * 1000) / 1000;\r\n}\r\n\r\nasync function awaitBetweenTest(waitMs: number) {\r\n await requestIdlePromise();\r\n if (waitMs > 0) {\r\n await wait(waitMs);\r\n }\r\n await requestIdlePromise();\r\n await requestIdlePromise();\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base test suite for replication plugins.
|
|
3
|
+
* All replication plugins should run these tests
|
|
4
|
+
* to ensure consistent behavior across different backends.
|
|
5
|
+
*
|
|
6
|
+
* The tests use HumanDocumentType (passportId, firstName, lastName, age)
|
|
7
|
+
* with humansCollection.create() for collection creation.
|
|
8
|
+
*/
|
|
9
|
+
import assert from 'assert';
|
|
10
|
+
import { wait } from 'async-test-util';
|
|
11
|
+
import { ensureNotFalsy } from "../utils/index.js";
|
|
12
|
+
import * as humansCollection from "./humans-collection.js";
|
|
13
|
+
import * as schemaObjects from "./schema-objects.js";
|
|
14
|
+
import { awaitCollectionsHaveEqualState, ensureReplicationHasNoErrors } from "./test-util.js";
|
|
15
|
+
/**
|
|
16
|
+
* Runs the base test suite for a replication plugin.
|
|
17
|
+
* Call this inside a describe() block in your replication test file.
|
|
18
|
+
*
|
|
19
|
+
* The config callbacks should target a shared server endpoint.
|
|
20
|
+
* Each test calls cleanUpServer() at the start to ensure a clean state.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* describe('replication-nats.test.ts', () => {
|
|
25
|
+
* runReplicationBaseTestSuite({
|
|
26
|
+
* startReplication: (collection) => syncNats(collection, natsName),
|
|
27
|
+
* syncOnce: (collection) => syncOnceNats(collection, natsName),
|
|
28
|
+
* getAllServerDocs: () => getAllDocsOfServer(natsName),
|
|
29
|
+
* cleanUpServer: async () => { ... },
|
|
30
|
+
* softDeletes: true,
|
|
31
|
+
* isDeleted: (doc) => doc._deleted,
|
|
32
|
+
* getPrimaryOfServerDoc: (doc) => doc.passportId,
|
|
33
|
+
* });
|
|
34
|
+
* });
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function runReplicationBaseTestSuite(config) {
|
|
38
|
+
var waitTime = config.waitTime || 0;
|
|
39
|
+
describe('base test suite', () => {
|
|
40
|
+
describe('live replication', () => {
|
|
41
|
+
it('push replication to client-server', async () => {
|
|
42
|
+
await config.cleanUpServer();
|
|
43
|
+
var collection = await humansCollection.create(2, undefined, false);
|
|
44
|
+
var replicationState = config.startReplication(collection);
|
|
45
|
+
ensureReplicationHasNoErrors(replicationState);
|
|
46
|
+
await replicationState.awaitInitialReplication();
|
|
47
|
+
var docsOnServer = await config.getAllServerDocs();
|
|
48
|
+
assert.strictEqual(docsOnServer.length, 2);
|
|
49
|
+
|
|
50
|
+
// insert another one
|
|
51
|
+
await collection.insert(schemaObjects.humanData());
|
|
52
|
+
await replicationState.awaitInSync();
|
|
53
|
+
docsOnServer = await config.getAllServerDocs();
|
|
54
|
+
assert.strictEqual(docsOnServer.length, 3);
|
|
55
|
+
|
|
56
|
+
// update one
|
|
57
|
+
var doc = await collection.findOne().exec(true);
|
|
58
|
+
await doc.incrementalPatch({
|
|
59
|
+
age: 100
|
|
60
|
+
});
|
|
61
|
+
await replicationState.awaitInSync();
|
|
62
|
+
docsOnServer = await config.getAllServerDocs();
|
|
63
|
+
assert.strictEqual(docsOnServer.length, 3);
|
|
64
|
+
var serverDoc = ensureNotFalsy(docsOnServer.find(d => config.getPrimaryOfServerDoc(d) === doc.primary));
|
|
65
|
+
assert.strictEqual(serverDoc.age, 100);
|
|
66
|
+
|
|
67
|
+
// delete one
|
|
68
|
+
await doc.getLatest().remove();
|
|
69
|
+
await replicationState.awaitInSync();
|
|
70
|
+
docsOnServer = await config.getAllServerDocs();
|
|
71
|
+
if (config.softDeletes) {
|
|
72
|
+
assert.strictEqual(docsOnServer.length, 3);
|
|
73
|
+
assert.ok(docsOnServer.find(d => config.isDeleted(d)));
|
|
74
|
+
} else {
|
|
75
|
+
assert.strictEqual(docsOnServer.length, 2);
|
|
76
|
+
}
|
|
77
|
+
await collection.database.close();
|
|
78
|
+
});
|
|
79
|
+
it('two collections', async () => {
|
|
80
|
+
await config.cleanUpServer();
|
|
81
|
+
var collectionA = await humansCollection.create(0, undefined, false);
|
|
82
|
+
await collectionA.insert(schemaObjects.humanData('1aaa'));
|
|
83
|
+
var collectionB = await humansCollection.create(0, undefined, false);
|
|
84
|
+
await collectionB.insert(schemaObjects.humanData('1bbb'));
|
|
85
|
+
var replicationStateA = config.startReplication(collectionA);
|
|
86
|
+
ensureReplicationHasNoErrors(replicationStateA);
|
|
87
|
+
await replicationStateA.awaitInitialReplication();
|
|
88
|
+
var replicationStateB = config.startReplication(collectionB);
|
|
89
|
+
ensureReplicationHasNoErrors(replicationStateB);
|
|
90
|
+
await replicationStateB.awaitInitialReplication();
|
|
91
|
+
if (waitTime) {
|
|
92
|
+
await wait(waitTime);
|
|
93
|
+
}
|
|
94
|
+
await replicationStateA.awaitInSync();
|
|
95
|
+
await awaitCollectionsHaveEqualState(collectionA, collectionB, 'init sync');
|
|
96
|
+
|
|
97
|
+
// insert one
|
|
98
|
+
await collectionA.insert(schemaObjects.humanData('insert-a'));
|
|
99
|
+
await replicationStateA.awaitInSync();
|
|
100
|
+
await replicationStateB.awaitInSync();
|
|
101
|
+
if (waitTime) {
|
|
102
|
+
await wait(waitTime);
|
|
103
|
+
}
|
|
104
|
+
await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after insert');
|
|
105
|
+
|
|
106
|
+
// delete one
|
|
107
|
+
await collectionB.findOne().remove();
|
|
108
|
+
await replicationStateB.awaitInSync();
|
|
109
|
+
await replicationStateA.awaitInSync();
|
|
110
|
+
if (waitTime) {
|
|
111
|
+
await wait(waitTime);
|
|
112
|
+
}
|
|
113
|
+
await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after deletion');
|
|
114
|
+
|
|
115
|
+
// insert many
|
|
116
|
+
await collectionA.bulkInsert(new Array(10).fill(0).map(() => schemaObjects.humanData(undefined, undefined, 'bulk-insert-A')));
|
|
117
|
+
await replicationStateA.awaitInSync();
|
|
118
|
+
await replicationStateB.awaitInSync();
|
|
119
|
+
if (waitTime) {
|
|
120
|
+
await wait(waitTime);
|
|
121
|
+
}
|
|
122
|
+
await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after insert many');
|
|
123
|
+
|
|
124
|
+
// insert at both collections at the same time
|
|
125
|
+
await Promise.all([collectionA.insert(schemaObjects.humanData('insert-parallel-a')), collectionB.insert(schemaObjects.humanData('insert-parallel-b'))]);
|
|
126
|
+
await replicationStateA.awaitInSync();
|
|
127
|
+
await replicationStateB.awaitInSync();
|
|
128
|
+
await replicationStateA.awaitInSync();
|
|
129
|
+
await replicationStateB.awaitInSync();
|
|
130
|
+
if (waitTime) {
|
|
131
|
+
await wait(waitTime);
|
|
132
|
+
}
|
|
133
|
+
await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after insert both at same time');
|
|
134
|
+
await collectionA.database.close();
|
|
135
|
+
await collectionB.database.close();
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('conflict handling', () => {
|
|
139
|
+
it('should keep the master state as default conflict handler', async () => {
|
|
140
|
+
await config.cleanUpServer();
|
|
141
|
+
var c1 = await humansCollection.create(1);
|
|
142
|
+
var c2 = await humansCollection.create(0);
|
|
143
|
+
await config.syncOnce(c1);
|
|
144
|
+
await config.syncOnce(c2);
|
|
145
|
+
var doc1 = await c1.findOne().exec(true);
|
|
146
|
+
var doc2 = await c2.findOne().exec(true);
|
|
147
|
+
|
|
148
|
+
// make update on both sides
|
|
149
|
+
await doc1.incrementalPatch({
|
|
150
|
+
firstName: 'c1'
|
|
151
|
+
});
|
|
152
|
+
await doc2.incrementalPatch({
|
|
153
|
+
firstName: 'c2'
|
|
154
|
+
});
|
|
155
|
+
await config.syncOnce(c2);
|
|
156
|
+
|
|
157
|
+
// cause conflict
|
|
158
|
+
await config.syncOnce(c1);
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Must have kept the master state c2
|
|
162
|
+
*/
|
|
163
|
+
assert.strictEqual(doc1.getLatest().firstName, 'c2');
|
|
164
|
+
await c1.database.close();
|
|
165
|
+
await c2.database.close();
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=replication-base-test-suite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication-base-test-suite.js","names":["assert","wait","ensureNotFalsy","humansCollection","schemaObjects","awaitCollectionsHaveEqualState","ensureReplicationHasNoErrors","runReplicationBaseTestSuite","config","waitTime","describe","it","cleanUpServer","collection","create","undefined","replicationState","startReplication","awaitInitialReplication","docsOnServer","getAllServerDocs","strictEqual","length","insert","humanData","awaitInSync","doc","findOne","exec","incrementalPatch","age","serverDoc","find","d","getPrimaryOfServerDoc","primary","getLatest","remove","softDeletes","ok","isDeleted","database","close","collectionA","collectionB","replicationStateA","replicationStateB","bulkInsert","Array","fill","map","Promise","all","c1","c2","syncOnce","doc1","doc2","firstName"],"sources":["../../../../src/plugins/test-utils/replication-base-test-suite.ts"],"sourcesContent":["/**\r\n * Base test suite for replication plugins.\r\n * All replication plugins should run these tests\r\n * to ensure consistent behavior across different backends.\r\n *\r\n * The tests use HumanDocumentType (passportId, firstName, lastName, age)\r\n * with humansCollection.create() for collection creation.\r\n */\r\nimport assert from 'assert';\r\nimport { wait } from 'async-test-util';\r\nimport type { RxCollection } from '../../types/index.d.ts';\r\nimport type { RxReplicationState } from '../replication/index.ts';\r\nimport { ensureNotFalsy } from '../utils/index.ts';\r\nimport * as humansCollection from './humans-collection.ts';\r\nimport * as schemaObjects from './schema-objects.ts';\r\nimport {\r\n awaitCollectionsHaveEqualState,\r\n ensureReplicationHasNoErrors\r\n} from './test-util.ts';\r\n\r\nexport type ReplicationBaseTestSuiteConfig = {\r\n /**\r\n * Start a live replication for a collection.\r\n * Must target a shared server endpoint so that multiple\r\n * collections can replicate to the same backend.\r\n */\r\n startReplication(collection: RxCollection<any>): RxReplicationState<any, any>;\r\n\r\n /**\r\n * Run a one-shot (non-live) sync and wait for completion.\r\n * Must target the same server endpoint as startReplication.\r\n */\r\n syncOnce(collection: RxCollection<any>): Promise<void>;\r\n\r\n /**\r\n * Get all documents from the server,\r\n * including soft-deleted ones when the backend uses soft deletes.\r\n */\r\n getAllServerDocs(): Promise<any[]>;\r\n\r\n /**\r\n * Remove all documents from the server.\r\n */\r\n cleanUpServer(): Promise<void>;\r\n\r\n /**\r\n * Whether the server uses soft deletes\r\n * (marks docs as deleted instead of removing them).\r\n */\r\n softDeletes: boolean;\r\n\r\n /**\r\n * Check if a server document is marked as deleted.\r\n * Required when softDeletes is true.\r\n */\r\n isDeleted?(serverDoc: any): boolean;\r\n\r\n /**\r\n * Get the client primary key (passportId) from a server document.\r\n * Different backends store the primary key in different fields.\r\n */\r\n getPrimaryOfServerDoc(serverDoc: any): string;\r\n\r\n /**\r\n * Additional wait time for eventually consistent backends (ms).\r\n */\r\n waitTime?: number;\r\n};\r\n\r\n/**\r\n * Runs the base test suite for a replication plugin.\r\n * Call this inside a describe() block in your replication test file.\r\n *\r\n * The config callbacks should target a shared server endpoint.\r\n * Each test calls cleanUpServer() at the start to ensure a clean state.\r\n *\r\n * @example\r\n * ```ts\r\n * describe('replication-nats.test.ts', () => {\r\n * runReplicationBaseTestSuite({\r\n * startReplication: (collection) => syncNats(collection, natsName),\r\n * syncOnce: (collection) => syncOnceNats(collection, natsName),\r\n * getAllServerDocs: () => getAllDocsOfServer(natsName),\r\n * cleanUpServer: async () => { ... },\r\n * softDeletes: true,\r\n * isDeleted: (doc) => doc._deleted,\r\n * getPrimaryOfServerDoc: (doc) => doc.passportId,\r\n * });\r\n * });\r\n * ```\r\n */\r\nexport function runReplicationBaseTestSuite(config: ReplicationBaseTestSuiteConfig): void {\r\n const waitTime = config.waitTime || 0;\r\n\r\n describe('base test suite', () => {\r\n describe('live replication', () => {\r\n it('push replication to client-server', async () => {\r\n await config.cleanUpServer();\r\n const collection = await humansCollection.create(2, undefined, false);\r\n\r\n const replicationState = config.startReplication(collection);\r\n ensureReplicationHasNoErrors(replicationState);\r\n await replicationState.awaitInitialReplication();\r\n\r\n let docsOnServer = await config.getAllServerDocs();\r\n assert.strictEqual(docsOnServer.length, 2);\r\n\r\n // insert another one\r\n await collection.insert(schemaObjects.humanData());\r\n await replicationState.awaitInSync();\r\n\r\n docsOnServer = await config.getAllServerDocs();\r\n assert.strictEqual(docsOnServer.length, 3);\r\n\r\n // update one\r\n const doc = await collection.findOne().exec(true);\r\n await doc.incrementalPatch({ age: 100 });\r\n await replicationState.awaitInSync();\r\n docsOnServer = await config.getAllServerDocs();\r\n assert.strictEqual(docsOnServer.length, 3);\r\n const serverDoc = ensureNotFalsy(\r\n docsOnServer.find(d => config.getPrimaryOfServerDoc(d) === doc.primary)\r\n );\r\n assert.strictEqual(serverDoc.age, 100);\r\n\r\n // delete one\r\n await doc.getLatest().remove();\r\n await replicationState.awaitInSync();\r\n docsOnServer = await config.getAllServerDocs();\r\n\r\n if (config.softDeletes) {\r\n assert.strictEqual(docsOnServer.length, 3);\r\n assert.ok(docsOnServer.find(d => config.isDeleted!(d)));\r\n } else {\r\n assert.strictEqual(docsOnServer.length, 2);\r\n }\r\n\r\n await collection.database.close();\r\n });\r\n\r\n it('two collections', async () => {\r\n await config.cleanUpServer();\r\n\r\n const collectionA = await humansCollection.create(0, undefined, false);\r\n await collectionA.insert(schemaObjects.humanData('1aaa'));\r\n const collectionB = await humansCollection.create(0, undefined, false);\r\n await collectionB.insert(schemaObjects.humanData('1bbb'));\r\n\r\n const replicationStateA = config.startReplication(collectionA);\r\n ensureReplicationHasNoErrors(replicationStateA);\r\n await replicationStateA.awaitInitialReplication();\r\n\r\n const replicationStateB = config.startReplication(collectionB);\r\n ensureReplicationHasNoErrors(replicationStateB);\r\n await replicationStateB.awaitInitialReplication();\r\n\r\n if (waitTime) { await wait(waitTime); }\r\n await replicationStateA.awaitInSync();\r\n\r\n await awaitCollectionsHaveEqualState(collectionA, collectionB, 'init sync');\r\n\r\n // insert one\r\n await collectionA.insert(schemaObjects.humanData('insert-a'));\r\n await replicationStateA.awaitInSync();\r\n await replicationStateB.awaitInSync();\r\n if (waitTime) { await wait(waitTime); }\r\n await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after insert');\r\n\r\n // delete one\r\n await collectionB.findOne().remove();\r\n await replicationStateB.awaitInSync();\r\n await replicationStateA.awaitInSync();\r\n if (waitTime) { await wait(waitTime); }\r\n await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after deletion');\r\n\r\n // insert many\r\n await collectionA.bulkInsert(\r\n new Array(10)\r\n .fill(0)\r\n .map(() => schemaObjects.humanData(undefined, undefined, 'bulk-insert-A'))\r\n );\r\n await replicationStateA.awaitInSync();\r\n await replicationStateB.awaitInSync();\r\n if (waitTime) { await wait(waitTime); }\r\n await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after insert many');\r\n\r\n // insert at both collections at the same time\r\n await Promise.all([\r\n collectionA.insert(schemaObjects.humanData('insert-parallel-a')),\r\n collectionB.insert(schemaObjects.humanData('insert-parallel-b'))\r\n ]);\r\n await replicationStateA.awaitInSync();\r\n await replicationStateB.awaitInSync();\r\n await replicationStateA.awaitInSync();\r\n await replicationStateB.awaitInSync();\r\n if (waitTime) { await wait(waitTime); }\r\n await awaitCollectionsHaveEqualState(collectionA, collectionB, 'after insert both at same time');\r\n\r\n await collectionA.database.close();\r\n await collectionB.database.close();\r\n });\r\n });\r\n\r\n describe('conflict handling', () => {\r\n it('should keep the master state as default conflict handler', async () => {\r\n await config.cleanUpServer();\r\n\r\n const c1 = await humansCollection.create(1);\r\n const c2 = await humansCollection.create(0);\r\n\r\n await config.syncOnce(c1);\r\n await config.syncOnce(c2);\r\n\r\n const doc1 = await c1.findOne().exec(true);\r\n const doc2 = await c2.findOne().exec(true);\r\n\r\n // make update on both sides\r\n await doc1.incrementalPatch({ firstName: 'c1' });\r\n await doc2.incrementalPatch({ firstName: 'c2' });\r\n\r\n await config.syncOnce(c2);\r\n\r\n // cause conflict\r\n await config.syncOnce(c1);\r\n\r\n /**\r\n * Must have kept the master state c2\r\n */\r\n assert.strictEqual(doc1.getLatest().firstName, 'c2');\r\n\r\n await c1.database.close();\r\n await c2.database.close();\r\n });\r\n });\r\n });\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { rxStorageInstanceToReplicationHandler } from "../../replication-protocol/index.js";
|
|
2
|
+
import { deepEqual } from "../utils/index.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Creates a pull handler that always returns
|
|
6
|
+
* all documents.
|
|
7
|
+
*/
|
|
8
|
+
export function getPullHandler(remoteCollection) {
|
|
9
|
+
var helper = rxStorageInstanceToReplicationHandler(remoteCollection.storageInstance, remoteCollection.database.conflictHandler, remoteCollection.database.token);
|
|
10
|
+
var handler = async (latestPullCheckpoint, batchSize) => {
|
|
11
|
+
var result = await helper.masterChangesSince(latestPullCheckpoint, batchSize);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
return handler;
|
|
15
|
+
}
|
|
16
|
+
export function getPullStream(remoteCollection) {
|
|
17
|
+
var helper = rxStorageInstanceToReplicationHandler(remoteCollection.storageInstance, remoteCollection.conflictHandler, remoteCollection.database.token);
|
|
18
|
+
return helper.masterChangeStream$;
|
|
19
|
+
}
|
|
20
|
+
export function getPushHandler(remoteCollection) {
|
|
21
|
+
var helper = rxStorageInstanceToReplicationHandler(remoteCollection.storageInstance, remoteCollection.conflictHandler, remoteCollection.database.token);
|
|
22
|
+
var handler = async rows => {
|
|
23
|
+
var result = await helper.masterWrite(rows);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
26
|
+
return handler;
|
|
27
|
+
}
|
|
28
|
+
export async function ensureEqualState(collectionA, collectionB, context) {
|
|
29
|
+
var [docsA, docsB] = await Promise.all([collectionA.find().exec().then(docs => docs.map(d => d.toJSON(true))), collectionB.find().exec().then(docs => docs.map(d => d.toJSON(true)))]);
|
|
30
|
+
docsA.forEach((docA, idx) => {
|
|
31
|
+
var docB = docsB[idx];
|
|
32
|
+
var cleanDocToCompare = doc => {
|
|
33
|
+
return Object.assign({}, doc, {
|
|
34
|
+
_meta: undefined,
|
|
35
|
+
_rev: undefined
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
if (!deepEqual(cleanDocToCompare(docA), cleanDocToCompare(docB))) {
|
|
39
|
+
console.log('## ERROR: State not equal (context: "' + context + '")');
|
|
40
|
+
console.log(JSON.stringify(docA, null, 4));
|
|
41
|
+
console.log(JSON.stringify(docB, null, 4));
|
|
42
|
+
throw new Error('STATE not equal (context: "' + context + '")');
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=replication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replication.js","names":["rxStorageInstanceToReplicationHandler","deepEqual","getPullHandler","remoteCollection","helper","storageInstance","database","conflictHandler","token","handler","latestPullCheckpoint","batchSize","result","masterChangesSince","getPullStream","masterChangeStream$","getPushHandler","rows","masterWrite","ensureEqualState","collectionA","collectionB","context","docsA","docsB","Promise","all","find","exec","then","docs","map","d","toJSON","forEach","docA","idx","docB","cleanDocToCompare","doc","Object","assign","_meta","undefined","_rev","console","log","JSON","stringify","Error"],"sources":["../../../../src/plugins/test-utils/replication.ts"],"sourcesContent":["import { Observable } from 'rxjs';\r\nimport { rxStorageInstanceToReplicationHandler } from '../../replication-protocol/index.ts';\r\nimport type {\r\n DeepReadonly,\r\n ReplicationPullHandler,\r\n ReplicationPushHandler,\r\n RxCollection,\r\n RxReplicationPullStreamItem,\r\n RxReplicationWriteToMasterRow\r\n} from '../../types';\r\nimport { deepEqual } from '../utils/index.ts';\r\n\r\n/**\r\n * Creates a pull handler that always returns\r\n * all documents.\r\n*/\r\nexport function getPullHandler<RxDocType, CheckpointType>(\r\n remoteCollection: RxCollection<RxDocType, {}, {}, {}>\r\n): ReplicationPullHandler<RxDocType, CheckpointType> {\r\n const helper = rxStorageInstanceToReplicationHandler<RxDocType, CheckpointType>(\r\n remoteCollection.storageInstance,\r\n remoteCollection.database.conflictHandler as any,\r\n remoteCollection.database.token\r\n );\r\n const handler: ReplicationPullHandler<RxDocType, CheckpointType> = async (\r\n latestPullCheckpoint: CheckpointType | undefined,\r\n batchSize: number\r\n ) => {\r\n const result = await helper.masterChangesSince(latestPullCheckpoint, batchSize);\r\n return result;\r\n };\r\n return handler;\r\n}\r\nexport function getPullStream<RxDocType>(\r\n remoteCollection: RxCollection<RxDocType, {}, {}, {}>\r\n): Observable<RxReplicationPullStreamItem<RxDocType, any>> {\r\n const helper = rxStorageInstanceToReplicationHandler(\r\n remoteCollection.storageInstance,\r\n remoteCollection.conflictHandler,\r\n remoteCollection.database.token\r\n );\r\n return helper.masterChangeStream$;\r\n}\r\nexport function getPushHandler<RxDocType>(\r\n remoteCollection: RxCollection<RxDocType, {}, {}, {}>\r\n): ReplicationPushHandler<RxDocType> {\r\n const helper = rxStorageInstanceToReplicationHandler(\r\n remoteCollection.storageInstance,\r\n remoteCollection.conflictHandler,\r\n remoteCollection.database.token\r\n );\r\n const handler: ReplicationPushHandler<RxDocType> = async (\r\n rows: RxReplicationWriteToMasterRow<RxDocType>[]\r\n ) => {\r\n const result = await helper.masterWrite(rows);\r\n return result;\r\n };\r\n return handler;\r\n}\r\n\r\n\r\nexport async function ensureEqualState<RxDocType>(\r\n collectionA: RxCollection<RxDocType>,\r\n collectionB: RxCollection<RxDocType>,\r\n context?: string\r\n) {\r\n const [\r\n docsA,\r\n docsB\r\n ] = await Promise.all([\r\n collectionA.find().exec().then(docs => docs.map(d => d.toJSON(true))),\r\n collectionB.find().exec().then(docs => docs.map(d => d.toJSON(true)))\r\n ]);\r\n\r\n docsA.forEach((docA, idx) => {\r\n const docB = docsB[idx];\r\n const cleanDocToCompare = (doc: DeepReadonly<RxDocType>) => {\r\n return Object.assign({}, doc, {\r\n _meta: undefined,\r\n _rev: undefined\r\n });\r\n };\r\n\r\n\r\n if (!deepEqual(\r\n cleanDocToCompare(docA),\r\n cleanDocToCompare(docB)\r\n )) {\r\n console.log('## ERROR: State not equal (context: \"' + context + '\")');\r\n console.log(JSON.stringify(docA, null, 4));\r\n console.log(JSON.stringify(docB, null, 4));\r\n throw new Error('STATE not equal (context: \"' + context + '\")');\r\n }\r\n });\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export var EXAMPLE_REVISION_1 = '1-12080c42d471e3d2625e49dcca3b8e1a';
|
|
2
|
+
export var EXAMPLE_REVISION_2 = '2-22080c42d471e3d2625e49dcca3b8e2b';
|
|
3
|
+
export var EXAMPLE_REVISION_3 = '3-32080c42d471e3d2625e49dcca3b8e3c';
|
|
4
|
+
export var EXAMPLE_REVISION_4 = '4-42080c42d471e3d2625e49dcca3b8e3c';
|
|
5
|
+
//# sourceMappingURL=revisions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"revisions.js","names":["EXAMPLE_REVISION_1","EXAMPLE_REVISION_2","EXAMPLE_REVISION_3","EXAMPLE_REVISION_4"],"sources":["../../../../src/plugins/test-utils/revisions.ts"],"sourcesContent":["export const EXAMPLE_REVISION_1 = '1-12080c42d471e3d2625e49dcca3b8e1a';\r\nexport const EXAMPLE_REVISION_2 = '2-22080c42d471e3d2625e49dcca3b8e2b';\r\nexport const EXAMPLE_REVISION_3 = '3-32080c42d471e3d2625e49dcca3b8e3c';\r\nexport const EXAMPLE_REVISION_4 = '4-42080c42d471e3d2625e49dcca3b8e3c';\r\n"],"mappings":"AAAA,OAAO,IAAMA,kBAAkB,GAAG,oCAAoC;AACtE,OAAO,IAAMC,kBAAkB,GAAG,oCAAoC;AACtE,OAAO,IAAMC,kBAAkB,GAAG,oCAAoC;AACtE,OAAO,IAAMC,kBAAkB,GAAG,oCAAoC","ignoreList":[]}
|