@react-native-firebase/firestore 23.8.8 → 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.
Files changed (359) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/RNFBFirestore.podspec +2 -1
  3. package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestoreCollectionModule.java +17 -4
  4. package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestoreDocumentModule.java +2 -2
  5. package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestorePipelineExecutor.java +1243 -0
  6. package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestorePipelineNodeBuilder.java +3919 -0
  7. package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestorePipelineParser.java +1735 -0
  8. package/android/src/reactnative/java/io/invertase/firebase/firestore/ReactNativeFirebaseFirestoreSerialize.java +1 -1
  9. package/dist/module/FieldPath.js +59 -0
  10. package/dist/module/FieldPath.js.map +1 -0
  11. package/dist/module/FieldValue.js +82 -0
  12. package/dist/module/FieldValue.js.map +1 -0
  13. package/{lib → dist/module}/FirestoreAggregate.js +31 -43
  14. package/dist/module/FirestoreAggregate.js.map +1 -0
  15. package/dist/module/FirestoreBlob.js +56 -0
  16. package/dist/module/FirestoreBlob.js.map +1 -0
  17. package/dist/module/FirestoreCollectionReference.js +70 -0
  18. package/dist/module/FirestoreCollectionReference.js.map +1 -0
  19. package/{lib → dist/module}/FirestoreDocumentChange.js +12 -15
  20. package/dist/module/FirestoreDocumentChange.js.map +1 -0
  21. package/dist/module/FirestoreDocumentReference.js +170 -0
  22. package/dist/module/FirestoreDocumentReference.js.map +1 -0
  23. package/dist/module/FirestoreDocumentSnapshot.js +88 -0
  24. package/dist/module/FirestoreDocumentSnapshot.js.map +1 -0
  25. package/dist/module/FirestoreFilter.js +146 -0
  26. package/dist/module/FirestoreFilter.js.map +1 -0
  27. package/dist/module/FirestoreGeoPoint.js +80 -0
  28. package/dist/module/FirestoreGeoPoint.js.map +1 -0
  29. package/{lib → dist/module}/FirestorePath.js +5 -12
  30. package/dist/module/FirestorePath.js.map +1 -0
  31. package/{lib → dist/module}/FirestorePersistentCacheIndexManager.js +11 -4
  32. package/dist/module/FirestorePersistentCacheIndexManager.js.map +1 -0
  33. package/dist/module/FirestoreQuery.js +298 -0
  34. package/dist/module/FirestoreQuery.js.map +1 -0
  35. package/{lib → dist/module}/FirestoreQueryModifiers.js +25 -136
  36. package/dist/module/FirestoreQueryModifiers.js.map +1 -0
  37. package/dist/module/FirestoreQuerySnapshot.js +98 -0
  38. package/dist/module/FirestoreQuerySnapshot.js.map +1 -0
  39. package/dist/module/FirestoreSnapshotMetadata.js +38 -0
  40. package/dist/module/FirestoreSnapshotMetadata.js.map +1 -0
  41. package/dist/module/FirestoreStatics.js +50 -0
  42. package/dist/module/FirestoreStatics.js.map +1 -0
  43. package/{lib → dist/module}/FirestoreTimestamp.js +39 -39
  44. package/dist/module/FirestoreTimestamp.js.map +1 -0
  45. package/dist/module/FirestoreTransaction.js +113 -0
  46. package/dist/module/FirestoreTransaction.js.map +1 -0
  47. package/dist/module/FirestoreTransactionHandler.js +137 -0
  48. package/dist/module/FirestoreTransactionHandler.js.map +1 -0
  49. package/dist/module/FirestoreVectorValue.js +75 -0
  50. package/dist/module/FirestoreVectorValue.js.map +1 -0
  51. package/dist/module/FirestoreWriteBatch.js +113 -0
  52. package/dist/module/FirestoreWriteBatch.js.map +1 -0
  53. package/dist/module/LoadBundleTask.js +70 -0
  54. package/dist/module/LoadBundleTask.js.map +1 -0
  55. package/dist/module/index.js +31 -0
  56. package/dist/module/index.js.map +1 -0
  57. package/dist/module/modular/Bytes.js +67 -0
  58. package/dist/module/modular/Bytes.js.map +1 -0
  59. package/dist/module/modular/FieldPath.js +25 -0
  60. package/dist/module/modular/FieldPath.js.map +1 -0
  61. package/dist/module/modular/FieldValue.js +37 -0
  62. package/dist/module/modular/FieldValue.js.map +1 -0
  63. package/dist/module/modular/GeoPoint.js +22 -0
  64. package/dist/module/modular/GeoPoint.js.map +1 -0
  65. package/dist/module/modular/Timestamp.js +22 -0
  66. package/dist/module/modular/Timestamp.js.map +1 -0
  67. package/dist/module/modular/VectorValue.js +25 -0
  68. package/dist/module/modular/VectorValue.js.map +1 -0
  69. package/dist/module/modular/query.js +222 -0
  70. package/dist/module/modular/query.js.map +1 -0
  71. package/dist/module/modular/snapshot.js +32 -0
  72. package/dist/module/modular/snapshot.js.map +1 -0
  73. package/dist/module/modular.js +229 -0
  74. package/dist/module/modular.js.map +1 -0
  75. package/dist/module/namespaced.js +298 -0
  76. package/dist/module/namespaced.js.map +1 -0
  77. package/dist/module/package.json +1 -0
  78. package/dist/module/pipelines/expressions.js +1273 -0
  79. package/dist/module/pipelines/expressions.js.map +1 -0
  80. package/dist/module/pipelines/index.js +32 -0
  81. package/dist/module/pipelines/index.js.map +1 -0
  82. package/dist/module/pipelines/pipeline-result.js +58 -0
  83. package/dist/module/pipelines/pipeline-result.js.map +1 -0
  84. package/dist/module/pipelines/pipeline-source.js +4 -0
  85. package/dist/module/pipelines/pipeline-source.js.map +1 -0
  86. package/dist/module/pipelines/pipeline.js +4 -0
  87. package/dist/module/pipelines/pipeline.js.map +1 -0
  88. package/dist/module/pipelines/pipeline_impl.js +42 -0
  89. package/dist/module/pipelines/pipeline_impl.js.map +1 -0
  90. package/dist/module/pipelines/pipeline_options.js +4 -0
  91. package/dist/module/pipelines/pipeline_options.js.map +1 -0
  92. package/dist/module/pipelines/pipeline_runtime.js +526 -0
  93. package/dist/module/pipelines/pipeline_runtime.js.map +1 -0
  94. package/dist/module/pipelines/pipeline_support.js +71 -0
  95. package/dist/module/pipelines/pipeline_support.js.map +1 -0
  96. package/dist/module/pipelines/pipeline_validate.js +183 -0
  97. package/dist/module/pipelines/pipeline_validate.js.map +1 -0
  98. package/dist/module/pipelines/stage_options.js +4 -0
  99. package/dist/module/pipelines/stage_options.js.map +1 -0
  100. package/dist/module/pipelines/types.js +2 -0
  101. package/dist/module/pipelines/types.js.map +1 -0
  102. package/dist/module/types/firestore.js +4 -0
  103. package/dist/module/types/firestore.js.map +1 -0
  104. package/dist/module/types/internal.js +4 -0
  105. package/dist/module/types/internal.js.map +1 -0
  106. package/dist/module/types/namespaced.js +338 -0
  107. package/dist/module/types/namespaced.js.map +1 -0
  108. package/{lib → dist/module}/utils/index.js +59 -114
  109. package/dist/module/utils/index.js.map +1 -0
  110. package/{lib → dist/module}/utils/serialize.js +58 -116
  111. package/dist/module/utils/serialize.js.map +1 -0
  112. package/{lib → dist/module}/utils/typemap.js +6 -20
  113. package/dist/module/utils/typemap.js.map +1 -0
  114. package/dist/module/version.js +5 -0
  115. package/dist/module/version.js.map +1 -0
  116. package/dist/module/web/RNFBFirestoreModule.android.js +5 -0
  117. package/dist/module/web/RNFBFirestoreModule.android.js.map +1 -0
  118. package/dist/module/web/RNFBFirestoreModule.ios.js +5 -0
  119. package/dist/module/web/RNFBFirestoreModule.ios.js.map +1 -0
  120. package/dist/module/web/RNFBFirestoreModule.js +387 -0
  121. package/dist/module/web/RNFBFirestoreModule.js.map +1 -0
  122. package/{lib → dist/module}/web/convert.js +60 -94
  123. package/dist/module/web/convert.js.map +1 -0
  124. package/dist/module/web/pipelines/pipeline.js +34 -0
  125. package/dist/module/web/pipelines/pipeline.js.map +1 -0
  126. package/dist/module/web/pipelines/pipeline_bridge_factory.js +217 -0
  127. package/dist/module/web/pipelines/pipeline_bridge_factory.js.map +1 -0
  128. package/dist/module/web/pipelines/pipeline_node_builder.js +294 -0
  129. package/dist/module/web/pipelines/pipeline_node_builder.js.map +1 -0
  130. package/dist/module/web/pipelines/pipeline_parser.js +21 -0
  131. package/dist/module/web/pipelines/pipeline_parser.js.map +1 -0
  132. package/dist/module/web/pipelines/pipeline_snapshot_serializer.js +89 -0
  133. package/dist/module/web/pipelines/pipeline_snapshot_serializer.js.map +1 -0
  134. package/dist/module/web/query.js +95 -0
  135. package/dist/module/web/query.js.map +1 -0
  136. package/dist/typescript/lib/FieldPath.d.ts +10 -0
  137. package/dist/typescript/lib/FieldPath.d.ts.map +1 -0
  138. package/dist/typescript/lib/FieldValue.d.ts +17 -0
  139. package/dist/typescript/lib/FieldValue.d.ts.map +1 -0
  140. package/dist/typescript/lib/FirestoreAggregate.d.ts +40 -0
  141. package/dist/typescript/lib/FirestoreAggregate.d.ts.map +1 -0
  142. package/dist/typescript/lib/FirestoreBlob.d.ts +11 -0
  143. package/dist/typescript/lib/FirestoreBlob.d.ts.map +1 -0
  144. package/dist/typescript/lib/FirestoreCollectionReference.d.ts +15 -0
  145. package/dist/typescript/lib/FirestoreCollectionReference.d.ts.map +1 -0
  146. package/dist/typescript/lib/FirestoreDocumentChange.d.ts +27 -0
  147. package/dist/typescript/lib/FirestoreDocumentChange.d.ts.map +1 -0
  148. package/dist/typescript/lib/FirestoreDocumentReference.d.ts +30 -0
  149. package/dist/typescript/lib/FirestoreDocumentReference.d.ts.map +1 -0
  150. package/dist/typescript/lib/FirestoreDocumentSnapshot.d.ts +30 -0
  151. package/dist/typescript/lib/FirestoreDocumentSnapshot.d.ts.map +1 -0
  152. package/dist/typescript/lib/FirestoreFilter.d.ts +52 -0
  153. package/dist/typescript/lib/FirestoreFilter.d.ts.map +1 -0
  154. package/dist/typescript/lib/FirestoreGeoPoint.d.ts +22 -0
  155. package/dist/typescript/lib/FirestoreGeoPoint.d.ts.map +1 -0
  156. package/dist/typescript/lib/FirestorePath.d.ts +12 -0
  157. package/dist/typescript/lib/FirestorePath.d.ts.map +1 -0
  158. package/dist/typescript/lib/FirestorePersistentCacheIndexManager.d.ts +16 -0
  159. package/dist/typescript/lib/FirestorePersistentCacheIndexManager.d.ts.map +1 -0
  160. package/dist/typescript/lib/FirestoreQuery.d.ts +39 -0
  161. package/dist/typescript/lib/FirestoreQuery.d.ts.map +1 -0
  162. package/dist/typescript/lib/FirestoreQueryModifiers.d.ts +59 -0
  163. package/dist/typescript/lib/FirestoreQueryModifiers.d.ts.map +1 -0
  164. package/dist/typescript/lib/FirestoreQuerySnapshot.d.ts +49 -0
  165. package/dist/typescript/lib/FirestoreQuerySnapshot.d.ts.map +1 -0
  166. package/dist/typescript/lib/FirestoreSnapshotMetadata.d.ts +8 -0
  167. package/dist/typescript/lib/FirestoreSnapshotMetadata.d.ts.map +1 -0
  168. package/dist/typescript/lib/FirestoreStatics.d.ts +23 -0
  169. package/dist/typescript/lib/FirestoreStatics.d.ts.map +1 -0
  170. package/dist/typescript/lib/FirestoreTimestamp.d.ts +33 -0
  171. package/dist/typescript/lib/FirestoreTimestamp.d.ts.map +1 -0
  172. package/dist/typescript/lib/FirestoreTransaction.d.ts +42 -0
  173. package/dist/typescript/lib/FirestoreTransaction.d.ts.map +1 -0
  174. package/dist/typescript/lib/FirestoreTransactionHandler.d.ts +26 -0
  175. package/dist/typescript/lib/FirestoreTransactionHandler.d.ts.map +1 -0
  176. package/dist/typescript/lib/FirestoreVectorValue.d.ts +17 -0
  177. package/dist/typescript/lib/FirestoreVectorValue.d.ts.map +1 -0
  178. package/dist/typescript/lib/FirestoreWriteBatch.d.ts +21 -0
  179. package/dist/typescript/lib/FirestoreWriteBatch.d.ts.map +1 -0
  180. package/dist/typescript/lib/LoadBundleTask.d.ts +16 -0
  181. package/dist/typescript/lib/LoadBundleTask.d.ts.map +1 -0
  182. package/dist/typescript/lib/index.d.ts +6 -0
  183. package/dist/typescript/lib/index.d.ts.map +1 -0
  184. package/dist/typescript/lib/modular/Bytes.d.ts +22 -0
  185. package/dist/typescript/lib/modular/Bytes.d.ts.map +1 -0
  186. package/dist/typescript/lib/modular/FieldPath.d.ts +4 -0
  187. package/dist/typescript/lib/modular/FieldPath.d.ts.map +1 -0
  188. package/dist/typescript/lib/modular/FieldValue.d.ts +8 -0
  189. package/dist/typescript/lib/modular/FieldValue.d.ts.map +1 -0
  190. package/dist/typescript/lib/modular/GeoPoint.d.ts +3 -0
  191. package/dist/typescript/lib/modular/GeoPoint.d.ts.map +1 -0
  192. package/dist/typescript/lib/modular/Timestamp.d.ts +3 -0
  193. package/dist/typescript/lib/modular/Timestamp.d.ts.map +1 -0
  194. package/dist/typescript/lib/modular/VectorValue.d.ts +4 -0
  195. package/dist/typescript/lib/modular/VectorValue.d.ts.map +1 -0
  196. package/dist/typescript/lib/modular/query.d.ts +93 -0
  197. package/dist/typescript/lib/modular/query.d.ts.map +1 -0
  198. package/dist/typescript/lib/modular/snapshot.d.ts +30 -0
  199. package/dist/typescript/lib/modular/snapshot.d.ts.map +1 -0
  200. package/dist/typescript/lib/modular.d.ts +69 -0
  201. package/dist/typescript/lib/modular.d.ts.map +1 -0
  202. package/dist/typescript/lib/namespaced.d.ts +13 -0
  203. package/dist/typescript/lib/namespaced.d.ts.map +1 -0
  204. package/dist/typescript/lib/pipelines/expressions.d.ts +723 -0
  205. package/dist/typescript/lib/pipelines/expressions.d.ts.map +1 -0
  206. package/dist/typescript/lib/pipelines/index.d.ts +31 -0
  207. package/dist/typescript/lib/pipelines/index.d.ts.map +1 -0
  208. package/dist/typescript/lib/pipelines/pipeline-result.d.ts +30 -0
  209. package/dist/typescript/lib/pipelines/pipeline-result.d.ts.map +1 -0
  210. package/dist/typescript/lib/pipelines/pipeline-source.d.ts +64 -0
  211. package/dist/typescript/lib/pipelines/pipeline-source.d.ts.map +1 -0
  212. package/dist/typescript/lib/pipelines/pipeline.d.ts +61 -0
  213. package/dist/typescript/lib/pipelines/pipeline.d.ts.map +1 -0
  214. package/dist/typescript/lib/pipelines/pipeline_impl.d.ts +21 -0
  215. package/dist/typescript/lib/pipelines/pipeline_impl.d.ts.map +1 -0
  216. package/dist/typescript/lib/pipelines/pipeline_options.d.ts +17 -0
  217. package/dist/typescript/lib/pipelines/pipeline_options.d.ts.map +1 -0
  218. package/dist/typescript/lib/pipelines/pipeline_runtime.d.ts +10 -0
  219. package/dist/typescript/lib/pipelines/pipeline_runtime.d.ts.map +1 -0
  220. package/dist/typescript/lib/pipelines/pipeline_support.d.ts +7 -0
  221. package/dist/typescript/lib/pipelines/pipeline_support.d.ts.map +1 -0
  222. package/dist/typescript/lib/pipelines/pipeline_validate.d.ts +9 -0
  223. package/dist/typescript/lib/pipelines/pipeline_validate.d.ts.map +1 -0
  224. package/dist/typescript/lib/pipelines/stage_options.d.ts +326 -0
  225. package/dist/typescript/lib/pipelines/stage_options.d.ts.map +1 -0
  226. package/dist/typescript/lib/pipelines/types.d.ts +10 -0
  227. package/dist/typescript/lib/pipelines/types.d.ts.map +1 -0
  228. package/dist/typescript/lib/types/firestore.d.ts +263 -0
  229. package/dist/typescript/lib/types/firestore.d.ts.map +1 -0
  230. package/dist/typescript/lib/types/internal.d.ts +483 -0
  231. package/dist/typescript/lib/types/internal.d.ts.map +1 -0
  232. package/dist/typescript/lib/types/namespaced.d.ts +2285 -0
  233. package/dist/typescript/lib/types/namespaced.d.ts.map +1 -0
  234. package/dist/typescript/lib/utils/index.d.ts +15 -0
  235. package/dist/typescript/lib/utils/index.d.ts.map +1 -0
  236. package/dist/typescript/lib/utils/serialize.d.ts +17 -0
  237. package/dist/typescript/lib/utils/serialize.d.ts.map +1 -0
  238. package/dist/typescript/lib/utils/typemap.d.ts +3 -0
  239. package/dist/typescript/lib/utils/typemap.d.ts.map +1 -0
  240. package/dist/typescript/lib/version.d.ts +2 -0
  241. package/dist/typescript/lib/version.d.ts.map +1 -0
  242. package/dist/typescript/lib/web/RNFBFirestoreModule.android.d.ts +3 -0
  243. package/dist/typescript/lib/web/RNFBFirestoreModule.android.d.ts.map +1 -0
  244. package/dist/typescript/lib/web/RNFBFirestoreModule.d.ts +75 -0
  245. package/dist/typescript/lib/web/RNFBFirestoreModule.d.ts.map +1 -0
  246. package/dist/typescript/lib/web/RNFBFirestoreModule.ios.d.ts +3 -0
  247. package/dist/typescript/lib/web/RNFBFirestoreModule.ios.d.ts.map +1 -0
  248. package/dist/typescript/lib/web/convert.d.ts +14 -0
  249. package/dist/typescript/lib/web/convert.d.ts.map +1 -0
  250. package/dist/typescript/lib/web/pipelines/pipeline.d.ts +4 -0
  251. package/dist/typescript/lib/web/pipelines/pipeline.d.ts.map +1 -0
  252. package/dist/typescript/lib/web/pipelines/pipeline_bridge_factory.d.ts +5 -0
  253. package/dist/typescript/lib/web/pipelines/pipeline_bridge_factory.d.ts.map +1 -0
  254. package/dist/typescript/lib/web/pipelines/pipeline_node_builder.d.ts +5 -0
  255. package/dist/typescript/lib/web/pipelines/pipeline_node_builder.d.ts.map +1 -0
  256. package/dist/typescript/lib/web/pipelines/pipeline_parser.d.ts +3 -0
  257. package/dist/typescript/lib/web/pipelines/pipeline_parser.d.ts.map +1 -0
  258. package/dist/typescript/lib/web/pipelines/pipeline_snapshot_serializer.d.ts +4 -0
  259. package/dist/typescript/lib/web/pipelines/pipeline_snapshot_serializer.d.ts.map +1 -0
  260. package/dist/typescript/lib/web/query.d.ts +23 -0
  261. package/dist/typescript/lib/web/query.d.ts.map +1 -0
  262. package/dist/typescript/package.json +1 -0
  263. package/ios/RNFBFirestore/RNFBFirestoreCollectionModule.m +52 -2
  264. package/ios/RNFBFirestore/RNFBFirestorePipelineBridgeFactory.swift +384 -0
  265. package/ios/RNFBFirestore/RNFBFirestorePipelineCallHandler.swift +86 -0
  266. package/ios/RNFBFirestore/RNFBFirestorePipelineNodeBuilder.swift +1500 -0
  267. package/ios/RNFBFirestore/RNFBFirestorePipelineParser.swift +1352 -0
  268. package/ios/RNFBFirestore/RNFBFirestorePipelineSnapshotSerializer.swift +98 -0
  269. package/lib/{FirestoreFieldPath.js → FieldPath.ts} +10 -12
  270. package/lib/{FirestoreFieldValue.js → FieldValue.ts} +22 -19
  271. package/lib/FirestoreAggregate.ts +124 -0
  272. package/lib/FirestoreBlob.ts +73 -0
  273. package/lib/FirestoreCollectionReference.ts +99 -0
  274. package/lib/FirestoreDocumentChange.ts +71 -0
  275. package/lib/FirestoreDocumentReference.ts +310 -0
  276. package/lib/FirestoreDocumentSnapshot.ts +149 -0
  277. package/lib/FirestoreFilter.ts +232 -0
  278. package/lib/{FirestoreGeoPoint.js → FirestoreGeoPoint.ts} +48 -8
  279. package/lib/FirestorePath.ts +54 -0
  280. package/lib/FirestorePersistentCacheIndexManager.ts +46 -0
  281. package/lib/{FirestoreQuery.js → FirestoreQuery.ts} +208 -100
  282. package/lib/FirestoreQueryModifiers.ts +411 -0
  283. package/lib/{FirestoreQuerySnapshot.js → FirestoreQuerySnapshot.ts} +61 -32
  284. package/lib/{FirestoreSnapshotMetadata.js → FirestoreSnapshotMetadata.ts} +8 -6
  285. package/lib/{FirestoreStatics.js → FirestoreStatics.ts} +18 -11
  286. package/lib/FirestoreTimestamp.ts +161 -0
  287. package/lib/{FirestoreTransaction.js → FirestoreTransaction.ts} +64 -27
  288. package/lib/{FirestoreTransactionHandler.js → FirestoreTransactionHandler.ts} +54 -75
  289. package/lib/{FirestoreVectorValue.js → FirestoreVectorValue.ts} +36 -15
  290. package/lib/{FirestoreWriteBatch.js → FirestoreWriteBatch.ts} +45 -21
  291. package/lib/LoadBundleTask.ts +85 -0
  292. package/lib/index.ts +71 -0
  293. package/lib/modular/Bytes.ts +81 -0
  294. package/lib/modular/FieldPath.ts +24 -0
  295. package/lib/modular/FieldValue.ts +40 -0
  296. package/lib/modular/GeoPoint.ts +20 -0
  297. package/lib/modular/Timestamp.ts +20 -0
  298. package/lib/modular/VectorValue.ts +24 -0
  299. package/lib/modular/query.ts +368 -0
  300. package/lib/modular/snapshot.ts +137 -0
  301. package/lib/modular.ts +552 -0
  302. package/lib/{index.js → namespaced.ts} +170 -80
  303. package/lib/pipelines/expressions.ts +2321 -0
  304. package/lib/pipelines/index.ts +203 -0
  305. package/lib/pipelines/pipeline-result.ts +78 -0
  306. package/lib/pipelines/pipeline-source.ts +83 -0
  307. package/lib/pipelines/pipeline.ts +99 -0
  308. package/lib/pipelines/pipeline_impl.ts +46 -0
  309. package/lib/pipelines/pipeline_options.ts +32 -0
  310. package/lib/pipelines/pipeline_runtime.ts +863 -0
  311. package/lib/pipelines/pipeline_support.ts +134 -0
  312. package/lib/pipelines/pipeline_validate.ts +242 -0
  313. package/lib/pipelines/stage_options.ts +376 -0
  314. package/lib/pipelines/types.ts +26 -0
  315. package/lib/types/firestore.ts +477 -0
  316. package/lib/types/internal.ts +747 -0
  317. package/lib/{index.d.ts → types/namespaced.ts} +280 -79
  318. package/lib/utils/index.ts +244 -0
  319. package/lib/utils/serialize.ts +314 -0
  320. package/lib/utils/typemap.ts +65 -0
  321. package/lib/version.ts +2 -0
  322. package/lib/web/{RNFBFirestoreModule.js → RNFBFirestoreModule.ts} +222 -234
  323. package/lib/web/convert.ts +287 -0
  324. package/lib/web/pipelines/pipeline.ts +47 -0
  325. package/lib/web/pipelines/pipeline_bridge_factory.ts +377 -0
  326. package/lib/web/pipelines/pipeline_node_builder.ts +413 -0
  327. package/lib/web/pipelines/pipeline_parser.ts +23 -0
  328. package/lib/web/pipelines/pipeline_snapshot_serializer.ts +133 -0
  329. package/lib/web/query.ts +150 -0
  330. package/package.json +46 -7
  331. package/tsconfig.json +35 -0
  332. package/lib/FirestoreBlob.js +0 -107
  333. package/lib/FirestoreCollectionReference.js +0 -70
  334. package/lib/FirestoreDocumentReference.js +0 -222
  335. package/lib/FirestoreDocumentSnapshot.js +0 -132
  336. package/lib/FirestoreFilter.js +0 -156
  337. package/lib/modular/Bytes.d.ts +0 -11
  338. package/lib/modular/Bytes.js +0 -62
  339. package/lib/modular/FieldPath.d.ts +0 -20
  340. package/lib/modular/FieldPath.js +0 -7
  341. package/lib/modular/FieldValue.d.ts +0 -67
  342. package/lib/modular/FieldValue.js +0 -41
  343. package/lib/modular/GeoPoint.d.ts +0 -17
  344. package/lib/modular/GeoPoint.js +0 -3
  345. package/lib/modular/Timestamp.d.ts +0 -85
  346. package/lib/modular/Timestamp.js +0 -3
  347. package/lib/modular/VectorValue.d.ts +0 -30
  348. package/lib/modular/VectorValue.js +0 -11
  349. package/lib/modular/index.d.ts +0 -788
  350. package/lib/modular/index.js +0 -410
  351. package/lib/modular/query.d.ts +0 -370
  352. package/lib/modular/query.js +0 -233
  353. package/lib/modular/snapshot.d.ts +0 -256
  354. package/lib/modular/snapshot.js +0 -33
  355. package/lib/modular/utils/observer.js +0 -16
  356. package/lib/version.js +0 -2
  357. package/lib/web/query.js +0 -112
  358. /package/lib/web/{RNFBFirestoreModule.android.js → RNFBFirestoreModule.android.ts} +0 -0
  359. /package/lib/web/{RNFBFirestoreModule.ios.js → RNFBFirestoreModule.ios.ts} +0 -0
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+
3
+ /*
4
+ * Copyright (c) 2016-present Invertase Limited & Contributors
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this library except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ *
18
+ */
19
+
20
+ import { createDeprecationProxy, filterModularArgument, isArray, isNull, isObject, isString, isUndefined } from '@react-native-firebase/app/dist/module/common';
21
+ import NativeError from '@react-native-firebase/app/dist/module/internal/NativeFirebaseError';
22
+ import { AggregateQuery } from "./FirestoreAggregate.js";
23
+ import DocumentSnapshot from "./FirestoreDocumentSnapshot.js";
24
+ import FieldPath, { fromDotSeparatedString } from "./FieldPath.js";
25
+ import { _Filter, generateFilters } from "./FirestoreFilter.js";
26
+ import QuerySnapshot from "./FirestoreQuerySnapshot.js";
27
+ import { parseSnapshotArgs, validateWithConverter } from "./utils/index.js";
28
+ let _id = 0;
29
+ export default class Query {
30
+ /** Satisfies Query<DocumentData, DocumentData> for AggregateQuerySnapshot and similar. */
31
+ type = 'query';
32
+ constructor(firestore, collectionPath, modifiers, queryName, converter) {
33
+ this._firestore = firestore;
34
+ this._collectionPath = collectionPath;
35
+ this._modifiers = modifiers;
36
+ this._queryName = queryName;
37
+ this._converter = converter ?? null;
38
+ }
39
+ get firestore() {
40
+ return this._firestore;
41
+ }
42
+ get converter() {
43
+ return this._converter;
44
+ }
45
+ _handleQueryCursor(cursor, docOrField, fields) {
46
+ const modifiers = this._modifiers._copy();
47
+ if (isUndefined(docOrField)) {
48
+ throw new Error(`firebase.firestore().collection().${cursor}(*) Expected a DocumentSnapshot or list of field values but got undefined.`);
49
+ }
50
+ if (docOrField instanceof DocumentSnapshot) {
51
+ if (fields.length > 0) {
52
+ throw new Error(`firebase.firestore().collection().${cursor}(*) Too many arguments provided. Expected DocumentSnapshot or list of field values.`);
53
+ }
54
+ const documentSnapshot = docOrField;
55
+ if (!documentSnapshot.exists()) {
56
+ throw new Error(`firebase.firestore().collection().${cursor}(*) Can't use a DocumentSnapshot that doesn't exist.`);
57
+ }
58
+ const currentOrders = modifiers.orders;
59
+ const values = [];
60
+ for (let i = 0; i < currentOrders.length; i++) {
61
+ const order = currentOrders[i];
62
+ const pathStr = Array.isArray(order.fieldPath) ? order.fieldPath.join('.') : String(order.fieldPath);
63
+ if (pathStr === '__name__') {
64
+ continue;
65
+ }
66
+ const value = documentSnapshot.get(Array.isArray(order.fieldPath) ? new FieldPath(...order.fieldPath) : order.fieldPath);
67
+ if (value === undefined) {
68
+ throw new Error(`firebase.firestore().collection().${cursor}(*) You are trying to start or end a query using a document for which the field '${pathStr}' (used as the orderBy) does not exist.`);
69
+ }
70
+ values.push(value);
71
+ }
72
+ if (modifiers._orders.length) {
73
+ const lastOrder = modifiers._orders[modifiers._orders.length - 1];
74
+ const lastPathStr = lastOrder.fieldPath instanceof FieldPath ? lastOrder.fieldPath._toPath() : String(lastOrder.fieldPath);
75
+ if (lastPathStr !== '__name__') {
76
+ modifiers._orders.push({
77
+ fieldPath: new FieldPath('__name__'),
78
+ direction: lastOrder.direction
79
+ });
80
+ }
81
+ } else {
82
+ modifiers._orders.push({
83
+ fieldPath: new FieldPath('__name__'),
84
+ direction: 'ASCENDING'
85
+ });
86
+ }
87
+ if (this._modifiers.isCollectionGroupQuery()) {
88
+ values.push(documentSnapshot.ref.path);
89
+ } else {
90
+ values.push(documentSnapshot.id);
91
+ }
92
+ return modifiers.setFieldsCursor(cursor, values);
93
+ }
94
+ const allFields = [docOrField].concat(fields);
95
+ if (allFields.length > modifiers.orders.length) {
96
+ throw new Error(`firebase.firestore().collection().${cursor}(*) Too many arguments provided. The number of arguments must be less than or equal to the number of orderBy() clauses.`);
97
+ }
98
+ return modifiers.setFieldsCursor(cursor, allFields);
99
+ }
100
+ count() {
101
+ return createDeprecationProxy(new AggregateQuery(this._firestore, this, this._collectionPath, this._modifiers));
102
+ }
103
+ countFromServer() {
104
+ return this.count();
105
+ }
106
+ endAt(docOrField, ...fields) {
107
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, this._handleQueryCursor('endAt', docOrField, filterModularArgument(fields)), this._queryName, this._converter));
108
+ }
109
+ endBefore(docOrField, ...fields) {
110
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, this._handleQueryCursor('endBefore', docOrField, filterModularArgument(fields)), this._queryName, this._converter));
111
+ }
112
+ get(options) {
113
+ if (!isUndefined(options) && !isObject(options)) {
114
+ throw new Error("firebase.firestore().collection().get(*) 'options' must be an object is provided.");
115
+ }
116
+ if (options && options.source && options.source !== 'default' && options.source !== 'server' && options.source !== 'cache') {
117
+ throw new Error("firebase.firestore().collection().get(*) 'options' GetOptions.source must be one of 'default', 'server' or 'cache'.");
118
+ }
119
+ if (!isUndefined(this._queryName)) {
120
+ return this._firestore.native.namedQueryGet(this._queryName, this._modifiers.type, this._modifiers.filters, this._modifiers.orders, this._modifiers.options, options).then(data => new QuerySnapshot(this._firestore, this, data, this._converter));
121
+ }
122
+ this._modifiers.validatelimitToLast();
123
+ return this._firestore.native.collectionGet(this._collectionPath.relativeName, this._modifiers.type, this._modifiers.filters, this._modifiers.orders, this._modifiers.options, options).then(data => new QuerySnapshot(this._firestore, this, data, this._converter));
124
+ }
125
+ isEqual(other) {
126
+ if (!(other instanceof Query)) {
127
+ throw new Error("firebase.firestore().collection().isEqual(*) 'other' expected a Query instance.");
128
+ }
129
+ if (this.firestore.app.name !== other.firestore.app.name || this._modifiers.type !== other._modifiers.type || this._modifiers.filters.length !== other._modifiers.filters.length || this._modifiers.orders.length !== other._modifiers.orders.length || this._collectionPath.relativeName !== other._collectionPath.relativeName || this._converter !== other._converter || Object.keys(this._modifiers.options).length !== Object.keys(other._modifiers.options).length) {
130
+ return false;
131
+ }
132
+ if (JSON.stringify(this._modifiers.filters) !== JSON.stringify(other._modifiers.filters) || JSON.stringify(this._modifiers.orders) !== JSON.stringify(other._modifiers.orders) || JSON.stringify(this._modifiers.options) !== JSON.stringify(other._modifiers.options)) {
133
+ return false;
134
+ }
135
+ return true;
136
+ }
137
+ limit(limit) {
138
+ if (this._modifiers.isValidLimit(limit)) {
139
+ throw new Error("firebase.firestore().collection().limit(*) 'limit' must be a positive integer value.");
140
+ }
141
+ const modifiers = this._modifiers._copy().limit(limit);
142
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, modifiers, this._queryName, this._converter));
143
+ }
144
+ limitToLast(limitToLast) {
145
+ if (this._modifiers.isValidLimitToLast(limitToLast)) {
146
+ throw new Error("firebase.firestore().collection().limitToLast(*) 'limitToLast' must be a positive integer value.");
147
+ }
148
+ const modifiers = this._modifiers._copy().limitToLast(limitToLast);
149
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, modifiers, this._queryName, this._converter));
150
+ }
151
+ onSnapshot(...args) {
152
+ let snapshotListenOptions;
153
+ let callback;
154
+ let onNext;
155
+ let onError;
156
+ this._modifiers.validatelimitToLast();
157
+ try {
158
+ const options = parseSnapshotArgs(filterModularArgument(args));
159
+ snapshotListenOptions = options.snapshotListenOptions;
160
+ callback = options.callback;
161
+ onNext = options.onNext;
162
+ onError = options.onError;
163
+ } catch (e) {
164
+ throw new Error(`firebase.firestore().collection().onSnapshot(*) ${e.message}`);
165
+ }
166
+ function handleSuccess(querySnapshot) {
167
+ callback(querySnapshot, null);
168
+ onNext(querySnapshot);
169
+ }
170
+ function handleError(error) {
171
+ callback(null, error);
172
+ onError(error);
173
+ }
174
+ const listenerId = _id++;
175
+ const onSnapshotSubscription = this._firestore.emitter.addListener(this._firestore.eventNameForApp(`firestore_collection_sync_event:${listenerId}`), event => {
176
+ const body = event.body;
177
+ if (body.error) {
178
+ handleError(NativeError.fromEvent(body.error, 'firestore'));
179
+ } else {
180
+ const snapshot = body.snapshot;
181
+ if (!snapshot) return;
182
+ const querySnapshot = new QuerySnapshot(this._firestore, this, snapshot, this._converter);
183
+ handleSuccess(querySnapshot);
184
+ }
185
+ });
186
+ const unsubscribe = () => {
187
+ onSnapshotSubscription.remove();
188
+ this._firestore.native.collectionOffSnapshot(listenerId);
189
+ };
190
+ if (!isUndefined(this._queryName)) {
191
+ this._firestore.native.namedQueryOnSnapshot(this._queryName, this._modifiers.type, this._modifiers.filters, this._modifiers.orders, this._modifiers.options, listenerId, snapshotListenOptions);
192
+ } else {
193
+ this._firestore.native.collectionOnSnapshot(this._collectionPath.relativeName, this._modifiers.type, this._modifiers.filters, this._modifiers.orders, this._modifiers.options, listenerId, snapshotListenOptions);
194
+ }
195
+ return unsubscribe;
196
+ }
197
+ orderBy(fieldPath, directionStr) {
198
+ if (!isString(fieldPath) && !(fieldPath instanceof FieldPath)) {
199
+ throw new Error("firebase.firestore().collection().orderBy(*) 'fieldPath' must be a string or instance of FieldPath.");
200
+ }
201
+ let path;
202
+ if (isString(fieldPath)) {
203
+ try {
204
+ path = fromDotSeparatedString(fieldPath);
205
+ } catch (e) {
206
+ throw new Error(`firebase.firestore().collection().orderBy(*) 'fieldPath' ${e.message}.`);
207
+ }
208
+ } else {
209
+ path = fieldPath;
210
+ }
211
+ if (!isUndefined(directionStr) && !this._modifiers.isValidDirection(directionStr)) {
212
+ throw new Error("firebase.firestore().collection().orderBy(_, *) 'directionStr' must be one of 'asc' or 'desc'.");
213
+ }
214
+ if (this._modifiers.hasStart()) {
215
+ throw new Error('firebase.firestore().collection().orderBy() Invalid query. You must not call startAt() or startAfter() before calling orderBy().');
216
+ }
217
+ if (this._modifiers.hasEnd()) {
218
+ throw new Error('firebase.firestore().collection().orderBy() Invalid query. You must not call endAt() or endBefore() before calling orderBy().');
219
+ }
220
+ const modifiers = this._modifiers._copy().orderBy(path, directionStr);
221
+ try {
222
+ modifiers.validateOrderBy();
223
+ } catch (e) {
224
+ throw new Error(`firebase.firestore().collection().orderBy() ${e.message}`);
225
+ }
226
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, modifiers, this._queryName, this._converter));
227
+ }
228
+ startAfter(docOrField, ...fields) {
229
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, this._handleQueryCursor('startAfter', docOrField, filterModularArgument(fields)), this._queryName, this._converter));
230
+ }
231
+ startAt(docOrField, ...fields) {
232
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, this._handleQueryCursor('startAt', docOrField, filterModularArgument(fields)), this._queryName, this._converter));
233
+ }
234
+ where(fieldPathOrFilter, opStr, value) {
235
+ if (!isString(fieldPathOrFilter) && !(fieldPathOrFilter instanceof FieldPath) && !(fieldPathOrFilter instanceof _Filter)) {
236
+ throw new Error("firebase.firestore().collection().where(*) 'fieldPath' must be a string, instance of FieldPath or instance of Filter.");
237
+ }
238
+ let modifiers;
239
+ if (fieldPathOrFilter instanceof _Filter && fieldPathOrFilter.queries) {
240
+ const filters = generateFilters(fieldPathOrFilter, this._modifiers);
241
+ modifiers = this._modifiers._copy().filterWhere(filters);
242
+ } else {
243
+ let path;
244
+ let op = opStr;
245
+ let val = value;
246
+ if (fieldPathOrFilter instanceof _Filter) {
247
+ op = fieldPathOrFilter.operator;
248
+ val = fieldPathOrFilter.value;
249
+ fieldPathOrFilter = fieldPathOrFilter.fieldPath;
250
+ }
251
+ if (isString(fieldPathOrFilter)) {
252
+ try {
253
+ path = fromDotSeparatedString(fieldPathOrFilter);
254
+ } catch (e) {
255
+ throw new Error(`firebase.firestore().collection().where(*) 'fieldPath' ${e.message}.`);
256
+ }
257
+ } else {
258
+ path = fieldPathOrFilter;
259
+ }
260
+ if (!this._modifiers.isValidOperator(op)) {
261
+ throw new Error("firebase.firestore().collection().where(_, *) 'opStr' is invalid. Expected one of '==', '>', '>=', '<', '<=', '!=', 'array-contains', 'not-in', 'array-contains-any' or 'in'.");
262
+ }
263
+ if (isUndefined(val)) {
264
+ throw new Error("firebase.firestore().collection().where(_, _, *) 'value' argument expected.");
265
+ }
266
+ if (isNull(val) && !this._modifiers.isEqualOperator(op) && !this._modifiers.isNotEqualOperator(op)) {
267
+ throw new Error("firebase.firestore().collection().where(_, _, *) 'value' is invalid. You can only perform equals comparisons on null");
268
+ }
269
+ if (this._modifiers.isInOperator(op)) {
270
+ if (!isArray(val) || !val.length) {
271
+ throw new Error(`firebase.firestore().collection().where(_, _, *) 'value' is invalid. A non-empty array is required for '${op}' filters.`);
272
+ }
273
+ if (val.length > 30) {
274
+ throw new Error(`firebase.firestore().collection().where(_, _, *) 'value' is invalid. '${op}' filters support a maximum of 30 elements in the value array.`);
275
+ }
276
+ }
277
+ modifiers = this._modifiers._copy().where(path, op, val);
278
+ }
279
+ try {
280
+ modifiers.validateWhere();
281
+ } catch (e) {
282
+ throw new Error(`firebase.firestore().collection().where() ${e.message}`);
283
+ }
284
+ return createDeprecationProxy(new Query(this._firestore, this._collectionPath, modifiers, this._queryName, this._converter));
285
+ }
286
+ withConverter(converter) {
287
+ if (isUndefined(converter) || isNull(converter)) {
288
+ return new Query(this._firestore, this._collectionPath, this._modifiers, this._queryName, null);
289
+ }
290
+ try {
291
+ validateWithConverter(converter);
292
+ } catch (e) {
293
+ throw new Error(`firebase.firestore().collection().withConverter() ${e.message}`);
294
+ }
295
+ return new Query(this._firestore, this._collectionPath, this._modifiers, this._queryName, converter);
296
+ }
297
+ }
298
+ //# sourceMappingURL=FirestoreQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createDeprecationProxy","filterModularArgument","isArray","isNull","isObject","isString","isUndefined","NativeError","AggregateQuery","DocumentSnapshot","FieldPath","fromDotSeparatedString","_Filter","generateFilters","QuerySnapshot","parseSnapshotArgs","validateWithConverter","_id","Query","type","constructor","firestore","collectionPath","modifiers","queryName","converter","_firestore","_collectionPath","_modifiers","_queryName","_converter","_handleQueryCursor","cursor","docOrField","fields","_copy","Error","length","documentSnapshot","exists","currentOrders","orders","values","i","order","pathStr","Array","fieldPath","join","String","value","get","undefined","push","_orders","lastOrder","lastPathStr","_toPath","direction","isCollectionGroupQuery","ref","path","id","setFieldsCursor","allFields","concat","count","countFromServer","endAt","endBefore","options","source","native","namedQueryGet","filters","then","data","validatelimitToLast","collectionGet","relativeName","isEqual","other","app","name","Object","keys","JSON","stringify","limit","isValidLimit","limitToLast","isValidLimitToLast","onSnapshot","args","snapshotListenOptions","callback","onNext","onError","e","message","handleSuccess","querySnapshot","handleError","error","listenerId","onSnapshotSubscription","emitter","addListener","eventNameForApp","event","body","fromEvent","snapshot","unsubscribe","remove","collectionOffSnapshot","namedQueryOnSnapshot","collectionOnSnapshot","orderBy","directionStr","isValidDirection","hasStart","hasEnd","validateOrderBy","startAfter","startAt","where","fieldPathOrFilter","opStr","queries","filterWhere","op","val","operator","isValidOperator","isEqualOperator","isNotEqualOperator","isInOperator","validateWhere","withConverter"],"sourceRoot":"../../lib","sources":["FirestoreQuery.ts"],"mappings":"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","ignoreList":[]}