@dittolive/ditto 4.5.0 → 4.5.1-experimental.aarch64-linux.1.aarch64

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 (289) hide show
  1. package/README.md +2 -2
  2. package/node/ditto.cjs.js +2 -9620
  3. package/node/{ditto.linux-x64.node → ditto.linux-arm64.node} +0 -0
  4. package/package.json +38 -34
  5. package/types/ditto.d.ts +0 -2
  6. package/web/ditto.es6.js +1 -1
  7. package/web/ditto.umd.js +1 -1
  8. package/web/ditto.wasm +0 -0
  9. package/DittoReactNative.podspec +0 -27
  10. package/node/ditto.darwin-arm64.node +0 -0
  11. package/node/ditto.darwin-x64.node +0 -0
  12. package/node/ditto.linux-arm.node +0 -0
  13. package/node/ditto.win32-x64.node +0 -0
  14. package/node/transports.darwin-arm64.node +0 -0
  15. package/node/transports.darwin-x64.node +0 -0
  16. package/react-native/android/CMakeLists.txt +0 -37
  17. package/react-native/android/build.gradle +0 -203
  18. package/react-native/android/cpp-adapter.cpp +0 -254
  19. package/react-native/android/gradle.properties +0 -5
  20. package/react-native/android/src/main/AndroidManifest.xml +0 -4
  21. package/react-native/android/src/main/java/com/dittolive/rnsdk/DittoRNSDKModule.java +0 -85
  22. package/react-native/android/src/main/java/com/dittolive/rnsdk/DittoRNSDKPackage.java +0 -28
  23. package/react-native/boost/boost/assert.hpp +0 -85
  24. package/react-native/boost/boost/config/abi/borland_prefix.hpp +0 -27
  25. package/react-native/boost/boost/config/abi/borland_suffix.hpp +0 -12
  26. package/react-native/boost/boost/config/abi/msvc_prefix.hpp +0 -22
  27. package/react-native/boost/boost/config/abi/msvc_suffix.hpp +0 -8
  28. package/react-native/boost/boost/config/abi_prefix.hpp +0 -25
  29. package/react-native/boost/boost/config/abi_suffix.hpp +0 -25
  30. package/react-native/boost/boost/config/assert_cxx03.hpp +0 -211
  31. package/react-native/boost/boost/config/assert_cxx11.hpp +0 -209
  32. package/react-native/boost/boost/config/assert_cxx14.hpp +0 -47
  33. package/react-native/boost/boost/config/assert_cxx17.hpp +0 -62
  34. package/react-native/boost/boost/config/assert_cxx20.hpp +0 -59
  35. package/react-native/boost/boost/config/assert_cxx98.hpp +0 -23
  36. package/react-native/boost/boost/config/auto_link.hpp +0 -525
  37. package/react-native/boost/boost/config/compiler/borland.hpp +0 -339
  38. package/react-native/boost/boost/config/compiler/clang.hpp +0 -366
  39. package/react-native/boost/boost/config/compiler/clang_version.hpp +0 -83
  40. package/react-native/boost/boost/config/compiler/codegear.hpp +0 -385
  41. package/react-native/boost/boost/config/compiler/comeau.hpp +0 -59
  42. package/react-native/boost/boost/config/compiler/common_edg.hpp +0 -183
  43. package/react-native/boost/boost/config/compiler/compaq_cxx.hpp +0 -19
  44. package/react-native/boost/boost/config/compiler/cray.hpp +0 -446
  45. package/react-native/boost/boost/config/compiler/diab.hpp +0 -26
  46. package/react-native/boost/boost/config/compiler/digitalmars.hpp +0 -143
  47. package/react-native/boost/boost/config/compiler/gcc.hpp +0 -383
  48. package/react-native/boost/boost/config/compiler/gcc_xml.hpp +0 -114
  49. package/react-native/boost/boost/config/compiler/greenhills.hpp +0 -28
  50. package/react-native/boost/boost/config/compiler/hp_acc.hpp +0 -149
  51. package/react-native/boost/boost/config/compiler/intel.hpp +0 -577
  52. package/react-native/boost/boost/config/compiler/kai.hpp +0 -33
  53. package/react-native/boost/boost/config/compiler/metrowerks.hpp +0 -198
  54. package/react-native/boost/boost/config/compiler/mpw.hpp +0 -140
  55. package/react-native/boost/boost/config/compiler/nvcc.hpp +0 -61
  56. package/react-native/boost/boost/config/compiler/pathscale.hpp +0 -138
  57. package/react-native/boost/boost/config/compiler/pgi.hpp +0 -23
  58. package/react-native/boost/boost/config/compiler/sgi_mipspro.hpp +0 -29
  59. package/react-native/boost/boost/config/compiler/sunpro_cc.hpp +0 -222
  60. package/react-native/boost/boost/config/compiler/vacpp.hpp +0 -186
  61. package/react-native/boost/boost/config/compiler/visualc.hpp +0 -391
  62. package/react-native/boost/boost/config/compiler/xlcpp.hpp +0 -299
  63. package/react-native/boost/boost/config/compiler/xlcpp_zos.hpp +0 -173
  64. package/react-native/boost/boost/config/detail/cxx_composite.hpp +0 -203
  65. package/react-native/boost/boost/config/detail/posix_features.hpp +0 -95
  66. package/react-native/boost/boost/config/detail/select_compiler_config.hpp +0 -157
  67. package/react-native/boost/boost/config/detail/select_platform_config.hpp +0 -147
  68. package/react-native/boost/boost/config/detail/select_stdlib_config.hpp +0 -121
  69. package/react-native/boost/boost/config/detail/suffix.hpp +0 -1294
  70. package/react-native/boost/boost/config/header_deprecated.hpp +0 -26
  71. package/react-native/boost/boost/config/helper_macros.hpp +0 -37
  72. package/react-native/boost/boost/config/no_tr1/cmath.hpp +0 -28
  73. package/react-native/boost/boost/config/no_tr1/complex.hpp +0 -28
  74. package/react-native/boost/boost/config/no_tr1/functional.hpp +0 -28
  75. package/react-native/boost/boost/config/no_tr1/memory.hpp +0 -28
  76. package/react-native/boost/boost/config/no_tr1/utility.hpp +0 -28
  77. package/react-native/boost/boost/config/platform/aix.hpp +0 -33
  78. package/react-native/boost/boost/config/platform/amigaos.hpp +0 -15
  79. package/react-native/boost/boost/config/platform/beos.hpp +0 -26
  80. package/react-native/boost/boost/config/platform/bsd.hpp +0 -83
  81. package/react-native/boost/boost/config/platform/cloudabi.hpp +0 -18
  82. package/react-native/boost/boost/config/platform/cray.hpp +0 -18
  83. package/react-native/boost/boost/config/platform/cygwin.hpp +0 -71
  84. package/react-native/boost/boost/config/platform/haiku.hpp +0 -31
  85. package/react-native/boost/boost/config/platform/hpux.hpp +0 -87
  86. package/react-native/boost/boost/config/platform/irix.hpp +0 -31
  87. package/react-native/boost/boost/config/platform/linux.hpp +0 -106
  88. package/react-native/boost/boost/config/platform/macos.hpp +0 -87
  89. package/react-native/boost/boost/config/platform/qnxnto.hpp +0 -31
  90. package/react-native/boost/boost/config/platform/solaris.hpp +0 -31
  91. package/react-native/boost/boost/config/platform/symbian.hpp +0 -97
  92. package/react-native/boost/boost/config/platform/vms.hpp +0 -25
  93. package/react-native/boost/boost/config/platform/vxworks.hpp +0 -422
  94. package/react-native/boost/boost/config/platform/wasm.hpp +0 -23
  95. package/react-native/boost/boost/config/platform/win32.hpp +0 -90
  96. package/react-native/boost/boost/config/platform/zos.hpp +0 -32
  97. package/react-native/boost/boost/config/pragma_message.hpp +0 -31
  98. package/react-native/boost/boost/config/requires_threads.hpp +0 -92
  99. package/react-native/boost/boost/config/stdlib/dinkumware.hpp +0 -324
  100. package/react-native/boost/boost/config/stdlib/libcomo.hpp +0 -93
  101. package/react-native/boost/boost/config/stdlib/libcpp.hpp +0 -180
  102. package/react-native/boost/boost/config/stdlib/libstdcpp3.hpp +0 -482
  103. package/react-native/boost/boost/config/stdlib/modena.hpp +0 -79
  104. package/react-native/boost/boost/config/stdlib/msl.hpp +0 -98
  105. package/react-native/boost/boost/config/stdlib/roguewave.hpp +0 -208
  106. package/react-native/boost/boost/config/stdlib/sgi.hpp +0 -168
  107. package/react-native/boost/boost/config/stdlib/stlport.hpp +0 -258
  108. package/react-native/boost/boost/config/stdlib/vacpp.hpp +0 -74
  109. package/react-native/boost/boost/config/stdlib/xlcpp_zos.hpp +0 -61
  110. package/react-native/boost/boost/config/user.hpp +0 -133
  111. package/react-native/boost/boost/config/warning_disable.hpp +0 -47
  112. package/react-native/boost/boost/config/workaround.hpp +0 -305
  113. package/react-native/boost/boost/config.hpp +0 -67
  114. package/react-native/boost/boost/cstdint.hpp +0 -556
  115. package/react-native/boost/boost/intrusive_ptr.hpp +0 -18
  116. package/react-native/boost/boost/smart_ptr/detail/atomic_count.hpp +0 -103
  117. package/react-native/boost/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
  118. package/react-native/boost/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
  119. package/react-native/boost/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
  120. package/react-native/boost/boost/smart_ptr/detail/atomic_count_nt.hpp +0 -66
  121. package/react-native/boost/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
  122. package/react-native/boost/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
  123. package/react-native/boost/boost/smart_ptr/detail/atomic_count_std_atomic.hpp +0 -67
  124. package/react-native/boost/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
  125. package/react-native/boost/boost/smart_ptr/detail/atomic_count_win32.hpp +0 -70
  126. package/react-native/boost/boost/smart_ptr/detail/local_counted_base.hpp +0 -148
  127. package/react-native/boost/boost/smart_ptr/detail/local_sp_deleter.hpp +0 -91
  128. package/react-native/boost/boost/smart_ptr/detail/operator_bool.hpp +0 -64
  129. package/react-native/boost/boost/smart_ptr/detail/requires_cxx11.hpp +0 -23
  130. package/react-native/boost/boost/smart_ptr/detail/shared_count.hpp +0 -707
  131. package/react-native/boost/boost/smart_ptr/detail/sp_convertible.hpp +0 -92
  132. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base.hpp +0 -92
  133. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
  134. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
  135. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
  136. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
  137. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
  138. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
  139. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
  140. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
  141. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
  142. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_nt.hpp +0 -119
  143. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
  144. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
  145. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
  146. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +0 -147
  147. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
  148. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
  149. package/react-native/boost/boost/smart_ptr/detail/sp_counted_base_w32.hpp +0 -140
  150. package/react-native/boost/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -309
  151. package/react-native/boost/boost/smart_ptr/detail/sp_disable_deprecated.hpp +0 -40
  152. package/react-native/boost/boost/smart_ptr/detail/sp_forward.hpp +0 -52
  153. package/react-native/boost/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -27
  154. package/react-native/boost/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
  155. package/react-native/boost/boost/smart_ptr/detail/sp_interlocked.hpp +0 -173
  156. package/react-native/boost/boost/smart_ptr/detail/sp_noexcept.hpp +0 -48
  157. package/react-native/boost/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
  158. package/react-native/boost/boost/smart_ptr/detail/sp_obsolete.hpp +0 -32
  159. package/react-native/boost/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  160. package/react-native/boost/boost/smart_ptr/detail/sp_thread_sleep.hpp +0 -104
  161. package/react-native/boost/boost/smart_ptr/detail/sp_thread_yield.hpp +0 -100
  162. package/react-native/boost/boost/smart_ptr/detail/sp_typeinfo_.hpp +0 -58
  163. package/react-native/boost/boost/smart_ptr/detail/sp_win32_sleep.hpp +0 -49
  164. package/react-native/boost/boost/smart_ptr/intrusive_ptr.hpp +0 -409
  165. package/react-native/boost/boost/smart_ptr/intrusive_ref_counter.hpp +0 -188
  166. package/react-native/cpp/include/Attachment.h +0 -16
  167. package/react-native/cpp/include/Authentication.h +0 -23
  168. package/react-native/cpp/include/Collection.h +0 -13
  169. package/react-native/cpp/include/DQL.h +0 -21
  170. package/react-native/cpp/include/Document.h +0 -17
  171. package/react-native/cpp/include/Identity.h +0 -17
  172. package/react-native/cpp/include/Lifecycle.h +0 -16
  173. package/react-native/cpp/include/LiveQuery.h +0 -17
  174. package/react-native/cpp/include/Logger.h +0 -22
  175. package/react-native/cpp/include/Misc.h +0 -26
  176. package/react-native/cpp/include/Presence.h +0 -14
  177. package/react-native/cpp/include/RetainableState.h +0 -24
  178. package/react-native/cpp/include/SmallPeerInfo.h +0 -17
  179. package/react-native/cpp/include/Transports.h +0 -25
  180. package/react-native/cpp/include/TypedArray.hpp +0 -167
  181. package/react-native/cpp/include/Utils.h +0 -61
  182. package/react-native/cpp/include/main.h +0 -10
  183. package/react-native/cpp/src/Attachment.cpp +0 -86
  184. package/react-native/cpp/src/Authentication.cpp +0 -224
  185. package/react-native/cpp/src/Collection.cpp +0 -54
  186. package/react-native/cpp/src/DQL.cpp +0 -254
  187. package/react-native/cpp/src/Document.cpp +0 -146
  188. package/react-native/cpp/src/Identity.cpp +0 -123
  189. package/react-native/cpp/src/Lifecycle.cpp +0 -75
  190. package/react-native/cpp/src/LiveQuery.cpp +0 -64
  191. package/react-native/cpp/src/Logger.cpp +0 -200
  192. package/react-native/cpp/src/Misc.cpp +0 -271
  193. package/react-native/cpp/src/Presence.cpp +0 -77
  194. package/react-native/cpp/src/RetainableState.cpp +0 -15
  195. package/react-native/cpp/src/SmallPeerInfo.cpp +0 -108
  196. package/react-native/cpp/src/Transports.cpp +0 -270
  197. package/react-native/cpp/src/TypedArray.cpp +0 -303
  198. package/react-native/cpp/src/Utils.cpp +0 -138
  199. package/react-native/cpp/src/main.cpp +0 -149
  200. package/react-native/dittoffi/dittoffi.h +0 -4698
  201. package/react-native/dittoffi/ifaddrs.cpp +0 -385
  202. package/react-native/dittoffi/ifaddrs.h +0 -206
  203. package/react-native/ios/DittoRNSDK.h +0 -7
  204. package/react-native/ios/DittoRNSDK.mm +0 -107
  205. package/react-native/ios/YeetJSIUtils.h +0 -60
  206. package/react-native/ios/YeetJSIUtils.mm +0 -196
  207. package/react-native/lib/commonjs/ditto.rn.js +0 -93
  208. package/react-native/lib/commonjs/ditto.rn.js.map +0 -1
  209. package/react-native/lib/commonjs/index.js +0 -14
  210. package/react-native/lib/commonjs/index.js.map +0 -1
  211. package/react-native/lib/module/ditto.rn.js +0 -83
  212. package/react-native/lib/module/ditto.rn.js.map +0 -1
  213. package/react-native/lib/module/index.js +0 -13
  214. package/react-native/lib/module/index.js.map +0 -1
  215. package/react-native/lib/typescript/ditto.rn.d.ts +0 -15
  216. package/react-native/lib/typescript/ditto.rn.d.ts.map +0 -1
  217. package/react-native/lib/typescript/index.d.ts +0 -1
  218. package/react-native/lib/typescript/index.d.ts.map +0 -1
  219. package/react-native/scripts/ruby/include_local_boost.rb +0 -78
  220. package/react-native/src/ditto.rn.ts +0 -91
  221. package/react-native/src/environment/environment.fallback.ts +0 -4
  222. package/react-native/src/index.ts +0 -26
  223. package/react-native/src/sources/@cbor-redux.ts +0 -2
  224. package/react-native/src/sources/@ditto.core.ts +0 -1
  225. package/react-native/src/sources/@environment.ts +0 -2
  226. package/react-native/src/sources/attachment-fetch-event.ts +0 -54
  227. package/react-native/src/sources/attachment-fetcher-manager.ts +0 -129
  228. package/react-native/src/sources/attachment-fetcher.ts +0 -124
  229. package/react-native/src/sources/attachment-token.ts +0 -48
  230. package/react-native/src/sources/attachment.ts +0 -59
  231. package/react-native/src/sources/augment.ts +0 -89
  232. package/react-native/src/sources/authenticator.ts +0 -314
  233. package/react-native/src/sources/base-pending-cursor-operation.ts +0 -237
  234. package/react-native/src/sources/base-pending-id-specific-operation.ts +0 -109
  235. package/react-native/src/sources/bridge.ts +0 -549
  236. package/react-native/src/sources/build-time-constants.ts +0 -4
  237. package/react-native/src/sources/cbor.ts +0 -35
  238. package/react-native/src/sources/collection-interface.ts +0 -67
  239. package/react-native/src/sources/collection.ts +0 -212
  240. package/react-native/src/sources/collections-event.ts +0 -99
  241. package/react-native/src/sources/counter.ts +0 -77
  242. package/react-native/src/sources/ditto.ts +0 -945
  243. package/react-native/src/sources/document-id.ts +0 -159
  244. package/react-native/src/sources/document-path.ts +0 -303
  245. package/react-native/src/sources/document.ts +0 -192
  246. package/react-native/src/sources/epilogue.ts +0 -24
  247. package/react-native/src/sources/error-codes.ts +0 -52
  248. package/react-native/src/sources/error.ts +0 -203
  249. package/react-native/src/sources/essentials.ts +0 -53
  250. package/react-native/src/sources/ffi-error.ts +0 -117
  251. package/react-native/src/sources/ffi.ts +0 -1972
  252. package/react-native/src/sources/identity.ts +0 -163
  253. package/react-native/src/sources/init.ts +0 -70
  254. package/react-native/src/sources/internal.ts +0 -113
  255. package/react-native/src/sources/keep-alive.ts +0 -69
  256. package/react-native/src/sources/key-path.ts +0 -195
  257. package/react-native/src/sources/live-query-event.ts +0 -208
  258. package/react-native/src/sources/live-query-manager.ts +0 -101
  259. package/react-native/src/sources/live-query.ts +0 -164
  260. package/react-native/src/sources/logger.ts +0 -196
  261. package/react-native/src/sources/observer-manager.ts +0 -175
  262. package/react-native/src/sources/observer.ts +0 -77
  263. package/react-native/src/sources/pending-collections-operation.ts +0 -232
  264. package/react-native/src/sources/pending-cursor-operation.ts +0 -218
  265. package/react-native/src/sources/pending-id-specific-operation.ts +0 -216
  266. package/react-native/src/sources/presence-manager.ts +0 -160
  267. package/react-native/src/sources/presence.ts +0 -238
  268. package/react-native/src/sources/query-result-item.ts +0 -116
  269. package/react-native/src/sources/query-result.ts +0 -55
  270. package/react-native/src/sources/register.ts +0 -92
  271. package/react-native/src/sources/small-peer-info.ts +0 -176
  272. package/react-native/src/sources/static-tcp-client.ts +0 -6
  273. package/react-native/src/sources/store-observer.ts +0 -176
  274. package/react-native/src/sources/store.ts +0 -365
  275. package/react-native/src/sources/subscription-manager.ts +0 -98
  276. package/react-native/src/sources/subscription.ts +0 -88
  277. package/react-native/src/sources/sync-subscription.ts +0 -90
  278. package/react-native/src/sources/sync.ts +0 -495
  279. package/react-native/src/sources/test-helpers.ts +0 -24
  280. package/react-native/src/sources/transport-conditions-manager.ts +0 -104
  281. package/react-native/src/sources/transport-config.ts +0 -428
  282. package/react-native/src/sources/update-result.ts +0 -66
  283. package/react-native/src/sources/update-results-map.ts +0 -57
  284. package/react-native/src/sources/websocket-client.ts +0 -6
  285. package/react-native/src/sources/write-transaction-collection.ts +0 -122
  286. package/react-native/src/sources/write-transaction-pending-cursor-operation.ts +0 -101
  287. package/react-native/src/sources/write-transaction-pending-id-specific-operation.ts +0 -72
  288. package/react-native/src/sources/write-transaction.ts +0 -119
  289. package/react-native.config.js +0 -9
@@ -1,67 +0,0 @@
1
- //
2
- // Copyright © 2023 DittoLive Incorporated. All rights reserved.
3
- //
4
-
5
- import type { DocumentValue } from './document'
6
- import type { DocumentID, DocumentIDValue } from './document-id'
7
- import type { WriteStrategy, QueryArguments } from './essentials'
8
- import type { Store } from './store'
9
- import type { BasePendingCursorOperation } from './base-pending-cursor-operation'
10
- import type { BasePendingIDSpecificOperation } from './base-pending-id-specific-operation'
11
-
12
- export type UpsertOptions = {
13
- writeStrategy?: WriteStrategy
14
- }
15
-
16
- export interface CollectionInterface {
17
- /** The name of the collection. */
18
- readonly name: string
19
-
20
- /**
21
- * The store this collection belongs to.
22
- * @internal
23
- */
24
- readonly store: Store
25
-
26
- /**
27
- * Search for documents in this collection using the provided query string.
28
- *
29
- * @param query The query to run against the collection.
30
- * @param queryArgs These arguments replace placeholders in the provided
31
- * query.
32
- */
33
- find(query: string, queryArgs?: QueryArguments): BasePendingCursorOperation
34
-
35
- /**
36
- * Convenience method, equivalent to calling {@link find | find()} and passing
37
- * the query `"true"`.
38
- */
39
- findAll(): BasePendingCursorOperation
40
-
41
- /**
42
- * Find documents given a specific ID.
43
- *
44
- * Use the returned cursor instance to chain operations on the search result.
45
- *
46
- * @param id The document's identifier
47
- */
48
- findByID(id: DocumentID | DocumentIDValue): BasePendingIDSpecificOperation
49
-
50
- /**
51
- * TEMPORARY: helper to deal with non-canonical IDs.
52
- *
53
- * @internal
54
- */
55
- findByIDCBOR(idCBOR: Uint8Array): BasePendingIDSpecificOperation
56
-
57
- /**
58
- * Inserts a new document into the collection and returns its ID. If the
59
- * document already exists, the contents of both are merged by default. You
60
- * can change this by providing a different `writeStrategy` via `options`.
61
- *
62
- * @param value The content of the document to be inserted or updated.
63
- * @param options.writeStrategy Specifies the desired strategy for inserting a
64
- * document, defaults to `'merge'`.
65
- */
66
- upsert(value: DocumentValue, options: UpsertOptions): Promise<DocumentID>
67
- }
@@ -1,212 +0,0 @@
1
- //
2
- // Copyright © 2021 DittoLive Incorporated. All rights reserved.
3
- //
4
-
5
- import * as FFI from './ffi'
6
- import * as Environment from './@environment'
7
-
8
- import { QueryArguments } from './essentials'
9
- import { CBOR } from './cbor'
10
- import { DocumentID } from './document-id'
11
- import { Bridge } from './bridge'
12
- import { Attachment } from './attachment'
13
- import { AttachmentToken } from './attachment-token'
14
- import { AttachmentFetcher } from './attachment-fetcher'
15
- import { PendingCursorOperation } from './pending-cursor-operation'
16
- import { PendingIDSpecificOperation } from './pending-id-specific-operation'
17
-
18
- import { performAsyncToWorkaroundNonAsyncFFIAPI } from './internal'
19
- import { desugarJSObject } from './augment'
20
-
21
- import type { Store } from './store'
22
- import type { DocumentValue } from './document'
23
- import type { DocumentIDValue } from './document-id'
24
- import type { CollectionInterface, UpsertOptions } from './collection-interface'
25
- import type { AttachmentFetchEvent } from './attachment-fetch-event'
26
-
27
- /**
28
- * Represents a collection of a Ditto store.
29
- *
30
- * This is the entrypoint for inserting documents into a collection, as well as
31
- * querying a collection. You can get a collection by calling
32
- * {@link Store.collection | collection()} on a {@link Store} of a {@link Ditto}
33
- * object.
34
- */
35
- export class Collection implements CollectionInterface {
36
- /** The name of the collection. */
37
- readonly name: string
38
-
39
- /** The store this collection belongs to. */
40
- readonly store: Store
41
-
42
- /**
43
- * Generates a {@link PendingCursorOperation} using the provided query.
44
- *
45
- * The returned object can be used to find and return the documents or you can
46
- * chain a call to `observeLocal()` or `subscribe()` if you want to get
47
- * updates about the list of matching documents over time. It can also be used
48
- * to update, remove or evict the matching documents.
49
- *
50
- * You can incorporate dynamic data into the query string with placeholders in
51
- * the form of `$args.my_arg_name`, along with providing an accompanying
52
- * dictionary in the form of `{ "my_arg_name": "some value" }`. The
53
- * placeholders will be appropriately replaced by the corresponding argument
54
- * contained in `queryArgs`. This includes handling things like wrapping
55
- * strings in quotation marks and arrays in square brackets, for example.
56
- *
57
- * Find more information about the query string format in the documentation's
58
- * section on {@link https://docs.ditto.live/javascript/common/concepts/querying Querying}
59
- *
60
- * @param query The query to run against the collection.
61
- * @param queryArgs The arguments to use to replace placeholders in the
62
- * provided query.
63
- */
64
- find(query: string, queryArgs?: QueryArguments): PendingCursorOperation {
65
- return new PendingCursorOperation(query, queryArgs ?? null, this)
66
- }
67
-
68
- findAll(): PendingCursorOperation {
69
- return this.find('true')
70
- }
71
-
72
- /**
73
- * Generates a {@link PendingIDSpecificOperation} with the provided document
74
- * ID.
75
- *
76
- * The returned object can be used to find and return the document or you can
77
- * chain a call to
78
- * {@link PendingIDSpecificOperation.observeLocal | observeLocal()}, or
79
- * {@link PendingIDSpecificOperation.subscribe | subscribe()} if you want to
80
- * get updates about the document over time. It can also be used to update,
81
- * remove or evict the document.
82
- *
83
- * @param id The ID of the document to find.
84
- */
85
- findByID(id: DocumentID | DocumentIDValue): PendingIDSpecificOperation {
86
- const documentID: DocumentID = id instanceof DocumentID ? id : new DocumentID(id)
87
- return new PendingIDSpecificOperation(documentID, this)
88
- }
89
-
90
- async upsert(value: DocumentValue, options: UpsertOptions = {}): Promise<DocumentID> {
91
- const ditto = this.store.ditto
92
- const dittoHandle = Bridge.ditto.handleFor(ditto)
93
-
94
- return ditto.deferCloseAsync(async () => {
95
- const writeStrategy = options.writeStrategy ?? 'merge'
96
-
97
- const documentValueJSON = desugarJSObject(value, true)
98
- const documentValueCBOR = CBOR.encode(documentValueJSON)
99
-
100
- const idCBOR = await performAsyncToWorkaroundNonAsyncFFIAPI(async () => {
101
- return await FFI.collectionInsertValue(dittoHandle.deref(), this.name, documentValueCBOR, writeStrategy, undefined)
102
- })
103
-
104
- return new DocumentID(idCBOR, true)
105
- })
106
- }
107
-
108
- /**
109
- * Creates a new {@link Attachment} object, which can then be inserted into a
110
- * document. Node only, throws when running in the web browser.
111
- *
112
- * The file residing at the provided path will be copied into Ditto's store.
113
- * The {@link Attachment} object that is returned is what you can then use to
114
- * insert an attachment into a document.
115
- *
116
- * You can provide metadata about the attachment, which will be replicated to
117
- * other peers alongside the file attachment.
118
- *
119
- * Below is a snippet to show how you can use the
120
- * {@link newAttachment | newAttachment()} functionality to insert an
121
- * attachment into a document.
122
- *
123
- * ``` JavaScript
124
- * const attachment = await collection.newAttachment('/path/to/my/file.pdf')
125
- * await collection.upsert({ _id: '123', attachment, other: 'some-string' })
126
- * }
127
- * ```
128
- *
129
- * @param pathOrData The path to the file that you want to create an
130
- * attachment with or the raw data.
131
- *
132
- * @param metadata Metadata relating to the attachment.
133
- */
134
- async newAttachment(pathOrData: string | Uint8Array, metadata: { [key: string]: string } = {}): Promise<Attachment> {
135
- const ditto = this.store.ditto
136
- const dittoHandle = Bridge.ditto.handleFor(ditto)
137
-
138
- return ditto.deferCloseAsync(async () => {
139
- const { id, len, handle } = await (async () => {
140
- if (typeof pathOrData === 'string') {
141
- if (Environment.isWebBuild) {
142
- throw new Error(`Can't create attachment from file when running in the browser. Please pass the raw data (as a Uint8Array) instead.`)
143
- }
144
-
145
- if (Environment.isNodeBuild) {
146
- return FFI.dittoNewAttachmentFromFile(dittoHandle.deref(), pathOrData as string, 'Copy')
147
- }
148
- }
149
-
150
- if (pathOrData instanceof Uint8Array) {
151
- return await FFI.dittoNewAttachmentFromBytes(dittoHandle.deref(), pathOrData)
152
- }
153
-
154
- throw new Error(`Can't create new attachment, only file path as string or raw data as Uint8Array are supported, but got: ${typeof pathOrData}, ${pathOrData}`)
155
- })()
156
-
157
- const attachmentTokenJSON = { _id: id, _len: len, _meta: { ...metadata } }
158
- attachmentTokenJSON[FFI.DittoCRDTTypeKey] = FFI.DittoCRDTType.attachment
159
-
160
- const attachmentToken = new AttachmentToken(attachmentTokenJSON)
161
- const attachment = new Attachment(ditto, attachmentToken)
162
-
163
- return Bridge.attachment.bridge(handle, () => attachment)
164
- })
165
- }
166
-
167
- /**
168
- * Trigger an attachment to be downloaded locally to the device and observe
169
- * its progress as it does so.
170
- *
171
- * When you encounter a document that contains an attachment the attachment
172
- * will not automatically be downloaded along with the document. You trigger
173
- * an attachment to be downloaded locally to a device by calling this method.
174
- * It will report events relating to the attachment fetch attempt as it tries
175
- * to download it. The `eventHandler` block may be called multiple times with
176
- * progress events. It will then be called with either a `Completed` event or
177
- * a `Deleted` event. If downloading the attachment succeeds then the
178
- * `Completed` event that the `eventHandler` will be called with will hold a
179
- * reference to the downloaded attachment.
180
- *
181
- * @param token The {@link AttachmentToken} relevant to the attachment that
182
- * you wish to download and observe. Throws if token is invalid.
183
- *
184
- * @param eventHandler An optional callback that will be called when there is
185
- * an update to the status of the attachment fetch attempt.
186
- *
187
- * @return An `AttachmentFetcher` object, which must be kept alive for the
188
- * fetch request to proceed and for you to be notified about the attachment's
189
- * fetch status changes.
190
- */
191
- fetchAttachment(token: AttachmentToken, eventHandler?: (event: AttachmentFetchEvent) => void): AttachmentFetcher {
192
- if (token == null || !(token instanceof AttachmentToken)) {
193
- throw new Error(`Invalid attachment token: ${token}`)
194
- }
195
- const ditto = this.store.ditto
196
- return ditto.deferClose(() => {
197
- return ditto.attachmentFetcherManager.startAttachmentFetcher(token, eventHandler)
198
- })
199
- }
200
-
201
- /** @internal */
202
- constructor(name: string, store: Store) {
203
- this.name = name
204
- this.store = store
205
- }
206
-
207
- /** @internal */
208
- findByIDCBOR(idCBOR: Uint8Array): PendingIDSpecificOperation {
209
- const documentID = new DocumentID(idCBOR, true, true)
210
- return new PendingIDSpecificOperation(documentID, this)
211
- }
212
- }
@@ -1,99 +0,0 @@
1
- //
2
- // Copyright (c) 2020 - 2021 DittoLive Inc. All rights reserved.
3
- //
4
-
5
- import type { Collection } from './collection'
6
- import type { LiveQueryMove } from './live-query-event'
7
-
8
- // -----------------------------------------------------------------------------
9
-
10
- /** @internal */
11
- export interface CollectionsEventParams {
12
- isInitial: boolean
13
- collections: Collection[]
14
- oldCollections: Collection[]
15
- insertions: number[]
16
- deletions: number[]
17
- updates: number[]
18
- moves: LiveQueryMove[]
19
- }
20
-
21
- // -----------------------------------------------------------------------------
22
-
23
- /**
24
- * Provides information about the changes that have occurred in relation to an
25
- * event delivered when observing the collections in a {@link Store}.
26
- *
27
- * It contains information about the collections that are known about as well as
28
- * the collections that were previously known about in the previous event, along
29
- * with information about what collections have been inserted, deleted, updated,
30
- * or moved since the last event.
31
- */
32
- export class CollectionsEvent {
33
- /**
34
- * Indicates whether or not this is the first event to be delivered when
35
- * observing collections in the store.
36
- */
37
- readonly isInitial: boolean
38
-
39
- /**
40
- * A list of all of the known collections.
41
- */
42
- readonly collections: Collection[]
43
-
44
- /**
45
- * A list of all of the known collections at the time the previous event was
46
- * delivered.
47
- */
48
- readonly oldCollections: Collection[]
49
-
50
- /**
51
- * A list of the indexes in the list of currently known about collections at
52
- * which new collections have been inserted.
53
- */
54
- readonly insertions: number[]
55
-
56
- /**
57
- * A list of the indexes in the list of previously known about collections at
58
- * which collections have been removed.
59
- */
60
- readonly deletions: number[]
61
-
62
- /**
63
- * A list of the indexes in the list of currently known about collections at
64
- * which pre-existing collections have been updated.
65
- */
66
- readonly updates: number[]
67
-
68
- /**
69
- * A list of the tuples that provides the indexes, in relation to the list of
70
- * previously known about collections, that already known about collections
71
- * have moved from and the indexes, in relation to the list of currently known
72
- * about collections, that the collections have moved to.
73
- */
74
- readonly moves: LiveQueryMove[]
75
-
76
- /** @internal */
77
- static initial(collections: Collection[]): CollectionsEvent {
78
- return new CollectionsEvent({
79
- isInitial: true,
80
- collections: collections,
81
- oldCollections: [],
82
- insertions: [],
83
- deletions: [],
84
- updates: [],
85
- moves: [],
86
- })
87
- }
88
-
89
- /** @internal */
90
- constructor(params: CollectionsEventParams) {
91
- this.isInitial = params.isInitial
92
- this.collections = params.collections
93
- this.oldCollections = params.oldCollections
94
- this.insertions = params.insertions
95
- this.deletions = params.deletions
96
- this.updates = params.updates
97
- this.moves = params.moves
98
- }
99
- }
@@ -1,77 +0,0 @@
1
- //
2
- // Copyright © 2021 DittoLive Incorporated. All rights reserved.
3
- //
4
-
5
- const privateToken = Symbol('privateConstructorToken')
6
-
7
- /**
8
- * Represents a CRDT counter that can be upserted as part of a document or
9
- * assigned to a property during an update of a document.
10
- */
11
- export class Counter {
12
- /** The value of the counter. */
13
- get value(): number {
14
- return this._value
15
- }
16
-
17
- /**
18
- * Creates a new counter that can be used as part of a document's content.
19
- */
20
- constructor() {
21
- this._value = 0.0
22
- }
23
-
24
- /** @internal */
25
- static '@ditto.create'(mutDoc, path, value) {
26
- // @ts-expect-error - using hidden argument
27
- const counter = mutDoc ? new MutableCounter(privateToken) : new Counter()
28
- counter.mutDoc = mutDoc
29
- counter.path = path
30
- counter._value = value
31
- return counter
32
- }
33
-
34
- protected mutDoc: any
35
- protected path: any
36
- protected _value: number
37
- }
38
-
39
- // -----------------------------------------------------------------------------
40
-
41
- /**
42
- * Represents a mutable CRDT counter that can be incremented by a specific
43
- * amount while updating a document.
44
- *
45
- * This class can't be instantiated directly, it's returned automatically for
46
- * any counter property within an update block via {@link MutableDocumentPath.counter}.
47
- */
48
- export class MutableCounter extends Counter {
49
- /**
50
- * Increments the counter by `amount`, which can be any valid number.
51
- *
52
- * Only valid within the `update` closure of
53
- * {@link PendingCursorOperation.update | PendingCursorOperation.update()} and
54
- * {@link PendingIDSpecificOperation.update | PendingIDSpecificOperation.update()},
55
- * otherwise an exception is thrown.
56
- */
57
- increment(amount: number) {
58
- const mutDoc = this.mutDoc
59
- const path = this.path
60
-
61
- if (!mutDoc) {
62
- throw new Error(`Can't increment counter, only possible within the closure of a collection's update() method.`)
63
- }
64
-
65
- mutDoc.at(path)['@ditto.increment'](amount)
66
- this._value += amount
67
- }
68
-
69
- /** @internal */
70
- protected constructor() {
71
- if (arguments[0] === privateToken) {
72
- super()
73
- } else {
74
- throw new Error(`MutableCounter constructor is for internal use only.`)
75
- }
76
- }
77
- }