@react-native-firebase/firestore 23.8.6 → 24.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/RNFBFirestore.podspec +2 -1
- package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestoreCollectionModule.java +17 -4
- package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestoreDocumentModule.java +2 -2
- package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestorePipelineExecutor.java +1243 -0
- package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestorePipelineNodeBuilder.java +3919 -0
- package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestorePipelineParser.java +1735 -0
- package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestoreSerialize.java +1 -1
- package/dist/module/FieldPath.js +59 -0
- package/dist/module/FieldPath.js.map +1 -0
- package/dist/module/FieldValue.js +82 -0
- package/dist/module/FieldValue.js.map +1 -0
- package/{lib → dist/module}/FirestoreAggregate.js +31 -43
- package/dist/module/FirestoreAggregate.js.map +1 -0
- package/dist/module/FirestoreBlob.js +56 -0
- package/dist/module/FirestoreBlob.js.map +1 -0
- package/dist/module/FirestoreCollectionReference.js +70 -0
- package/dist/module/FirestoreCollectionReference.js.map +1 -0
- package/{lib → dist/module}/FirestoreDocumentChange.js +12 -15
- package/dist/module/FirestoreDocumentChange.js.map +1 -0
- package/dist/module/FirestoreDocumentReference.js +170 -0
- package/dist/module/FirestoreDocumentReference.js.map +1 -0
- package/dist/module/FirestoreDocumentSnapshot.js +88 -0
- package/dist/module/FirestoreDocumentSnapshot.js.map +1 -0
- package/dist/module/FirestoreFilter.js +146 -0
- package/dist/module/FirestoreFilter.js.map +1 -0
- package/dist/module/FirestoreGeoPoint.js +80 -0
- package/dist/module/FirestoreGeoPoint.js.map +1 -0
- package/{lib → dist/module}/FirestorePath.js +5 -12
- package/dist/module/FirestorePath.js.map +1 -0
- package/{lib → dist/module}/FirestorePersistentCacheIndexManager.js +11 -4
- package/dist/module/FirestorePersistentCacheIndexManager.js.map +1 -0
- package/dist/module/FirestoreQuery.js +298 -0
- package/dist/module/FirestoreQuery.js.map +1 -0
- package/{lib → dist/module}/FirestoreQueryModifiers.js +25 -136
- package/dist/module/FirestoreQueryModifiers.js.map +1 -0
- package/dist/module/FirestoreQuerySnapshot.js +98 -0
- package/dist/module/FirestoreQuerySnapshot.js.map +1 -0
- package/dist/module/FirestoreSnapshotMetadata.js +38 -0
- package/dist/module/FirestoreSnapshotMetadata.js.map +1 -0
- package/dist/module/FirestoreStatics.js +50 -0
- package/dist/module/FirestoreStatics.js.map +1 -0
- package/{lib → dist/module}/FirestoreTimestamp.js +39 -39
- package/dist/module/FirestoreTimestamp.js.map +1 -0
- package/dist/module/FirestoreTransaction.js +113 -0
- package/dist/module/FirestoreTransaction.js.map +1 -0
- package/dist/module/FirestoreTransactionHandler.js +137 -0
- package/dist/module/FirestoreTransactionHandler.js.map +1 -0
- package/dist/module/FirestoreVectorValue.js +75 -0
- package/dist/module/FirestoreVectorValue.js.map +1 -0
- package/dist/module/FirestoreWriteBatch.js +113 -0
- package/dist/module/FirestoreWriteBatch.js.map +1 -0
- package/dist/module/LoadBundleTask.js +70 -0
- package/dist/module/LoadBundleTask.js.map +1 -0
- package/dist/module/index.js +31 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/modular/Bytes.js +67 -0
- package/dist/module/modular/Bytes.js.map +1 -0
- package/dist/module/modular/FieldPath.js +25 -0
- package/dist/module/modular/FieldPath.js.map +1 -0
- package/dist/module/modular/FieldValue.js +37 -0
- package/dist/module/modular/FieldValue.js.map +1 -0
- package/dist/module/modular/GeoPoint.js +22 -0
- package/dist/module/modular/GeoPoint.js.map +1 -0
- package/dist/module/modular/Timestamp.js +22 -0
- package/dist/module/modular/Timestamp.js.map +1 -0
- package/dist/module/modular/VectorValue.js +25 -0
- package/dist/module/modular/VectorValue.js.map +1 -0
- package/dist/module/modular/query.js +222 -0
- package/dist/module/modular/query.js.map +1 -0
- package/dist/module/modular/snapshot.js +32 -0
- package/dist/module/modular/snapshot.js.map +1 -0
- package/dist/module/modular.js +229 -0
- package/dist/module/modular.js.map +1 -0
- package/dist/module/namespaced.js +298 -0
- package/dist/module/namespaced.js.map +1 -0
- package/dist/module/package.json +1 -0
- package/dist/module/pipelines/expressions.js +1273 -0
- package/dist/module/pipelines/expressions.js.map +1 -0
- package/dist/module/pipelines/index.js +32 -0
- package/dist/module/pipelines/index.js.map +1 -0
- package/dist/module/pipelines/pipeline-result.js +58 -0
- package/dist/module/pipelines/pipeline-result.js.map +1 -0
- package/dist/module/pipelines/pipeline-source.js +4 -0
- package/dist/module/pipelines/pipeline-source.js.map +1 -0
- package/dist/module/pipelines/pipeline.js +4 -0
- package/dist/module/pipelines/pipeline.js.map +1 -0
- package/dist/module/pipelines/pipeline_impl.js +42 -0
- package/dist/module/pipelines/pipeline_impl.js.map +1 -0
- package/dist/module/pipelines/pipeline_options.js +4 -0
- package/dist/module/pipelines/pipeline_options.js.map +1 -0
- package/dist/module/pipelines/pipeline_runtime.js +526 -0
- package/dist/module/pipelines/pipeline_runtime.js.map +1 -0
- package/dist/module/pipelines/pipeline_support.js +71 -0
- package/dist/module/pipelines/pipeline_support.js.map +1 -0
- package/dist/module/pipelines/pipeline_validate.js +183 -0
- package/dist/module/pipelines/pipeline_validate.js.map +1 -0
- package/dist/module/pipelines/stage_options.js +4 -0
- package/dist/module/pipelines/stage_options.js.map +1 -0
- package/dist/module/pipelines/types.js +2 -0
- package/dist/module/pipelines/types.js.map +1 -0
- package/dist/module/types/firestore.js +4 -0
- package/dist/module/types/firestore.js.map +1 -0
- package/dist/module/types/internal.js +4 -0
- package/dist/module/types/internal.js.map +1 -0
- package/dist/module/types/namespaced.js +338 -0
- package/dist/module/types/namespaced.js.map +1 -0
- package/{lib → dist/module}/utils/index.js +59 -114
- package/dist/module/utils/index.js.map +1 -0
- package/{lib → dist/module}/utils/serialize.js +58 -116
- package/dist/module/utils/serialize.js.map +1 -0
- package/{lib → dist/module}/utils/typemap.js +6 -20
- package/dist/module/utils/typemap.js.map +1 -0
- package/dist/module/version.js +5 -0
- package/dist/module/version.js.map +1 -0
- package/dist/module/web/RNFBFirestoreModule.android.js +5 -0
- package/dist/module/web/RNFBFirestoreModule.android.js.map +1 -0
- package/dist/module/web/RNFBFirestoreModule.ios.js +5 -0
- package/dist/module/web/RNFBFirestoreModule.ios.js.map +1 -0
- package/dist/module/web/RNFBFirestoreModule.js +387 -0
- package/dist/module/web/RNFBFirestoreModule.js.map +1 -0
- package/{lib → dist/module}/web/convert.js +60 -94
- package/dist/module/web/convert.js.map +1 -0
- package/dist/module/web/pipelines/pipeline.js +34 -0
- package/dist/module/web/pipelines/pipeline.js.map +1 -0
- package/dist/module/web/pipelines/pipeline_bridge_factory.js +217 -0
- package/dist/module/web/pipelines/pipeline_bridge_factory.js.map +1 -0
- package/dist/module/web/pipelines/pipeline_node_builder.js +294 -0
- package/dist/module/web/pipelines/pipeline_node_builder.js.map +1 -0
- package/dist/module/web/pipelines/pipeline_parser.js +21 -0
- package/dist/module/web/pipelines/pipeline_parser.js.map +1 -0
- package/dist/module/web/pipelines/pipeline_snapshot_serializer.js +89 -0
- package/dist/module/web/pipelines/pipeline_snapshot_serializer.js.map +1 -0
- package/dist/module/web/query.js +95 -0
- package/dist/module/web/query.js.map +1 -0
- package/dist/typescript/lib/FieldPath.d.ts +10 -0
- package/dist/typescript/lib/FieldPath.d.ts.map +1 -0
- package/dist/typescript/lib/FieldValue.d.ts +17 -0
- package/dist/typescript/lib/FieldValue.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreAggregate.d.ts +40 -0
- package/dist/typescript/lib/FirestoreAggregate.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreBlob.d.ts +11 -0
- package/dist/typescript/lib/FirestoreBlob.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreCollectionReference.d.ts +15 -0
- package/dist/typescript/lib/FirestoreCollectionReference.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreDocumentChange.d.ts +27 -0
- package/dist/typescript/lib/FirestoreDocumentChange.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreDocumentReference.d.ts +30 -0
- package/dist/typescript/lib/FirestoreDocumentReference.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreDocumentSnapshot.d.ts +30 -0
- package/dist/typescript/lib/FirestoreDocumentSnapshot.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreFilter.d.ts +52 -0
- package/dist/typescript/lib/FirestoreFilter.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreGeoPoint.d.ts +22 -0
- package/dist/typescript/lib/FirestoreGeoPoint.d.ts.map +1 -0
- package/dist/typescript/lib/FirestorePath.d.ts +12 -0
- package/dist/typescript/lib/FirestorePath.d.ts.map +1 -0
- package/dist/typescript/lib/FirestorePersistentCacheIndexManager.d.ts +16 -0
- package/dist/typescript/lib/FirestorePersistentCacheIndexManager.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreQuery.d.ts +39 -0
- package/dist/typescript/lib/FirestoreQuery.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreQueryModifiers.d.ts +59 -0
- package/dist/typescript/lib/FirestoreQueryModifiers.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreQuerySnapshot.d.ts +49 -0
- package/dist/typescript/lib/FirestoreQuerySnapshot.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreSnapshotMetadata.d.ts +8 -0
- package/dist/typescript/lib/FirestoreSnapshotMetadata.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreStatics.d.ts +23 -0
- package/dist/typescript/lib/FirestoreStatics.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreTimestamp.d.ts +33 -0
- package/dist/typescript/lib/FirestoreTimestamp.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreTransaction.d.ts +42 -0
- package/dist/typescript/lib/FirestoreTransaction.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreTransactionHandler.d.ts +26 -0
- package/dist/typescript/lib/FirestoreTransactionHandler.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreVectorValue.d.ts +17 -0
- package/dist/typescript/lib/FirestoreVectorValue.d.ts.map +1 -0
- package/dist/typescript/lib/FirestoreWriteBatch.d.ts +21 -0
- package/dist/typescript/lib/FirestoreWriteBatch.d.ts.map +1 -0
- package/dist/typescript/lib/LoadBundleTask.d.ts +16 -0
- package/dist/typescript/lib/LoadBundleTask.d.ts.map +1 -0
- package/dist/typescript/lib/index.d.ts +6 -0
- package/dist/typescript/lib/index.d.ts.map +1 -0
- package/dist/typescript/lib/modular/Bytes.d.ts +22 -0
- package/dist/typescript/lib/modular/Bytes.d.ts.map +1 -0
- package/dist/typescript/lib/modular/FieldPath.d.ts +4 -0
- package/dist/typescript/lib/modular/FieldPath.d.ts.map +1 -0
- package/dist/typescript/lib/modular/FieldValue.d.ts +8 -0
- package/dist/typescript/lib/modular/FieldValue.d.ts.map +1 -0
- package/dist/typescript/lib/modular/GeoPoint.d.ts +3 -0
- package/dist/typescript/lib/modular/GeoPoint.d.ts.map +1 -0
- package/dist/typescript/lib/modular/Timestamp.d.ts +3 -0
- package/dist/typescript/lib/modular/Timestamp.d.ts.map +1 -0
- package/dist/typescript/lib/modular/VectorValue.d.ts +4 -0
- package/dist/typescript/lib/modular/VectorValue.d.ts.map +1 -0
- package/dist/typescript/lib/modular/query.d.ts +93 -0
- package/dist/typescript/lib/modular/query.d.ts.map +1 -0
- package/dist/typescript/lib/modular/snapshot.d.ts +30 -0
- package/dist/typescript/lib/modular/snapshot.d.ts.map +1 -0
- package/dist/typescript/lib/modular.d.ts +69 -0
- package/dist/typescript/lib/modular.d.ts.map +1 -0
- package/dist/typescript/lib/namespaced.d.ts +13 -0
- package/dist/typescript/lib/namespaced.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/expressions.d.ts +723 -0
- package/dist/typescript/lib/pipelines/expressions.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/index.d.ts +31 -0
- package/dist/typescript/lib/pipelines/index.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline-result.d.ts +30 -0
- package/dist/typescript/lib/pipelines/pipeline-result.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline-source.d.ts +64 -0
- package/dist/typescript/lib/pipelines/pipeline-source.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline.d.ts +61 -0
- package/dist/typescript/lib/pipelines/pipeline.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline_impl.d.ts +21 -0
- package/dist/typescript/lib/pipelines/pipeline_impl.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline_options.d.ts +17 -0
- package/dist/typescript/lib/pipelines/pipeline_options.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline_runtime.d.ts +10 -0
- package/dist/typescript/lib/pipelines/pipeline_runtime.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline_support.d.ts +7 -0
- package/dist/typescript/lib/pipelines/pipeline_support.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/pipeline_validate.d.ts +9 -0
- package/dist/typescript/lib/pipelines/pipeline_validate.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/stage_options.d.ts +326 -0
- package/dist/typescript/lib/pipelines/stage_options.d.ts.map +1 -0
- package/dist/typescript/lib/pipelines/types.d.ts +10 -0
- package/dist/typescript/lib/pipelines/types.d.ts.map +1 -0
- package/dist/typescript/lib/types/firestore.d.ts +263 -0
- package/dist/typescript/lib/types/firestore.d.ts.map +1 -0
- package/dist/typescript/lib/types/internal.d.ts +483 -0
- package/dist/typescript/lib/types/internal.d.ts.map +1 -0
- package/dist/typescript/lib/types/namespaced.d.ts +2285 -0
- package/dist/typescript/lib/types/namespaced.d.ts.map +1 -0
- package/dist/typescript/lib/utils/index.d.ts +15 -0
- package/dist/typescript/lib/utils/index.d.ts.map +1 -0
- package/dist/typescript/lib/utils/serialize.d.ts +17 -0
- package/dist/typescript/lib/utils/serialize.d.ts.map +1 -0
- package/dist/typescript/lib/utils/typemap.d.ts +3 -0
- package/dist/typescript/lib/utils/typemap.d.ts.map +1 -0
- package/dist/typescript/lib/version.d.ts +2 -0
- package/dist/typescript/lib/version.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBFirestoreModule.android.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBFirestoreModule.android.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBFirestoreModule.d.ts +75 -0
- package/dist/typescript/lib/web/RNFBFirestoreModule.d.ts.map +1 -0
- package/dist/typescript/lib/web/RNFBFirestoreModule.ios.d.ts +3 -0
- package/dist/typescript/lib/web/RNFBFirestoreModule.ios.d.ts.map +1 -0
- package/dist/typescript/lib/web/convert.d.ts +14 -0
- package/dist/typescript/lib/web/convert.d.ts.map +1 -0
- package/dist/typescript/lib/web/pipelines/pipeline.d.ts +4 -0
- package/dist/typescript/lib/web/pipelines/pipeline.d.ts.map +1 -0
- package/dist/typescript/lib/web/pipelines/pipeline_bridge_factory.d.ts +5 -0
- package/dist/typescript/lib/web/pipelines/pipeline_bridge_factory.d.ts.map +1 -0
- package/dist/typescript/lib/web/pipelines/pipeline_node_builder.d.ts +5 -0
- package/dist/typescript/lib/web/pipelines/pipeline_node_builder.d.ts.map +1 -0
- package/dist/typescript/lib/web/pipelines/pipeline_parser.d.ts +3 -0
- package/dist/typescript/lib/web/pipelines/pipeline_parser.d.ts.map +1 -0
- package/dist/typescript/lib/web/pipelines/pipeline_snapshot_serializer.d.ts +4 -0
- package/dist/typescript/lib/web/pipelines/pipeline_snapshot_serializer.d.ts.map +1 -0
- package/dist/typescript/lib/web/query.d.ts +23 -0
- package/dist/typescript/lib/web/query.d.ts.map +1 -0
- package/dist/typescript/package.json +1 -0
- package/ios/RNFBFirestore/RNFBFirestoreCollectionModule.m +52 -2
- package/ios/RNFBFirestore/RNFBFirestorePipelineBridgeFactory.swift +384 -0
- package/ios/RNFBFirestore/RNFBFirestorePipelineCallHandler.swift +86 -0
- package/ios/RNFBFirestore/RNFBFirestorePipelineNodeBuilder.swift +1500 -0
- package/ios/RNFBFirestore/RNFBFirestorePipelineParser.swift +1352 -0
- package/ios/RNFBFirestore/RNFBFirestorePipelineSnapshotSerializer.swift +98 -0
- package/lib/{FirestoreFieldPath.js → FieldPath.ts} +10 -12
- package/lib/{FirestoreFieldValue.js → FieldValue.ts} +22 -19
- package/lib/FirestoreAggregate.ts +124 -0
- package/lib/FirestoreBlob.ts +73 -0
- package/lib/FirestoreCollectionReference.ts +99 -0
- package/lib/FirestoreDocumentChange.ts +71 -0
- package/lib/FirestoreDocumentReference.ts +310 -0
- package/lib/FirestoreDocumentSnapshot.ts +149 -0
- package/lib/FirestoreFilter.ts +232 -0
- package/lib/{FirestoreGeoPoint.js → FirestoreGeoPoint.ts} +48 -8
- package/lib/FirestorePath.ts +54 -0
- package/lib/FirestorePersistentCacheIndexManager.ts +46 -0
- package/lib/{FirestoreQuery.js → FirestoreQuery.ts} +208 -100
- package/lib/FirestoreQueryModifiers.ts +411 -0
- package/lib/{FirestoreQuerySnapshot.js → FirestoreQuerySnapshot.ts} +61 -32
- package/lib/{FirestoreSnapshotMetadata.js → FirestoreSnapshotMetadata.ts} +8 -6
- package/lib/{FirestoreStatics.js → FirestoreStatics.ts} +18 -11
- package/lib/FirestoreTimestamp.ts +161 -0
- package/lib/{FirestoreTransaction.js → FirestoreTransaction.ts} +64 -27
- package/lib/{FirestoreTransactionHandler.js → FirestoreTransactionHandler.ts} +54 -75
- package/lib/{FirestoreVectorValue.js → FirestoreVectorValue.ts} +36 -15
- package/lib/{FirestoreWriteBatch.js → FirestoreWriteBatch.ts} +45 -21
- package/lib/LoadBundleTask.ts +85 -0
- package/lib/index.ts +71 -0
- package/lib/modular/Bytes.ts +81 -0
- package/lib/modular/FieldPath.ts +24 -0
- package/lib/modular/FieldValue.ts +40 -0
- package/lib/modular/GeoPoint.ts +20 -0
- package/lib/modular/Timestamp.ts +20 -0
- package/lib/modular/VectorValue.ts +24 -0
- package/lib/modular/query.ts +368 -0
- package/lib/modular/snapshot.ts +137 -0
- package/lib/modular.ts +552 -0
- package/lib/{index.js → namespaced.ts} +170 -80
- package/lib/pipelines/expressions.ts +2321 -0
- package/lib/pipelines/index.ts +203 -0
- package/lib/pipelines/pipeline-result.ts +78 -0
- package/lib/pipelines/pipeline-source.ts +83 -0
- package/lib/pipelines/pipeline.ts +99 -0
- package/lib/pipelines/pipeline_impl.ts +46 -0
- package/lib/pipelines/pipeline_options.ts +32 -0
- package/lib/pipelines/pipeline_runtime.ts +863 -0
- package/lib/pipelines/pipeline_support.ts +134 -0
- package/lib/pipelines/pipeline_validate.ts +242 -0
- package/lib/pipelines/stage_options.ts +376 -0
- package/lib/pipelines/types.ts +26 -0
- package/lib/types/firestore.ts +477 -0
- package/lib/types/internal.ts +747 -0
- package/lib/{index.d.ts → types/namespaced.ts} +280 -79
- package/lib/utils/index.ts +244 -0
- package/lib/utils/serialize.ts +314 -0
- package/lib/utils/typemap.ts +65 -0
- package/lib/version.ts +2 -0
- package/lib/web/{RNFBFirestoreModule.js → RNFBFirestoreModule.ts} +222 -234
- package/lib/web/convert.ts +287 -0
- package/lib/web/pipelines/pipeline.ts +47 -0
- package/lib/web/pipelines/pipeline_bridge_factory.ts +377 -0
- package/lib/web/pipelines/pipeline_node_builder.ts +413 -0
- package/lib/web/pipelines/pipeline_parser.ts +23 -0
- package/lib/web/pipelines/pipeline_snapshot_serializer.ts +133 -0
- package/lib/web/query.ts +150 -0
- package/package.json +46 -7
- package/tsconfig.json +35 -0
- package/lib/FirestoreBlob.js +0 -107
- package/lib/FirestoreCollectionReference.js +0 -70
- package/lib/FirestoreDocumentReference.js +0 -222
- package/lib/FirestoreDocumentSnapshot.js +0 -132
- package/lib/FirestoreFilter.js +0 -156
- package/lib/modular/Bytes.d.ts +0 -11
- package/lib/modular/Bytes.js +0 -62
- package/lib/modular/FieldPath.d.ts +0 -20
- package/lib/modular/FieldPath.js +0 -7
- package/lib/modular/FieldValue.d.ts +0 -67
- package/lib/modular/FieldValue.js +0 -41
- package/lib/modular/GeoPoint.d.ts +0 -17
- package/lib/modular/GeoPoint.js +0 -3
- package/lib/modular/Timestamp.d.ts +0 -85
- package/lib/modular/Timestamp.js +0 -3
- package/lib/modular/VectorValue.d.ts +0 -30
- package/lib/modular/VectorValue.js +0 -11
- package/lib/modular/index.d.ts +0 -788
- package/lib/modular/index.js +0 -410
- package/lib/modular/query.d.ts +0 -370
- package/lib/modular/query.js +0 -233
- package/lib/modular/snapshot.d.ts +0 -256
- package/lib/modular/snapshot.js +0 -33
- package/lib/modular/utils/observer.js +0 -16
- package/lib/version.js +0 -2
- package/lib/web/query.js +0 -112
- /package/lib/web/{RNFBFirestoreModule.android.js → RNFBFirestoreModule.android.ts} +0 -0
- /package/lib/web/{RNFBFirestoreModule.ios.js → RNFBFirestoreModule.ios.ts} +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
/*
|
|
2
4
|
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
5
|
*
|
|
@@ -15,49 +17,36 @@
|
|
|
15
17
|
*
|
|
16
18
|
*/
|
|
17
19
|
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
isArray,
|
|
21
|
-
isBoolean,
|
|
22
|
-
isFunction,
|
|
23
|
-
isObject,
|
|
24
|
-
isString,
|
|
25
|
-
isUndefined,
|
|
26
|
-
} from '@react-native-firebase/app/dist/module/common';
|
|
27
|
-
import FirestoreFieldPath, { fromDotSeparatedString } from '../FirestoreFieldPath';
|
|
28
|
-
|
|
20
|
+
import { hasOwnProperty, isArray, isBoolean, isFunction, isObject, isString, isUndefined } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
+
import FieldPath, { fromDotSeparatedString } from "../FieldPath.js";
|
|
29
22
|
export function extractFieldPathData(data, segments) {
|
|
30
23
|
if (!isObject(data)) {
|
|
31
24
|
return undefined;
|
|
32
25
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
const key = segments[0];
|
|
27
|
+
if (key === undefined) return undefined;
|
|
28
|
+
const pathValue = data[key];
|
|
36
29
|
if (segments.length === 1) {
|
|
37
30
|
return pathValue;
|
|
38
31
|
}
|
|
39
|
-
|
|
40
32
|
return extractFieldPathData(pathValue, segments.slice(1));
|
|
41
33
|
}
|
|
42
|
-
|
|
43
34
|
export function parseUpdateArgs(args) {
|
|
44
35
|
let data = {};
|
|
45
36
|
if (args.length === 1) {
|
|
46
37
|
if (!isObject(args[0])) {
|
|
47
38
|
throw new Error('if using a single update argument, it must be an object.');
|
|
48
39
|
}
|
|
49
|
-
|
|
40
|
+
data = args[0];
|
|
50
41
|
} else if (args.length % 2 === 1) {
|
|
51
|
-
throw new Error(
|
|
52
|
-
'the update arguments must be either a single object argument, or equal numbers of key/value pairs.',
|
|
53
|
-
);
|
|
42
|
+
throw new Error('the update arguments must be either a single object argument, or equal numbers of key/value pairs.');
|
|
54
43
|
} else {
|
|
55
44
|
for (let i = 0; i < args.length; i += 2) {
|
|
56
45
|
const key = args[i];
|
|
57
46
|
const value = args[i + 1];
|
|
58
47
|
if (isString(key)) {
|
|
59
48
|
data[key] = value;
|
|
60
|
-
} else if (key instanceof
|
|
49
|
+
} else if (key instanceof FieldPath) {
|
|
61
50
|
data[key._toPath()] = value;
|
|
62
51
|
} else {
|
|
63
52
|
throw new Error(`argument at index ${i} must be a string or FieldPath`);
|
|
@@ -66,180 +55,136 @@ export function parseUpdateArgs(args) {
|
|
|
66
55
|
}
|
|
67
56
|
return data;
|
|
68
57
|
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
*
|
|
72
|
-
* @param options
|
|
73
|
-
*/
|
|
74
58
|
export function parseSetOptions(options) {
|
|
75
59
|
const out = {};
|
|
76
|
-
|
|
77
60
|
if (isUndefined(options)) {
|
|
78
61
|
return out;
|
|
79
62
|
}
|
|
80
|
-
|
|
81
63
|
if (!isObject(options)) {
|
|
82
64
|
throw new Error("'options' must be an object.");
|
|
83
65
|
}
|
|
84
|
-
|
|
85
|
-
if (hasOwnProperty(
|
|
66
|
+
const opts = options;
|
|
67
|
+
if (hasOwnProperty(opts, 'merge') && hasOwnProperty(opts, 'mergeFields')) {
|
|
86
68
|
throw new Error("'options' must not contain both 'merge' & 'mergeFields'.");
|
|
87
69
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (!isBoolean(options.merge)) {
|
|
70
|
+
if (!isUndefined(opts.merge)) {
|
|
71
|
+
if (!isBoolean(opts.merge)) {
|
|
91
72
|
throw new Error("'options.merge' must be a boolean value.");
|
|
92
73
|
}
|
|
93
|
-
|
|
94
|
-
out.merge = options.merge;
|
|
74
|
+
out.merge = opts.merge;
|
|
95
75
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (!isArray(options.mergeFields)) {
|
|
76
|
+
if (!isUndefined(opts.mergeFields)) {
|
|
77
|
+
if (!isArray(opts.mergeFields)) {
|
|
99
78
|
throw new Error("'options.mergeFields' must be an array.");
|
|
100
79
|
}
|
|
101
|
-
|
|
102
80
|
out.mergeFields = [];
|
|
103
|
-
|
|
104
|
-
for (let i = 0; i <
|
|
105
|
-
const field =
|
|
106
|
-
if (!isString(field) && !(field instanceof
|
|
107
|
-
throw new Error(
|
|
108
|
-
`'options.mergeFields' all fields must be of type string or FieldPath, but the value at index ${i} was ${typeof field}`,
|
|
109
|
-
);
|
|
81
|
+
const mergeFields = opts.mergeFields;
|
|
82
|
+
for (let i = 0; i < mergeFields.length; i++) {
|
|
83
|
+
const field = mergeFields[i];
|
|
84
|
+
if (!isString(field) && !(field instanceof FieldPath)) {
|
|
85
|
+
throw new Error(`'options.mergeFields' all fields must be of type string or FieldPath, but the value at index ${i} was ${typeof field}`);
|
|
110
86
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (isString(path)) {
|
|
87
|
+
if (field instanceof FieldPath) {
|
|
88
|
+
out.mergeFields.push(field._toPath());
|
|
89
|
+
} else {
|
|
115
90
|
try {
|
|
116
|
-
|
|
91
|
+
fromDotSeparatedString(field);
|
|
117
92
|
} catch (e) {
|
|
118
93
|
throw new Error(`'options.mergeFields' ${e.message}`);
|
|
119
94
|
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (field instanceof FirestoreFieldPath) {
|
|
123
|
-
out.mergeFields.push(field._toPath());
|
|
124
|
-
} else {
|
|
125
95
|
out.mergeFields.push(field);
|
|
126
96
|
}
|
|
127
97
|
}
|
|
128
98
|
}
|
|
129
|
-
|
|
130
99
|
return out;
|
|
131
100
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
// }
|
|
139
|
-
// return {
|
|
140
|
-
// [segments[0]]: buildFieldPathData(segments.slice(1), value),
|
|
141
|
-
// };
|
|
142
|
-
// }
|
|
143
|
-
|
|
101
|
+
export function applyFirestoreDataConverter(data, converter, options) {
|
|
102
|
+
if (converter && converter.toFirestore) {
|
|
103
|
+
return converter.toFirestore(data, options);
|
|
104
|
+
}
|
|
105
|
+
return data;
|
|
106
|
+
}
|
|
144
107
|
function isPartialObserver(input) {
|
|
145
108
|
if (input == null) {
|
|
146
109
|
return false;
|
|
147
110
|
}
|
|
148
|
-
|
|
111
|
+
const o = input;
|
|
112
|
+
return o.next != null || o.error != null || o.complete != null;
|
|
149
113
|
}
|
|
150
|
-
|
|
151
114
|
export function parseSnapshotArgs(args) {
|
|
152
115
|
if (args.length === 0) {
|
|
153
116
|
throw new Error('expected at least one argument.');
|
|
154
117
|
}
|
|
155
|
-
|
|
156
|
-
// Ignore onComplete as its never used
|
|
157
118
|
const NOOP = () => {};
|
|
158
119
|
const snapshotListenOptions = {};
|
|
159
120
|
let callback = NOOP;
|
|
160
121
|
let onError = NOOP;
|
|
161
122
|
let onNext = NOOP;
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* .onSnapshot(Function...
|
|
165
|
-
*/
|
|
166
123
|
if (isFunction(args[0])) {
|
|
167
|
-
/**
|
|
168
|
-
* .onSnapshot((snapshot) => {}, (error) => {}
|
|
169
|
-
*/
|
|
170
124
|
if (isFunction(args[1])) {
|
|
171
125
|
onNext = args[0];
|
|
172
126
|
onError = args[1];
|
|
173
127
|
} else {
|
|
174
|
-
/**
|
|
175
|
-
* .onSnapshot((snapshot, error) => {})
|
|
176
|
-
*/
|
|
177
128
|
callback = args[0];
|
|
178
129
|
}
|
|
179
130
|
}
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* .onSnapshot({ complete: () => {}, error: (e) => {}, next: (snapshot) => {} })
|
|
183
|
-
*/
|
|
184
131
|
if (isObject(args[0]) && isPartialObserver(args[0])) {
|
|
185
132
|
const observer = args[0];
|
|
186
133
|
if (observer.error) {
|
|
187
|
-
onError =
|
|
134
|
+
onError = typeof observer.error === 'function' ? observer.error.bind(observer) : observer.error;
|
|
188
135
|
}
|
|
189
136
|
if (observer.next) {
|
|
190
|
-
onNext =
|
|
137
|
+
onNext = typeof observer.next === 'function' ? observer.next.bind(observer) : observer.next;
|
|
191
138
|
}
|
|
192
139
|
}
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* .onSnapshot(SnapshotListenOptions, ...
|
|
196
|
-
*/
|
|
197
140
|
if (isObject(args[0]) && !isPartialObserver(args[0])) {
|
|
198
|
-
|
|
199
|
-
|
|
141
|
+
const opts = args[0];
|
|
142
|
+
snapshotListenOptions.includeMetadataChanges = opts.includeMetadataChanges == null ? false : opts.includeMetadataChanges;
|
|
200
143
|
if (isFunction(args[1])) {
|
|
201
|
-
/**
|
|
202
|
-
* .onSnapshot(SnapshotListenOptions, Function);
|
|
203
|
-
*/
|
|
204
144
|
if (isFunction(args[2])) {
|
|
205
|
-
/**
|
|
206
|
-
* .onSnapshot(SnapshotListenOptions, (snapshot) => {}, (error) => {});
|
|
207
|
-
*/
|
|
208
145
|
onNext = args[1];
|
|
209
146
|
onError = args[2];
|
|
210
147
|
} else {
|
|
211
|
-
/**
|
|
212
|
-
* .onSnapshot(SnapshotListenOptions, (s, e) => {};
|
|
213
|
-
*/
|
|
214
148
|
callback = args[1];
|
|
215
149
|
}
|
|
216
150
|
} else if (isPartialObserver(args[1])) {
|
|
217
|
-
/**
|
|
218
|
-
* .onSnapshot(SnapshotListenOptions, { complete: () => {}, error: (e) => {}, next: (snapshot) => {} });
|
|
219
|
-
*/
|
|
220
151
|
const observer = args[1];
|
|
221
152
|
if (observer.error) {
|
|
222
|
-
onError =
|
|
153
|
+
onError = typeof observer.error === 'function' ? observer.error.bind(observer) : observer.error;
|
|
223
154
|
}
|
|
224
155
|
if (observer.next) {
|
|
225
|
-
onNext =
|
|
156
|
+
onNext = typeof observer.next === 'function' ? observer.next.bind(observer) : observer.next;
|
|
226
157
|
}
|
|
227
158
|
}
|
|
228
159
|
}
|
|
229
|
-
|
|
230
160
|
if (hasOwnProperty(snapshotListenOptions, 'includeMetadataChanges')) {
|
|
231
161
|
if (!isBoolean(snapshotListenOptions.includeMetadataChanges)) {
|
|
232
162
|
throw new Error("'options' SnapshotOptions.includeMetadataChanges must be a boolean value.");
|
|
233
163
|
}
|
|
234
164
|
}
|
|
235
|
-
|
|
236
165
|
if (!isFunction(onNext)) {
|
|
237
166
|
throw new Error("'observer.next' or 'onNext' expected a function.");
|
|
238
167
|
}
|
|
239
|
-
|
|
240
168
|
if (!isFunction(onError)) {
|
|
241
169
|
throw new Error("'observer.error' or 'onError' expected a function.");
|
|
242
170
|
}
|
|
243
|
-
|
|
244
|
-
|
|
171
|
+
return {
|
|
172
|
+
snapshotListenOptions,
|
|
173
|
+
callback,
|
|
174
|
+
onNext,
|
|
175
|
+
onError
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
export function validateWithConverter(converter) {
|
|
179
|
+
if (isUndefined(converter) || !isObject(converter)) {
|
|
180
|
+
throw new Error('expected an object value.');
|
|
181
|
+
}
|
|
182
|
+
const c = converter;
|
|
183
|
+
if (!isFunction(c.toFirestore)) {
|
|
184
|
+
throw new Error("'toFirestore' expected a function.");
|
|
185
|
+
}
|
|
186
|
+
if (!isFunction(c.fromFirestore)) {
|
|
187
|
+
throw new Error("'fromFirestore' expected a function.");
|
|
188
|
+
}
|
|
245
189
|
}
|
|
190
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["hasOwnProperty","isArray","isBoolean","isFunction","isObject","isString","isUndefined","FieldPath","fromDotSeparatedString","extractFieldPathData","data","segments","undefined","key","pathValue","length","slice","parseUpdateArgs","args","Error","i","value","_toPath","parseSetOptions","options","out","opts","merge","mergeFields","field","push","e","message","applyFirestoreDataConverter","converter","toFirestore","isPartialObserver","input","o","next","error","complete","parseSnapshotArgs","NOOP","snapshotListenOptions","callback","onError","onNext","observer","bind","includeMetadataChanges","validateWithConverter","c","fromFirestore"],"sourceRoot":"../../../lib","sources":["utils/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
/*
|
|
2
4
|
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
5
|
*
|
|
@@ -15,56 +17,35 @@
|
|
|
15
17
|
*
|
|
16
18
|
*/
|
|
17
19
|
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} from '@react-native-firebase/app/dist/module/common';
|
|
28
|
-
import FirestoreBlob from '../FirestoreBlob';
|
|
29
|
-
import { DOCUMENT_ID } from '../FirestoreFieldPath';
|
|
30
|
-
import FirestoreGeoPoint from '../FirestoreGeoPoint';
|
|
31
|
-
import FirestorePath from '../FirestorePath';
|
|
32
|
-
import FirestoreTimestamp from '../FirestoreTimestamp';
|
|
33
|
-
import { getTypeMapInt, getTypeMapName } from './typemap';
|
|
34
|
-
import { Bytes } from '../modular/Bytes';
|
|
35
|
-
import FirestoreVectorValue from '../FirestoreVectorValue';
|
|
36
|
-
|
|
37
|
-
// To avoid React Native require cycle warnings
|
|
20
|
+
import { isArray, isBoolean, isDate, isNull, isNumber, isObject, isString, isUndefined } from '@react-native-firebase/app/dist/module/common';
|
|
21
|
+
import Blob from "../FirestoreBlob.js";
|
|
22
|
+
import { DOCUMENT_ID } from "../FieldPath.js";
|
|
23
|
+
import FirestoreGeoPoint from "../FirestoreGeoPoint.js";
|
|
24
|
+
import FirestorePath from "../FirestorePath.js";
|
|
25
|
+
import FirestoreTimestamp from "../FirestoreTimestamp.js";
|
|
26
|
+
import { getTypeMapInt, getTypeMapName } from "./typemap.js";
|
|
27
|
+
import { Bytes } from "../modular/Bytes.js";
|
|
28
|
+
import FirestoreVectorValue from "../FirestoreVectorValue.js";
|
|
38
29
|
let FirestoreDocumentReference = null;
|
|
39
30
|
export function provideDocumentReferenceClass(documentReference) {
|
|
40
31
|
FirestoreDocumentReference = documentReference;
|
|
41
32
|
}
|
|
42
|
-
|
|
43
33
|
let FirestoreFieldValue = null;
|
|
44
34
|
export function provideFieldValueClass(fieldValue) {
|
|
45
35
|
FirestoreFieldValue = fieldValue;
|
|
46
36
|
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
* @param data
|
|
51
|
-
* @param ignoreUndefined
|
|
52
|
-
*/
|
|
53
37
|
export function buildNativeMap(data, ignoreUndefined) {
|
|
54
38
|
const nativeData = {};
|
|
55
39
|
if (data) {
|
|
56
40
|
const keys = Object.keys(data);
|
|
57
41
|
for (let i = 0; i < keys.length; i++) {
|
|
58
42
|
const key = keys[i];
|
|
59
|
-
|
|
60
43
|
if (typeof data[key] === 'undefined') {
|
|
61
44
|
if (!ignoreUndefined) {
|
|
62
45
|
throw new Error('Unsupported field value: undefined');
|
|
63
|
-
} else {
|
|
64
|
-
continue;
|
|
65
46
|
}
|
|
47
|
+
continue;
|
|
66
48
|
}
|
|
67
|
-
|
|
68
49
|
const typeMap = generateNativeData(data[key], ignoreUndefined);
|
|
69
50
|
if (typeMap) {
|
|
70
51
|
nativeData[key] = typeMap;
|
|
@@ -73,12 +54,6 @@ export function buildNativeMap(data, ignoreUndefined) {
|
|
|
73
54
|
}
|
|
74
55
|
return nativeData;
|
|
75
56
|
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
79
|
-
* @param array
|
|
80
|
-
* @returns {Array}
|
|
81
|
-
*/
|
|
82
57
|
export function buildNativeArray(array, ignoreUndefined) {
|
|
83
58
|
const nativeArray = [];
|
|
84
59
|
if (array) {
|
|
@@ -87,9 +62,8 @@ export function buildNativeArray(array, ignoreUndefined) {
|
|
|
87
62
|
if (typeof value === 'undefined') {
|
|
88
63
|
if (!ignoreUndefined) {
|
|
89
64
|
throw new Error('Unsupported field value: undefined');
|
|
90
|
-
} else {
|
|
91
|
-
continue;
|
|
92
65
|
}
|
|
66
|
+
continue;
|
|
93
67
|
}
|
|
94
68
|
const typeMap = generateNativeData(value, ignoreUndefined);
|
|
95
69
|
if (typeMap) {
|
|
@@ -99,49 +73,26 @@ export function buildNativeArray(array, ignoreUndefined) {
|
|
|
99
73
|
}
|
|
100
74
|
return nativeArray;
|
|
101
75
|
}
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Creates a lightweight array of an object value to be sent over the bridge.
|
|
105
|
-
* The type is convered to an integer which is handled on the native side
|
|
106
|
-
* to create the correct types.
|
|
107
|
-
*
|
|
108
|
-
* Example: [7, 'some string'];
|
|
109
|
-
*
|
|
110
|
-
* @param value
|
|
111
|
-
* @param ignoreUndefined
|
|
112
|
-
* @returns {*}
|
|
113
|
-
*/
|
|
114
76
|
export function generateNativeData(value, ignoreUndefined) {
|
|
115
77
|
if (Number.isNaN(value)) {
|
|
116
78
|
return getTypeMapInt('nan');
|
|
117
79
|
}
|
|
118
|
-
|
|
119
80
|
if (value === Number.NEGATIVE_INFINITY) {
|
|
120
81
|
return getTypeMapInt('-infinity');
|
|
121
82
|
}
|
|
122
|
-
|
|
123
83
|
if (value === Number.POSITIVE_INFINITY) {
|
|
124
84
|
return getTypeMapInt('infinity');
|
|
125
85
|
}
|
|
126
|
-
|
|
127
86
|
if (isNull(value) || isUndefined(value)) {
|
|
128
87
|
return getTypeMapInt('null');
|
|
129
88
|
}
|
|
130
|
-
|
|
131
89
|
if (value === DOCUMENT_ID) {
|
|
132
90
|
return getTypeMapInt('documentid');
|
|
133
91
|
}
|
|
134
|
-
|
|
135
92
|
if (isBoolean(value)) {
|
|
136
|
-
|
|
137
|
-
return getTypeMapInt('booleanTrue');
|
|
138
|
-
}
|
|
139
|
-
return getTypeMapInt('booleanFalse');
|
|
93
|
+
return value ? getTypeMapInt('booleanTrue') : getTypeMapInt('booleanFalse');
|
|
140
94
|
}
|
|
141
|
-
|
|
142
95
|
if (isNumber(value)) {
|
|
143
|
-
// mirror the JS SDK's integer detection algorithm
|
|
144
|
-
// https://github.com/firebase/firebase-js-sdk/blob/086df7c7e0299cedd9f3cff9080f46ca25cab7cd/packages/firestore/src/remote/number_serializer.ts#L56
|
|
145
96
|
if (value === 0 && 1 / value === -Infinity) {
|
|
146
97
|
return getTypeMapInt('negativeZero');
|
|
147
98
|
}
|
|
@@ -150,64 +101,61 @@ export function generateNativeData(value, ignoreUndefined) {
|
|
|
150
101
|
}
|
|
151
102
|
return getTypeMapInt('double', value);
|
|
152
103
|
}
|
|
153
|
-
|
|
154
104
|
if (isString(value)) {
|
|
155
|
-
|
|
156
|
-
return getTypeMapInt('stringEmpty');
|
|
157
|
-
}
|
|
158
|
-
return getTypeMapInt('string', value);
|
|
105
|
+
return value === '' ? getTypeMapInt('stringEmpty') : getTypeMapInt('string', value);
|
|
159
106
|
}
|
|
160
|
-
|
|
161
107
|
if (isArray(value)) {
|
|
162
108
|
return getTypeMapInt('array', buildNativeArray(value, ignoreUndefined));
|
|
163
109
|
}
|
|
164
|
-
|
|
165
110
|
if (isObject(value)) {
|
|
166
|
-
if (value instanceof FirestoreDocumentReference) {
|
|
111
|
+
if (FirestoreDocumentReference && value instanceof FirestoreDocumentReference) {
|
|
167
112
|
return getTypeMapInt('reference', value.path);
|
|
168
113
|
}
|
|
169
|
-
|
|
170
114
|
if (value instanceof FirestoreGeoPoint) {
|
|
171
115
|
return getTypeMapInt('geopoint', [value.latitude, value.longitude]);
|
|
172
116
|
}
|
|
173
|
-
|
|
174
|
-
// Handle Date objects are Timestamps as per web sdk
|
|
175
117
|
if (isDate(value)) {
|
|
176
118
|
const timestamp = FirestoreTimestamp.fromDate(value);
|
|
177
119
|
return getTypeMapInt('timestamp', [timestamp.seconds, timestamp.nanoseconds]);
|
|
178
120
|
}
|
|
179
|
-
|
|
180
121
|
if (value instanceof FirestoreTimestamp) {
|
|
181
122
|
return getTypeMapInt('timestamp', [value.seconds, value.nanoseconds]);
|
|
182
123
|
}
|
|
183
|
-
|
|
184
|
-
// Modular API uses Bytes instead of Blob
|
|
185
|
-
if (value instanceof FirestoreBlob || value instanceof Bytes) {
|
|
124
|
+
if (value instanceof Blob || value instanceof Bytes) {
|
|
186
125
|
return getTypeMapInt('blob', value.toBase64());
|
|
187
126
|
}
|
|
188
|
-
|
|
189
|
-
if (value instanceof FirestoreFieldValue) {
|
|
127
|
+
if (FirestoreFieldValue && value instanceof FirestoreFieldValue) {
|
|
190
128
|
return getTypeMapInt('fieldvalue', [value._type, value._elements]);
|
|
191
129
|
}
|
|
192
|
-
|
|
193
130
|
if (value instanceof FirestoreVectorValue) {
|
|
194
131
|
return getTypeMapInt('vector', value.toArray());
|
|
195
132
|
}
|
|
196
|
-
|
|
197
133
|
return getTypeMapInt('object', buildNativeMap(value, ignoreUndefined));
|
|
198
134
|
}
|
|
199
135
|
|
|
200
136
|
// eslint-disable-next-line no-console
|
|
201
137
|
console.warn(`Unknown data type received ${value}`);
|
|
202
|
-
|
|
203
138
|
return getTypeMapInt('unknown');
|
|
204
139
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
140
|
+
function getArrayLikeEntries(value) {
|
|
141
|
+
if (isArray(value)) {
|
|
142
|
+
return value;
|
|
143
|
+
}
|
|
144
|
+
if (isObject(value) && !isArray(value)) {
|
|
145
|
+
const record = value;
|
|
146
|
+
if (!Object.prototype.hasOwnProperty.call(record, '0')) {
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
const entries = [];
|
|
150
|
+
let index = 0;
|
|
151
|
+
while (Object.prototype.hasOwnProperty.call(record, String(index))) {
|
|
152
|
+
entries.push(record[String(index)]);
|
|
153
|
+
index += 1;
|
|
154
|
+
}
|
|
155
|
+
return entries;
|
|
156
|
+
}
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
211
159
|
export function parseNativeMap(firestore, nativeData) {
|
|
212
160
|
let data;
|
|
213
161
|
if (nativeData) {
|
|
@@ -220,38 +168,25 @@ export function parseNativeMap(firestore, nativeData) {
|
|
|
220
168
|
}
|
|
221
169
|
return data;
|
|
222
170
|
}
|
|
223
|
-
|
|
224
|
-
/**
|
|
225
|
-
*
|
|
226
|
-
* @param firestore
|
|
227
|
-
* @param nativeArray
|
|
228
|
-
* @returns {Array}
|
|
229
|
-
*/
|
|
230
171
|
export function parseNativeArray(firestore, nativeArray) {
|
|
231
172
|
const array = [];
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
173
|
+
const normalizedArray = getArrayLikeEntries(nativeArray) ?? [];
|
|
174
|
+
if (normalizedArray) {
|
|
175
|
+
for (let i = 0; i < normalizedArray.length; i++) {
|
|
176
|
+
array.push(parseNativeData(firestore, normalizedArray[i]));
|
|
235
177
|
}
|
|
236
178
|
}
|
|
237
179
|
return array;
|
|
238
180
|
}
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Data returned from native is constructed in the same way it sent to keep
|
|
242
|
-
* payloads over the bridge as small as possible. The index matches to a type
|
|
243
|
-
* which is then created on JS land.
|
|
244
|
-
*
|
|
245
|
-
* Example: [7, 'string']
|
|
246
|
-
*
|
|
247
|
-
* @param firestore
|
|
248
|
-
* @param nativeArray
|
|
249
|
-
* @returns *
|
|
250
|
-
*/
|
|
251
181
|
export function parseNativeData(firestore, nativeArray) {
|
|
252
|
-
const
|
|
182
|
+
const normalizedTypeMap = getArrayLikeEntries(nativeArray);
|
|
183
|
+
if (!normalizedTypeMap || !isNumber(normalizedTypeMap[0])) {
|
|
184
|
+
// eslint-disable-next-line no-console
|
|
185
|
+
console.warn('Unknown data type received from native channel: malformed type map');
|
|
186
|
+
return undefined;
|
|
187
|
+
}
|
|
188
|
+
const [int, value] = normalizedTypeMap;
|
|
253
189
|
const type = getTypeMapName(int);
|
|
254
|
-
|
|
255
190
|
switch (type) {
|
|
256
191
|
case 'nan':
|
|
257
192
|
return NaN;
|
|
@@ -273,15 +208,21 @@ export function parseNativeData(firestore, nativeArray) {
|
|
|
273
208
|
case 'stringEmpty':
|
|
274
209
|
return '';
|
|
275
210
|
case 'array':
|
|
276
|
-
return parseNativeArray(firestore, value);
|
|
211
|
+
return parseNativeArray(firestore, getArrayLikeEntries(value) ?? []);
|
|
277
212
|
case 'object':
|
|
278
213
|
return parseNativeMap(firestore, value);
|
|
279
214
|
case 'reference':
|
|
280
215
|
return new FirestoreDocumentReference(firestore, FirestorePath.fromName(value));
|
|
281
216
|
case 'geopoint':
|
|
282
|
-
|
|
217
|
+
{
|
|
218
|
+
const v = getArrayLikeEntries(value) ?? [];
|
|
219
|
+
return new FirestoreGeoPoint(v[0] ?? 0, v[1] ?? 0);
|
|
220
|
+
}
|
|
283
221
|
case 'timestamp':
|
|
284
|
-
|
|
222
|
+
{
|
|
223
|
+
const v = getArrayLikeEntries(value) ?? [];
|
|
224
|
+
return new FirestoreTimestamp(v[0] ?? 0, v[1] ?? 0);
|
|
225
|
+
}
|
|
285
226
|
case 'blob':
|
|
286
227
|
return Bytes.fromBase64String(value);
|
|
287
228
|
case 'vector':
|
|
@@ -292,3 +233,4 @@ export function parseNativeData(firestore, nativeArray) {
|
|
|
292
233
|
return value;
|
|
293
234
|
}
|
|
294
235
|
}
|
|
236
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isArray","isBoolean","isDate","isNull","isNumber","isObject","isString","isUndefined","Blob","DOCUMENT_ID","FirestoreGeoPoint","FirestorePath","FirestoreTimestamp","getTypeMapInt","getTypeMapName","Bytes","FirestoreVectorValue","FirestoreDocumentReference","provideDocumentReferenceClass","documentReference","FirestoreFieldValue","provideFieldValueClass","fieldValue","buildNativeMap","data","ignoreUndefined","nativeData","keys","Object","i","length","key","Error","typeMap","generateNativeData","buildNativeArray","array","nativeArray","value","push","Number","isNaN","NEGATIVE_INFINITY","POSITIVE_INFINITY","Infinity","isSafeInteger","path","latitude","longitude","timestamp","fromDate","seconds","nanoseconds","toBase64","_type","_elements","toArray","console","warn","getArrayLikeEntries","record","prototype","hasOwnProperty","call","undefined","entries","index","String","parseNativeMap","firestore","typeArray","parseNativeData","parseNativeArray","normalizedArray","normalizedTypeMap","int","type","NaN","fromName","v","fromBase64String"],"sourceRoot":"../../../lib","sources":["utils/serialize.ts"],"mappings":"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","ignoreList":[]}
|