tinybase 8.5.0 → 9.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/@types/_internal/queries/with-schemas/index.d.ts +1 -2
  2. package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
  3. package/@types/persisters/index.d.ts +32 -12
  4. package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
  5. package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
  6. package/@types/persisters/with-schemas/index.d.ts +56 -20
  7. package/@types/queries/index.d.ts +1 -7
  8. package/@types/queries/with-schemas/index.d.ts +5 -15
  9. package/@types/store/index.d.ts +1 -2
  10. package/@types/store/with-schemas/index.d.ts +19 -29
  11. package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
  12. package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
  13. package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
  14. package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
  15. package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
  16. package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
  17. package/@types/ui-react/with-schemas/index.d.ts +3 -6
  18. package/@types/ui-react-dom/index.d.ts +10 -10
  19. package/@types/ui-react-dom/with-schemas/index.d.ts +16 -22
  20. package/@types/ui-react-dom-charts/index.d.ts +7 -7
  21. package/@types/ui-react-dom-charts/with-schemas/index.d.ts +10 -11
  22. package/@types/ui-react-inspector/index.d.ts +1 -1
  23. package/@types/ui-react-inspector/with-schemas/index.d.ts +1 -1
  24. package/@types/ui-solid/with-schemas/index.d.ts +4 -8
  25. package/@types/ui-solid-dom/index.d.ts +10 -10
  26. package/@types/ui-solid-dom/with-schemas/index.d.ts +16 -22
  27. package/@types/ui-solid-inspector/index.d.ts +1 -1
  28. package/@types/ui-solid-inspector/with-schemas/index.d.ts +1 -1
  29. package/@types/ui-svelte-dom/index.d.ts +10 -10
  30. package/@types/ui-svelte-dom/with-schemas/index.d.ts +16 -22
  31. package/@types/ui-svelte-inspector/index.d.ts +1 -1
  32. package/@types/ui-svelte-inspector/with-schemas/index.d.ts +1 -1
  33. package/index.js +21 -19
  34. package/indexes/index.js +6 -8
  35. package/indexes/with-schemas/index.js +6 -8
  36. package/metrics/index.js +6 -8
  37. package/metrics/with-schemas/index.js +6 -8
  38. package/min/index.js +1 -1
  39. package/min/index.js.gz +0 -0
  40. package/min/omni/index.js +1 -1
  41. package/min/omni/index.js.gz +0 -0
  42. package/min/omni/with-schemas/index.js +1 -1
  43. package/min/omni/with-schemas/index.js.gz +0 -0
  44. package/min/persisters/index.js +1 -1
  45. package/min/persisters/index.js.gz +0 -0
  46. package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
  47. package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
  48. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
  49. package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
  50. package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
  51. package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
  52. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
  53. package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
  54. package/min/persisters/persister-electric-sql/index.js +1 -1
  55. package/min/persisters/persister-electric-sql/index.js.gz +0 -0
  56. package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
  57. package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
  58. package/min/persisters/persister-expo-sqlite/index.js +1 -1
  59. package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
  60. package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
  61. package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
  62. package/min/persisters/persister-libsql/index.js +1 -1
  63. package/min/persisters/persister-libsql/index.js.gz +0 -0
  64. package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
  65. package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
  66. package/min/persisters/persister-pglite/index.js +1 -1
  67. package/min/persisters/persister-pglite/index.js.gz +0 -0
  68. package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
  69. package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
  70. package/min/persisters/persister-postgres/index.js +1 -1
  71. package/min/persisters/persister-postgres/index.js.gz +0 -0
  72. package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
  73. package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
  74. package/min/persisters/persister-powersync/index.js +1 -1
  75. package/min/persisters/persister-powersync/index.js.gz +0 -0
  76. package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
  77. package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
  78. package/min/persisters/persister-react-native-sqlite/index.js +1 -1
  79. package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
  80. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
  81. package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
  82. package/min/persisters/persister-sqlite-bun/index.js +1 -1
  83. package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
  84. package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
  85. package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
  86. package/min/persisters/persister-sqlite-wasm/index.js +1 -1
  87. package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
  88. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
  89. package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
  90. package/min/persisters/persister-sqlite3/index.js +1 -1
  91. package/min/persisters/persister-sqlite3/index.js.gz +0 -0
  92. package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
  93. package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
  94. package/min/persisters/with-schemas/index.js +1 -1
  95. package/min/persisters/with-schemas/index.js.gz +0 -0
  96. package/min/queries/index.js +1 -1
  97. package/min/queries/index.js.gz +0 -0
  98. package/min/queries/with-schemas/index.js +1 -1
  99. package/min/queries/with-schemas/index.js.gz +0 -0
  100. package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
  101. package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
  102. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
  103. package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
  104. package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
  105. package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
  106. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
  107. package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
  108. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
  109. package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
  110. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
  111. package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
  112. package/min/with-schemas/index.js +1 -1
  113. package/min/with-schemas/index.js.gz +0 -0
  114. package/omni/index.js +311 -141
  115. package/omni/with-schemas/index.js +311 -141
  116. package/package.json +7 -7
  117. package/persisters/index.js +129 -37
  118. package/persisters/persister-cr-sqlite-wasm/index.js +129 -37
  119. package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +129 -37
  120. package/persisters/persister-durable-object-sql-storage/index.js +271 -110
  121. package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +271 -110
  122. package/persisters/persister-electric-sql/index.js +129 -37
  123. package/persisters/persister-electric-sql/with-schemas/index.js +129 -37
  124. package/persisters/persister-expo-sqlite/index.js +129 -37
  125. package/persisters/persister-expo-sqlite/with-schemas/index.js +129 -37
  126. package/persisters/persister-libsql/index.js +129 -37
  127. package/persisters/persister-libsql/with-schemas/index.js +129 -37
  128. package/persisters/persister-pglite/index.js +130 -37
  129. package/persisters/persister-pglite/with-schemas/index.js +130 -37
  130. package/persisters/persister-postgres/index.js +130 -37
  131. package/persisters/persister-postgres/with-schemas/index.js +130 -37
  132. package/persisters/persister-powersync/index.js +182 -117
  133. package/persisters/persister-powersync/with-schemas/index.js +182 -117
  134. package/persisters/persister-react-native-sqlite/index.js +129 -37
  135. package/persisters/persister-react-native-sqlite/with-schemas/index.js +129 -37
  136. package/persisters/persister-sqlite-bun/index.js +129 -37
  137. package/persisters/persister-sqlite-bun/with-schemas/index.js +129 -37
  138. package/persisters/persister-sqlite-wasm/index.js +129 -37
  139. package/persisters/persister-sqlite-wasm/with-schemas/index.js +129 -37
  140. package/persisters/persister-sqlite3/index.js +129 -37
  141. package/persisters/persister-sqlite3/with-schemas/index.js +129 -37
  142. package/persisters/with-schemas/index.js +129 -37
  143. package/queries/index.js +21 -19
  144. package/queries/with-schemas/index.js +21 -19
  145. package/readme.md +14 -14
  146. package/relationships/index.js +6 -8
  147. package/relationships/with-schemas/index.js +6 -8
  148. package/releases.md +57 -57
  149. package/synchronizers/synchronizer-ws-client/index.js +116 -42
  150. package/synchronizers/synchronizer-ws-client/with-schemas/index.js +116 -42
  151. package/synchronizers/synchronizer-ws-server/index.js +109 -28
  152. package/synchronizers/synchronizer-ws-server/with-schemas/index.js +109 -28
  153. package/synchronizers/synchronizer-ws-server-durable-object/index.js +122 -38
  154. package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +122 -38
  155. package/ui-svelte/index.js +1 -1
  156. package/ui-svelte/with-schemas/index.js +1 -1
  157. package/ui-svelte-dom/index.js +2 -2
  158. package/ui-svelte-dom/with-schemas/index.js +2 -2
  159. package/ui-svelte-inspector/index.js +2 -2
  160. package/ui-svelte-inspector/with-schemas/index.js +2 -2
  161. package/with-schemas/index.js +21 -19
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The synchronizer-ws-server module of the TinyBase project lets you create
3
- * a server that facilitates synchronization between clients.
2
+ * The synchronizer-ws-server module of the TinyBase project lets you create a
3
+ * server that facilitates synchronization between clients.
4
4
  * @see Synchronization guide
5
5
  * @see Todo App v6 (collaboration) demo
6
6
  * @packageDocumentation
@@ -506,6 +506,10 @@ export interface WsServer {
506
506
  * only exist when there are active clients on that particular path. The
507
507
  * creation callback can be asynchronous.
508
508
  *
509
+ * A path is taken from the path in the client WebSocket URL. For example,
510
+ * clients connecting to `ws://localhost:8047/petShop` will share the `petShop`
511
+ * path. The Id of a client's MergeableStore does not select this path.
512
+ *
509
513
  * You are responsible for creating a MergeableStore to pass to this Persister,
510
514
  * but starting and stopping its automatic saving and loading is taken care of
511
515
  * by the WsServer. As a result, the server MergeableStore will be kept in sync
@@ -528,6 +532,13 @@ export interface WsServer {
528
532
  * @param onIgnoredError An optional handler for the errors that the server
529
533
  * would otherwise ignore when trying to sync data. This is suitable for
530
534
  * debugging issues in a development environment.
535
+ * @param requestTimeoutSeconds An optional time in seconds that the server will
536
+ * wait for responses to synchronization requests and incomplete fragments,
537
+ * defaulting to `1`.
538
+ * @param fragmentSize An optional maximum size for each WebSocket message
539
+ * fragment. When set, larger synchronization payloads sent by the server are
540
+ * split into fragments and reassembled by the receiving WsSynchronizer, since
541
+ * v9.0.
531
542
  * @returns A reference to the new WsServer object.
532
543
  * @example
533
544
  * This example creates a WsServer that synchronizes two clients on a shared
@@ -733,4 +744,6 @@ export function createWsServer<
733
744
  | Promise<[PathPersister, (store: MergeableStore) => void]>
734
745
  | undefined,
735
746
  onIgnoredError?: (error: any) => void,
747
+ requestTimeoutSeconds?: number,
748
+ fragmentSize?: number,
736
749
  ): WsServer;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * The synchronizer-ws-server module of the TinyBase project lets you create
3
- * a server that facilitates synchronization between clients.
2
+ * The synchronizer-ws-server module of the TinyBase project lets you create a
3
+ * server that facilitates synchronization between clients.
4
4
  * @see Synchronization guide
5
5
  * @see Todo App v6 (collaboration) demo
6
6
  * @packageDocumentation
@@ -521,6 +521,8 @@ export interface WsServer {
521
521
  * | Promise<[PathPersister, (store: MergeableStore) => void]>
522
522
  * | undefined,
523
523
  * onIgnoredError?: (error: any) => void,
524
+ * requestTimeoutSeconds?: number,
525
+ * fragmentSize?: number,
524
526
  * ): WsServer;
525
527
  * ```
526
528
  *
@@ -533,6 +535,10 @@ export interface WsServer {
533
535
  * only exist when there are active clients on that particular path. The
534
536
  * creation callback can be asynchronous.
535
537
  *
538
+ * A path is taken from the path in the client WebSocket URL. For example,
539
+ * clients connecting to `ws://localhost:8047/petShop` will share the `petShop`
540
+ * path. The Id of a client's MergeableStore does not select this path.
541
+ *
536
542
  * You are responsible for creating a MergeableStore to pass to this Persister,
537
543
  * but starting and stopping its automatic saving and loading is taken care of
538
544
  * by the WsServer. As a result, the server MergeableStore will be kept in sync
@@ -555,6 +561,13 @@ export interface WsServer {
555
561
  * @param onIgnoredError An optional handler for the errors that the server
556
562
  * would otherwise ignore when trying to sync data. This is suitable for
557
563
  * debugging issues in a development environment.
564
+ * @param requestTimeoutSeconds An optional time in seconds that the server will
565
+ * wait for responses to synchronization requests and incomplete fragments,
566
+ * defaulting to `1`.
567
+ * @param fragmentSize An optional maximum size for each WebSocket message
568
+ * fragment. When set, larger synchronization payloads sent by the server are
569
+ * split into fragments and reassembled by the receiving WsSynchronizer, since
570
+ * v9.0.
558
571
  * @returns A reference to the new WsServer object.
559
572
  * @example
560
573
  * This example creates a WsServer that synchronizes two clients on a shared
@@ -762,4 +775,6 @@ export function createWsServer<
762
775
  | Promise<[PathPersister, (store: MergeableStore<Schemas>) => void]>
763
776
  | undefined,
764
777
  onIgnoredError?: (error: any) => void,
778
+ requestTimeoutSeconds?: number,
779
+ fragmentSize?: number,
765
780
  ): WsServer;
@@ -142,6 +142,57 @@ export class WsServerDurableObject<Env = unknown> extends DurableObject<Env> {
142
142
  */
143
143
  getClientIds(): Ids;
144
144
 
145
+ /**
146
+ * The getFragmentSize method is used to specify a maximum size for each
147
+ * WebSocket message fragment sent by the Durable Object.
148
+ *
149
+ * Return a number to split larger synchronization payloads into fragments
150
+ * that are reassembled by the receiving WsSynchronizer. Return `undefined`
151
+ * to send each payload as a single WebSocket message.
152
+ * @returns The maximum fragment size, or `undefined` to disable
153
+ * fragmentation.
154
+ * @example
155
+ * This example limits outbound Durable Object synchronization message
156
+ * fragments to 32KB.
157
+ *
158
+ * ```js ignore
159
+ * import {WsServerDurableObject} from 'tinybase/synchronizers/synchronizer-ws-server-durable-object';
160
+ *
161
+ * export class MyDurableObject extends WsServerDurableObject {
162
+ * getFragmentSize() {
163
+ * return 32 * 1024;
164
+ * }
165
+ * }
166
+ * ```
167
+ * @category Getter
168
+ * @since v9.0.0
169
+ */
170
+ getFragmentSize(): number | undefined;
171
+
172
+ /**
173
+ * The getRequestTimeoutSeconds method is used to specify how long the Durable
174
+ * Object will wait for synchronization responses and incomplete fragments.
175
+ *
176
+ * Return a number of seconds to use as the timeout. The default is `1`.
177
+ * @returns The number of seconds to wait before timing out.
178
+ * @example
179
+ * This example waits up to 10 seconds for synchronization responses and
180
+ * incomplete fragments.
181
+ *
182
+ * ```js ignore
183
+ * import {WsServerDurableObject} from 'tinybase/synchronizers/synchronizer-ws-server-durable-object';
184
+ *
185
+ * export class MyDurableObject extends WsServerDurableObject {
186
+ * getRequestTimeoutSeconds() {
187
+ * return 10;
188
+ * }
189
+ * }
190
+ * ```
191
+ * @category Getter
192
+ * @since v9.0.0
193
+ */
194
+ getRequestTimeoutSeconds(): number;
195
+
145
196
  /**
146
197
  * The onPathId method is called when the first client connects to, or the
147
198
  * last client disconnects from, the server with a given path Id.
@@ -162,6 +162,57 @@ export class WsServerDurableObject<
162
162
  */
163
163
  getClientIds(): Ids;
164
164
 
165
+ /**
166
+ * The getFragmentSize method is used to specify a maximum size for each
167
+ * WebSocket message fragment sent by the Durable Object.
168
+ *
169
+ * Return a number to split larger synchronization payloads into fragments
170
+ * that are reassembled by the receiving WsSynchronizer. Return `undefined`
171
+ * to send each payload as a single WebSocket message.
172
+ * @returns The maximum fragment size, or `undefined` to disable
173
+ * fragmentation.
174
+ * @example
175
+ * This example limits outbound Durable Object synchronization message
176
+ * fragments to 32KB.
177
+ *
178
+ * ```js ignore
179
+ * import {WsServerDurableObject} from 'tinybase/synchronizers/synchronizer-ws-server-durable-object';
180
+ *
181
+ * export class MyDurableObject extends WsServerDurableObject {
182
+ * getFragmentSize() {
183
+ * return 32 * 1024;
184
+ * }
185
+ * }
186
+ * ```
187
+ * @category Getter
188
+ * @since v9.0.0
189
+ */
190
+ getFragmentSize(): number | undefined;
191
+
192
+ /**
193
+ * The getRequestTimeoutSeconds method is used to specify how long the Durable
194
+ * Object will wait for synchronization responses and incomplete fragments.
195
+ *
196
+ * Return a number of seconds to use as the timeout. The default is `1`.
197
+ * @returns The number of seconds to wait before timing out.
198
+ * @example
199
+ * This example waits up to 10 seconds for synchronization responses and
200
+ * incomplete fragments.
201
+ *
202
+ * ```js ignore
203
+ * import {WsServerDurableObject} from 'tinybase/synchronizers/synchronizer-ws-server-durable-object';
204
+ *
205
+ * export class MyDurableObject extends WsServerDurableObject {
206
+ * getRequestTimeoutSeconds() {
207
+ * return 10;
208
+ * }
209
+ * }
210
+ * ```
211
+ * @category Getter
212
+ * @since v9.0.0
213
+ */
214
+ getRequestTimeoutSeconds(): number;
215
+
165
216
  /**
166
217
  * The onPathId method is called when the first client connects to, or the
167
218
  * last client disconnects from, the server with a given path Id.
@@ -4208,8 +4208,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
4208
4208
  TableId extends TableIdFromSchema<Schemas[0]>,
4209
4209
  CellId extends CellIdFromSchema<Schemas[0], TableId>,
4210
4210
  SetOrMapCell =
4211
- | Cell<Schemas[0], TableId, CellId>
4212
- | MapCell<Schemas[0], TableId, CellId>,
4211
+ Cell<Schemas[0], TableId, CellId> | MapCell<Schemas[0], TableId, CellId>,
4213
4212
  >(
4214
4213
  tableId: TableId | GetId<Schemas, Parameter, TableId>,
4215
4214
  rowId: Id | GetId<Schemas, Parameter, Id>,
@@ -5941,8 +5940,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
5941
5940
  <
5942
5941
  TableId extends TableIdFromSchema<Schemas[0]>,
5943
5942
  CellIdOrUndefined extends
5944
- | CellIdFromSchema<Schemas[0], TableId>
5945
- | undefined,
5943
+ CellIdFromSchema<Schemas[0], TableId> | undefined,
5946
5944
  >(
5947
5945
  tableId: TableId,
5948
5946
  cellId: CellIdOrUndefined,
@@ -6030,8 +6028,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
6030
6028
  <
6031
6029
  TableId extends TableIdFromSchema<Schemas[0]>,
6032
6030
  CellIdOrUndefined extends
6033
- | CellIdFromSchema<Schemas[0], TableId>
6034
- | undefined,
6031
+ CellIdFromSchema<Schemas[0], TableId> | undefined,
6035
6032
  >(
6036
6033
  args: SortedRowIdsArgs<Schemas[0], TableId>,
6037
6034
  listener: SortedRowIdsListener<Schemas, TableId, CellIdOrUndefined>,
@@ -692,7 +692,7 @@ export type SortedTablePaginatorProps = {
692
692
  *
693
693
  * See the <TableInHtmlTable /> (React) demo for this component in action:
694
694
  *
695
- * ![TableInHtmlTable example](https://tinybase.org/shots/tableinhtmltable-react-demo.png
695
+ * ![TableInHtmlTable example](https://beta.tinybase.org/shots/tableinhtmltable-react-demo.png
696
696
  * "TableInHtmlTable example")
697
697
  *
698
698
  * The component's props identify which Table to render based on Table Id, and
@@ -838,7 +838,7 @@ export function TableInHtmlTable(
838
838
  * See the <SortedTableInHtmlTable /> (React) demo for this component in
839
839
  * action:
840
840
  *
841
- * ![SortedTableInHtmlTable example](https://tinybase.org/shots/sortedtableinhtmltable-react-demo.png
841
+ * ![SortedTableInHtmlTable example](https://beta.tinybase.org/shots/sortedtableinhtmltable-react-demo.png
842
842
  * "SortedTableInHtmlTable example")
843
843
  *
844
844
  * The component's props identify which Table to render based on Table Id, and
@@ -1011,7 +1011,7 @@ export function SortedTableInHtmlTable(
1011
1011
  *
1012
1012
  * See the <ValuesInHtmlTable /> (React) demo for this component in action:
1013
1013
  *
1014
- * ![ValuesInHtmlTable example](https://tinybase.org/shots/valuesinhtmltable-react-demo.png
1014
+ * ![ValuesInHtmlTable example](https://beta.tinybase.org/shots/valuesinhtmltable-react-demo.png
1015
1015
  * "ValuesInHtmlTable example")
1016
1016
  *
1017
1017
  * The component's props identify which Row to render based on Table Id, Row Id,
@@ -1142,7 +1142,7 @@ export function ValuesInHtmlTable(
1142
1142
  *
1143
1143
  * See the <SliceInHtmlTable /> (React) demo for this component in action:
1144
1144
  *
1145
- * ![SliceInHtmlTable example](https://tinybase.org/shots/sliceinhtmltable-react-demo.png
1145
+ * ![SliceInHtmlTable example](https://beta.tinybase.org/shots/sliceinhtmltable-react-demo.png
1146
1146
  * "SliceInHtmlTable example")
1147
1147
  *
1148
1148
  * The component's props identify which Slice to render based on Index Id, Slice
@@ -1300,7 +1300,7 @@ export function SliceInHtmlTable(
1300
1300
  * See the <RelationshipInHtmlTable /> (React) demo for this component in
1301
1301
  * action:
1302
1302
  *
1303
- * ![RelationshipInHtmlTable example](https://tinybase.org/shots/relationshipinhtmltable-react-demo.png
1303
+ * ![RelationshipInHtmlTable example](https://beta.tinybase.org/shots/relationshipinhtmltable-react-demo.png
1304
1304
  * "RelationshipInHtmlTable example")
1305
1305
  *
1306
1306
  * The component's props identify which Relationship to render based on
@@ -1478,7 +1478,7 @@ export function RelationshipInHtmlTable(
1478
1478
  * See the <ResultTableInHtmlTable /> (React) demo for this component in
1479
1479
  * action:
1480
1480
  *
1481
- * ![ResultTableInHtmlTable example](https://tinybase.org/shots/resulttableinhtmltable-react-demo.png
1481
+ * ![ResultTableInHtmlTable example](https://beta.tinybase.org/shots/resulttableinhtmltable-react-demo.png
1482
1482
  * "ResultTableInHtmlTable example")
1483
1483
  *
1484
1484
  * The component's props identify which ResultTable to render based on query Id,
@@ -1631,7 +1631,7 @@ export function ResultTableInHtmlTable(
1631
1631
  * See the <ResultSortedTableInHtmlTable /> (React) demo for this component in
1632
1632
  * action:
1633
1633
  *
1634
- * ![ResultSortedTableInHtmlTable example](https://tinybase.org/shots/resultsortedtableinhtmltable-react-demo.png
1634
+ * ![ResultSortedTableInHtmlTable example](https://beta.tinybase.org/shots/resultsortedtableinhtmltable-react-demo.png
1635
1635
  * "ResultSortedTableInHtmlTable example")
1636
1636
  *
1637
1637
  * The component's props identify which ResultTable to render based on query Id,
@@ -1805,7 +1805,7 @@ export function ResultSortedTableInHtmlTable(
1805
1805
  *
1806
1806
  * See the <EditableCellView /> (React) demo for this component in action:
1807
1807
  *
1808
- * ![EditableCellView example](https://tinybase.org/shots/editablecellview-react-demo.png
1808
+ * ![EditableCellView example](https://beta.tinybase.org/shots/editablecellview-react-demo.png
1809
1809
  * "EditableCellView example")
1810
1810
  *
1811
1811
  * The component's props identify which Cell to render based on Table Id, Row
@@ -1876,7 +1876,7 @@ export function EditableCellView(
1876
1876
  *
1877
1877
  * See the <EditableValueView /> (React) demo for this component in action:
1878
1878
  *
1879
- * ![EditableValueView example](https://tinybase.org/shots/editablevalueview-react-demo.png
1879
+ * ![EditableValueView example](https://beta.tinybase.org/shots/editablevalueview-react-demo.png
1880
1880
  * "EditableValueView example")
1881
1881
  *
1882
1882
  * The component's props identify which Value to render based on Table Id, Row
@@ -1947,7 +1947,7 @@ export function EditableValueView(
1947
1947
  * See the <SortedTableInHtmlTable /> (React) demo for this component in
1948
1948
  * action:
1949
1949
  *
1950
- * ![SortedTablePaginator example](https://tinybase.org/shots/sortedtablepaginator-react-demo.png
1950
+ * ![SortedTablePaginator example](https://beta.tinybase.org/shots/sortedtablepaginator-react-demo.png
1951
1951
  * "SortedTablePaginator example")
1952
1952
  *
1953
1953
  * The component displays 'previous' and 'next' buttons for paging through the
@@ -229,8 +229,7 @@ export type TableInHtmlTableProps<
229
229
  | CellIdFromSchema<Schemas[0], TableId>[]
230
230
  | {
231
231
  [CellId in CellIdFromSchema<Schemas[0], TableId>]?:
232
- | string
233
- | CustomCell<Schemas, TableId, CellId>;
232
+ string | CustomCell<Schemas, TableId, CellId>;
234
233
  };
235
234
  }
236
235
  : never
@@ -309,8 +308,7 @@ export type SortedTableInHtmlTableProps<
309
308
  | CellIdFromSchema<Schemas[0], TableId>[]
310
309
  | {
311
310
  [CellId in CellIdFromSchema<Schemas[0], TableId>]?:
312
- | string
313
- | CustomCell<Schemas, TableId, CellId>;
311
+ string | CustomCell<Schemas, TableId, CellId>;
314
312
  };
315
313
  /**
316
314
  * Whether the table should be interactive such that clicking a header changes
@@ -427,8 +425,7 @@ export type SliceInHtmlTableProps<Schemas extends OptionalSchemas> = {
427
425
  * @since v4.1.0
428
426
  */
429
427
  readonly customCells?:
430
- | Ids
431
- | {[cellId: Id]: string | CustomCell<NoSchemas, Id, Id>};
428
+ Ids | {[cellId: Id]: string | CustomCell<NoSchemas, Id, Id>};
432
429
  };
433
430
 
434
431
  /**
@@ -478,8 +475,7 @@ export type RelationshipInHtmlTableProps<Schemas extends OptionalSchemas> = {
478
475
  * @since v4.1.0
479
476
  */
480
477
  readonly customCells?:
481
- | Ids
482
- | {[cellId: Id]: string | CustomCell<NoSchemas, Id, Id>};
478
+ Ids | {[cellId: Id]: string | CustomCell<NoSchemas, Id, Id>};
483
479
  };
484
480
 
485
481
  /**
@@ -514,8 +510,7 @@ export type ResultTableInHtmlTableProps<Schemas extends OptionalSchemas> = {
514
510
  * @since v4.1.0
515
511
  */
516
512
  readonly customCells?:
517
- | Ids
518
- | {[cellId: Id]: string | CustomResultCell<Schemas>};
513
+ Ids | {[cellId: Id]: string | CustomResultCell<Schemas>};
519
514
  };
520
515
 
521
516
  /**
@@ -577,8 +572,7 @@ export type ResultSortedTableInHtmlTableProps<Schemas extends OptionalSchemas> =
577
572
  * @since v4.1.0
578
573
  */
579
574
  readonly customCells?:
580
- | Ids
581
- | {[cellId: Id]: string | CustomResultCell<Schemas>};
575
+ Ids | {[cellId: Id]: string | CustomResultCell<Schemas>};
582
576
  /**
583
577
  * Whether the table should be interactive such that clicking a header changes
584
578
  * the sorting and/or direction.
@@ -674,7 +668,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
674
668
  *
675
669
  * See the <TableInHtmlTable /> (React) demo for this component in action:
676
670
  *
677
- * ![TableInHtmlTable example](https://tinybase.org/shots/tableinhtmltable-react-demo.png
671
+ * ![TableInHtmlTable example](https://beta.tinybase.org/shots/tableinhtmltable-react-demo.png
678
672
  * "TableInHtmlTable example")
679
673
  *
680
674
  * The component's props identify which Table to render based on Table Id, and
@@ -828,7 +822,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
828
822
  * See the <SortedTableInHtmlTable /> (React) demo for this component in
829
823
  * action:
830
824
  *
831
- * ![SortedTableInHtmlTable example](https://tinybase.org/shots/sortedtableinhtmltable-react-demo.png
825
+ * ![SortedTableInHtmlTable example](https://beta.tinybase.org/shots/sortedtableinhtmltable-react-demo.png
832
826
  * "SortedTableInHtmlTable example")
833
827
  *
834
828
  * The component's props identify which Table to render based on Table Id, and
@@ -1009,7 +1003,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1009
1003
  *
1010
1004
  * See the <ValuesInHtmlTable /> (React) demo for this component in action:
1011
1005
  *
1012
- * ![ValuesInHtmlTable example](https://tinybase.org/shots/valuesinhtmltable-react-demo.png
1006
+ * ![ValuesInHtmlTable example](https://beta.tinybase.org/shots/valuesinhtmltable-react-demo.png
1013
1007
  * "ValuesInHtmlTable example")
1014
1008
  *
1015
1009
  * The component's props identify which Row to render based on Table Id, Row Id,
@@ -1148,7 +1142,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1148
1142
  *
1149
1143
  * See the <SliceInHtmlTable /> (React) demo for this component in action:
1150
1144
  *
1151
- * ![SliceInHtmlTable example](https://tinybase.org/shots/sliceinhtmltable-react-demo.png
1145
+ * ![SliceInHtmlTable example](https://beta.tinybase.org/shots/sliceinhtmltable-react-demo.png
1152
1146
  * "SliceInHtmlTable example")
1153
1147
  *
1154
1148
  * The component's props identify which Slice to render based on Index Id, Slice
@@ -1314,7 +1308,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1314
1308
  * See the <RelationshipInHtmlTable /> (React) demo for this component in
1315
1309
  * action:
1316
1310
  *
1317
- * ![RelationshipInHtmlTable example](https://tinybase.org/shots/relationshipinhtmltable-react-demo.png
1311
+ * ![RelationshipInHtmlTable example](https://beta.tinybase.org/shots/relationshipinhtmltable-react-demo.png
1318
1312
  * "RelationshipInHtmlTable example")
1319
1313
  *
1320
1314
  * The component's props identify which Relationship to render based on
@@ -1500,7 +1494,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1500
1494
  * See the <ResultTableInHtmlTable /> (React) demo for this component in
1501
1495
  * action:
1502
1496
  *
1503
- * ![ResultTableInHtmlTable example](https://tinybase.org/shots/resulttableinhtmltable-react-demo.png
1497
+ * ![ResultTableInHtmlTable example](https://beta.tinybase.org/shots/resulttableinhtmltable-react-demo.png
1504
1498
  * "ResultTableInHtmlTable example")
1505
1499
  *
1506
1500
  * The component's props identify which ResultTable to render based on query Id,
@@ -1661,7 +1655,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1661
1655
  * See the <ResultSortedTableInHtmlTable /> (React) demo for this component in
1662
1656
  * action:
1663
1657
  *
1664
- * ![ResultSortedTableInHtmlTable example](https://tinybase.org/shots/resultsortedtableinhtmltable-react-demo.png
1658
+ * ![ResultSortedTableInHtmlTable example](https://beta.tinybase.org/shots/resultsortedtableinhtmltable-react-demo.png
1665
1659
  * "ResultSortedTableInHtmlTable example")
1666
1660
  *
1667
1661
  * The component's props identify which ResultTable to render based on query Id,
@@ -1843,7 +1837,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1843
1837
  *
1844
1838
  * See the <EditableCellView /> (React) demo for this component in action:
1845
1839
  *
1846
- * ![EditableCellView example](https://tinybase.org/shots/editablecellview-react-demo.png
1840
+ * ![EditableCellView example](https://beta.tinybase.org/shots/editablecellview-react-demo.png
1847
1841
  * "EditableCellView example")
1848
1842
  *
1849
1843
  * The component's props identify which Cell to render based on Table Id, Row
@@ -1928,7 +1922,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1928
1922
  *
1929
1923
  * See the <EditableValueView /> (React) demo for this component in action:
1930
1924
  *
1931
- * ![EditableValueView example](https://tinybase.org/shots/editablevalueview-react-demo.png
1925
+ * ![EditableValueView example](https://beta.tinybase.org/shots/editablevalueview-react-demo.png
1932
1926
  * "EditableValueView example")
1933
1927
  *
1934
1928
  * The component's props identify which Value to render based on Table Id, Row
@@ -1999,7 +1993,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1999
1993
  * See the <SortedTableInHtmlTable /> (React) demo for this component in
2000
1994
  * action:
2001
1995
  *
2002
- * ![SortedTablePaginator example](https://tinybase.org/shots/sortedtablepaginator-react-demo.png
1996
+ * ![SortedTablePaginator example](https://beta.tinybase.org/shots/sortedtablepaginator-react-demo.png
2003
1997
  * "SortedTablePaginator example")
2004
1998
  *
2005
1999
  * The component displays 'previous' and 'next' buttons for paging through the
@@ -483,7 +483,7 @@ export type YAxisProps = {
483
483
  *
484
484
  * See the Composing Charts (React) demo for this component in action:
485
485
  *
486
- * ![CartesianChart component example](https://tinybase.org/shots/composing-charts-react-demo.png
486
+ * ![CartesianChart component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
487
487
  * "CartesianChart component example")
488
488
  *
489
489
  * The series children declare their own xCellId and yCellId bindings. The
@@ -542,7 +542,7 @@ export function CartesianChart(
542
542
  *
543
543
  * See the Axis Overrides (React) demo for this component in action:
544
544
  *
545
- * ![XAxis component example](https://tinybase.org/shots/axis-overrides-react-demo.png
545
+ * ![XAxis component example](https://beta.tinybase.org/shots/axis-overrides-react-demo.png
546
546
  * "XAxis component example")
547
547
  * @category Store components
548
548
  * @since v8.5.0
@@ -558,7 +558,7 @@ export function XAxis(props: XAxisProps): ComponentReturnType;
558
558
  *
559
559
  * See the Axis Overrides (React) demo for this component in action:
560
560
  *
561
- * ![YAxis component example](https://tinybase.org/shots/axis-overrides-react-demo.png
561
+ * ![YAxis component example](https://beta.tinybase.org/shots/axis-overrides-react-demo.png
562
562
  * "YAxis component example")
563
563
  * @category Store components
564
564
  * @since v8.5.0
@@ -574,7 +574,7 @@ export function YAxis(props: YAxisProps): ComponentReturnType;
574
574
  *
575
575
  * See the Composing Charts (React) demo for this component in action:
576
576
  *
577
- * ![LineSeries component example](https://tinybase.org/shots/composing-charts-react-demo.png
577
+ * ![LineSeries component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
578
578
  * "LineSeries component example")
579
579
  * @category Store components
580
580
  * @since v8.5.0
@@ -590,7 +590,7 @@ export function LineSeries(props: SeriesProps): ComponentReturnType;
590
590
  *
591
591
  * See the Composing Charts (React) demo for this component in action:
592
592
  *
593
- * ![BarSeries component example](https://tinybase.org/shots/composing-charts-react-demo.png
593
+ * ![BarSeries component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
594
594
  * "BarSeries component example")
595
595
  * @category Store components
596
596
  * @since v8.5.0
@@ -607,7 +607,7 @@ export function BarSeries(props: SeriesProps): ComponentReturnType;
607
607
  *
608
608
  * See the <LineChart /> (React) demo for this component in action:
609
609
  *
610
- * ![LineChart component example](https://tinybase.org/shots/basic-chart-react-demo.png "LineChart
610
+ * ![LineChart component example](https://beta.tinybase.org/shots/basic-chart-react-demo.png "LineChart
611
611
  * component example")
612
612
  * @category Store components
613
613
  * @since v8.5.0
@@ -660,7 +660,7 @@ export function LineChart(
660
660
  *
661
661
  * See the Sorting And Types (React) demo for this component in action:
662
662
  *
663
- * ![BarChart component example](https://tinybase.org/shots/sorting-and-types-react-demo.png
663
+ * ![BarChart component example](https://beta.tinybase.org/shots/sorting-and-types-react-demo.png
664
664
  * "BarChart component example")
665
665
  * @category Store components
666
666
  * @since v8.5.0
@@ -498,10 +498,9 @@ type NumericCellIdFromSchema<
498
498
  Schemas extends OptionalSchemas,
499
499
  TableId extends TableIdFromSchema<Schemas[0]>,
500
500
  > = {
501
- [CellId in CellIdFromSchema<
502
- Schemas[0],
503
- TableId
504
- >]: Schemas[0][TableId][CellId] extends {type: 'any' | 'number'}
501
+ [
502
+ CellId in CellIdFromSchema<Schemas[0], TableId>
503
+ ]: Schemas[0][TableId][CellId] extends {type: 'any' | 'number'}
505
504
  ? CellId
506
505
  : never;
507
506
  }[CellIdFromSchema<Schemas[0], TableId>];
@@ -545,7 +544,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
545
544
  *
546
545
  * See the Composing Charts (React) demo for this component in action:
547
546
  *
548
- * ![CartesianChart component example](https://tinybase.org/shots/composing-charts-react-demo.png
547
+ * ![CartesianChart component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
549
548
  * "CartesianChart component example")
550
549
  *
551
550
  * The series children declare their own xCellId and yCellId bindings. The
@@ -610,7 +609,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
610
609
  *
611
610
  * See the Axis Overrides (React) demo for this component in action:
612
611
  *
613
- * ![XAxis component example](https://tinybase.org/shots/axis-overrides-react-demo.png
612
+ * ![XAxis component example](https://beta.tinybase.org/shots/axis-overrides-react-demo.png
614
613
  * "XAxis component example")
615
614
  * @category Store components
616
615
  * @since v8.5.0
@@ -626,7 +625,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
626
625
  *
627
626
  * See the Axis Overrides (React) demo for this component in action:
628
627
  *
629
- * ![YAxis component example](https://tinybase.org/shots/axis-overrides-react-demo.png
628
+ * ![YAxis component example](https://beta.tinybase.org/shots/axis-overrides-react-demo.png
630
629
  * "YAxis component example")
631
630
  * @category Store components
632
631
  * @since v8.5.0
@@ -642,7 +641,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
642
641
  *
643
642
  * See the Composing Charts (React) demo for this component in action:
644
643
  *
645
- * ![LineSeries component example](https://tinybase.org/shots/composing-charts-react-demo.png
644
+ * ![LineSeries component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
646
645
  * "LineSeries component example")
647
646
  * @category Store components
648
647
  * @since v8.5.0
@@ -658,7 +657,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
658
657
  *
659
658
  * See the Composing Charts (React) demo for this component in action:
660
659
  *
661
- * ![BarSeries component example](https://tinybase.org/shots/composing-charts-react-demo.png
660
+ * ![BarSeries component example](https://beta.tinybase.org/shots/composing-charts-react-demo.png
662
661
  * "BarSeries component example")
663
662
  * @category Store components
664
663
  * @since v8.5.0
@@ -685,7 +684,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
685
684
  *
686
685
  * See the <LineChart /> (React) demo for this component in action:
687
686
  *
688
- * ![LineChart component example](https://tinybase.org/shots/basic-chart-react-demo.png "LineChart
687
+ * ![LineChart component example](https://beta.tinybase.org/shots/basic-chart-react-demo.png "LineChart
689
688
  * component example")
690
689
  * @category Store components
691
690
  * @since v8.5.0
@@ -751,7 +750,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
751
750
  *
752
751
  * See the Sorting And Types (React) demo for this component in action:
753
752
  *
754
- * ![BarChart component example](https://tinybase.org/shots/sorting-and-types-react-demo.png
753
+ * ![BarChart component example](https://beta.tinybase.org/shots/sorting-and-types-react-demo.png
755
754
  * "BarChart component example")
756
755
  * @category Store components
757
756
  * @since v8.5.0
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (React) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://tinybase.org/shots/inspector-react-demo.png
49
+ * ![Inspector example](https://beta.tinybase.org/shots/inspector-react-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
@@ -46,7 +46,7 @@ export type InspectorProps = {
46
46
  *
47
47
  * See the <Inspector /> (React) demo for this component in action:
48
48
  *
49
- * ![Inspector example](https://tinybase.org/shots/inspector-react-demo.png
49
+ * ![Inspector example](https://beta.tinybase.org/shots/inspector-react-demo.png
50
50
  * "Inspector example")
51
51
  *
52
52
  * The component displays a nub in the corner of the screen which you may then
@@ -1690,8 +1690,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
1690
1690
  <
1691
1691
  TableId extends TableIdFromSchema<Schemas[0]>,
1692
1692
  CellIdOrUndefined extends
1693
- | CellIdFromSchema<Schemas[0], TableId>
1694
- | undefined,
1693
+ CellIdFromSchema<Schemas[0], TableId> | undefined,
1695
1694
  >(
1696
1695
  tableId: MaybeAccessor<TableId>,
1697
1696
  cellId?: MaybeAccessor<CellIdOrUndefined>,
@@ -3237,8 +3236,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
3237
3236
  TableId extends TableIdFromSchema<Schemas[0]>,
3238
3237
  CellId extends CellIdFromSchema<Schemas[0], TableId>,
3239
3238
  SetOrMapCell =
3240
- | Cell<Schemas[0], TableId, CellId>
3241
- | MapCell<Schemas[0], TableId, CellId>,
3239
+ Cell<Schemas[0], TableId, CellId> | MapCell<Schemas[0], TableId, CellId>,
3242
3240
  >(
3243
3241
  tableId: MaybeAccessor<TableId> | GetId<Schemas, Parameter, TableId>,
3244
3242
  rowId: MaybeAccessor<Id> | GetId<Schemas, Parameter, Id>,
@@ -5260,8 +5258,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
5260
5258
  <
5261
5259
  TableId extends TableIdFromSchema<Schemas[0]>,
5262
5260
  CellIdOrUndefined extends
5263
- | CellIdFromSchema<Schemas[0], TableId>
5264
- | undefined,
5261
+ CellIdFromSchema<Schemas[0], TableId> | undefined,
5265
5262
  >(
5266
5263
  tableId: MaybeAccessor<TableId>,
5267
5264
  cellId: MaybeAccessor<CellIdOrUndefined>,
@@ -5367,8 +5364,7 @@ export type WithSchemas<Schemas extends OptionalSchemas> = {
5367
5364
  <
5368
5365
  TableId extends TableIdFromSchema<Schemas[0]>,
5369
5366
  CellIdOrUndefined extends
5370
- | CellIdFromSchema<Schemas[0], TableId>
5371
- | undefined,
5367
+ CellIdFromSchema<Schemas[0], TableId> | undefined,
5372
5368
  >(
5373
5369
  args: SortedRowIdsArgs<Schemas[0], TableId>,
5374
5370
  listener: SortedRowIdsListener<Schemas, TableId, CellIdOrUndefined>,