tinybase 5.0.0-beta.14 → 5.0.0-beta.16

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 (135) hide show
  1. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  2. package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  3. package/lib/cjs/persisters/persister-electric-sql.cjs +1 -1
  4. package/lib/cjs/persisters/persister-electric-sql.cjs.gz +0 -0
  5. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs +1 -1
  6. package/lib/cjs/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  7. package/lib/cjs/persisters/persister-expo-sqlite.cjs +1 -1
  8. package/lib/cjs/persisters/persister-expo-sqlite.cjs.gz +0 -0
  9. package/lib/cjs/persisters/persister-libsql.cjs +1 -1
  10. package/lib/cjs/persisters/persister-libsql.cjs.gz +0 -0
  11. package/lib/cjs/persisters/persister-powersync.cjs +1 -1
  12. package/lib/cjs/persisters/persister-powersync.cjs.gz +0 -0
  13. package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
  14. package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  15. package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
  16. package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
  17. package/lib/cjs/ui-react.cjs +1 -1
  18. package/lib/cjs/ui-react.cjs.gz +0 -0
  19. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
  20. package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
  21. package/lib/cjs-es6/persisters/persister-electric-sql.cjs +1 -1
  22. package/lib/cjs-es6/persisters/persister-electric-sql.cjs.gz +0 -0
  23. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs +1 -1
  24. package/lib/cjs-es6/persisters/persister-expo-sqlite-next.cjs.gz +0 -0
  25. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs +1 -1
  26. package/lib/cjs-es6/persisters/persister-expo-sqlite.cjs.gz +0 -0
  27. package/lib/cjs-es6/persisters/persister-libsql.cjs +1 -1
  28. package/lib/cjs-es6/persisters/persister-libsql.cjs.gz +0 -0
  29. package/lib/cjs-es6/persisters/persister-powersync.cjs +1 -1
  30. package/lib/cjs-es6/persisters/persister-powersync.cjs.gz +0 -0
  31. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
  32. package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
  33. package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
  34. package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
  35. package/lib/cjs-es6/ui-react.cjs +1 -1
  36. package/lib/cjs-es6/ui-react.cjs.gz +0 -0
  37. package/lib/debug/persisters/persister-browser.js +4 -7
  38. package/lib/debug/persisters/persister-cr-sqlite-wasm.js +55 -48
  39. package/lib/debug/persisters/persister-electric-sql.js +55 -48
  40. package/lib/debug/persisters/persister-expo-sqlite-next.js +55 -48
  41. package/lib/debug/persisters/persister-expo-sqlite.js +55 -48
  42. package/lib/debug/persisters/persister-file.js +3 -7
  43. package/lib/debug/persisters/persister-libsql.js +55 -48
  44. package/lib/debug/persisters/persister-powersync.js +55 -48
  45. package/lib/debug/persisters/persister-sqlite-wasm.js +55 -48
  46. package/lib/debug/persisters/persister-sqlite3.js +55 -48
  47. package/lib/debug/synchronizers/synchronizer-ws-client.js +3 -7
  48. package/lib/debug/ui-react-dom.js +3 -7
  49. package/lib/debug/ui-react.js +6 -5
  50. package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  51. package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  52. package/lib/es6/persisters/persister-electric-sql.js +1 -1
  53. package/lib/es6/persisters/persister-electric-sql.js.gz +0 -0
  54. package/lib/es6/persisters/persister-expo-sqlite-next.js +1 -1
  55. package/lib/es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  56. package/lib/es6/persisters/persister-expo-sqlite.js +1 -1
  57. package/lib/es6/persisters/persister-expo-sqlite.js.gz +0 -0
  58. package/lib/es6/persisters/persister-libsql.js +1 -1
  59. package/lib/es6/persisters/persister-libsql.js.gz +0 -0
  60. package/lib/es6/persisters/persister-powersync.js +1 -1
  61. package/lib/es6/persisters/persister-powersync.js.gz +0 -0
  62. package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
  63. package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  64. package/lib/es6/persisters/persister-sqlite3.js +1 -1
  65. package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
  66. package/lib/es6/ui-react.js +1 -1
  67. package/lib/es6/ui-react.js.gz +0 -0
  68. package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
  69. package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  70. package/lib/persisters/persister-electric-sql.js +1 -1
  71. package/lib/persisters/persister-electric-sql.js.gz +0 -0
  72. package/lib/persisters/persister-expo-sqlite-next.js +1 -1
  73. package/lib/persisters/persister-expo-sqlite-next.js.gz +0 -0
  74. package/lib/persisters/persister-expo-sqlite.js +1 -1
  75. package/lib/persisters/persister-expo-sqlite.js.gz +0 -0
  76. package/lib/persisters/persister-libsql.js +1 -1
  77. package/lib/persisters/persister-libsql.js.gz +0 -0
  78. package/lib/persisters/persister-powersync.js +1 -1
  79. package/lib/persisters/persister-powersync.js.gz +0 -0
  80. package/lib/persisters/persister-sqlite-wasm.js +1 -1
  81. package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
  82. package/lib/persisters/persister-sqlite3.js +1 -1
  83. package/lib/persisters/persister-sqlite3.js.gz +0 -0
  84. package/lib/types/persisters/persister-expo-sqlite-next.d.ts +1 -1
  85. package/lib/types/persisters/persister-expo-sqlite.d.ts +1 -1
  86. package/lib/types/persisters/persister-sqlite-wasm.d.ts +1 -1
  87. package/lib/types/persisters/persister-sqlite3.d.ts +1 -1
  88. package/lib/types/persisters.d.ts +18 -7
  89. package/lib/types/ui-react.d.ts +26 -25
  90. package/lib/types/with-schemas/persisters/persister-expo-sqlite-next.d.ts +1 -1
  91. package/lib/types/with-schemas/persisters/persister-expo-sqlite.d.ts +1 -1
  92. package/lib/types/with-schemas/persisters/persister-sqlite-wasm.d.ts +1 -1
  93. package/lib/types/with-schemas/persisters/persister-sqlite3.d.ts +1 -1
  94. package/lib/types/with-schemas/persisters.d.ts +18 -7
  95. package/lib/types/with-schemas/ui-react.d.ts +33 -32
  96. package/lib/ui-react.js +1 -1
  97. package/lib/ui-react.js.gz +0 -0
  98. package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
  99. package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  100. package/lib/umd/persisters/persister-electric-sql.js +1 -1
  101. package/lib/umd/persisters/persister-electric-sql.js.gz +0 -0
  102. package/lib/umd/persisters/persister-expo-sqlite-next.js +1 -1
  103. package/lib/umd/persisters/persister-expo-sqlite-next.js.gz +0 -0
  104. package/lib/umd/persisters/persister-expo-sqlite.js +1 -1
  105. package/lib/umd/persisters/persister-expo-sqlite.js.gz +0 -0
  106. package/lib/umd/persisters/persister-libsql.js +1 -1
  107. package/lib/umd/persisters/persister-libsql.js.gz +0 -0
  108. package/lib/umd/persisters/persister-powersync.js +1 -1
  109. package/lib/umd/persisters/persister-powersync.js.gz +0 -0
  110. package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
  111. package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
  112. package/lib/umd/persisters/persister-sqlite3.js +1 -1
  113. package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
  114. package/lib/umd/ui-react.js +1 -1
  115. package/lib/umd/ui-react.js.gz +0 -0
  116. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
  117. package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
  118. package/lib/umd-es6/persisters/persister-electric-sql.js +1 -1
  119. package/lib/umd-es6/persisters/persister-electric-sql.js.gz +0 -0
  120. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js +1 -1
  121. package/lib/umd-es6/persisters/persister-expo-sqlite-next.js.gz +0 -0
  122. package/lib/umd-es6/persisters/persister-expo-sqlite.js +1 -1
  123. package/lib/umd-es6/persisters/persister-expo-sqlite.js.gz +0 -0
  124. package/lib/umd-es6/persisters/persister-libsql.js +1 -1
  125. package/lib/umd-es6/persisters/persister-libsql.js.gz +0 -0
  126. package/lib/umd-es6/persisters/persister-powersync.js +1 -1
  127. package/lib/umd-es6/persisters/persister-powersync.js.gz +0 -0
  128. package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
  129. package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
  130. package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
  131. package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
  132. package/lib/umd-es6/ui-react.js +1 -1
  133. package/lib/umd-es6/ui-react.js.gz +0 -0
  134. package/package.json +26 -26
  135. package/readme.md +2 -2
@@ -467,7 +467,7 @@ export function useStoreOrStoreById(
467
467
  * Note that other components that consume a Store registered like this should
468
468
  * defend against it being undefined at first. On the first render, the other
469
469
  * component will likely not yet have completed the registration. In the example
470
- * below, we use the null-safe `useStore('petStore')?.getTableIds()` to do this.
470
+ * below, we use the null-safe `useStore('petStore')?` to do this.
471
471
  * @param storeId The Id of the Store object to be registered with the Provider.
472
472
  * @param store The Store object to be registered.
473
473
  * @example
@@ -5009,9 +5009,9 @@ export function useDidFinishTransactionListener(
5009
5009
  * regular createMetrics function and pass it in, but you may prefer to create
5010
5010
  * it within the app, perhaps inside the top-level component. To prevent a new
5011
5011
  * Metrics object being created every time the app renders or re-renders, since
5012
- * v5.0 the useCreateMetrics hook performs the creation in an effect. As a
5013
- * result this hook will return `undefined` on the brief first render, which you
5014
- * should defend against.
5012
+ * v5.0 this hook performs the creation in an effect. As a result it will return
5013
+ * `undefined` on the brief first render (or if the Store is not yet defined),
5014
+ * which you should defend against.
5015
5015
  *
5016
5016
  * If your `create` function contains other dependencies, the changing of which
5017
5017
  * should also cause the Metrics object to be recreated, you can provide them in
@@ -5104,7 +5104,7 @@ export function useDidFinishTransactionListener(
5104
5104
  * @category Metrics hooks
5105
5105
  */
5106
5106
  export function useCreateMetrics(
5107
- store: Store,
5107
+ store: Store | undefined,
5108
5108
  create: (store: Store) => Metrics,
5109
5109
  createDeps?: React.DependencyList,
5110
5110
  ): Metrics | undefined;
@@ -5489,9 +5489,9 @@ export function useMetricListener(
5489
5489
  * regular createIndexes function and pass it in, but you may prefer to create
5490
5490
  * it within the app, perhaps inside the top-level component. To prevent a new
5491
5491
  * Indexes object being created every time the app renders or re-renders, since
5492
- * v5.0 the useCreateIndexes hook performs the creation in an effect. As a
5493
- * result this hook will return `undefined` on the brief first render, which you
5494
- * should defend against.
5492
+ * v5.0 the this hook performs the creation in an effect. As a result it will
5493
+ * return `undefined` on the brief first render (or if the Store is not yet
5494
+ * defined), which you should defend against.
5495
5495
  *
5496
5496
  * If your `create` function contains other dependencies, the changing of which
5497
5497
  * should also cause the Indexes object to be recreated, you can provide them in
@@ -5592,7 +5592,7 @@ export function useMetricListener(
5592
5592
  * @category Indexes hooks
5593
5593
  */
5594
5594
  export function useCreateIndexes(
5595
- store: Store,
5595
+ store: Store | undefined,
5596
5596
  create: (store: Store) => Indexes,
5597
5597
  createDeps?: React.DependencyList,
5598
5598
  ): Indexes | undefined;
@@ -6174,9 +6174,9 @@ export function useSliceRowIdsListener(
6174
6174
  * the regular createRelationships function and pass it in, but you may prefer
6175
6175
  * to create it within the app, perhaps inside the top-level component. To
6176
6176
  * prevent a new Relationships object being created every time the app renders
6177
- * or re-renders, since v5.0 the useCreateRelationships hook performs the
6178
- * creation in an effect. As a result this hook will return `undefined` on the
6179
- * brief first render, which you should defend against.
6177
+ * or re-renders, since v5.0 this hook performs the creation in an effect. As a
6178
+ * result it will return `undefined` on the brief first render (or if the Store
6179
+ * is not yet defined), which you should defend against.
6180
6180
  *
6181
6181
  * If your `create` function contains other dependencies, the changing of which
6182
6182
  * should also cause the Relationships object to be recreated, you can provide
@@ -6288,7 +6288,7 @@ export function useSliceRowIdsListener(
6288
6288
  * @category Relationships hooks
6289
6289
  */
6290
6290
  export function useCreateRelationships(
6291
- store: Store,
6291
+ store: Store | undefined,
6292
6292
  create: (store: Store) => Relationships,
6293
6293
  createDeps?: React.DependencyList,
6294
6294
  ): Relationships | undefined;
@@ -7139,9 +7139,9 @@ export function useLinkedRowIdsListener(
7139
7139
  * regular createQueries function and pass it in, but you may prefer to create
7140
7140
  * it within the app, perhaps inside the top-level component. To prevent a new
7141
7141
  * Queries object being created every time the app renders or re-renders, since
7142
- * v5.0 the useCreateQueries hook performs the creation in an effect. As a
7143
- * result this hook will return `undefined` on the brief first render, which you
7144
- * should defend against.
7142
+ * v5.0 this hook performs the creation in an effect. As a result it will return
7143
+ * `undefined` on the brief first render (or if the Store is not yet defined),
7144
+ * which you should defend against.
7145
7145
  *
7146
7146
  * If your `create` function contains other dependencies, the changing of which
7147
7147
  * should also cause the Queries object to be recreated, you can provide them in
@@ -7245,7 +7245,7 @@ export function useLinkedRowIdsListener(
7245
7245
  * @since v2.0.0
7246
7246
  */
7247
7247
  export function useCreateQueries(
7248
- store: Store,
7248
+ store: Store | undefined,
7249
7249
  create: (store: Store) => Queries,
7250
7250
  createDeps?: React.DependencyList,
7251
7251
  ): Queries | undefined;
@@ -9141,9 +9141,9 @@ export function useResultCellListener(
9141
9141
  * the regular createCheckpoints function and pass it in, but you may prefer to
9142
9142
  * create it within the app, perhaps inside the top-level component. To prevent
9143
9143
  * a new Checkpoints object being created every time the app renders or
9144
- * re-renders, since v5.0 the useCreateMetrics hook performs the creation in an
9145
- * effect. As a result this hook will return `undefined` on the brief first
9146
- * render, which you should defend against.
9144
+ * re-renders, since v5.0 this hook performs the creation in an effect. As a
9145
+ * result it will return `undefined` on the brief first render (or if the
9146
+ * Store is not yet defined), which you should defend against.
9147
9147
  *
9148
9148
  * If your `create` function contains other dependencies, the changing of which
9149
9149
  * should also cause the Checkpoints object to be recreated, you can provide
@@ -9225,7 +9225,7 @@ export function useResultCellListener(
9225
9225
  * @category Checkpoints hooks
9226
9226
  */
9227
9227
  export function useCreateCheckpoints(
9228
- store: Store,
9228
+ store: Store | undefined,
9229
9229
  create: (store: Store) => Checkpoints,
9230
9230
  createDeps?: React.DependencyList,
9231
9231
  ): Checkpoints | undefined;
@@ -10069,7 +10069,7 @@ export function useCheckpointListener(
10069
10069
  * regular createPersister function and pass it in, but you may prefer to create
10070
10070
  * it within the app, perhaps inside the top-level component. To prevent a new
10071
10071
  * Persister being created every time the app renders or re-renders, since v5.0
10072
- * the useCreateMetrics hook performs the creation in an effect.
10072
+ * the this hook performs the creation in an effect.
10073
10073
  *
10074
10074
  * If your `create` function (the second parameter to the hook) contains
10075
10075
  * dependencies, the changing of which should cause the Persister to be
@@ -10088,7 +10088,8 @@ export function useCheckpointListener(
10088
10088
  * Since v4.3.0, the `create` function can return undefined, meaning that you
10089
10089
  * can enable or disable persistence conditionally within this hook. This is
10090
10090
  * useful for applications which might turn on or off their cloud persistence or
10091
- * collaboration features.
10091
+ * collaboration features. This hook can return `undefined` if the Store is not
10092
+ * yet defined, which you should defend against.
10092
10093
  *
10093
10094
  * Since v4.3.19, a `destroy` function can be provided which will be called
10094
10095
  * after an old Persister is destroyed due to a change in the `createDeps`
@@ -10222,7 +10223,7 @@ export function useCheckpointListener(
10222
10223
  export function useCreatePersister<
10223
10224
  PersisterOrUndefined extends Persister | undefined,
10224
10225
  >(
10225
- store: Store,
10226
+ store: Store | undefined,
10226
10227
  create: (store: Store) => PersisterOrUndefined,
10227
10228
  createDeps?: React.DependencyList,
10228
10229
  then?: (persister: Persister) => Promise<void>,
@@ -10346,7 +10347,7 @@ export function useCreatePersister<
10346
10347
  export function useCreateSynchronizer<
10347
10348
  SynchronizerOrUndefined extends Synchronizer | undefined,
10348
10349
  >(
10349
- store: MergeableStore,
10350
+ store: MergeableStore | undefined,
10350
10351
  create: (store: MergeableStore) => Promise<SynchronizerOrUndefined>,
10351
10352
  createDeps?: React.DependencyList,
10352
10353
  destroy?: (synchronizer: Synchronizer) => void,
@@ -37,7 +37,7 @@ import {SQLiteDatabase} from 'expo-sqlite/next';
37
37
  * @since v4.5.0
38
38
  */
39
39
  export interface ExpoSqliteNextPersister<Schemas extends OptionalSchemas>
40
- extends Persister<Schemas> {
40
+ extends Persister<Schemas, 3> {
41
41
  /**
42
42
  * The getDb method returns a reference to the database instance the Store is
43
43
  * being persisted to.
@@ -36,7 +36,7 @@ import {SQLiteDatabase} from 'expo-sqlite';
36
36
  * @since v4.3.14
37
37
  */
38
38
  export interface ExpoSqlitePersister<Schemas extends OptionalSchemas>
39
- extends Persister<Schemas> {
39
+ extends Persister<Schemas, 3> {
40
40
  /**
41
41
  * The getDb method returns a reference to the database instance the Store is
42
42
  * being persisted to.
@@ -24,7 +24,7 @@ import {OptionalSchemas, Store} from '../store.d.ts';
24
24
  * @since v4.3.14
25
25
  */
26
26
  export interface SqliteWasmPersister<Schemas extends OptionalSchemas>
27
- extends Persister<Schemas> {
27
+ extends Persister<Schemas, 3> {
28
28
  /**
29
29
  * The getDb method returns a reference to the database instance the Store is
30
30
  * being persisted to.
@@ -25,7 +25,7 @@ import {Database} from 'sqlite3';
25
25
  * @since v4.3.14
26
26
  */
27
27
  export interface Sqlite3Persister<Schemas extends OptionalSchemas>
28
- extends Persister<Schemas> {
28
+ extends Persister<Schemas, 3> {
29
29
  /**
30
30
  * The getDb method returns a reference to the database instance the Store is
31
31
  * being persisted to.
@@ -221,14 +221,15 @@ export type DatabasePersisterConfig<Schemas extends OptionalSchemas> =
221
221
  * The DpcJson type describes the configuration of a database-oriented Persister
222
222
  * operating in serialized JSON mode.
223
223
  *
224
- * The only setting is the `storeTableName` property, which indicates the name
225
- * of a table in the database which will be used to serialize the Store content
226
- * into. It defaults to `tinybase`.
224
+ * One setting is the `storeTableName` property, which indicates the name of a
225
+ * table in the database which will be used to serialize the Store content into.
226
+ * It defaults to `tinybase`.
227
227
  *
228
228
  * That table in the database will be given two columns: a primary key column
229
- * called `_id`, and one called `store`. The Persister will place a single row
230
- * in this table with `_` in the `_id` column, and the JSON serialization in the
231
- * `store` column, something like:
229
+ * called `_id`, and one called `store`. (These column names can be changed
230
+ * using the `rowIdColumnName` and `storeColumnName` settings). The Persister
231
+ * will place a single row in this table with `_` in the `_id` column, and the
232
+ * JSON serialization in the `store` column, something like:
232
233
  *
233
234
  * ```
234
235
  * > SELECT * FROM tinybase;
@@ -267,6 +268,16 @@ export type DpcJson = {
267
268
  * `tinybase`.
268
269
  */
269
270
  storeTableName?: string;
271
+ /**
272
+ * The optional name of the column in the database table that will be used as
273
+ * the Id for the Store, defaulting to '_id', since v5.0.
274
+ */
275
+ storeIdColumnName?: string;
276
+ /**
277
+ * The optional name of the column in the database table that will be used for
278
+ * the JSON of the Store, defaulting to 'store', since v5.0.
279
+ */
280
+ storeColumnName?: string;
270
281
  /**
271
282
  * How often the Persister should poll the database for any changes made to it
272
283
  * by other clients, defaulting to 1 second.
@@ -609,7 +620,7 @@ export type DpcTabularValues = {
609
620
  */
610
621
  save?: boolean;
611
622
  /**
612
- * The optional name of the database table from and to which the Store Table
623
+ * The optional name of the database table from and to which the Store Values
613
624
  * should be loaded or saved, defaulting to `tinybase_values`.
614
625
  */
615
626
  tableName?: string;
@@ -566,7 +566,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
566
566
  * Note that other components that consume a Store registered like this should
567
567
  * defend against it being undefined at first. On the first render, the other
568
568
  * component will likely not yet have completed the registration. In the example
569
- * below, we use the null-safe `useStore('petStore')?.getTableIds()` to do this.
569
+ * below, we use the null-safe `useStore('petStore')?` to do this.
570
570
  * @param storeId The Id of the Store object to be registered with the Provider.
571
571
  * @param store The Store object to be registered.
572
572
  * @example
@@ -5876,7 +5876,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
5876
5876
  *
5877
5877
  * ```ts override
5878
5878
  * useCreateMetrics(
5879
- * store: Store,
5879
+ * store: Store | undefined,
5880
5880
  * create: (store: Store) => Metrics,
5881
5881
  * createDeps?: React.DependencyList,
5882
5882
  * ): Metrics | undefined;
@@ -5886,9 +5886,9 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
5886
5886
  * regular createMetrics function and pass it in, but you may prefer to create
5887
5887
  * it within the app, perhaps inside the top-level component. To prevent a new
5888
5888
  * Metrics object being created every time the app renders or re-renders, since
5889
- * v5.0 the useCreateMetrics hook performs the creation in an effect. As a
5890
- * result this hook will return `undefined` on the brief first render, which you
5891
- * should defend against.
5889
+ * v5.0 this hook performs the creation in an effect. As a result it will return
5890
+ * `undefined` on the brief first render (or if the Store is not yet defined),
5891
+ * which you should defend against.
5892
5892
  *
5893
5893
  * If your `create` function contains other dependencies, the changing of which
5894
5894
  * should also cause the Metrics object to be recreated, you can provide them in
@@ -5981,7 +5981,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
5981
5981
  * @category Metrics hooks
5982
5982
  */
5983
5983
  useCreateMetrics: (
5984
- store: Store<Schemas>,
5984
+ store: Store<Schemas> | undefined,
5985
5985
  create: (store: Store<Schemas>) => Metrics<Schemas>,
5986
5986
  createDeps?: React.DependencyList,
5987
5987
  ) => Metrics<Schemas> | undefined;
@@ -6406,7 +6406,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
6406
6406
  *
6407
6407
  * ```ts override
6408
6408
  * useCreateIndexes(
6409
- * store: Store,
6409
+ * store: Store | undefined,
6410
6410
  * create: (store: Store) => Indexes,
6411
6411
  * createDeps?: React.DependencyList,
6412
6412
  * ): Indexes | undefined;
@@ -6416,9 +6416,9 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
6416
6416
  * regular createIndexes function and pass it in, but you may prefer to create
6417
6417
  * it within the app, perhaps inside the top-level component. To prevent a new
6418
6418
  * Indexes object being created every time the app renders or re-renders, since
6419
- * v5.0 the useCreateIndexes hook performs the creation in an effect. As a
6420
- * result this hook will return `undefined` on the brief first render, which you
6421
- * should defend against.
6419
+ * v5.0 the this hook performs the creation in an effect. As a result it will
6420
+ * return `undefined` on the brief first render (or if the Store is not yet
6421
+ * defined), which you should defend against.
6422
6422
  *
6423
6423
  * If your `create` function contains other dependencies, the changing of which
6424
6424
  * should also cause the Indexes object to be recreated, you can provide them in
@@ -6519,7 +6519,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
6519
6519
  * @category Indexes hooks
6520
6520
  */
6521
6521
  useCreateIndexes: (
6522
- store: Store<Schemas>,
6522
+ store: Store<Schemas> | undefined,
6523
6523
  create: (store: Store<Schemas>) => Indexes<Schemas>,
6524
6524
  createDeps?: React.DependencyList,
6525
6525
  ) => Indexes<Schemas> | undefined;
@@ -7163,7 +7163,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
7163
7163
  *
7164
7164
  * ```ts override
7165
7165
  * useCreateRelationships(
7166
- * store: Store,
7166
+ * store: Store | undefined,
7167
7167
  * create: (store: Store) => Relationships,
7168
7168
  * createDeps?: React.DependencyList,
7169
7169
  * ): Relationships | undefined;
@@ -7173,9 +7173,9 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
7173
7173
  * the regular createRelationships function and pass it in, but you may prefer
7174
7174
  * to create it within the app, perhaps inside the top-level component. To
7175
7175
  * prevent a new Relationships object being created every time the app renders
7176
- * or re-renders, since v5.0 the useCreateRelationships hook performs the
7177
- * creation in an effect. As a result this hook will return `undefined` on the
7178
- * brief first render, which you should defend against.
7176
+ * or re-renders, since v5.0 this hook performs the creation in an effect. As a
7177
+ * result it will return `undefined` on the brief first render (or if the Store
7178
+ * is not yet defined), which you should defend against.
7179
7179
  *
7180
7180
  * If your `create` function contains other dependencies, the changing of which
7181
7181
  * should also cause the Relationships object to be recreated, you can provide
@@ -7287,7 +7287,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
7287
7287
  * @category Relationships hooks
7288
7288
  */
7289
7289
  useCreateRelationships: (
7290
- store: Store<Schemas>,
7290
+ store: Store<Schemas> | undefined,
7291
7291
  create: (store: Store<Schemas>) => Relationships<Schemas>,
7292
7292
  createDeps?: React.DependencyList,
7293
7293
  ) => Relationships<Schemas> | undefined;
@@ -8226,7 +8226,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
8226
8226
  *
8227
8227
  * ```ts override
8228
8228
  * useCreateQueries(
8229
- * store: Store,
8229
+ * store: Store | undefined,
8230
8230
  * create: (store: Store) => Queries,
8231
8231
  * createDeps?: React.DependencyList,
8232
8232
  * ): Queries | undefined;
@@ -8236,9 +8236,9 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
8236
8236
  * regular createQueries function and pass it in, but you may prefer to create
8237
8237
  * it within the app, perhaps inside the top-level component. To prevent a new
8238
8238
  * Queries object being created every time the app renders or re-renders, since
8239
- * v5.0 the useCreateQueries hook performs the creation in an effect. As a
8240
- * result this hook will return `undefined` on the brief first render, which you
8241
- * should defend against.
8239
+ * v5.0 this hook performs the creation in an effect. As a result it will return
8240
+ * `undefined` on the brief first render (or if the Store is not yet defined),
8241
+ * which you should defend against.
8242
8242
  *
8243
8243
  * If your `create` function contains other dependencies, the changing of which
8244
8244
  * should also cause the Queries object to be recreated, you can provide them in
@@ -8342,7 +8342,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
8342
8342
  * @since v2.0.0
8343
8343
  */
8344
8344
  useCreateQueries: (
8345
- store: Store<Schemas>,
8345
+ store: Store<Schemas> | undefined,
8346
8346
  create: (store: Store<Schemas>) => Queries<Schemas>,
8347
8347
  createDeps?: React.DependencyList,
8348
8348
  ) => Queries<Schemas> | undefined;
@@ -10434,7 +10434,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
10434
10434
  *
10435
10435
  * ```ts override
10436
10436
  * useCreateCheckpoints(
10437
- * store: Store,
10437
+ * store: Store | undefined,
10438
10438
  * create: (store: Store) => Checkpoints,
10439
10439
  * createDeps?: React.DependencyList,
10440
10440
  * ): Checkpoints | undefined;
@@ -10444,9 +10444,9 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
10444
10444
  * the regular createCheckpoints function and pass it in, but you may prefer to
10445
10445
  * create it within the app, perhaps inside the top-level component. To prevent
10446
10446
  * a new Checkpoints object being created every time the app renders or
10447
- * re-renders, since v5.0 the useCreateMetrics hook performs the creation in an
10448
- * effect. As a result this hook will return `undefined` on the brief first
10449
- * render, which you should defend against.
10447
+ * re-renders, since v5.0 this hook performs the creation in an effect. As a
10448
+ * result it will return `undefined` on the brief first render (or if the
10449
+ * Store is not yet defined), which you should defend against.
10450
10450
  *
10451
10451
  * If your `create` function contains other dependencies, the changing of which
10452
10452
  * should also cause the Checkpoints object to be recreated, you can provide
@@ -10528,7 +10528,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
10528
10528
  * @category Checkpoints hooks
10529
10529
  */
10530
10530
  useCreateCheckpoints: (
10531
- store: Store<Schemas>,
10531
+ store: Store<Schemas> | undefined,
10532
10532
  create: (store: Store<Schemas>) => Checkpoints<Schemas>,
10533
10533
  createDeps?: React.DependencyList,
10534
10534
  ) => Checkpoints<Schemas> | undefined;
@@ -11486,7 +11486,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
11486
11486
  * useCreatePersister<
11487
11487
  * PersisterOrUndefined extends Persister | undefined,
11488
11488
  * >(
11489
- * store: Store,
11489
+ * store: Store | undefined,
11490
11490
  * create: (store: Store) => PersisterOrUndefined,
11491
11491
  * createDeps?: React.DependencyList,
11492
11492
  * then?: (persister: Persister) => Promise<void>,
@@ -11500,7 +11500,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
11500
11500
  * regular createPersister function and pass it in, but you may prefer to create
11501
11501
  * it within the app, perhaps inside the top-level component. To prevent a new
11502
11502
  * Persister being created every time the app renders or re-renders, since v5.0
11503
- * the useCreateMetrics hook performs the creation in an effect.
11503
+ * the this hook performs the creation in an effect.
11504
11504
  *
11505
11505
  * If your `create` function (the second parameter to the hook) contains
11506
11506
  * dependencies, the changing of which should cause the Persister to be
@@ -11519,7 +11519,8 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
11519
11519
  * Since v4.3.0, the `create` function can return undefined, meaning that you
11520
11520
  * can enable or disable persistence conditionally within this hook. This is
11521
11521
  * useful for applications which might turn on or off their cloud persistence or
11522
- * collaboration features.
11522
+ * collaboration features. This hook can return `undefined` if the Store is not
11523
+ * yet defined, which you should defend against.
11523
11524
  *
11524
11525
  * Since v4.3.19, a `destroy` function can be provided which will be called
11525
11526
  * after an old Persister is destroyed due to a change in the `createDeps`
@@ -11653,7 +11654,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
11653
11654
  useCreatePersister: <
11654
11655
  PersisterOrUndefined extends Persister<Schemas> | undefined,
11655
11656
  >(
11656
- store: Store<Schemas>,
11657
+ store: Store<Schemas> | undefined,
11657
11658
  create: (store: Store<Schemas>) => Promise<PersisterOrUndefined>,
11658
11659
  createDeps?: React.DependencyList,
11659
11660
  destroy?: (persister: Persister<Schemas>) => void,
@@ -11670,7 +11671,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
11670
11671
  * useCreateSynchronizer<
11671
11672
  * SynchronizerOrUndefined extends Synchronizer | undefined,
11672
11673
  * >(
11673
- * store: MergeableStore,
11674
+ * store: MergeableStore | undefined,
11674
11675
  * create: (store: MergeableStore) => Promise<SynchronizerOrUndefined>,
11675
11676
  * createDeps?: React.DependencyList,
11676
11677
  * destroy?: (synchronizer: Synchronizer) => void,
@@ -11789,7 +11790,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
11789
11790
  useCreateSynchronizer: <
11790
11791
  SynchronizerOrUndefined extends Synchronizer<Schemas> | undefined,
11791
11792
  >(
11792
- store: MergeableStore<Schemas>,
11793
+ store: MergeableStore<Schemas> | undefined,
11793
11794
  create: (
11794
11795
  store: MergeableStore<Schemas>,
11795
11796
  ) => Promise<SynchronizerOrUndefined>,
package/lib/ui-react.js CHANGED
@@ -1 +1 @@
1
- import e from"react";const t=e=>typeof e,o="",s=t(o),r=t(t),d="Listener",n="Result",u="Has",c="Ids",I="Table",l=I+"s",a=I+c,i="Row",p=i+"Count",g=i+c,b="Sorted"+i+c,C="Cell",m=C+c,y="Value",k=y+"s",w=y+c,h=e=>null==e,R=(e,t,o)=>h(e)?o?.():t(e),f=e=>t(e)==s,q=e=>t(e)==r,P=e=>e.length,v=()=>{},x=(e,t)=>e.every(t),S=(e,t)=>P(e)===P(t)&&x(e,((e,o)=>t[o]===e)),L=(e,t)=>e.map(t),B=Object,T=e=>B.getPrototypeOf(e),E=B.entries,M=e=>!h(e)&&R(T(e),(e=>e==B.prototype||h(T(e))),(()=>!0)),F=B.keys,V=(e,t)=>R(e,(e=>e[t])),A=(e,t)=>(delete e[t],e),O=(e,t)=>{const o=E(e);return P(o)===P(F(t))&&x(o,(([e,o])=>M(o)?!!M(t[e])&&O(t[e],o):t[e]===o))},{createContext:j,useContext:D,useEffect:H}=e,Q=j([]),W=(e,t)=>{const o=D(Q);return h(e)?o[t]:f(e)?V(o[t+1]??{},e):e},z=(e,t)=>{const o=W(e,t);return h(e)||f(e)?o:e},G=e=>F(D(Q)[e]??{}),J=e=>W(e,0),K=e=>z(e,0),N=(e,t)=>{const{12:o,13:s}=D(Q);H((()=>(o?.(e,t),()=>s?.(e))),[o,e,t,s])},U=e=>W(e,2),X=e=>z(e,2),Y=e=>W(e,4),Z=e=>z(e,4),$=e=>W(e,6),_=e=>z(e,6),ee=e=>W(e,8),te=e=>z(e,8),oe=e=>W(e,10),se=e=>z(e,10),re=e=>e.toLowerCase();re(d);const de="Transaction";re(de);const{useCallback:ne,useEffect:ue,useMemo:ce,useLayoutEffect:Ie,useRef:le,useState:ae,useSyncExternalStore:ie}=e,pe=[],ge=[{},[],[pe,void 0,pe],void 0,!1,0],be=(e,t)=>e===t,Ce=[O,S,([e,t,o],[s,r,d])=>t===r&&S(e,s)&&S(o,d)],me=(e,t,o=pe)=>{const[,s]=ae(),[r,d]=ae();return ue((()=>{const o=t(e);return d(o),s([]),o.destroy}),[e,...o]),r},ye=(e,t,...o)=>{const s=e?.["add"+t+d]?.(...o);return()=>e?.delListener(s)},ke=(e,t,s,r=pe)=>{const d=le(ge[s]),n=ne((()=>{const o=t?.[(4==s?"has":"get")+e]?.(...r)??ge[s];return(Ce[s]??be)(o,d.current)?d.current:d.current=o}),[t,s,e,...r]),c=ne((d=>ye(t,(4==s?u:o)+e,...r,d)),[t,s,e,...r]);return ie(c,n)},we=(e,t,o,s=pe,r=pe,...d)=>Ie((()=>ye(t,e,...r,o,...d)),[t,e,...r,...s,...d]),he=(e,t,o,s=pe,r=v,d=pe,...n)=>{const u=K(e);return ne((e=>R(u,(s=>R(o(e,s),(o=>r(s["set"+t](...L(n,(t=>q(t)?t(e,s):t)),o),o)))))),[u,t,...s,...d,...n])},Re=(e,t,o=v,s=pe,...r)=>{const d=K(e);return ne((()=>o(d?.["del"+t](...r))),[d,t,...s,...r])},fe=(e,t,o)=>{const s=se(e);return ne((()=>s?.[t](o)),[s,t,o])},qe=(e,t=pe)=>ce(e,t),Pe=(e,t=pe)=>ce(e,t),ve=()=>G(1),xe=e=>ke(l,K(e),4,[]),Se=e=>ke(l,K(e),0),Le=e=>ke(a,K(e),1),Be=(e,t)=>ke(I,K(t),4,[e]),Te=(e,t)=>ke(I,K(t),0,[e]),Ee=(e,t)=>ke(I+m,K(t),1,[e]),Me=(e,t,o)=>ke(I+C,K(o),4,[e,t]),Fe=(e,t)=>ke(p,K(t),5,[e]),Ve=(e,t)=>ke(g,K(t),1,[e]),Ae=(e,t,o,s=0,r,d)=>ke(b,K(d),1,[e,t,o,s,r]),Oe=(e,t,o)=>ke(i,K(o),4,[e,t]),je=(e,t,o)=>ke(i,K(o),0,[e,t]),De=(e,t,o)=>ke(m,K(o),1,[e,t]),He=(e,t,o,s)=>ke(C,K(s),4,[e,t,o]),Qe=(e,t,o,s)=>ke(C,K(s),3,[e,t,o]),We=e=>ke(k,K(e),4,[]),ze=e=>ke(k,K(e),0),Ge=e=>ke(w,K(e),1),Je=(e,t)=>ke(y,K(t),4,[e]),Ke=(e,t)=>ke(y,K(t),3,[e]),Ne=(e,t,o,s,r)=>he(o,l,e,t,s,r),Ue=(e,t,o,s,r,d)=>he(s,I,t,o,r,d,e),Xe=(e,t,o,s,r,d,n)=>he(r,i,o,s,d,n,e,t),Ye=(e,t,o=pe,s,r=v,d=pe,n=!0)=>{const u=K(s);return ne((o=>R(u,(s=>R(t(o,s),(t=>r(s.addRow(q(e)?e(o,s):e,t,n),s,t)))))),[u,e,...o,...d,n])},Ze=(e,t,o,s,r,d,n)=>he(r,"PartialRow",o,s,d,n,e,t),$e=(e,t,o,s,r,d,n,u)=>he(d,C,s,r,n,u,e,t,o),_e=(e,t,o,s,r)=>he(o,k,e,t,s,r),et=(e,t,o,s,r)=>he(o,"PartialValues",e,t,s,r),tt=(e,t,o,s,r,d)=>he(s,y,t,o,r,d,e),ot=(e,t,o)=>Re(e,l,t,o),st=(e,t,o,s)=>Re(t,I,o,s,e),rt=(e,t,o,s,r)=>Re(o,i,s,r,e,t),dt=(e,t,o,s,r,d,n)=>Re(r,C,d,n,e,t,o,s),nt=(e,t,o)=>Re(e,k,t,o),ut=(e,t,o,s)=>Re(t,y,o,s,e),ct=(e,t,o,s)=>we(u+l,K(s),e,t,[],o),It=(e,t,o,s)=>we(l,K(s),e,t,pe,o),lt=(e,t,o,s)=>we(a,K(s),e,t,pe,o),at=(e,t,o,s,r)=>we(u+I,K(r),t,o,[e],s),it=(e,t,o,s,r)=>we(I,K(r),t,o,[e],s),pt=(e,t,o,s,r)=>we(I+m,K(r),t,o,[e],s),gt=(e,t,o,s,r,d)=>we(u+I+C,K(d),o,s,[e,t],r),bt=(e,t,o,s,r)=>we(p,K(r),t,o,[e],s),Ct=(e,t,o,s,r)=>we(g,K(r),t,o,[e],s),mt=(e,t,o,s,r,d,n,u,c)=>we(b,K(c),d,n,[e,t,o,s,r],u),yt=(e,t,o,s,r,d)=>we(u+i,K(d),o,s,[e,t],r),kt=(e,t,o,s,r,d)=>we(i,K(d),o,s,[e,t],r),wt=(e,t,o,s,r,d)=>we(m,K(d),o,s,[e,t],r),ht=(e,t,o,s,r,d,n)=>we(u+C,K(n),s,r,[e,t,o],d),Rt=(e,t,o,s,r,d,n)=>we(C,K(n),s,r,[e,t,o],d),ft=(e,t,o,s)=>we(u+k,K(s),e,t,[],o),qt=(e,t,o,s)=>we(k,K(s),e,t,pe,o),Pt=(e,t,o,s)=>we(w,K(s),e,t,pe,o),vt=(e,t,o,s,r)=>we(u+y,K(r),t,o,[e],s),xt=(e,t,o,s,r)=>we(y,K(r),t,o,[e],s),St=(e,t,o)=>we("Start"+de,K(o),e,t),Lt=(e,t,o)=>we("WillFinish"+de,K(o),e,t),Bt=(e,t,o)=>we("DidFinish"+de,K(o),e,t),Tt=(e,t,o)=>me(e,t,o),Et=()=>G(3),Mt=e=>ke("MetricIds",X(e),1),Ft=(e,t)=>ke("Metric",X(t),3,[e]),Vt=(e,t,o,s)=>we("Metric",X(s),t,o,[e]),At=(e,t,o)=>me(e,t,o),Ot=()=>G(5),jt=(e,t)=>ke("SliceIds",Z(t),1,[e]),Dt=e=>ke("IndexIds",Z(e),1),Ht=(e,t,o)=>ke("Slice"+g,Z(o),1,[e,t]),Qt=(e,t,o,s)=>we("SliceIds",Z(s),t,o,[e]),Wt=(e,t,o,s,r)=>we("Slice"+g,Z(r),o,s,[e,t]),zt=(e,t,o)=>me(e,t,o),Gt=()=>G(7),Jt=e=>ke("RelationshipIds",_(e),1),Kt=(e,t,o)=>ke("RemoteRowId",_(o),3,[e,t]),Nt=(e,t,o)=>ke("Local"+g,_(o),1,[e,t]),Ut=(e,t,o)=>ke("Linked"+g,_(o),1,[e,t]),Xt=(e,t,o,s,r)=>we("RemoteRowId",_(r),o,s,[e,t]),Yt=(e,t,o,s,r)=>we("Local"+g,_(r),o,s,[e,t]),Zt=(e,t,o,s,r)=>we("Linked"+g,_(r),o,s,[e,t]),$t=(e,t,o)=>me(e,t,o),_t=()=>G(9),eo=e=>ke("QueryIds",te(e),1),to=(e,t)=>ke(n+I,te(t),0,[e]),oo=(e,t)=>ke(n+I+m,te(t),1,[e]),so=(e,t)=>ke(n+p,te(t),5,[e]),ro=(e,t)=>ke(n+g,te(t),1,[e]),no=(e,t,o,s=0,r,d)=>ke(n+b,te(d),1,[e,t,o,s,r]),uo=(e,t,o)=>ke(n+i,te(o),0,[e,t]),co=(e,t,o)=>ke(n+m,te(o),1,[e,t]),Io=(e,t,o,s)=>ke(n+C,te(s),3,[e,t,o]),lo=(e,t,o,s)=>we(n+I,te(s),t,o,[e]),ao=(e,t,o,s)=>we(n+I+m,te(s),t,o,[e]),io=(e,t,o,s)=>we(n+p,te(s),t,o,[e]),po=(e,t,o,s)=>we(n+g,te(s),t,o,[e]),go=(e,t,o,s,r,d,u,c)=>we(n+b,te(c),d,u,[e,t,o,s,r]),bo=(e,t,o,s,r)=>we(n+i,te(r),o,s,[e,t]),Co=(e,t,o,s,r)=>we(n+m,te(r),o,s,[e,t]),mo=(e,t,o,s,r,d)=>we(n+C,te(d),s,r,[e,t,o]),yo=(e,t,o)=>me(e,t,o),ko=()=>G(11),wo=e=>ke("CheckpointIds",se(e),2),ho=(e,t)=>ke("Checkpoint",se(t),3,[e]),Ro=(e=v,t=pe,o,s=v,r=pe)=>{const d=se(o);return ne((t=>R(d,(o=>{const r=e(t);s(o.addCheckpoint(r),o,r)}))),[d,...t,...r])},fo=e=>fe(e,"goBackward"),qo=e=>fe(e,"goForward"),Po=(e,t=pe,o,s=v,r=pe)=>{const d=se(o);return ne((t=>R(d,(o=>R(e(t),(e=>s(o.goTo(e),e)))))),[d,...t,...r])},vo=e=>{const t=se(e),[s,r]=wo(t);return[(d=s,!(0==P(d))),fo(t),r,R(r,(e=>t?.getCheckpoint(e)))??o];var d},xo=e=>{const t=se(e),[,,[s]]=wo(t);return[!h(s),qo(t),s,R(s,(e=>t?.getCheckpoint(e)))??o]},So=(e,t,o)=>we("CheckpointIds",se(o),e,t),Lo=(e,t,o,s)=>we("Checkpoint",se(s),t,o,[e]),Bo=(e,t,o=pe,s,r=pe,d,n=pe)=>{const[,u]=ae(),[c,I]=ae();return ue((()=>{const o=t(e);I(o),o&&s&&(async()=>{await s(o),u([])})()}),[e,...o,...r]),ue((()=>()=>{c&&(c.destroy(),d?.(c))}),[c,...n]),c},To=(e,t,o=pe,s,r=pe)=>{const[d,n]=ae();return ue((()=>{(async()=>{const o=await t(e);n(o)})()}),[e,...o]),ue((()=>()=>{d&&(d.destroy(),s?.(d))}),[d,...r]),d},{PureComponent:Eo,Fragment:Mo,createElement:Fo,useCallback:Vo,useLayoutEffect:Ao,useRef:Oo,useState:jo}=e,Do=(e,...t)=>h(e)?{}:e(...t),Ho=(e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)],{useCallback:Qo,useContext:Wo,useMemo:zo,useState:Go}=e,Jo=({tableId:e,store:t,rowComponent:o=$o,getRowComponentProps:s,customCellIds:r,separator:d,debugIds:n},u)=>Yo(L(u,(d=>Fo(o,{...Do(s,d),key:d,tableId:e,rowId:d,customCellIds:r,store:t,debugIds:n}))),d,n,e),Ko=({queryId:e,queries:t,resultRowComponent:o=as,getResultRowComponentProps:s,separator:r,debugIds:d},n)=>Yo(L(n,(r=>Fo(o,{...Do(s,r),key:r,queryId:e,rowId:r,queries:t,debugIds:d}))),r,d,e),No=({relationshipId:e,relationships:t,rowComponent:o=$o,getRowComponentProps:s,separator:r,debugIds:d},n,u)=>{const[c,I,l]=Ho(_(t),e),a=n(e,u,c);return Yo(L(a,(e=>Fo(o,{...Do(s,e),key:e,tableId:l,rowId:e,store:I,debugIds:d}))),r,d,u)},Uo=e=>({checkpoints:t,checkpointComponent:o=gs,getCheckpointComponentProps:s,separator:r,debugIds:d})=>{const n=se(t);return Yo(L(e(wo(n)),(e=>Fo(o,{...Do(s,e),key:e,checkpoints:n,checkpointId:e,debugIds:d}))),r)},Xo=({store:e,storesById:t,metrics:o,metricsById:s,indexes:r,indexesById:d,relationships:n,relationshipsById:u,queries:c,queriesById:I,checkpoints:l,checkpointsById:a,children:i})=>{const p=Wo(Q),[g,b]=Go({}),C=Qo(((e,t)=>b((o=>V(o,e)==t?o:{...o,[e]:t}))),[]),m=Qo((e=>b((t=>({...A(t,e)})))),[]);return Fo(Q.Provider,{value:zo((()=>[e??p[0],{...p[1],...t,...g},o??p[2],{...p[3],...s},r??p[4],{...p[5],...d},n??p[6],{...p[7],...u},c??p[8],{...p[9],...I},l??p[10],{...p[11],...a},C,m]),[e,t,g,o,s,r,d,n,u,c,I,l,a,p,C,m])},i)},Yo=(e,t,o,s)=>{const r=h(t)||!Array.isArray(e)?e:L(e,((e,o)=>o>0?[t,e]:e));return o?[s,":{",r,"}"]:r},Zo=({tableId:e,rowId:t,cellId:s,store:r,debugIds:d})=>Yo(o+(Qe(e,t,s,r)??o),void 0,d,s),$o=({tableId:e,rowId:t,store:o,cellComponent:s=Zo,getCellComponentProps:r,customCellIds:d,separator:n,debugIds:u})=>Yo(L(((e,t,o,s)=>{const r=De(t,o,s);return e??r})(d,e,t,o),(d=>Fo(s,{...Do(r,d),key:d,tableId:e,rowId:t,cellId:d,store:o,debugIds:u}))),n,u,t),_o=e=>Jo(e,Ve(e.tableId,e.store)),es=({cellId:e,descending:t,offset:o,limit:s,...r})=>Jo(r,Ae(r.tableId,e,t,o,s,r.store)),ts=({store:e,tableComponent:t=_o,getTableComponentProps:o,separator:s,debugIds:r})=>Yo(L(Le(e),(s=>Fo(t,{...Do(o,s),key:s,tableId:s,store:e,debugIds:r}))),s),os=({valueId:e,store:t,debugIds:s})=>Yo(o+(Ke(e,t)??o),void 0,s,e),ss=({store:e,valueComponent:t=os,getValueComponentProps:o,separator:s,debugIds:r})=>Yo(L(Ge(e),(s=>Fo(t,{...Do(o,s),key:s,valueId:s,store:e,debugIds:r}))),s),rs=({metricId:e,metrics:t,debugIds:s})=>Yo(Ft(e,t)??o,void 0,s,e),ds=({indexId:e,sliceId:t,indexes:o,rowComponent:s=$o,getRowComponentProps:r,separator:d,debugIds:n})=>{const[u,c,I]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(Z(o),e),l=Ht(e,t,u);return Yo(L(l,(e=>Fo(s,{...Do(r,e),key:e,tableId:I,rowId:e,store:c,debugIds:n}))),d,n,t)},ns=({indexId:e,indexes:t,sliceComponent:o=ds,getSliceComponentProps:s,separator:r,debugIds:d})=>Yo(L(jt(e,t),(r=>Fo(o,{...Do(s,r),key:r,indexId:e,sliceId:r,indexes:t,debugIds:d}))),r,d,e),us=({relationshipId:e,localRowId:t,relationships:o,rowComponent:s=$o,getRowComponentProps:r,debugIds:d})=>{const[n,u,,c]=Ho(_(o),e),I=Kt(e,t,n);return Yo(h(c)||h(I)?null:Fo(s,{...Do(r,I),key:I,tableId:c,rowId:I,store:u,debugIds:d}),void 0,d,t)},cs=e=>No(e,Nt,e.remoteRowId),Is=e=>No(e,Ut,e.firstRowId),ls=({queryId:e,rowId:t,cellId:s,queries:r,debugIds:d})=>Yo(o+(Io(e,t,s,r)??o),void 0,d,s),as=({queryId:e,rowId:t,queries:o,resultCellComponent:s=ls,getResultCellComponentProps:r,separator:d,debugIds:n})=>Yo(L(co(e,t,o),(d=>Fo(s,{...Do(r,d),key:d,queryId:e,rowId:t,cellId:d,queries:o,debugIds:n}))),d,n,t),is=e=>Ko(e,ro(e.queryId,e.queries)),ps=({cellId:e,descending:t,offset:o,limit:s,...r})=>Ko(r,no(r.queryId,e,t,o,s,r.queries)),gs=({checkpoints:e,checkpointId:t,debugIds:s})=>Yo(ho(t,e)??o,void 0,s,t),bs=Uo((e=>e[0])),Cs=Uo((e=>h(e[1])?[]:[e[1]])),ms=Uo((e=>e[2]));export{bs as BackwardCheckpointsView,Zo as CellView,gs as CheckpointView,Cs as CurrentCheckpointView,ms as ForwardCheckpointsView,ns as IndexView,Is as LinkedRowsView,cs as LocalRowsView,rs as MetricView,Xo as Provider,us as RemoteRowView,ls as ResultCellView,as as ResultRowView,ps as ResultSortedTableView,is as ResultTableView,$o as RowView,ds as SliceView,es as SortedTableView,_o as TableView,ts as TablesView,os as ValueView,ss as ValuesView,Ye as useAddRowCallback,Qe as useCell,De as useCellIds,wt as useCellIdsListener,Rt as useCellListener,ho as useCheckpoint,wo as useCheckpointIds,So as useCheckpointIdsListener,Lo as useCheckpointListener,oe as useCheckpoints,ko as useCheckpointsIds,se as useCheckpointsOrCheckpointsById,yo as useCreateCheckpoints,At as useCreateIndexes,Pe as useCreateMergeableStore,Tt as useCreateMetrics,Bo as useCreatePersister,$t as useCreateQueries,zt as useCreateRelationships,qe as useCreateStore,To as useCreateSynchronizer,dt as useDelCellCallback,rt as useDelRowCallback,st as useDelTableCallback,ot as useDelTablesCallback,ut as useDelValueCallback,nt as useDelValuesCallback,Bt as useDidFinishTransactionListener,fo as useGoBackwardCallback,qo as useGoForwardCallback,Po as useGoToCallback,He as useHasCell,ht as useHasCellListener,Oe as useHasRow,yt as useHasRowListener,Be as useHasTable,Me as useHasTableCell,gt as useHasTableCellListener,at as useHasTableListener,xe as useHasTables,ct as useHasTablesListener,Je as useHasValue,vt as useHasValueListener,We as useHasValues,ft as useHasValuesListener,Dt as useIndexIds,Y as useIndexes,Ot as useIndexesIds,Z as useIndexesOrIndexesById,Ut as useLinkedRowIds,Zt as useLinkedRowIdsListener,Nt as useLocalRowIds,Yt as useLocalRowIdsListener,Ft as useMetric,Mt as useMetricIds,Vt as useMetricListener,U as useMetrics,Et as useMetricsIds,X as useMetricsOrMetricsById,N as useProvideStore,ee as useQueries,_t as useQueriesIds,te as useQueriesOrQueriesById,eo as useQueryIds,xo as useRedoInformation,Jt as useRelationshipIds,$ as useRelationships,Gt as useRelationshipsIds,_ as useRelationshipsOrRelationshipsById,Kt as useRemoteRowId,Xt as useRemoteRowIdListener,Io as useResultCell,co as useResultCellIds,Co as useResultCellIdsListener,mo as useResultCellListener,uo as useResultRow,so as useResultRowCount,io as useResultRowCountListener,ro as useResultRowIds,po as useResultRowIdsListener,bo as useResultRowListener,no as useResultSortedRowIds,go as useResultSortedRowIdsListener,to as useResultTable,oo as useResultTableCellIds,ao as useResultTableCellIdsListener,lo as useResultTableListener,je as useRow,Fe as useRowCount,bt as useRowCountListener,Ve as useRowIds,Ct as useRowIdsListener,kt as useRowListener,$e as useSetCellCallback,Ro as useSetCheckpointCallback,Ze as useSetPartialRowCallback,et as useSetPartialValuesCallback,Xe as useSetRowCallback,Ue as useSetTableCallback,Ne as useSetTablesCallback,tt as useSetValueCallback,_e as useSetValuesCallback,jt as useSliceIds,Qt as useSliceIdsListener,Ht as useSliceRowIds,Wt as useSliceRowIdsListener,Ae as useSortedRowIds,mt as useSortedRowIdsListener,St as useStartTransactionListener,J as useStore,ve as useStoreIds,K as useStoreOrStoreById,Te as useTable,Ee as useTableCellIds,pt as useTableCellIdsListener,Le as useTableIds,lt as useTableIdsListener,it as useTableListener,Se as useTables,It as useTablesListener,vo as useUndoInformation,Ke as useValue,Ge as useValueIds,Pt as useValueIdsListener,xt as useValueListener,ze as useValues,qt as useValuesListener,Lt as useWillFinishTransactionListener};
1
+ import e from"react";const t=e=>typeof e,o="",s=t(o),r=t(t),d="Listener",n="Result",u="Has",c="Ids",I="Table",i=I+"s",l=I+c,a="Row",p=a+"Count",g=a+c,b="Sorted"+a+c,C="Cell",m=C+c,y="Value",k=y+"s",w=y+c,h=e=>null==e,R=(e,t,o)=>h(e)?o?.():t(e),f=e=>t(e)==s,v=e=>t(e)==r,q=e=>e.length,P=()=>{},x=(e,t)=>e.every(t),S=(e,t)=>q(e)===q(t)&&x(e,((e,o)=>t[o]===e)),L=(e,t)=>e.map(t),B=Object,T=e=>B.getPrototypeOf(e),E=B.entries,M=e=>!h(e)&&R(T(e),(e=>e==B.prototype||h(T(e))),(()=>!0)),F=B.keys,V=(e,t)=>R(e,(e=>e[t])),A=(e,t)=>(delete e[t],e),O=(e,t)=>{const o=E(e);return q(o)===q(F(t))&&x(o,(([e,o])=>M(o)?!!M(t[e])&&O(t[e],o):t[e]===o))},{createContext:j,useContext:D,useEffect:H}=e,Q=j([]),W=(e,t)=>{const o=D(Q);return h(e)?o[t]:f(e)?V(o[t+1]??{},e):e},z=(e,t)=>{const o=W(e,t);return h(e)||f(e)?o:e},G=e=>F(D(Q)[e]??{}),J=e=>W(e,0),K=e=>z(e,0),N=(e,t)=>{const{12:o,13:s}=D(Q);H((()=>(o?.(e,t),()=>s?.(e))),[o,e,t,s])},U=e=>W(e,2),X=e=>z(e,2),Y=e=>W(e,4),Z=e=>z(e,4),$=e=>W(e,6),_=e=>z(e,6),ee=e=>W(e,8),te=e=>z(e,8),oe=e=>W(e,10),se=e=>z(e,10),re=e=>e.toLowerCase();re(d);const de="Transaction";re(de);const{useCallback:ne,useEffect:ue,useMemo:ce,useLayoutEffect:Ie,useRef:ie,useState:le,useSyncExternalStore:ae}=e,pe=[],ge=[{},[],[pe,void 0,pe],void 0,!1,0],be=(e,t)=>e===t,Ce=[O,S,([e,t,o],[s,r,d])=>t===r&&S(e,s)&&S(o,d)],me=(e,t,o=pe)=>{const[,s]=le(),[r,d]=le();return ue((()=>{const o=e?t(e):void 0;return d(o),s([]),o?.destroy}),[e,...o]),r},ye=(e,t,...o)=>{const s=e?.["add"+t+d]?.(...o);return()=>e?.delListener(s)},ke=(e,t,s,r=pe)=>{const d=ie(ge[s]),n=ne((()=>{const o=t?.[(4==s?"has":"get")+e]?.(...r)??ge[s];return(Ce[s]??be)(o,d.current)?d.current:d.current=o}),[t,s,e,...r]),c=ne((d=>ye(t,(4==s?u:o)+e,...r,d)),[t,s,e,...r]),I=ae(c,n);return 0==s?{...I}:s<3?[...I]:I},we=(e,t,o,s=pe,r=pe,...d)=>Ie((()=>ye(t,e,...r,o,...d)),[t,e,...r,...s,...d]),he=(e,t,o,s=pe,r=P,d=pe,...n)=>{const u=K(e);return ne((e=>R(u,(s=>R(o(e,s),(o=>r(s["set"+t](...L(n,(t=>v(t)?t(e,s):t)),o),o)))))),[u,t,...s,...d,...n])},Re=(e,t,o=P,s=pe,...r)=>{const d=K(e);return ne((()=>o(d?.["del"+t](...r))),[d,t,...s,...r])},fe=(e,t,o)=>{const s=se(e);return ne((()=>s?.[t](o)),[s,t,o])},ve=(e,t=pe)=>ce(e,t),qe=(e,t=pe)=>ce(e,t),Pe=()=>G(1),xe=e=>ke(i,K(e),4,[]),Se=e=>ke(i,K(e),0),Le=e=>ke(l,K(e),1),Be=(e,t)=>ke(I,K(t),4,[e]),Te=(e,t)=>ke(I,K(t),0,[e]),Ee=(e,t)=>ke(I+m,K(t),1,[e]),Me=(e,t,o)=>ke(I+C,K(o),4,[e,t]),Fe=(e,t)=>ke(p,K(t),5,[e]),Ve=(e,t)=>ke(g,K(t),1,[e]),Ae=(e,t,o,s=0,r,d)=>ke(b,K(d),1,[e,t,o,s,r]),Oe=(e,t,o)=>ke(a,K(o),4,[e,t]),je=(e,t,o)=>ke(a,K(o),0,[e,t]),De=(e,t,o)=>ke(m,K(o),1,[e,t]),He=(e,t,o,s)=>ke(C,K(s),4,[e,t,o]),Qe=(e,t,o,s)=>ke(C,K(s),3,[e,t,o]),We=e=>ke(k,K(e),4,[]),ze=e=>ke(k,K(e),0),Ge=e=>ke(w,K(e),1),Je=(e,t)=>ke(y,K(t),4,[e]),Ke=(e,t)=>ke(y,K(t),3,[e]),Ne=(e,t,o,s,r)=>he(o,i,e,t,s,r),Ue=(e,t,o,s,r,d)=>he(s,I,t,o,r,d,e),Xe=(e,t,o,s,r,d,n)=>he(r,a,o,s,d,n,e,t),Ye=(e,t,o=pe,s,r=P,d=pe,n=!0)=>{const u=K(s);return ne((o=>R(u,(s=>R(t(o,s),(t=>r(s.addRow(v(e)?e(o,s):e,t,n),s,t)))))),[u,e,...o,...d,n])},Ze=(e,t,o,s,r,d,n)=>he(r,"PartialRow",o,s,d,n,e,t),$e=(e,t,o,s,r,d,n,u)=>he(d,C,s,r,n,u,e,t,o),_e=(e,t,o,s,r)=>he(o,k,e,t,s,r),et=(e,t,o,s,r)=>he(o,"PartialValues",e,t,s,r),tt=(e,t,o,s,r,d)=>he(s,y,t,o,r,d,e),ot=(e,t,o)=>Re(e,i,t,o),st=(e,t,o,s)=>Re(t,I,o,s,e),rt=(e,t,o,s,r)=>Re(o,a,s,r,e,t),dt=(e,t,o,s,r,d,n)=>Re(r,C,d,n,e,t,o,s),nt=(e,t,o)=>Re(e,k,t,o),ut=(e,t,o,s)=>Re(t,y,o,s,e),ct=(e,t,o,s)=>we(u+i,K(s),e,t,[],o),It=(e,t,o,s)=>we(i,K(s),e,t,pe,o),it=(e,t,o,s)=>we(l,K(s),e,t,pe,o),lt=(e,t,o,s,r)=>we(u+I,K(r),t,o,[e],s),at=(e,t,o,s,r)=>we(I,K(r),t,o,[e],s),pt=(e,t,o,s,r)=>we(I+m,K(r),t,o,[e],s),gt=(e,t,o,s,r,d)=>we(u+I+C,K(d),o,s,[e,t],r),bt=(e,t,o,s,r)=>we(p,K(r),t,o,[e],s),Ct=(e,t,o,s,r)=>we(g,K(r),t,o,[e],s),mt=(e,t,o,s,r,d,n,u,c)=>we(b,K(c),d,n,[e,t,o,s,r],u),yt=(e,t,o,s,r,d)=>we(u+a,K(d),o,s,[e,t],r),kt=(e,t,o,s,r,d)=>we(a,K(d),o,s,[e,t],r),wt=(e,t,o,s,r,d)=>we(m,K(d),o,s,[e,t],r),ht=(e,t,o,s,r,d,n)=>we(u+C,K(n),s,r,[e,t,o],d),Rt=(e,t,o,s,r,d,n)=>we(C,K(n),s,r,[e,t,o],d),ft=(e,t,o,s)=>we(u+k,K(s),e,t,[],o),vt=(e,t,o,s)=>we(k,K(s),e,t,pe,o),qt=(e,t,o,s)=>we(w,K(s),e,t,pe,o),Pt=(e,t,o,s,r)=>we(u+y,K(r),t,o,[e],s),xt=(e,t,o,s,r)=>we(y,K(r),t,o,[e],s),St=(e,t,o)=>we("Start"+de,K(o),e,t),Lt=(e,t,o)=>we("WillFinish"+de,K(o),e,t),Bt=(e,t,o)=>we("DidFinish"+de,K(o),e,t),Tt=(e,t,o)=>me(e,t,o),Et=()=>G(3),Mt=e=>ke("MetricIds",X(e),1),Ft=(e,t)=>ke("Metric",X(t),3,[e]),Vt=(e,t,o,s)=>we("Metric",X(s),t,o,[e]),At=(e,t,o)=>me(e,t,o),Ot=()=>G(5),jt=(e,t)=>ke("SliceIds",Z(t),1,[e]),Dt=e=>ke("IndexIds",Z(e),1),Ht=(e,t,o)=>ke("Slice"+g,Z(o),1,[e,t]),Qt=(e,t,o,s)=>we("SliceIds",Z(s),t,o,[e]),Wt=(e,t,o,s,r)=>we("Slice"+g,Z(r),o,s,[e,t]),zt=(e,t,o)=>me(e,t,o),Gt=()=>G(7),Jt=e=>ke("RelationshipIds",_(e),1),Kt=(e,t,o)=>ke("RemoteRowId",_(o),3,[e,t]),Nt=(e,t,o)=>ke("Local"+g,_(o),1,[e,t]),Ut=(e,t,o)=>ke("Linked"+g,_(o),1,[e,t]),Xt=(e,t,o,s,r)=>we("RemoteRowId",_(r),o,s,[e,t]),Yt=(e,t,o,s,r)=>we("Local"+g,_(r),o,s,[e,t]),Zt=(e,t,o,s,r)=>we("Linked"+g,_(r),o,s,[e,t]),$t=(e,t,o)=>me(e,t,o),_t=()=>G(9),eo=e=>ke("QueryIds",te(e),1),to=(e,t)=>ke(n+I,te(t),0,[e]),oo=(e,t)=>ke(n+I+m,te(t),1,[e]),so=(e,t)=>ke(n+p,te(t),5,[e]),ro=(e,t)=>ke(n+g,te(t),1,[e]),no=(e,t,o,s=0,r,d)=>ke(n+b,te(d),1,[e,t,o,s,r]),uo=(e,t,o)=>ke(n+a,te(o),0,[e,t]),co=(e,t,o)=>ke(n+m,te(o),1,[e,t]),Io=(e,t,o,s)=>ke(n+C,te(s),3,[e,t,o]),io=(e,t,o,s)=>we(n+I,te(s),t,o,[e]),lo=(e,t,o,s)=>we(n+I+m,te(s),t,o,[e]),ao=(e,t,o,s)=>we(n+p,te(s),t,o,[e]),po=(e,t,o,s)=>we(n+g,te(s),t,o,[e]),go=(e,t,o,s,r,d,u,c)=>we(n+b,te(c),d,u,[e,t,o,s,r]),bo=(e,t,o,s,r)=>we(n+a,te(r),o,s,[e,t]),Co=(e,t,o,s,r)=>we(n+m,te(r),o,s,[e,t]),mo=(e,t,o,s,r,d)=>we(n+C,te(d),s,r,[e,t,o]),yo=(e,t,o)=>me(e,t,o),ko=()=>G(11),wo=e=>ke("CheckpointIds",se(e),2),ho=(e,t)=>ke("Checkpoint",se(t),3,[e]),Ro=(e=P,t=pe,o,s=P,r=pe)=>{const d=se(o);return ne((t=>R(d,(o=>{const r=e(t);s(o.addCheckpoint(r),o,r)}))),[d,...t,...r])},fo=e=>fe(e,"goBackward"),vo=e=>fe(e,"goForward"),qo=(e,t=pe,o,s=P,r=pe)=>{const d=se(o);return ne((t=>R(d,(o=>R(e(t),(e=>s(o.goTo(e),e)))))),[d,...t,...r])},Po=e=>{const t=se(e),[s,r]=wo(t);return[(d=s,!(0==q(d))),fo(t),r,R(r,(e=>t?.getCheckpoint(e)))??o];var d},xo=e=>{const t=se(e),[,,[s]]=wo(t);return[!h(s),vo(t),s,R(s,(e=>t?.getCheckpoint(e)))??o]},So=(e,t,o)=>we("CheckpointIds",se(o),e,t),Lo=(e,t,o,s)=>we("Checkpoint",se(s),t,o,[e]),Bo=(e,t,o=pe,s,r=pe,d,n=pe)=>{const[,u]=le(),[c,I]=le();return ue((()=>{const o=e?t(e):void 0;I(o),o&&s&&(async()=>{await s(o),u([])})()}),[e,...o,...r]),ue((()=>()=>{c&&(c.destroy(),d?.(c))}),[c,...n]),c},To=(e,t,o=pe,s,r=pe)=>{const[d,n]=le();return ue((()=>{(async()=>{const o=e?await t(e):void 0;n(o)})()}),[e,...o]),ue((()=>()=>{d&&(d.destroy(),s?.(d))}),[d,...r]),d},{PureComponent:Eo,Fragment:Mo,createElement:Fo,useCallback:Vo,useLayoutEffect:Ao,useRef:Oo,useState:jo}=e,Do=(e,...t)=>h(e)?{}:e(...t),Ho=(e,t)=>[e,e?.getStore(),e?.getLocalTableId(t),e?.getRemoteTableId(t)],{useCallback:Qo,useContext:Wo,useMemo:zo,useState:Go}=e,Jo=({tableId:e,store:t,rowComponent:o=$o,getRowComponentProps:s,customCellIds:r,separator:d,debugIds:n},u)=>Yo(L(u,(d=>Fo(o,{...Do(s,d),key:d,tableId:e,rowId:d,customCellIds:r,store:t,debugIds:n}))),d,n,e),Ko=({queryId:e,queries:t,resultRowComponent:o=ls,getResultRowComponentProps:s,separator:r,debugIds:d},n)=>Yo(L(n,(r=>Fo(o,{...Do(s,r),key:r,queryId:e,rowId:r,queries:t,debugIds:d}))),r,d,e),No=({relationshipId:e,relationships:t,rowComponent:o=$o,getRowComponentProps:s,separator:r,debugIds:d},n,u)=>{const[c,I,i]=Ho(_(t),e),l=n(e,u,c);return Yo(L(l,(e=>Fo(o,{...Do(s,e),key:e,tableId:i,rowId:e,store:I,debugIds:d}))),r,d,u)},Uo=e=>({checkpoints:t,checkpointComponent:o=gs,getCheckpointComponentProps:s,separator:r,debugIds:d})=>{const n=se(t);return Yo(L(e(wo(n)),(e=>Fo(o,{...Do(s,e),key:e,checkpoints:n,checkpointId:e,debugIds:d}))),r)},Xo=({store:e,storesById:t,metrics:o,metricsById:s,indexes:r,indexesById:d,relationships:n,relationshipsById:u,queries:c,queriesById:I,checkpoints:i,checkpointsById:l,children:a})=>{const p=Wo(Q),[g,b]=Go({}),C=Qo(((e,t)=>b((o=>V(o,e)==t?o:{...o,[e]:t}))),[]),m=Qo((e=>b((t=>({...A(t,e)})))),[]);return Fo(Q.Provider,{value:zo((()=>[e??p[0],{...p[1],...t,...g},o??p[2],{...p[3],...s},r??p[4],{...p[5],...d},n??p[6],{...p[7],...u},c??p[8],{...p[9],...I},i??p[10],{...p[11],...l},C,m]),[e,t,g,o,s,r,d,n,u,c,I,i,l,p,C,m])},a)},Yo=(e,t,o,s)=>{const r=h(t)||!Array.isArray(e)?e:L(e,((e,o)=>o>0?[t,e]:e));return o?[s,":{",r,"}"]:r},Zo=({tableId:e,rowId:t,cellId:s,store:r,debugIds:d})=>Yo(o+(Qe(e,t,s,r)??o),void 0,d,s),$o=({tableId:e,rowId:t,store:o,cellComponent:s=Zo,getCellComponentProps:r,customCellIds:d,separator:n,debugIds:u})=>Yo(L(((e,t,o,s)=>{const r=De(t,o,s);return e??r})(d,e,t,o),(d=>Fo(s,{...Do(r,d),key:d,tableId:e,rowId:t,cellId:d,store:o,debugIds:u}))),n,u,t),_o=e=>Jo(e,Ve(e.tableId,e.store)),es=({cellId:e,descending:t,offset:o,limit:s,...r})=>Jo(r,Ae(r.tableId,e,t,o,s,r.store)),ts=({store:e,tableComponent:t=_o,getTableComponentProps:o,separator:s,debugIds:r})=>Yo(L(Le(e),(s=>Fo(t,{...Do(o,s),key:s,tableId:s,store:e,debugIds:r}))),s),os=({valueId:e,store:t,debugIds:s})=>Yo(o+(Ke(e,t)??o),void 0,s,e),ss=({store:e,valueComponent:t=os,getValueComponentProps:o,separator:s,debugIds:r})=>Yo(L(Ge(e),(s=>Fo(t,{...Do(o,s),key:s,valueId:s,store:e,debugIds:r}))),s),rs=({metricId:e,metrics:t,debugIds:s})=>Yo(Ft(e,t)??o,void 0,s,e),ds=({indexId:e,sliceId:t,indexes:o,rowComponent:s=$o,getRowComponentProps:r,separator:d,debugIds:n})=>{const[u,c,I]=((e,t)=>[e,e?.getStore(),e?.getTableId(t)])(Z(o),e),i=Ht(e,t,u);return Yo(L(i,(e=>Fo(s,{...Do(r,e),key:e,tableId:I,rowId:e,store:c,debugIds:n}))),d,n,t)},ns=({indexId:e,indexes:t,sliceComponent:o=ds,getSliceComponentProps:s,separator:r,debugIds:d})=>Yo(L(jt(e,t),(r=>Fo(o,{...Do(s,r),key:r,indexId:e,sliceId:r,indexes:t,debugIds:d}))),r,d,e),us=({relationshipId:e,localRowId:t,relationships:o,rowComponent:s=$o,getRowComponentProps:r,debugIds:d})=>{const[n,u,,c]=Ho(_(o),e),I=Kt(e,t,n);return Yo(h(c)||h(I)?null:Fo(s,{...Do(r,I),key:I,tableId:c,rowId:I,store:u,debugIds:d}),void 0,d,t)},cs=e=>No(e,Nt,e.remoteRowId),Is=e=>No(e,Ut,e.firstRowId),is=({queryId:e,rowId:t,cellId:s,queries:r,debugIds:d})=>Yo(o+(Io(e,t,s,r)??o),void 0,d,s),ls=({queryId:e,rowId:t,queries:o,resultCellComponent:s=is,getResultCellComponentProps:r,separator:d,debugIds:n})=>Yo(L(co(e,t,o),(d=>Fo(s,{...Do(r,d),key:d,queryId:e,rowId:t,cellId:d,queries:o,debugIds:n}))),d,n,t),as=e=>Ko(e,ro(e.queryId,e.queries)),ps=({cellId:e,descending:t,offset:o,limit:s,...r})=>Ko(r,no(r.queryId,e,t,o,s,r.queries)),gs=({checkpoints:e,checkpointId:t,debugIds:s})=>Yo(ho(t,e)??o,void 0,s,t),bs=Uo((e=>e[0])),Cs=Uo((e=>h(e[1])?[]:[e[1]])),ms=Uo((e=>e[2]));export{bs as BackwardCheckpointsView,Zo as CellView,gs as CheckpointView,Cs as CurrentCheckpointView,ms as ForwardCheckpointsView,ns as IndexView,Is as LinkedRowsView,cs as LocalRowsView,rs as MetricView,Xo as Provider,us as RemoteRowView,is as ResultCellView,ls as ResultRowView,ps as ResultSortedTableView,as as ResultTableView,$o as RowView,ds as SliceView,es as SortedTableView,_o as TableView,ts as TablesView,os as ValueView,ss as ValuesView,Ye as useAddRowCallback,Qe as useCell,De as useCellIds,wt as useCellIdsListener,Rt as useCellListener,ho as useCheckpoint,wo as useCheckpointIds,So as useCheckpointIdsListener,Lo as useCheckpointListener,oe as useCheckpoints,ko as useCheckpointsIds,se as useCheckpointsOrCheckpointsById,yo as useCreateCheckpoints,At as useCreateIndexes,qe as useCreateMergeableStore,Tt as useCreateMetrics,Bo as useCreatePersister,$t as useCreateQueries,zt as useCreateRelationships,ve as useCreateStore,To as useCreateSynchronizer,dt as useDelCellCallback,rt as useDelRowCallback,st as useDelTableCallback,ot as useDelTablesCallback,ut as useDelValueCallback,nt as useDelValuesCallback,Bt as useDidFinishTransactionListener,fo as useGoBackwardCallback,vo as useGoForwardCallback,qo as useGoToCallback,He as useHasCell,ht as useHasCellListener,Oe as useHasRow,yt as useHasRowListener,Be as useHasTable,Me as useHasTableCell,gt as useHasTableCellListener,lt as useHasTableListener,xe as useHasTables,ct as useHasTablesListener,Je as useHasValue,Pt as useHasValueListener,We as useHasValues,ft as useHasValuesListener,Dt as useIndexIds,Y as useIndexes,Ot as useIndexesIds,Z as useIndexesOrIndexesById,Ut as useLinkedRowIds,Zt as useLinkedRowIdsListener,Nt as useLocalRowIds,Yt as useLocalRowIdsListener,Ft as useMetric,Mt as useMetricIds,Vt as useMetricListener,U as useMetrics,Et as useMetricsIds,X as useMetricsOrMetricsById,N as useProvideStore,ee as useQueries,_t as useQueriesIds,te as useQueriesOrQueriesById,eo as useQueryIds,xo as useRedoInformation,Jt as useRelationshipIds,$ as useRelationships,Gt as useRelationshipsIds,_ as useRelationshipsOrRelationshipsById,Kt as useRemoteRowId,Xt as useRemoteRowIdListener,Io as useResultCell,co as useResultCellIds,Co as useResultCellIdsListener,mo as useResultCellListener,uo as useResultRow,so as useResultRowCount,ao as useResultRowCountListener,ro as useResultRowIds,po as useResultRowIdsListener,bo as useResultRowListener,no as useResultSortedRowIds,go as useResultSortedRowIdsListener,to as useResultTable,oo as useResultTableCellIds,lo as useResultTableCellIdsListener,io as useResultTableListener,je as useRow,Fe as useRowCount,bt as useRowCountListener,Ve as useRowIds,Ct as useRowIdsListener,kt as useRowListener,$e as useSetCellCallback,Ro as useSetCheckpointCallback,Ze as useSetPartialRowCallback,et as useSetPartialValuesCallback,Xe as useSetRowCallback,Ue as useSetTableCallback,Ne as useSetTablesCallback,tt as useSetValueCallback,_e as useSetValuesCallback,jt as useSliceIds,Qt as useSliceIdsListener,Ht as useSliceRowIds,Wt as useSliceRowIdsListener,Ae as useSortedRowIds,mt as useSortedRowIdsListener,St as useStartTransactionListener,J as useStore,Pe as useStoreIds,K as useStoreOrStoreById,Te as useTable,Ee as useTableCellIds,pt as useTableCellIdsListener,Le as useTableIds,it as useTableIdsListener,at as useTableListener,Se as useTables,It as useTablesListener,Po as useUndoInformation,Ke as useValue,Ge as useValueIds,qt as useValueIdsListener,xt as useValueListener,ze as useValues,vt as useValuesListener,Lt as useWillFinishTransactionListener};
Binary file
@@ -1 +1 @@
1
- var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),r=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,u=a=>Array.isArray(a),d=(a,t,e)=>a.slice(t,e),p=a=>a.length,E=async a=>o.all(a),f="_",m="_id",g=a=>`"${a.replace(/"/g,'""')}"`,v="SELECT",C=(a,t="")=>a.join(t),T=(a,t)=>a.map(t),h=a=>0==p(a),A=(a,t)=>a.filter(t),O=(a,...t)=>a.push(...t),N=(a,t)=>a?.has(t)??!1,b=a=>[...a?.values()??[]],R=(a,t)=>a?.delete(t),S=Object,L=a=>S.getPrototypeOf(a),D=S.entries,I=S.keys,M=S.freeze,P=(a=[])=>S.fromEntries(a),_=(...a)=>S.assign({},...a),F=(a,t)=>t in a,x=(a,t)=>T(D(a),(([a,e])=>t(e,a))),j=a=>S.values(a),B=a=>p(I(a)),W=a=>(a=>!l(a)&&y(L(a),(a=>a==S.prototype||l(L(a))),(()=>!0)))(a)&&0==B(a),H=a=>new Map(a),U=a=>[...a?.keys()??[]],Y=(a,t)=>a?.get(t),$=(a,t)=>T([...a?.entries()??[]],(([a,e])=>t(e,a))),k=(a,t,e)=>l(e)?(R(a,t),a):a?.set(t,e),q=(a,t,e,n)=>(N(a,t)||k(a,t,e()),Y(a,t)),G=(a,t,e,n=k)=>(x(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>F(t,e)?0:n(a,e))),a),J=a=>new Set(u(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=v+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const r=H();return[async()=>G(r,P(await E(T(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,P(T(await a(v+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>k(r,t,G(q(r,t,H),e,((a,t,e)=>{e!=Y(a,t)&&k(a,t,e)}),((a,t)=>k(a,t))))),((a,t)=>k(r,t))),async(t,e)=>((a,t)=>!l(Y(Y(r,a),t)))(t,e)?P(A(T(await a(X+g(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!W(t)))):{},async(t,e,o,c,y,w=!1)=>{const u=J();x(o??{},(a=>T(I(a??{}),(a=>z(u,a)))));const d=b(u);if(!w&&y&&h(d)&&N(r,t))return await a("DROP "+K+g(t)),void k(r,t);if(h(d)||N(r,t)){const s=Y(r,t),i=J(U(s));await E([...T(d,(async e=>{R(i,e)||(await a(V+g(t)+"ADD"+g(e)),k(s,e,n))})),...!w&&c?T(b(i),(async n=>{n!=e&&(await a(V+g(t)+"DROP"+g(n)),k(s,n))})):[]])}else await a("CREATE "+K+g(t)+"("+g(e)+` PRIMARY KEY ON CONFLICT REPLACE${C(T(d,(a=>s+g(a))))});`),k(r,t,H([[e,n],...T(d,(a=>[a,n]))]));if(w)l(o)?await a(Q+g(t)+aa+" 1"):await E(x(o,(async(n,s)=>{l(n)?await a(Q+g(t)+aa+g(e)+"=?",[s]):h(d)||await ea(a,t,e,I(n),[s,...j(n)],i)})));else if(h(d))N(r,t)&&await a(Q+g(t)+aa+" 1");else{const n=A(U(Y(r,t)),(a=>a!=e)),s=[],c=[];x(o??{},((a,t)=>{O(s,t,...T(n,(t=>a?.[t]))),O(c,t)})),await ea(a,t,e,n,s,i),await a(Q+g(t)+aa+g(e)+"NOT IN("+na(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,o,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+g(t)+"("+g(e)+C(T(i,(a=>s+g(a))))+")VALUES"+d(r(`,(?${r(",?",p(i))})`,p(o)/(p(i)+1)),1)+(c?"ON CONFLICT("+g(e)+")DO UPDATE SET"+C(T(i,(a=>g(a)+"=excluded."+g(a))),s):n),T(o,(a=>a??null))),na=a=>C(T(a,(()=>"?")),s),sa=JSON.parse,ia=H(),ra=H(),oa=(a,t,e,n,s,i,r,o={},c=[])=>{let w,d,p,E=0;q(ia,c,(()=>0)),q(ra,c,(()=>[]));const[f,m,g,v,C]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!W(a)||!W(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!W(a)||!W(t),t.setContent]:0)(r,a),T=t=>{(f&&u(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=E&&(E=1,await R((async()=>{try{T(await t())}catch(t){i?.(t),a&&C(a)}E=0}))),S),A=()=>(d&&(s(d),d=void 0),S),N=async a=>(1!=E&&(E=2,await R((async()=>{try{await e(m,a)}catch(a){i?.(a)}E=0}))),S),b=()=>(y(p,a.delListener),p=void 0,S),R=async(...a)=>(O(Y(ra,c),...a),await(async()=>{if(!Y(ia,c)){for(k(ia,c,1);!l((a=Y(ra,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}k(ia,c,0)}var a})(),S),S={load:h,startAutoLoad:async a=>(await A().load(a),d=n((async(a,t)=>{t||a?2!=E&&(E=1,T(t??a),E=0):await h()})),S),stopAutoLoad:A,isAutoLoading:()=>!l(d),save:N,startAutoSave:async()=>(await b().save(),p=a.addDidFinishTransactionListener((()=>{const a=g();v(a)&&N(a)})),S),stopAutoSave:b,isAutoSaving:()=>!l(p),schedule:R,getStore:()=>a,destroy:()=>A().stopAutoSave(),getStats:()=>({}),...o};return M(S)},ca="store",la=(a,t,e,n,s,[i],r,o,c,l)=>{const[y,w,u,d]=ta(t,r,s,l);return oa(a,(async()=>await d((async()=>(await y(),sa((await w(i,m))[f]?.[ca]??"null"))))),(async a=>await d((async()=>{var t;await y(),await u(i,m,{[f]:{[ca]:(t=a()??null,JSON.stringify(t,((a,t)=>t instanceof Map?S.fromEntries([...t]):t)))}},!0,!0)}))),e,n,s,1,{[c]:()=>o},o)},ya=(a,t,e,n,s,[i,r,[o,c,y]],w,u,d,p)=>{const[g,v,C,T]=ta(t,w,s,p),h=async(a,t)=>await E($(r,(async([e,n,s,i],r)=>{t&&!F(a,r)||await C(e,n,a[r],s,i,t)}))),O=async(a,t)=>c?await C(y,m,{[f]:a},!0,!0,t):null;return oa(a,(async()=>await T((async()=>{await g();const a=await(async()=>P(A(await E($(i,(async([a,t],e)=>[a,await v(e,t)]))),(a=>!W(a[1])))))(),t=await(async()=>o?(await v(y,m))[f]:{})();return W(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await g(),l(t)){const[t,e]=a();await h(t),await O(e)}else await h(t[0],!0),await O(t[1],!0)}))),e,n,s,1,{[d]:()=>u},u)},wa="json",ua="autoLoadIntervalSeconds",da="rowIdColumnName",pa="tableId",Ea="tableName",fa={mode:wa,[ua]:1},ma={load:0,save:0,[Ea]:e+"_values"},ga=(a,t,e,n)=>{const s=H();return x(a,((a,i)=>{const r=d(j(_(t,w(a)?{[e]:a}:a)),0,B(t));l(r[0])||n(i,r[0])||k(s,i,r)})),s},va="pragma ",Ca="data_version",Ta="schema_version",ha=(a,t,n,s,i,r,o,l,y="getDb",u)=>{let p,E,f;const[g,C,T,h]=(a=>{const t=(a=>_(fa,w(a)?{storeTableName:a}:a??{}))(a),n=t[ua];if(t.mode==wa){const{storeTableName:a=e}=t;return[1,n,[a],J(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=d(j(_(ma,r)),0,B(ma)),c=o[2],l=J(c);return[0,n,[ga(s,{[pa]:null,[da]:m},pa,(a=>z(l,a)&&a==c)),ga(i,{[Ea]:null,[da]:m,deleteEmptyColumns:0,deleteEmptyTable:0},Ea,((a,t)=>z(l,t)&&t==c)),o],l]})(t);return(g?la:ya)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const t=(await n(va+Ca))[0][Ca],e=(await n(va+Ta))[0][Ta],s=(await n(v+" TOTAL_CHANGES() c"))[0].c;t==(p??=t)&&e==(E??=e)&&s==(f??=s)||(a(),p=t,E=e)}catch{}},e=C,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=E=null,i(t)}),o,T,b(h),l,y,u)};a.createCrSqliteWasmPersister=(a,t,e,n,s)=>ha(a,e,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),n,s,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});
1
+ var a,t;a=this,t=function(a){"use strict";const t=a=>typeof a,e="tinybase",n="",s=",",i=t(n),r=(a,t)=>a.repeat(t),o=Promise,c=clearInterval,l=a=>null==a,y=(a,t,e)=>l(a)?e?.():t(a),w=a=>t(a)==i,d=a=>Array.isArray(a),u=(a,t,e)=>a.slice(t,e),E=a=>a.length,p=async a=>o.all(a),f=(a,t="")=>a.join(t),v=(a,t)=>a.map(t),g=a=>0==E(a),m=(a,t)=>a.filter(t),C=(a,...t)=>a.push(...t),T=(a,t)=>a?.has(t)??!1,O=a=>[...a?.values()??[]],h=(a,t)=>a?.delete(t),A=Object,N=a=>A.getPrototypeOf(a),R=A.entries,S=A.keys,L=A.freeze,b=(a=[])=>A.fromEntries(a),I=(...a)=>A.assign({},...a),D=(a,t)=>t in a,M=(a,t)=>v(R(a),(([a,e])=>t(e,a))),P=a=>A.values(a),$=a=>E(S(a)),_=a=>(a=>!l(a)&&y(N(a),(a=>a==A.prototype||l(N(a))),(()=>!0)))(a)&&0==$(a),F=a=>new Map(a),x=a=>[...a?.keys()??[]],j=(a,t)=>a?.get(t),B=(a,t)=>v([...a?.entries()??[]],(([a,e])=>t(e,a))),W=(a,t,e)=>l(e)?(h(a,t),a):a?.set(t,e),H=(a,t,e,n)=>(T(a,t)||W(a,t,e()),j(a,t)),J=(a,t,e,n=W)=>(M(t,((t,n)=>e(a,n,t))),((a,t)=>{((a,t)=>{a?.forEach(t)})(a,((a,e)=>t(e)))})(a,(e=>D(t,e)?0:n(a,e))),a),U="_",Y="_id",k=a=>`"${a.replace(/"/g,'""')}"`,q="SELECT",G=a=>new Set(d(a)||l(a)?a:[a]),z=(a,t)=>a?.add(t),K="TABLE",V="ALTER "+K,Q="DELETE FROM",X=q+"*FROM",Z="FROM pragma_table_",aa="WHERE",ta=(a,t,e,i)=>{const r=F();return[async()=>J(r,b(await p(v(await a("SELECT name "+Z+"list WHERE schema='main'AND(type='table'OR type='view')AND name IN("+na(t)+")ORDER BY name",t),(async({name:t})=>[t,b(v(await a(q+" name,type "+Z+"info(?)",[t]),(({name:a,type:t})=>[a,t])))])))),((a,t,e)=>W(r,t,J(H(r,t,F),e,((a,t,e)=>{e!=j(a,t)&&W(a,t,e)}),((a,t)=>W(a,t))))),((a,t)=>W(r,t))),async(t,e)=>((a,t)=>!l(j(j(r,a),t)))(t,e)?b(m(v(await a(X+k(t)),(a=>{return[a[e],(t={...a},n=e,delete t[n],t)];var t,n})),(([a,t])=>!l(a)&&!_(t)))):{},async(t,e,o,c,y,w=!1)=>{const d=G();M(o??{},(a=>v(S(a??{}),(a=>z(d,a)))));const u=O(d);if(!w&&y&&g(u)&&T(r,t))return await a("DROP "+K+k(t)),void W(r,t);if(g(u)||T(r,t)){const s=j(r,t),i=G(x(s));await p([...v(u,(async e=>{h(i,e)||(await a(V+k(t)+"ADD"+k(e)),W(s,e,n))})),...!w&&c?v(O(i),(async n=>{n!=e&&(await a(V+k(t)+"DROP"+k(n)),W(s,n))})):[]])}else await a("CREATE "+K+k(t)+"("+k(e)+` PRIMARY KEY ON CONFLICT REPLACE${f(v(u,(a=>s+k(a))))});`),W(r,t,F([[e,n],...v(u,(a=>[a,n]))]));if(w)l(o)?await a(Q+k(t)+aa+" 1"):await p(M(o,(async(n,s)=>{l(n)?await a(Q+k(t)+aa+k(e)+"=?",[s]):g(u)||await ea(a,t,e,S(n),[s,...P(n)],i)})));else if(g(u))T(r,t)&&await a(Q+k(t)+aa+" 1");else{const n=m(x(j(r,t)),(a=>a!=e)),s=[],c=[];M(o??{},((a,t)=>{C(s,t,...v(n,(t=>a?.[t]))),C(c,t)})),await ea(a,t,e,n,s,i),await a(Q+k(t)+aa+k(e)+"NOT IN("+na(c)+")",c)}},async t=>{let n;await a("BEGIN");try{n=await t()}catch(a){e?.(a)}return await a("END"),n}]},ea=async(a,t,e,i,o,c=!0)=>await a("INSERT "+(c?n:"OR REPLACE ")+"INTO"+k(t)+"("+k(e)+f(v(i,(a=>s+k(a))))+")VALUES"+u(r(`,(?${r(",?",E(i))})`,E(o)/(E(i)+1)),1)+(c?"ON CONFLICT("+k(e)+")DO UPDATE SET"+f(v(i,(a=>k(a)+"=excluded."+k(a))),s):n),v(o,(a=>a??null))),na=a=>f(v(a,(()=>"?")),s),sa=F(),ia=F(),ra=(a,t,e,n,s,i,r,o={},c=[])=>{let w,u,E,p=0;H(sa,c,(()=>0)),H(ia,c,(()=>[]));const[f,v,g,m,T]=((a=1,t)=>a>1&&"merge"in t?[1,t.getMergeableContent,t.getTransactionMergeableChanges,([[a],[t]])=>!_(a)||!_(t),t.setDefaultContent]:2!=a?[0,t.getContent,t.getTransactionChanges,([a,t])=>!_(a)||!_(t),t.setContent]:0)(r,a),O=t=>{(f&&d(t?.[0])?1===t?.[2]?a.applyMergeableChanges:a.setMergeableContent:1===t?.[2]?a.applyChanges:a.setContent)(t)},h=async a=>(2!=p&&(p=1,await S((async()=>{try{O(await t())}catch(t){i?.(t),a&&T(a)}p=0}))),b),A=()=>(u&&(s(u),u=void 0),b),N=async a=>(1!=p&&(p=2,await S((async()=>{try{await e(v,a)}catch(a){i?.(a)}p=0}))),b),R=()=>(y(E,a.delListener),E=void 0,b),S=async(...a)=>(C(j(ia,c),...a),await(async()=>{if(!j(sa,c)){for(W(sa,c,1);!l((a=j(ia,c),w=a.shift()));)try{await w()}catch(a){i?.(a)}W(sa,c,0)}var a})(),b),b={load:h,startAutoLoad:async a=>(await A().load(a),u=n((async(a,t)=>{t||a?2!=p&&(p=1,O(t??a),p=0):await h()})),b),stopAutoLoad:A,isAutoLoading:()=>!l(u),save:N,startAutoSave:async()=>(await R().save(),E=a.addDidFinishTransactionListener((()=>{const a=g();m(a)&&N(a)})),b),stopAutoSave:R,isAutoSaving:()=>!l(E),schedule:S,getStore:()=>a,destroy:()=>A().stopAutoSave(),getStats:()=>({}),...o};return L(b)},oa=(a,t,e,n,s,i,[r,o,c],l,y,w,d)=>{const[u,E,p,f]=ta(t,l,s,d);return ra(a,(async()=>await f((async()=>{return await u(),a=(await E(r,o))[U]?.[c]??"null",JSON.parse(a,((a,t)=>""===t?void 0:t));var a}))),(async a=>await f((async()=>{var t;await u(),await p(r,o,{[U]:{[c]:(t=a()??null,JSON.stringify(t,((a,t)=>void 0===t?"":t)))}},!0,!0)}))),e,n,s,i,{[w]:()=>y},y)},ca=(a,t,e,n,s,i,[r,o,[c,y,w]],d,u,E,f)=>{const[v,g,C,T]=ta(t,d,s,f),O=async(a,t)=>await p(B(o,(async([e,n,s,i],r)=>{t&&!D(a,r)||await C(e,n,a[r],s,i,t)}))),h=async(a,t)=>y?await C(w,Y,{[U]:a},!0,!0,t):null;return ra(a,(async()=>await T((async()=>{await v();const a=await(async()=>b(m(await p(B(r,(async([a,t],e)=>[a,await g(e,t)]))),(a=>!_(a[1])))))(),t=await(async()=>c?(await g(w,Y))[U]:{})();return _(a)&&l(t)?void 0:[a,t]}))),(async(a,t)=>await T((async()=>{if(await v(),l(t)){const[t,e]=a();await O(t),await h(e)}else await O(t[0],!0),await h(t[1],!0)}))),e,n,s,i,{[E]:()=>u},u)},la="ColumnName",ya="store",wa="json",da=ya+"TableName",ua=ya+"Id"+la,Ea=ya+la,pa="autoLoadIntervalSeconds",fa="rowId"+la,va="tableId",ga="tableName",ma={mode:wa,[pa]:1},Ca={load:0,save:0,[ga]:e+"_values"},Ta=(a,t,e,n,s)=>{const i=F();return M(a,((a,r)=>{const o=u(P(I(t,w(a)?{[e]:a}:a)),0,$(t));l(o[0])||n(r,o[0])||(s(r,o[0]),W(i,r,o))})),i},Oa="pragma_",ha="data_version",Aa="schema_version";a.createCrSqliteWasmPersister=(a,t,n,s,i)=>((a,t,n,s,i,r,o,l,y,d="getDb",E)=>{let p,f,v;const[g,m,C,h]=(a=>{const t=(a=>I(ma,w(a)?{[da]:a}:a??{}))(a),n=t[pa];if(t.mode==wa){const a=t[da]??e;return[1,n,[a,t[ua]??Y,t[Ea]??ya],G(a)]}const{tables:{load:s={},save:i={}}={},values:r={}}=t,o=u(P(I(Ca,r)),0,$(Ca)),c=o[2],l=G(c),y=G(c);return[0,n,[Ta(s,{[va]:null,[fa]:Y},va,(a=>T(y,a)),(a=>z(l,a))),Ta(i,{[ga]:null,[fa]:Y,deleteEmptyColumns:0,deleteEmptyTable:0},ga,((a,t)=>T(y,t)),((a,t)=>z(l,t))),o],l]})(t);return(g?oa:ca)(a,r?async(a,t)=>(r(a,t),await n(a,t)):n,(a=>{return[(t=async()=>{try{const[{d:t,s:e,c:s}]=await n(`SELECT ${ha} d,${Aa} s,TOTAL_CHANGES() c FROM ${Oa}${ha} JOIN ${Oa}${Aa}`);t==(p??=t)&&e==(f??=e)&&s==(v??=s)||(a(),p=t,f=e)}catch{}},e=m,t(),setInterval(t,1e3*e)),s((t=>h.has(t)?a():0))];var t,e}),(([a,t])=>{c(a),p=f=v=null,i(t)}),o,l,C,O(h),y,d,E)})(a,n,(async(a,e=[])=>await t.execO(a,e)),(a=>t.onUpdate(((t,e,n)=>a(n)))),(a=>a()),s,i,1,t)},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((a="undefined"!=typeof globalThis?globalThis:a||self).TinyBasePersisterCrSqliteWasm={});