@legendapp/state 3.0.0-alpha.1 → 3.0.0-alpha.3

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 (327) hide show
  1. package/.DS_Store +0 -0
  2. package/CHANGELOG.md +1 -831
  3. package/LICENSE +1 -21
  4. package/README.md +1 -141
  5. package/as/arrayAsRecord.d.mts +5 -0
  6. package/as/arrayAsRecord.d.ts +5 -0
  7. package/as/arrayAsRecord.js +28 -0
  8. package/as/arrayAsRecord.mjs +26 -0
  9. package/as/arrayAsSet.d.mts +5 -0
  10. package/as/arrayAsSet.d.ts +5 -0
  11. package/as/arrayAsSet.js +13 -0
  12. package/as/arrayAsSet.mjs +11 -0
  13. package/as/arrayAsString.d.mts +5 -0
  14. package/as/arrayAsString.d.ts +5 -0
  15. package/as/arrayAsString.js +13 -0
  16. package/as/arrayAsString.mjs +11 -0
  17. package/as/numberAsString.d.mts +5 -0
  18. package/as/numberAsString.d.ts +5 -0
  19. package/as/numberAsString.js +13 -0
  20. package/as/numberAsString.mjs +11 -0
  21. package/as/recordAsArray.d.mts +5 -0
  22. package/as/recordAsArray.d.ts +5 -0
  23. package/as/recordAsArray.js +25 -0
  24. package/as/recordAsArray.mjs +23 -0
  25. package/as/recordAsString.d.mts +5 -0
  26. package/as/recordAsString.d.ts +5 -0
  27. package/as/recordAsString.js +13 -0
  28. package/as/recordAsString.mjs +11 -0
  29. package/as/setAsArray.d.mts +5 -0
  30. package/as/setAsArray.d.ts +5 -0
  31. package/as/setAsArray.js +13 -0
  32. package/as/setAsArray.mjs +11 -0
  33. package/as/setAsString.d.mts +5 -0
  34. package/as/setAsString.d.ts +5 -0
  35. package/as/setAsString.js +13 -0
  36. package/as/setAsString.mjs +11 -0
  37. package/as/stringAsArray.d.mts +5 -0
  38. package/as/stringAsArray.d.ts +5 -0
  39. package/as/stringAsArray.js +13 -0
  40. package/as/stringAsArray.mjs +11 -0
  41. package/as/stringAsNumber.d.mts +5 -0
  42. package/as/stringAsNumber.d.ts +5 -0
  43. package/as/stringAsNumber.js +16 -0
  44. package/as/stringAsNumber.mjs +14 -0
  45. package/as/stringAsRecord.d.mts +5 -0
  46. package/as/stringAsRecord.d.ts +5 -0
  47. package/as/stringAsRecord.js +15 -0
  48. package/as/stringAsRecord.mjs +13 -0
  49. package/as/stringAsSet.d.mts +5 -0
  50. package/as/stringAsSet.d.ts +5 -0
  51. package/as/stringAsSet.js +13 -0
  52. package/as/stringAsSet.mjs +11 -0
  53. package/babel.d.mts +21 -0
  54. package/babel.d.ts +21 -2
  55. package/babel.js +57 -53
  56. package/babel.mjs +65 -0
  57. package/config/enable$GetSet.js +13 -14
  58. package/config/enable$GetSet.mjs +13 -14
  59. package/config/enableReactComponents.d.mts +9 -0
  60. package/config/enableReactComponents.d.ts +4 -2
  61. package/config/enableReactComponents.js +13 -10
  62. package/config/enableReactComponents.mjs +13 -10
  63. package/config/enableReactNativeComponents.d.mts +22 -0
  64. package/config/enableReactNativeComponents.d.ts +6 -4
  65. package/config/enableReactNativeComponents.js +43 -47
  66. package/config/enableReactNativeComponents.mjs +43 -47
  67. package/config/enableReactTracking.d.mts +7 -0
  68. package/config/enableReactTracking.d.ts +3 -2
  69. package/config/enableReactTracking.js +33 -38
  70. package/config/enableReactTracking.mjs +33 -38
  71. package/config/enableReactUse.d.mts +10 -0
  72. package/config/enableReactUse.d.ts +4 -1
  73. package/config/enableReactUse.js +15 -14
  74. package/config/enableReactUse.mjs +15 -14
  75. package/config/{enable$GetSet.d.ts → enable_GetSet.d.mts} +4 -2
  76. package/config/enable_GetSet.d.ts +10 -0
  77. package/config/enable_PeekAssign.d.mts +10 -0
  78. package/config/enable_PeekAssign.d.ts +4 -2
  79. package/config/enable_PeekAssign.js +13 -14
  80. package/config/enable_PeekAssign.mjs +13 -14
  81. package/helpers/pageHash.d.mts +9 -0
  82. package/helpers/pageHash.d.ts +2 -0
  83. package/helpers/pageHash.js +25 -30
  84. package/helpers/pageHash.mjs +25 -30
  85. package/helpers/pageHashParams.d.mts +9 -0
  86. package/helpers/pageHashParams.d.ts +2 -0
  87. package/helpers/pageHashParams.js +34 -37
  88. package/helpers/pageHashParams.mjs +34 -37
  89. package/helpers/time.d.mts +6 -0
  90. package/helpers/time.d.ts +6 -3
  91. package/helpers/time.js +17 -17
  92. package/helpers/time.mjs +17 -17
  93. package/helpers/trackHistory.d.mts +6 -0
  94. package/helpers/trackHistory.d.ts +4 -2
  95. package/helpers/trackHistory.js +13 -16
  96. package/helpers/trackHistory.mjs +13 -16
  97. package/helpers/undoRedo.d.mts +37 -0
  98. package/helpers/undoRedo.d.ts +5 -3
  99. package/helpers/undoRedo.js +59 -94
  100. package/helpers/undoRedo.mjs +59 -94
  101. package/index.d.mts +404 -0
  102. package/index.d.ts +371 -28
  103. package/index.js +2015 -2166
  104. package/index.mjs +2015 -2166
  105. package/package.json +254 -195
  106. package/persist-plugins/async-storage.d.mts +18 -0
  107. package/persist-plugins/async-storage.d.ts +6 -3
  108. package/persist-plugins/async-storage.js +79 -86
  109. package/persist-plugins/async-storage.mjs +79 -86
  110. package/persist-plugins/indexeddb.d.mts +29 -0
  111. package/persist-plugins/indexeddb.d.ts +6 -3
  112. package/persist-plugins/indexeddb.js +331 -352
  113. package/persist-plugins/indexeddb.mjs +331 -352
  114. package/persist-plugins/local-storage.d.mts +23 -0
  115. package/persist-plugins/local-storage.d.ts +8 -5
  116. package/persist-plugins/local-storage.js +74 -76
  117. package/persist-plugins/local-storage.mjs +74 -76
  118. package/persist-plugins/mmkv.d.mts +18 -0
  119. package/persist-plugins/mmkv.d.ts +6 -3
  120. package/persist-plugins/mmkv.js +82 -86
  121. package/persist-plugins/mmkv.mjs +82 -86
  122. package/react-hooks/createObservableHook.d.mts +5 -0
  123. package/react-hooks/createObservableHook.d.ts +4 -1
  124. package/react-hooks/createObservableHook.js +29 -30
  125. package/react-hooks/createObservableHook.mjs +25 -30
  126. package/react-hooks/useHover.d.mts +5 -0
  127. package/react-hooks/useHover.d.ts +5 -3
  128. package/react-hooks/useHover.js +29 -29
  129. package/react-hooks/useHover.mjs +29 -29
  130. package/react-hooks/useMeasure.d.mts +9 -0
  131. package/react-hooks/useMeasure.d.ts +5 -2
  132. package/react-hooks/useMeasure.js +30 -32
  133. package/react-hooks/useMeasure.mjs +30 -32
  134. package/react-hooks/useObservableNextRouter.d.mts +35 -0
  135. package/react-hooks/useObservableNextRouter.d.ts +9 -7
  136. package/react-hooks/useObservableNextRouter.js +64 -77
  137. package/react-hooks/useObservableNextRouter.mjs +60 -77
  138. package/react.d.mts +157 -0
  139. package/react.d.ts +157 -21
  140. package/react.js +458 -749
  141. package/react.mjs +457 -752
  142. package/sync-plugins/crud.d.mts +54 -0
  143. package/sync-plugins/crud.d.ts +12 -10
  144. package/sync-plugins/crud.js +253 -270
  145. package/sync-plugins/crud.mjs +253 -270
  146. package/sync-plugins/fetch.d.mts +21 -0
  147. package/sync-plugins/fetch.d.ts +7 -4
  148. package/sync-plugins/fetch.js +50 -37
  149. package/sync-plugins/fetch.mjs +50 -37
  150. package/sync-plugins/keel.d.mts +108 -0
  151. package/sync-plugins/keel.d.ts +17 -15
  152. package/sync-plugins/keel.js +229 -462
  153. package/sync-plugins/keel.mjs +227 -464
  154. package/sync-plugins/supabase.d.mts +39 -0
  155. package/sync-plugins/supabase.d.ts +16 -14
  156. package/sync-plugins/supabase.js +128 -128
  157. package/sync-plugins/supabase.mjs +128 -128
  158. package/sync-plugins/tanstack-query.d.mts +14 -0
  159. package/sync-plugins/tanstack-query.d.ts +7 -4
  160. package/sync-plugins/tanstack-query.js +51 -57
  161. package/sync-plugins/tanstack-query.mjs +51 -57
  162. package/sync-plugins/tanstack-react-query.d.mts +8 -0
  163. package/sync-plugins/tanstack-react-query.d.ts +6 -1
  164. package/sync-plugins/tanstack-react-query.js +2 -2
  165. package/sync-plugins/tanstack-react-query.mjs +2 -2
  166. package/sync.d.mts +351 -0
  167. package/sync.d.ts +349 -9
  168. package/sync.js +910 -964
  169. package/sync.mjs +920 -974
  170. package/trace.d.mts +9 -0
  171. package/trace.d.ts +9 -4
  172. package/trace.js +72 -62
  173. package/trace.mjs +72 -62
  174. package/types/babel.d.ts +1 -12
  175. package/babel.js.map +0 -1
  176. package/config/enable$GetSet.js.map +0 -1
  177. package/config/enable$GetSet.mjs.map +0 -1
  178. package/config/enableReactComponents.js.map +0 -1
  179. package/config/enableReactComponents.mjs.map +0 -1
  180. package/config/enableReactNativeComponents.js.map +0 -1
  181. package/config/enableReactNativeComponents.mjs.map +0 -1
  182. package/config/enableReactTracking.js.map +0 -1
  183. package/config/enableReactTracking.mjs.map +0 -1
  184. package/config/enableReactUse.js.map +0 -1
  185. package/config/enableReactUse.mjs.map +0 -1
  186. package/config/enable_PeekAssign.js.map +0 -1
  187. package/config/enable_PeekAssign.mjs.map +0 -1
  188. package/helpers/pageHash.js.map +0 -1
  189. package/helpers/pageHash.mjs.map +0 -1
  190. package/helpers/pageHashParams.js.map +0 -1
  191. package/helpers/pageHashParams.mjs.map +0 -1
  192. package/helpers/time.js.map +0 -1
  193. package/helpers/time.mjs.map +0 -1
  194. package/helpers/trackHistory.js.map +0 -1
  195. package/helpers/trackHistory.mjs.map +0 -1
  196. package/helpers/undoRedo.js.map +0 -1
  197. package/helpers/undoRedo.mjs.map +0 -1
  198. package/history.d.ts +0 -1
  199. package/history.js +0 -24
  200. package/history.js.map +0 -1
  201. package/history.mjs +0 -22
  202. package/history.mjs.map +0 -1
  203. package/index.js.map +0 -1
  204. package/index.mjs.map +0 -1
  205. package/persist-plugins/async-storage.js.map +0 -1
  206. package/persist-plugins/async-storage.mjs.map +0 -1
  207. package/persist-plugins/indexeddb.js.map +0 -1
  208. package/persist-plugins/indexeddb.mjs.map +0 -1
  209. package/persist-plugins/local-storage.js.map +0 -1
  210. package/persist-plugins/local-storage.mjs.map +0 -1
  211. package/persist-plugins/mmkv.js.map +0 -1
  212. package/persist-plugins/mmkv.mjs.map +0 -1
  213. package/react-hooks/createObservableHook.js.map +0 -1
  214. package/react-hooks/createObservableHook.mjs.map +0 -1
  215. package/react-hooks/useHover.js.map +0 -1
  216. package/react-hooks/useHover.mjs.map +0 -1
  217. package/react-hooks/useMeasure.js.map +0 -1
  218. package/react-hooks/useMeasure.mjs.map +0 -1
  219. package/react-hooks/useObservableNextRouter.js.map +0 -1
  220. package/react-hooks/useObservableNextRouter.mjs.map +0 -1
  221. package/react.js.map +0 -1
  222. package/react.mjs.map +0 -1
  223. package/src/ObservableObject.ts +0 -1350
  224. package/src/ObservablePrimitive.ts +0 -62
  225. package/src/babel/index.ts +0 -83
  226. package/src/batching.ts +0 -357
  227. package/src/computed.ts +0 -18
  228. package/src/config/enable$GetSet.ts +0 -30
  229. package/src/config/enableReactComponents.ts +0 -26
  230. package/src/config/enableReactNativeComponents.ts +0 -102
  231. package/src/config/enableReactTracking.ts +0 -62
  232. package/src/config/enableReactUse.ts +0 -32
  233. package/src/config/enable_PeekAssign.ts +0 -31
  234. package/src/config.ts +0 -47
  235. package/src/createObservable.ts +0 -47
  236. package/src/event.ts +0 -26
  237. package/src/globals.ts +0 -235
  238. package/src/helpers/pageHash.ts +0 -41
  239. package/src/helpers/pageHashParams.ts +0 -55
  240. package/src/helpers/time.ts +0 -30
  241. package/src/helpers/trackHistory.ts +0 -29
  242. package/src/helpers/undoRedo.ts +0 -111
  243. package/src/helpers.ts +0 -231
  244. package/src/is.ts +0 -63
  245. package/src/linked.ts +0 -17
  246. package/src/observable.ts +0 -32
  247. package/src/observableInterfaces.ts +0 -151
  248. package/src/observableTypes.ts +0 -232
  249. package/src/observe.ts +0 -89
  250. package/src/old-plugins/firebase.ts +0 -1053
  251. package/src/onChange.ts +0 -146
  252. package/src/persist/configureObservablePersistence.ts +0 -7
  253. package/src/persist/fieldTransformer.ts +0 -149
  254. package/src/persist/observablePersistRemoteFunctionsAdapter.ts +0 -39
  255. package/src/persist/persistObservable.ts +0 -1034
  256. package/src/persist-plugins/async-storage.ts +0 -99
  257. package/src/persist-plugins/indexeddb.ts +0 -439
  258. package/src/persist-plugins/local-storage.ts +0 -86
  259. package/src/persist-plugins/mmkv.ts +0 -91
  260. package/src/proxy.ts +0 -28
  261. package/src/react/Computed.tsx +0 -8
  262. package/src/react/For.tsx +0 -116
  263. package/src/react/Memo.tsx +0 -4
  264. package/src/react/Reactive.tsx +0 -53
  265. package/src/react/Show.tsx +0 -33
  266. package/src/react/Switch.tsx +0 -43
  267. package/src/react/react-globals.ts +0 -3
  268. package/src/react/reactInterfaces.ts +0 -32
  269. package/src/react/reactive-observer.tsx +0 -210
  270. package/src/react/useComputed.ts +0 -36
  271. package/src/react/useEffectOnce.ts +0 -41
  272. package/src/react/useIsMounted.ts +0 -16
  273. package/src/react/useMount.ts +0 -15
  274. package/src/react/useObservable.ts +0 -24
  275. package/src/react/useObservableReducer.ts +0 -52
  276. package/src/react/useObservableState.ts +0 -30
  277. package/src/react/useObserve.ts +0 -54
  278. package/src/react/useObserveEffect.ts +0 -40
  279. package/src/react/usePauseProvider.tsx +0 -16
  280. package/src/react/useSelector.ts +0 -167
  281. package/src/react/useUnmount.ts +0 -8
  282. package/src/react/useWhen.ts +0 -9
  283. package/src/react-hooks/createObservableHook.ts +0 -53
  284. package/src/react-hooks/useHover.ts +0 -40
  285. package/src/react-hooks/useMeasure.ts +0 -48
  286. package/src/react-hooks/useObservableNextRouter.ts +0 -137
  287. package/src/retry.ts +0 -71
  288. package/src/setupTracking.ts +0 -26
  289. package/src/sync/activateSyncedNode.ts +0 -128
  290. package/src/sync/configureObservableSync.ts +0 -7
  291. package/src/sync/persistTypes.ts +0 -216
  292. package/src/sync/syncHelpers.ts +0 -180
  293. package/src/sync/syncObservable.ts +0 -1056
  294. package/src/sync/syncObservableAdapter.ts +0 -31
  295. package/src/sync/syncTypes.ts +0 -189
  296. package/src/sync/synced.ts +0 -21
  297. package/src/sync-plugins/crud.ts +0 -412
  298. package/src/sync-plugins/fetch.ts +0 -80
  299. package/src/sync-plugins/keel.ts +0 -495
  300. package/src/sync-plugins/supabase.ts +0 -249
  301. package/src/sync-plugins/tanstack-query.ts +0 -113
  302. package/src/sync-plugins/tanstack-react-query.ts +0 -12
  303. package/src/trace/traceHelpers.ts +0 -11
  304. package/src/trace/useTraceListeners.ts +0 -34
  305. package/src/trace/useTraceUpdates.ts +0 -24
  306. package/src/trace/useVerifyNotTracking.ts +0 -33
  307. package/src/trace/useVerifyOneRender.ts +0 -10
  308. package/src/trackSelector.ts +0 -52
  309. package/src/tracking.ts +0 -43
  310. package/src/types/babel.d.ts +0 -12
  311. package/src/when.ts +0 -75
  312. package/sync-plugins/crud.js.map +0 -1
  313. package/sync-plugins/crud.mjs.map +0 -1
  314. package/sync-plugins/fetch.js.map +0 -1
  315. package/sync-plugins/fetch.mjs.map +0 -1
  316. package/sync-plugins/keel.js.map +0 -1
  317. package/sync-plugins/keel.mjs.map +0 -1
  318. package/sync-plugins/supabase.js.map +0 -1
  319. package/sync-plugins/supabase.mjs.map +0 -1
  320. package/sync-plugins/tanstack-query.js.map +0 -1
  321. package/sync-plugins/tanstack-query.mjs.map +0 -1
  322. package/sync-plugins/tanstack-react-query.js.map +0 -1
  323. package/sync-plugins/tanstack-react-query.mjs.map +0 -1
  324. package/sync.js.map +0 -1
  325. package/sync.mjs.map +0 -1
  326. package/trace.js.map +0 -1
  327. package/trace.mjs.map +0 -1
@@ -0,0 +1,39 @@
1
+ import { Observable } from '@legendapp/state';
2
+ import { SyncedOptions, SyncedOptionsGlobal, SyncedGetParams } from '@legendapp/state/sync';
3
+ import { SyncedCrudPropsBase, CrudAsOption, SyncedCrudReturnType, SyncedCrudPropsMany } from '@legendapp/state/sync-plugins/crud';
4
+ import { PostgrestQueryBuilder, PostgrestFilterBuilder } from '@supabase/postgrest-js';
5
+ import { SupabaseClient } from '@supabase/supabase-js';
6
+
7
+ type SupabaseSchemaOf<Client extends SupabaseClient> = Client extends SupabaseClient<infer _, infer __, infer Schema> ? Schema : never;
8
+ type SupabaseTableOf<Client extends SupabaseClient> = SupabaseSchemaOf<Client>['Tables'];
9
+ type SupabaseCollectionOf<Client extends SupabaseClient> = keyof SupabaseTableOf<Client>;
10
+ type SupabaseRowOf<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client>> = SupabaseTableOf<Client>[Collection]['Row'];
11
+ type SyncedSupabaseConfig<TRemote extends {
12
+ id: string | number;
13
+ }, TLocal> = Omit<SyncedCrudPropsBase<TRemote, TLocal>, 'create' | 'update' | 'delete'>;
14
+ interface SyncedSupabaseConfiguration extends Omit<SyncedSupabaseConfig<{
15
+ id: string | number;
16
+ }, {
17
+ id: string | number;
18
+ }>, 'persist' | keyof SyncedOptions> {
19
+ persist?: SyncedOptionsGlobal;
20
+ enabled?: Observable<boolean>;
21
+ as?: Exclude<CrudAsOption, 'value'>;
22
+ }
23
+ interface SyncedSupabaseProps<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client>, TOption extends CrudAsOption = 'object', TRemote extends SupabaseRowOf<Client, Collection> = SupabaseRowOf<Client, Collection>, TLocal = TRemote> extends SyncedSupabaseConfig<TRemote, TLocal>, SyncedCrudPropsMany<TRemote, TRemote, TOption> {
24
+ supabase: Client;
25
+ collection: Collection;
26
+ select?: (query: PostgrestQueryBuilder<SupabaseSchemaOf<Client>, SupabaseTableOf<Client>[Collection], Collection>) => PostgrestFilterBuilder<SupabaseSchemaOf<Client>, TRemote, TRemote[], Collection, []>;
27
+ filter?: (select: PostgrestFilterBuilder<SupabaseSchemaOf<Client>, TRemote, TRemote[], Collection, []>, params: SyncedGetParams) => PostgrestFilterBuilder<SupabaseSchemaOf<Client>, TRemote, TRemote[], Collection, []>;
28
+ actions?: ('create' | 'read' | 'update' | 'delete')[];
29
+ realtime?: boolean | {
30
+ schema?: string;
31
+ filter?: string;
32
+ };
33
+ stringifyDates?: boolean;
34
+ }
35
+ declare function getSyncedSupabaseConfiguration(): SyncedSupabaseConfiguration;
36
+ declare function configureSyncedSupabase(config: SyncedSupabaseConfiguration): void;
37
+ declare function syncedSupabase<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client> & string, AsOption extends CrudAsOption = 'object', TRemote extends SupabaseRowOf<Client, Collection> = SupabaseRowOf<Client, Collection>, TLocal = TRemote>(props: SyncedSupabaseProps<Client, Collection, AsOption, TRemote, TLocal>): SyncedCrudReturnType<TLocal, AsOption>;
38
+
39
+ export { type SupabaseCollectionOf, type SupabaseRowOf, type SupabaseSchemaOf, type SupabaseTableOf, type SyncedSupabaseConfig, type SyncedSupabaseConfiguration, configureSyncedSupabase, getSyncedSupabaseConfiguration, syncedSupabase };
@@ -1,16 +1,17 @@
1
1
  import { Observable } from '@legendapp/state';
2
- import { SyncedOptions, SyncedOptionsGlobal, type SyncedGetParams } from '@legendapp/state/sync';
3
- import { CrudAsOption, SyncedCrudPropsBase, SyncedCrudPropsMany, SyncedCrudReturnType } from '@legendapp/state/sync-plugins/crud';
4
- import type { PostgrestFilterBuilder, PostgrestQueryBuilder } from '@supabase/postgrest-js';
5
- import type { SupabaseClient } from '@supabase/supabase-js';
6
- export type SupabaseSchemaOf<Client extends SupabaseClient> = Client extends SupabaseClient<infer _, infer __, infer Schema> ? Schema : never;
7
- export type SupabaseTableOf<Client extends SupabaseClient> = SupabaseSchemaOf<Client>['Tables'];
8
- export type SupabaseCollectionOf<Client extends SupabaseClient> = keyof SupabaseTableOf<Client>;
9
- export type SupabaseRowOf<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client>> = SupabaseTableOf<Client>[Collection]['Row'];
10
- export type SyncedSupabaseConfig<TRemote extends {
2
+ import { SyncedOptions, SyncedOptionsGlobal, SyncedGetParams } from '@legendapp/state/sync';
3
+ import { SyncedCrudPropsBase, CrudAsOption, SyncedCrudReturnType, SyncedCrudPropsMany } from '@legendapp/state/sync-plugins/crud';
4
+ import { PostgrestQueryBuilder, PostgrestFilterBuilder } from '@supabase/postgrest-js';
5
+ import { SupabaseClient } from '@supabase/supabase-js';
6
+
7
+ type SupabaseSchemaOf<Client extends SupabaseClient> = Client extends SupabaseClient<infer _, infer __, infer Schema> ? Schema : never;
8
+ type SupabaseTableOf<Client extends SupabaseClient> = SupabaseSchemaOf<Client>['Tables'];
9
+ type SupabaseCollectionOf<Client extends SupabaseClient> = keyof SupabaseTableOf<Client>;
10
+ type SupabaseRowOf<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client>> = SupabaseTableOf<Client>[Collection]['Row'];
11
+ type SyncedSupabaseConfig<TRemote extends {
11
12
  id: string | number;
12
13
  }, TLocal> = Omit<SyncedCrudPropsBase<TRemote, TLocal>, 'create' | 'update' | 'delete'>;
13
- export interface SyncedSupabaseConfiguration extends Omit<SyncedSupabaseConfig<{
14
+ interface SyncedSupabaseConfiguration extends Omit<SyncedSupabaseConfig<{
14
15
  id: string | number;
15
16
  }, {
16
17
  id: string | number;
@@ -31,7 +32,8 @@ interface SyncedSupabaseProps<Client extends SupabaseClient, Collection extends
31
32
  };
32
33
  stringifyDates?: boolean;
33
34
  }
34
- export declare function getSyncedSupabaseConfiguration(): SyncedSupabaseConfiguration;
35
- export declare function configureSyncedSupabase(config: SyncedSupabaseConfiguration): void;
36
- export declare function syncedSupabase<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client> & string, AsOption extends CrudAsOption = 'object', TRemote extends SupabaseRowOf<Client, Collection> = SupabaseRowOf<Client, Collection>, TLocal = TRemote>(props: SyncedSupabaseProps<Client, Collection, AsOption, TRemote, TLocal>): SyncedCrudReturnType<TLocal, AsOption>;
37
- export {};
35
+ declare function getSyncedSupabaseConfiguration(): SyncedSupabaseConfiguration;
36
+ declare function configureSyncedSupabase(config: SyncedSupabaseConfiguration): void;
37
+ declare function syncedSupabase<Client extends SupabaseClient, Collection extends SupabaseCollectionOf<Client> & string, AsOption extends CrudAsOption = 'object', TRemote extends SupabaseRowOf<Client, Collection> = SupabaseRowOf<Client, Collection>, TLocal = TRemote>(props: SyncedSupabaseProps<Client, Collection, AsOption, TRemote, TLocal>): SyncedCrudReturnType<TLocal, AsOption>;
38
+
39
+ export { type SupabaseCollectionOf, type SupabaseRowOf, type SupabaseSchemaOf, type SupabaseTableOf, type SyncedSupabaseConfig, type SyncedSupabaseConfiguration, configureSyncedSupabase, getSyncedSupabaseConfiguration, syncedSupabase };
@@ -4,142 +4,142 @@ var state = require('@legendapp/state');
4
4
  var sync = require('@legendapp/state/sync');
5
5
  var crud = require('@legendapp/state/sync-plugins/crud');
6
6
 
7
- let channelNum = 1;
8
- const supabaseConfig = {};
9
- const isEnabled$ = state.observable(true);
7
+ // src/sync-plugins/supabase.ts
8
+ var channelNum = 1;
9
+ var supabaseConfig = {};
10
+ var isEnabled$ = state.observable(true);
10
11
  function getSyncedSupabaseConfiguration() {
11
- return supabaseConfig;
12
+ return supabaseConfig;
12
13
  }
13
14
  function configureSyncedSupabase(config) {
14
- const { enabled, ...rest } = config;
15
- if (enabled !== undefined) {
16
- isEnabled$.set(enabled);
17
- }
18
- Object.assign(supabaseConfig, sync.removeNullUndefined(rest));
15
+ const { enabled, ...rest } = config;
16
+ if (enabled !== void 0) {
17
+ isEnabled$.set(enabled);
18
+ }
19
+ Object.assign(supabaseConfig, sync.removeNullUndefined(rest));
19
20
  }
20
21
  function syncedSupabase(props) {
21
- props = { ...supabaseConfig, ...props };
22
- const { supabase: client, collection, select: selectFn, filter, actions, fieldCreatedAt: fieldCreatedAtParam, fieldUpdatedAt: fieldUpdatedAtParam, fieldDeleted: fieldDeletedParam, realtime, changesSince, transform: transformParam, stringifyDates, waitFor, waitForSet, generateId, ...rest } = props;
23
- // If using last-sync mode then put it into soft delete mode
24
- const fieldCreatedAt = fieldCreatedAtParam || (changesSince === 'last-sync' ? 'created_at' : undefined);
25
- const fieldUpdatedAt = fieldUpdatedAtParam || (changesSince === 'last-sync' ? 'updated_at' : undefined);
26
- const fieldDeleted = fieldDeletedParam || (changesSince === 'last-sync' ? 'deleted' : undefined);
27
- const list = !actions || actions.includes('read')
28
- ? async (params) => {
29
- const { lastSync } = params;
30
- const from = client.from(collection);
31
- let select = selectFn ? selectFn(from) : from.select();
32
- // in last-sync mode, filter for rows updated more recently than the last sync
33
- if (changesSince === 'last-sync' && lastSync) {
34
- const date = new Date(lastSync).toISOString();
35
- select = select.gt(fieldUpdatedAt, date);
36
- }
37
- // filter with filter parameter
38
- if (filter) {
39
- select = filter(select, params);
40
- }
41
- const { data, error } = await select;
42
- if (error) {
43
- throw new Error(error === null || error === void 0 ? void 0 : error.message);
44
- }
45
- return (data || []);
46
- }
47
- : undefined;
48
- const upsert = async (input) => {
49
- const res = await client.from(collection).upsert(input).select();
50
- const { data, error } = res;
51
- if (data) {
52
- const created = data[0];
53
- return created;
54
- }
55
- else {
56
- throw new Error(error === null || error === void 0 ? void 0 : error.message);
57
- }
58
- };
59
- const create = !actions || actions.includes('create') ? upsert : undefined;
60
- const update = !actions || actions.includes('update') ? upsert : undefined;
61
- const deleteFn = !fieldDeleted && (!actions || actions.includes('delete'))
62
- ? async (input) => {
63
- const id = input.id;
64
- const res = await client.from(collection).delete().eq('id', id).select();
65
- const { data, error } = res;
66
- if (data) {
67
- const created = data[0];
68
- return created;
69
- }
70
- else {
71
- throw new Error(error === null || error === void 0 ? void 0 : error.message);
72
- }
73
- }
74
- : undefined;
75
- const subscribe = realtime
76
- ? ({ node, value$, update }) => {
77
- const { filter, schema } = (state.isObject(realtime) ? realtime : {});
78
- const channel = client
79
- .channel(`LS_${node.key || ''}${channelNum++}`)
80
- .on('postgres_changes', {
81
- event: '*',
82
- table: collection,
83
- schema: schema || 'public',
84
- filter: filter || undefined,
85
- }, (payload) => {
86
- var _a;
87
- const { eventType, new: value, old } = payload;
88
- if (eventType === 'INSERT' || eventType === 'UPDATE') {
89
- const cur = (_a = value$.peek()) === null || _a === void 0 ? void 0 : _a[value.id];
90
- const curDateStr = cur &&
91
- ((fieldUpdatedAt && cur[fieldUpdatedAt]) ||
92
- fieldCreatedAt ||
93
- cur[fieldCreatedAt]);
94
- const valueDateStr = (fieldUpdatedAt && value[fieldUpdatedAt]) ||
95
- (fieldCreatedAt && value[fieldCreatedAt]);
96
- const valueDate = +new Date(valueDateStr);
97
- // Check if new or newer than last seen locally
98
- if (valueDateStr && (!curDateStr || valueDate > +new Date(curDateStr))) {
99
- // Update local with the new value
100
- update({
101
- value: { [value.id]: value },
102
- lastSync: valueDate,
103
- mode: 'merge',
104
- });
105
- }
106
- }
107
- else if (eventType === 'DELETE') {
108
- const { id } = old;
109
- update({
110
- value: { [id]: state.symbolDelete },
111
- });
112
- }
113
- })
114
- .subscribe();
115
- return channel.unsubscribe;
116
- }
117
- : undefined;
118
- let transform = transformParam;
119
- if (stringifyDates) {
120
- const stringifier = sync.transformStringifyDates();
121
- transform = transform ? sync.combineTransforms(stringifier, transform) : stringifier;
22
+ props = { ...supabaseConfig, ...props };
23
+ const {
24
+ supabase: client,
25
+ collection,
26
+ select: selectFn,
27
+ filter,
28
+ actions,
29
+ fieldCreatedAt: fieldCreatedAtParam,
30
+ fieldUpdatedAt: fieldUpdatedAtParam,
31
+ fieldDeleted: fieldDeletedParam,
32
+ realtime,
33
+ changesSince,
34
+ transform: transformParam,
35
+ stringifyDates,
36
+ waitFor,
37
+ waitForSet,
38
+ generateId,
39
+ ...rest
40
+ } = props;
41
+ const fieldCreatedAt = fieldCreatedAtParam || (changesSince === "last-sync" ? "created_at" : void 0);
42
+ const fieldUpdatedAt = fieldUpdatedAtParam || (changesSince === "last-sync" ? "updated_at" : void 0);
43
+ const fieldDeleted = fieldDeletedParam || (changesSince === "last-sync" ? "deleted" : void 0);
44
+ const list = !actions || actions.includes("read") ? async (params) => {
45
+ const { lastSync } = params;
46
+ const from = client.from(collection);
47
+ let select = selectFn ? selectFn(from) : from.select();
48
+ if (changesSince === "last-sync" && lastSync) {
49
+ const date = new Date(lastSync).toISOString();
50
+ select = select.gt(fieldUpdatedAt, date);
122
51
  }
123
- return crud.syncedCrud({
124
- ...rest,
125
- list,
126
- create,
127
- update,
128
- delete: deleteFn,
129
- subscribe,
130
- fieldCreatedAt,
131
- fieldUpdatedAt,
132
- fieldDeleted,
133
- updatePartial: false,
134
- onSavedUpdate: 'createdUpdatedAt',
135
- transform,
136
- generateId,
137
- waitFor: () => isEnabled$.get() && (waitFor ? state.computeSelector(waitFor) : true),
138
- waitForSet,
139
- });
52
+ if (filter) {
53
+ select = filter(select, params);
54
+ }
55
+ const { data, error } = await select;
56
+ if (error) {
57
+ throw new Error(error == null ? void 0 : error.message);
58
+ }
59
+ return data || [];
60
+ } : void 0;
61
+ const upsert = async (input) => {
62
+ const res = await client.from(collection).upsert(input).select();
63
+ const { data, error } = res;
64
+ if (data) {
65
+ const created = data[0];
66
+ return created;
67
+ } else {
68
+ throw new Error(error == null ? void 0 : error.message);
69
+ }
70
+ };
71
+ const create = !actions || actions.includes("create") ? upsert : void 0;
72
+ const update = !actions || actions.includes("update") ? upsert : void 0;
73
+ const deleteFn = !fieldDeleted && (!actions || actions.includes("delete")) ? async (input) => {
74
+ const id = input.id;
75
+ const res = await client.from(collection).delete().eq("id", id).select();
76
+ const { data, error } = res;
77
+ if (data) {
78
+ const created = data[0];
79
+ return created;
80
+ } else {
81
+ throw new Error(error == null ? void 0 : error.message);
82
+ }
83
+ } : void 0;
84
+ const subscribe = realtime ? ({ node, value$, update: update2 }) => {
85
+ const { filter: filter2, schema } = state.isObject(realtime) ? realtime : {};
86
+ const channel = client.channel(`LS_${node.key || ""}${channelNum++}`).on(
87
+ "postgres_changes",
88
+ {
89
+ event: "*",
90
+ table: collection,
91
+ schema: schema || "public",
92
+ filter: filter2 || void 0
93
+ },
94
+ (payload) => {
95
+ var _a;
96
+ const { eventType, new: value, old } = payload;
97
+ if (eventType === "INSERT" || eventType === "UPDATE") {
98
+ const cur = (_a = value$.peek()) == null ? void 0 : _a[value.id];
99
+ const curDateStr = cur && (fieldUpdatedAt && cur[fieldUpdatedAt] || fieldCreatedAt || cur[fieldCreatedAt]);
100
+ const valueDateStr = fieldUpdatedAt && value[fieldUpdatedAt] || fieldCreatedAt && value[fieldCreatedAt];
101
+ const valueDate = +new Date(valueDateStr);
102
+ if (valueDateStr && (!curDateStr || valueDate > +new Date(curDateStr))) {
103
+ update2({
104
+ value: { [value.id]: value },
105
+ lastSync: valueDate,
106
+ mode: "merge"
107
+ });
108
+ }
109
+ } else if (eventType === "DELETE") {
110
+ const { id } = old;
111
+ update2({
112
+ value: { [id]: state.symbolDelete }
113
+ });
114
+ }
115
+ }
116
+ ).subscribe();
117
+ return channel.unsubscribe;
118
+ } : void 0;
119
+ let transform = transformParam;
120
+ if (stringifyDates) {
121
+ const stringifier = sync.transformStringifyDates();
122
+ transform = transform ? sync.combineTransforms(stringifier, transform) : stringifier;
123
+ }
124
+ return crud.syncedCrud({
125
+ ...rest,
126
+ list,
127
+ create,
128
+ update,
129
+ delete: deleteFn,
130
+ subscribe,
131
+ fieldCreatedAt,
132
+ fieldUpdatedAt,
133
+ fieldDeleted,
134
+ updatePartial: false,
135
+ onSavedUpdate: "createdUpdatedAt",
136
+ transform,
137
+ generateId,
138
+ waitFor: () => isEnabled$.get() && (waitFor ? state.computeSelector(waitFor) : true),
139
+ waitForSet
140
+ });
140
141
  }
141
142
 
142
143
  exports.configureSyncedSupabase = configureSyncedSupabase;
143
144
  exports.getSyncedSupabaseConfiguration = getSyncedSupabaseConfiguration;
144
145
  exports.syncedSupabase = syncedSupabase;
145
- //# sourceMappingURL=supabase.js.map
@@ -2,140 +2,140 @@ import { observable, computeSelector, isObject, symbolDelete } from '@legendapp/
2
2
  import { removeNullUndefined, transformStringifyDates, combineTransforms } from '@legendapp/state/sync';
3
3
  import { syncedCrud } from '@legendapp/state/sync-plugins/crud';
4
4
 
5
- let channelNum = 1;
6
- const supabaseConfig = {};
7
- const isEnabled$ = observable(true);
5
+ // src/sync-plugins/supabase.ts
6
+ var channelNum = 1;
7
+ var supabaseConfig = {};
8
+ var isEnabled$ = observable(true);
8
9
  function getSyncedSupabaseConfiguration() {
9
- return supabaseConfig;
10
+ return supabaseConfig;
10
11
  }
11
12
  function configureSyncedSupabase(config) {
12
- const { enabled, ...rest } = config;
13
- if (enabled !== undefined) {
14
- isEnabled$.set(enabled);
15
- }
16
- Object.assign(supabaseConfig, removeNullUndefined(rest));
13
+ const { enabled, ...rest } = config;
14
+ if (enabled !== void 0) {
15
+ isEnabled$.set(enabled);
16
+ }
17
+ Object.assign(supabaseConfig, removeNullUndefined(rest));
17
18
  }
18
19
  function syncedSupabase(props) {
19
- props = { ...supabaseConfig, ...props };
20
- const { supabase: client, collection, select: selectFn, filter, actions, fieldCreatedAt: fieldCreatedAtParam, fieldUpdatedAt: fieldUpdatedAtParam, fieldDeleted: fieldDeletedParam, realtime, changesSince, transform: transformParam, stringifyDates, waitFor, waitForSet, generateId, ...rest } = props;
21
- // If using last-sync mode then put it into soft delete mode
22
- const fieldCreatedAt = fieldCreatedAtParam || (changesSince === 'last-sync' ? 'created_at' : undefined);
23
- const fieldUpdatedAt = fieldUpdatedAtParam || (changesSince === 'last-sync' ? 'updated_at' : undefined);
24
- const fieldDeleted = fieldDeletedParam || (changesSince === 'last-sync' ? 'deleted' : undefined);
25
- const list = !actions || actions.includes('read')
26
- ? async (params) => {
27
- const { lastSync } = params;
28
- const from = client.from(collection);
29
- let select = selectFn ? selectFn(from) : from.select();
30
- // in last-sync mode, filter for rows updated more recently than the last sync
31
- if (changesSince === 'last-sync' && lastSync) {
32
- const date = new Date(lastSync).toISOString();
33
- select = select.gt(fieldUpdatedAt, date);
34
- }
35
- // filter with filter parameter
36
- if (filter) {
37
- select = filter(select, params);
38
- }
39
- const { data, error } = await select;
40
- if (error) {
41
- throw new Error(error === null || error === void 0 ? void 0 : error.message);
42
- }
43
- return (data || []);
44
- }
45
- : undefined;
46
- const upsert = async (input) => {
47
- const res = await client.from(collection).upsert(input).select();
48
- const { data, error } = res;
49
- if (data) {
50
- const created = data[0];
51
- return created;
52
- }
53
- else {
54
- throw new Error(error === null || error === void 0 ? void 0 : error.message);
55
- }
56
- };
57
- const create = !actions || actions.includes('create') ? upsert : undefined;
58
- const update = !actions || actions.includes('update') ? upsert : undefined;
59
- const deleteFn = !fieldDeleted && (!actions || actions.includes('delete'))
60
- ? async (input) => {
61
- const id = input.id;
62
- const res = await client.from(collection).delete().eq('id', id).select();
63
- const { data, error } = res;
64
- if (data) {
65
- const created = data[0];
66
- return created;
67
- }
68
- else {
69
- throw new Error(error === null || error === void 0 ? void 0 : error.message);
70
- }
71
- }
72
- : undefined;
73
- const subscribe = realtime
74
- ? ({ node, value$, update }) => {
75
- const { filter, schema } = (isObject(realtime) ? realtime : {});
76
- const channel = client
77
- .channel(`LS_${node.key || ''}${channelNum++}`)
78
- .on('postgres_changes', {
79
- event: '*',
80
- table: collection,
81
- schema: schema || 'public',
82
- filter: filter || undefined,
83
- }, (payload) => {
84
- var _a;
85
- const { eventType, new: value, old } = payload;
86
- if (eventType === 'INSERT' || eventType === 'UPDATE') {
87
- const cur = (_a = value$.peek()) === null || _a === void 0 ? void 0 : _a[value.id];
88
- const curDateStr = cur &&
89
- ((fieldUpdatedAt && cur[fieldUpdatedAt]) ||
90
- fieldCreatedAt ||
91
- cur[fieldCreatedAt]);
92
- const valueDateStr = (fieldUpdatedAt && value[fieldUpdatedAt]) ||
93
- (fieldCreatedAt && value[fieldCreatedAt]);
94
- const valueDate = +new Date(valueDateStr);
95
- // Check if new or newer than last seen locally
96
- if (valueDateStr && (!curDateStr || valueDate > +new Date(curDateStr))) {
97
- // Update local with the new value
98
- update({
99
- value: { [value.id]: value },
100
- lastSync: valueDate,
101
- mode: 'merge',
102
- });
103
- }
104
- }
105
- else if (eventType === 'DELETE') {
106
- const { id } = old;
107
- update({
108
- value: { [id]: symbolDelete },
109
- });
110
- }
111
- })
112
- .subscribe();
113
- return channel.unsubscribe;
114
- }
115
- : undefined;
116
- let transform = transformParam;
117
- if (stringifyDates) {
118
- const stringifier = transformStringifyDates();
119
- transform = transform ? combineTransforms(stringifier, transform) : stringifier;
20
+ props = { ...supabaseConfig, ...props };
21
+ const {
22
+ supabase: client,
23
+ collection,
24
+ select: selectFn,
25
+ filter,
26
+ actions,
27
+ fieldCreatedAt: fieldCreatedAtParam,
28
+ fieldUpdatedAt: fieldUpdatedAtParam,
29
+ fieldDeleted: fieldDeletedParam,
30
+ realtime,
31
+ changesSince,
32
+ transform: transformParam,
33
+ stringifyDates,
34
+ waitFor,
35
+ waitForSet,
36
+ generateId,
37
+ ...rest
38
+ } = props;
39
+ const fieldCreatedAt = fieldCreatedAtParam || (changesSince === "last-sync" ? "created_at" : void 0);
40
+ const fieldUpdatedAt = fieldUpdatedAtParam || (changesSince === "last-sync" ? "updated_at" : void 0);
41
+ const fieldDeleted = fieldDeletedParam || (changesSince === "last-sync" ? "deleted" : void 0);
42
+ const list = !actions || actions.includes("read") ? async (params) => {
43
+ const { lastSync } = params;
44
+ const from = client.from(collection);
45
+ let select = selectFn ? selectFn(from) : from.select();
46
+ if (changesSince === "last-sync" && lastSync) {
47
+ const date = new Date(lastSync).toISOString();
48
+ select = select.gt(fieldUpdatedAt, date);
120
49
  }
121
- return syncedCrud({
122
- ...rest,
123
- list,
124
- create,
125
- update,
126
- delete: deleteFn,
127
- subscribe,
128
- fieldCreatedAt,
129
- fieldUpdatedAt,
130
- fieldDeleted,
131
- updatePartial: false,
132
- onSavedUpdate: 'createdUpdatedAt',
133
- transform,
134
- generateId,
135
- waitFor: () => isEnabled$.get() && (waitFor ? computeSelector(waitFor) : true),
136
- waitForSet,
137
- });
50
+ if (filter) {
51
+ select = filter(select, params);
52
+ }
53
+ const { data, error } = await select;
54
+ if (error) {
55
+ throw new Error(error == null ? void 0 : error.message);
56
+ }
57
+ return data || [];
58
+ } : void 0;
59
+ const upsert = async (input) => {
60
+ const res = await client.from(collection).upsert(input).select();
61
+ const { data, error } = res;
62
+ if (data) {
63
+ const created = data[0];
64
+ return created;
65
+ } else {
66
+ throw new Error(error == null ? void 0 : error.message);
67
+ }
68
+ };
69
+ const create = !actions || actions.includes("create") ? upsert : void 0;
70
+ const update = !actions || actions.includes("update") ? upsert : void 0;
71
+ const deleteFn = !fieldDeleted && (!actions || actions.includes("delete")) ? async (input) => {
72
+ const id = input.id;
73
+ const res = await client.from(collection).delete().eq("id", id).select();
74
+ const { data, error } = res;
75
+ if (data) {
76
+ const created = data[0];
77
+ return created;
78
+ } else {
79
+ throw new Error(error == null ? void 0 : error.message);
80
+ }
81
+ } : void 0;
82
+ const subscribe = realtime ? ({ node, value$, update: update2 }) => {
83
+ const { filter: filter2, schema } = isObject(realtime) ? realtime : {};
84
+ const channel = client.channel(`LS_${node.key || ""}${channelNum++}`).on(
85
+ "postgres_changes",
86
+ {
87
+ event: "*",
88
+ table: collection,
89
+ schema: schema || "public",
90
+ filter: filter2 || void 0
91
+ },
92
+ (payload) => {
93
+ var _a;
94
+ const { eventType, new: value, old } = payload;
95
+ if (eventType === "INSERT" || eventType === "UPDATE") {
96
+ const cur = (_a = value$.peek()) == null ? void 0 : _a[value.id];
97
+ const curDateStr = cur && (fieldUpdatedAt && cur[fieldUpdatedAt] || fieldCreatedAt || cur[fieldCreatedAt]);
98
+ const valueDateStr = fieldUpdatedAt && value[fieldUpdatedAt] || fieldCreatedAt && value[fieldCreatedAt];
99
+ const valueDate = +new Date(valueDateStr);
100
+ if (valueDateStr && (!curDateStr || valueDate > +new Date(curDateStr))) {
101
+ update2({
102
+ value: { [value.id]: value },
103
+ lastSync: valueDate,
104
+ mode: "merge"
105
+ });
106
+ }
107
+ } else if (eventType === "DELETE") {
108
+ const { id } = old;
109
+ update2({
110
+ value: { [id]: symbolDelete }
111
+ });
112
+ }
113
+ }
114
+ ).subscribe();
115
+ return channel.unsubscribe;
116
+ } : void 0;
117
+ let transform = transformParam;
118
+ if (stringifyDates) {
119
+ const stringifier = transformStringifyDates();
120
+ transform = transform ? combineTransforms(stringifier, transform) : stringifier;
121
+ }
122
+ return syncedCrud({
123
+ ...rest,
124
+ list,
125
+ create,
126
+ update,
127
+ delete: deleteFn,
128
+ subscribe,
129
+ fieldCreatedAt,
130
+ fieldUpdatedAt,
131
+ fieldDeleted,
132
+ updatePartial: false,
133
+ onSavedUpdate: "createdUpdatedAt",
134
+ transform,
135
+ generateId,
136
+ waitFor: () => isEnabled$.get() && (waitFor ? computeSelector(waitFor) : true),
137
+ waitForSet
138
+ });
138
139
  }
139
140
 
140
141
  export { configureSyncedSupabase, getSyncedSupabaseConfiguration, syncedSupabase };
141
- //# sourceMappingURL=supabase.mjs.map
@@ -0,0 +1,14 @@
1
+ import { SyncedOptions } from '@legendapp/state/sync';
2
+ import { QueryKey, QueryObserverOptions, QueryClient, MutationObserverOptions, DefaultError } from '@tanstack/query-core';
3
+
4
+ interface ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends Omit<QueryObserverOptions<TQueryFnData, TError, TData, TQueryKey>, 'queryKey'> {
5
+ queryKey?: TQueryKey | (() => TQueryKey);
6
+ }
7
+ interface SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey extends QueryKey> extends SyncedOptions<TData> {
8
+ queryClient: QueryClient;
9
+ query: ObservableQueryOptions<TQueryFnData, TError, TData, TQueryKey>;
10
+ mutation?: MutationObserverOptions<TData, TError, void>;
11
+ }
12
+ declare function syncedQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey>(params: SyncedQueryParams<TQueryFnData, TError, TData, TQueryKey>): NonNullable<TData>;
13
+
14
+ export { type ObservableQueryOptions, type SyncedQueryParams, syncedQuery };