Update dependency rxdb to v17.2.0#433
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
17.1.0→17.2.0Release Notes
pubkey/rxdb (rxdb)
v17.2.0Compare Source
useRxDocument(collection, primaryKey)hook for subscribing to a single document by primary key with live updatesuseReplicationStatus(replicationState)hook that exposessyncing,error,lastSyncedAt, andcanceledfrom replication observablesliveQueryUpdateThrottleTimeas a beta feature in the documentationliveQueryUpdateThrottleTimedocumentation torx-query.md;rx-database.mdandrx-collection.mdnow only list the option with a short description and a linkallAttachments$observable emitting a new value on every document revision even when the set of attachments is unchanged, by filtering emissions withdistinctUntilChangedbased on attachment ids and digestsRxAttachment.remove()not cleaning up binary attachment data from storage, becausecategorizeBulkWriteRows()only iterated over the new document's_attachmentsand never detected attachments removed between revisionsisCompressibleType()not stripping RFC 2045 parameters (e.g.; charset=utf-8) from MIME types, causing attachments with a charset-qualified type likeapplication/json; charset=utf-8to silently bypass compression when matched against exact patterns likeapplication/jsonfindByIds()returned an empty map and the loop exited early before running the deletion handlerRxCollection.cleanup()returningundefinedinstead ofbooleanas declared by its TypeScript return type, because the cleanup plugin implementation did not return the result fromcleanupRxCollection()bulkInserthook not including the composite primary key in CRDT operations, causing the primary key field to be lost during conflict resolution rebuild for schemas that use a composite primary keyencryptedarray.findByIds()query operationsmodify(),patch(),incrementalModify(),incrementalPatch(), andincrementalRemove()returning an Array instead of a Map. Also fixfindByIds().remove()crashing withTypeError: docs.remove is not a functionbecause it did not handle the Map return type fromfindByIds().getJsonSchemaWithoutMeta()not removing internal meta field references (_deleted,_meta.lwt) from indexes, while correctly removing them from properties and required, causing the returned schema to be internally inconsistentgetLocal()returning a deleted local document from the document cache instead ofnull, causing inconsistent behavior between cache hits and storage lookups after a local document is removedreplication-google-driveplugin requestingetagin the Google Drive v3 list APIfieldsparameter, which is rejected by the real API; etag is now fetched separately via the v2 APIRxLocalDocument.get$()on nested object/array paths emitting spurious values when unrelated document fields changed, becausedistinctUntilChanged()used reference equality which always fails for non-primitive values across document revisionsRxLocalDocument.$observable emitting events from a collection-level local document that shares the same id, because the filter on the database event stream only checkedisLocaland did not exclude events that originated from a collectionremove()not deleting attachment data from localStorage, causing orphaned attachment entries to remain after the storage instance is removed_attachmentsacross chained migration strategies, so later strategies received the document with_attachmentsasundefinedwhen an earlier strategy returned a new object without forwarding them, breaking theWithAttachments<DocData>contract and preventing strategies from reading or mutating attachment metadata as described in the docsmigrateDocumentData()never restored_attachmentsafter running the strategies while_metaand_deletedwere restoredRxMigrationState.migratePromise()returningcount.percent: 0instead of100when the migration status isDONEand no migration was needed, which is inconsistent with theupdateStatus()logic that correctly sets percent to100when total is0RxAttachmentmethods (getData,getStringData,getDataBase64,remove) not being validated, silently shadowing the built-in method on every attachment instance and preventing users from retrieving their attachment data. Dev-mode now throws a clearRxError(COL17) during collection creation.field$,field$$,field_) not being validated, causing aTypeErrorcrash at runtime instead of a clearRxError(COL18) during collection creationRxDatabase.passwordbeing an enumerable property, which could leak the plaintext password throughObject.keys(), object spreading,Object.assign(), orJSON.stringify()in logging and error reporting contextsRxPipelineerror state blocking unrelated reads on the destination collection, because the pipeline'swaitBeforeWriteFnhook always calledawaitIdle()which re-throws the stored handler error forever. After a handler throws, reads on the destination collection now proceed normally instead of re-throwing the pipeline error.RxPipelinedeadlock when multiple pipelines share the same destination collection and their handlers read from the destination, because each pipeline'swaitBeforeWriteFnonly recognized its own flagged function name in the stack instead of any pipeline's flagged function prefixRxDocument.populate()throwingDOC6for array fields whenrefis defined onitemsinstead of on the array field itself, even thoughcreateRxSchemaaccepts both patternsRxDocument.populate()silently returningnullfor invalid schema paths and non-ref fields when the value at that path was falsy. The documentedDOC5/DOC6errors are now thrown consistently, regardless of whether the document has a value at the given path.populate()on array ref fields returning documents in wrong order when two documents reference the same set of IDs in different order, becausefindByIdsquery cache deduplication reused a cached query whose Map iteration order matched the first caller instead of preserving each document's own ref array ordergt,lt,ne,in, etc.) silently dropping the implicit$eqcondition when a selector shorthand value (e.g.{ age: 5 }) was used and then another operator was chained on the same field via the query-builder APItryToKeepMax, because the eviction count was calculated from only the unsubscribed query count instead of the total cache sizeuseRxQueryanduseLiveRxQueryinitializingloadingstate asfalseinstead oftrue, causing components to briefly render with empty results before the query resolved #8292remove()not unsubscribing from internal subscriptions and not completing thechangeStream()observable, unlikeclose()which correctly performs both cleanup stepsmasterWrite()returns an empty conflicts array on pause and the upstream updates the meta instance and checkpoint without verifying the push actually succeeded, causing those documents to never be retried on resumesent$observable emitting documents in the master format (with the user-defineddeletedField) instead of the typedWithDeleted<RxDocType>format (with_deleted: boolean), because thedeletedFieldswap mutated the same row object that was later forwarded to subscriberssent$observable emittingnullfor documents that were filtered out by apush.modifierreturningnull, violating itsObservable<WithDeleted<RxDocType>>type and falsely reporting filtered documents as sent to the endpoint_cleanup()not returningtrueon completion, causing the cleanup plugin loop to never terminate and run indefinitely$observable emitting duplicate and stale values on each write because both_ownEmits$andcollection.eventBulks$triggered emissions for own-instance eventsRxState.get$()(and thefield$proxy accessor) emitting a stale value when subscribed after the state was modified, becausestartWith()eagerly captured the current value at observable creation time instead of at subscription timeRxDocument.collectionlosing theReactivitygeneric because it was passed as the third type argument toRxCollection(which isStaticMethods) instead of the fifth, causingdoc.collection.find().$$and similar calls to be typed as the default reactivity instead of the user's custom reactivity typeRxDocument.$observable emitting stale document state when subscribed after the document was modified, becausestartWith()eagerly captured the latest data at observable creation time instead of at subscription timeRxState.set()permanently breaking the write queue when a user-supplied modifier throws, causing all subsequentset()calls to reject with an unrelatedSNHerror instead of performing the writequery()returning all matching documents when the caller passeslimit: 0in the mango query, because the truthy checkquery.limit ? query.limit : Infinitytreated0as "no limit was set" (affects memory, dexie, localstorage, foundationdb, denokv, sqlite-trial, mongodb storages and the query-builder plugin).getStartIndexStringFromLowerBound()andgetStartIndexStringFromUpperBound()using space character (\x20) as the minimum boundary for string index fields, causing documents with string values containing control characters (codepoints below 32, e.g.\t,\n) to fall below the index scan range and be silently excluded from query results and countschangestool returning documents with internal meta fields (_meta,_rev,_attachments,_deleted) instead of stripping them like the query, insert, upsert, and delete tools do viatoJSON()Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.