@tanstack/db 0.0.27 → 0.0.30
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.
- package/dist/cjs/change-events.cjs +141 -0
- package/dist/cjs/change-events.cjs.map +1 -0
- package/dist/cjs/change-events.d.cts +49 -0
- package/dist/cjs/collection.cjs +234 -86
- package/dist/cjs/collection.cjs.map +1 -1
- package/dist/cjs/collection.d.cts +95 -20
- package/dist/cjs/errors.cjs +509 -1
- package/dist/cjs/errors.cjs.map +1 -1
- package/dist/cjs/errors.d.cts +225 -1
- package/dist/cjs/index.cjs +82 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +5 -1
- package/dist/cjs/indexes/auto-index.cjs +64 -0
- package/dist/cjs/indexes/auto-index.cjs.map +1 -0
- package/dist/cjs/indexes/auto-index.d.cts +9 -0
- package/dist/cjs/indexes/base-index.cjs +46 -0
- package/dist/cjs/indexes/base-index.cjs.map +1 -0
- package/dist/cjs/indexes/base-index.d.cts +54 -0
- package/dist/cjs/indexes/btree-index.cjs +191 -0
- package/dist/cjs/indexes/btree-index.cjs.map +1 -0
- package/dist/cjs/indexes/btree-index.d.cts +74 -0
- package/dist/cjs/indexes/index-options.d.cts +13 -0
- package/dist/cjs/indexes/lazy-index.cjs +193 -0
- package/dist/cjs/indexes/lazy-index.cjs.map +1 -0
- package/dist/cjs/indexes/lazy-index.d.cts +96 -0
- package/dist/cjs/local-storage.cjs +9 -15
- package/dist/cjs/local-storage.cjs.map +1 -1
- package/dist/cjs/query/builder/functions.cjs +11 -0
- package/dist/cjs/query/builder/functions.cjs.map +1 -1
- package/dist/cjs/query/builder/functions.d.cts +4 -0
- package/dist/cjs/query/builder/index.cjs +6 -7
- package/dist/cjs/query/builder/index.cjs.map +1 -1
- package/dist/cjs/query/builder/ref-proxy.cjs +37 -0
- package/dist/cjs/query/builder/ref-proxy.cjs.map +1 -1
- package/dist/cjs/query/builder/ref-proxy.d.cts +12 -0
- package/dist/cjs/query/compiler/evaluators.cjs +83 -58
- package/dist/cjs/query/compiler/evaluators.cjs.map +1 -1
- package/dist/cjs/query/compiler/evaluators.d.cts +8 -0
- package/dist/cjs/query/compiler/expressions.cjs +61 -0
- package/dist/cjs/query/compiler/expressions.cjs.map +1 -0
- package/dist/cjs/query/compiler/expressions.d.cts +25 -0
- package/dist/cjs/query/compiler/group-by.cjs +5 -10
- package/dist/cjs/query/compiler/group-by.cjs.map +1 -1
- package/dist/cjs/query/compiler/index.cjs +23 -17
- package/dist/cjs/query/compiler/index.cjs.map +1 -1
- package/dist/cjs/query/compiler/index.d.cts +12 -3
- package/dist/cjs/query/compiler/joins.cjs +61 -12
- package/dist/cjs/query/compiler/joins.cjs.map +1 -1
- package/dist/cjs/query/compiler/order-by.cjs +4 -34
- package/dist/cjs/query/compiler/order-by.cjs.map +1 -1
- package/dist/cjs/query/compiler/types.d.cts +2 -2
- package/dist/cjs/query/live-query-collection.cjs +54 -12
- package/dist/cjs/query/live-query-collection.cjs.map +1 -1
- package/dist/cjs/query/optimizer.cjs +45 -7
- package/dist/cjs/query/optimizer.cjs.map +1 -1
- package/dist/cjs/query/optimizer.d.cts +13 -3
- package/dist/cjs/transactions.cjs +5 -4
- package/dist/cjs/transactions.cjs.map +1 -1
- package/dist/cjs/types.d.cts +31 -0
- package/dist/cjs/utils/array-utils.d.cts +8 -0
- package/dist/cjs/utils/btree.cjs +677 -0
- package/dist/cjs/utils/btree.cjs.map +1 -0
- package/dist/cjs/utils/btree.d.cts +197 -0
- package/dist/cjs/utils/comparison.cjs +52 -0
- package/dist/cjs/utils/comparison.cjs.map +1 -0
- package/dist/cjs/utils/comparison.d.cts +11 -0
- package/dist/cjs/utils/index-optimization.cjs +270 -0
- package/dist/cjs/utils/index-optimization.cjs.map +1 -0
- package/dist/cjs/utils/index-optimization.d.cts +29 -0
- package/dist/esm/change-events.d.ts +49 -0
- package/dist/esm/change-events.js +141 -0
- package/dist/esm/change-events.js.map +1 -0
- package/dist/esm/collection.d.ts +95 -20
- package/dist/esm/collection.js +232 -84
- package/dist/esm/collection.js.map +1 -1
- package/dist/esm/errors.d.ts +225 -1
- package/dist/esm/errors.js +510 -2
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.d.ts +5 -1
- package/dist/esm/index.js +81 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/indexes/auto-index.d.ts +9 -0
- package/dist/esm/indexes/auto-index.js +64 -0
- package/dist/esm/indexes/auto-index.js.map +1 -0
- package/dist/esm/indexes/base-index.d.ts +54 -0
- package/dist/esm/indexes/base-index.js +46 -0
- package/dist/esm/indexes/base-index.js.map +1 -0
- package/dist/esm/indexes/btree-index.d.ts +74 -0
- package/dist/esm/indexes/btree-index.js +191 -0
- package/dist/esm/indexes/btree-index.js.map +1 -0
- package/dist/esm/indexes/index-options.d.ts +13 -0
- package/dist/esm/indexes/lazy-index.d.ts +96 -0
- package/dist/esm/indexes/lazy-index.js +193 -0
- package/dist/esm/indexes/lazy-index.js.map +1 -0
- package/dist/esm/local-storage.js +9 -15
- package/dist/esm/local-storage.js.map +1 -1
- package/dist/esm/query/builder/functions.d.ts +4 -0
- package/dist/esm/query/builder/functions.js +11 -0
- package/dist/esm/query/builder/functions.js.map +1 -1
- package/dist/esm/query/builder/index.js +6 -7
- package/dist/esm/query/builder/index.js.map +1 -1
- package/dist/esm/query/builder/ref-proxy.d.ts +12 -0
- package/dist/esm/query/builder/ref-proxy.js +37 -0
- package/dist/esm/query/builder/ref-proxy.js.map +1 -1
- package/dist/esm/query/compiler/evaluators.d.ts +8 -0
- package/dist/esm/query/compiler/evaluators.js +84 -59
- package/dist/esm/query/compiler/evaluators.js.map +1 -1
- package/dist/esm/query/compiler/expressions.d.ts +25 -0
- package/dist/esm/query/compiler/expressions.js +61 -0
- package/dist/esm/query/compiler/expressions.js.map +1 -0
- package/dist/esm/query/compiler/group-by.js +5 -10
- package/dist/esm/query/compiler/group-by.js.map +1 -1
- package/dist/esm/query/compiler/index.d.ts +12 -3
- package/dist/esm/query/compiler/index.js +23 -17
- package/dist/esm/query/compiler/index.js.map +1 -1
- package/dist/esm/query/compiler/joins.js +61 -12
- package/dist/esm/query/compiler/joins.js.map +1 -1
- package/dist/esm/query/compiler/order-by.js +1 -31
- package/dist/esm/query/compiler/order-by.js.map +1 -1
- package/dist/esm/query/compiler/types.d.ts +2 -2
- package/dist/esm/query/live-query-collection.js +54 -12
- package/dist/esm/query/live-query-collection.js.map +1 -1
- package/dist/esm/query/optimizer.d.ts +13 -3
- package/dist/esm/query/optimizer.js +40 -2
- package/dist/esm/query/optimizer.js.map +1 -1
- package/dist/esm/transactions.js +5 -4
- package/dist/esm/transactions.js.map +1 -1
- package/dist/esm/types.d.ts +31 -0
- package/dist/esm/utils/array-utils.d.ts +8 -0
- package/dist/esm/utils/btree.d.ts +197 -0
- package/dist/esm/utils/btree.js +677 -0
- package/dist/esm/utils/btree.js.map +1 -0
- package/dist/esm/utils/comparison.d.ts +11 -0
- package/dist/esm/utils/comparison.js +52 -0
- package/dist/esm/utils/comparison.js.map +1 -0
- package/dist/esm/utils/index-optimization.d.ts +29 -0
- package/dist/esm/utils/index-optimization.js +270 -0
- package/dist/esm/utils/index-optimization.js.map +1 -0
- package/package.json +1 -1
- package/src/change-events.ts +257 -0
- package/src/collection.ts +316 -105
- package/src/errors.ts +545 -1
- package/src/index.ts +7 -1
- package/src/indexes/auto-index.ts +108 -0
- package/src/indexes/base-index.ts +119 -0
- package/src/indexes/btree-index.ts +263 -0
- package/src/indexes/index-options.ts +42 -0
- package/src/indexes/lazy-index.ts +251 -0
- package/src/local-storage.ts +16 -17
- package/src/query/builder/functions.ts +14 -0
- package/src/query/builder/index.ts +12 -7
- package/src/query/builder/ref-proxy.ts +65 -0
- package/src/query/compiler/evaluators.ts +114 -62
- package/src/query/compiler/expressions.ts +92 -0
- package/src/query/compiler/group-by.ts +10 -10
- package/src/query/compiler/index.ts +52 -22
- package/src/query/compiler/joins.ts +114 -15
- package/src/query/compiler/order-by.ts +1 -45
- package/src/query/compiler/types.ts +2 -2
- package/src/query/live-query-collection.ts +95 -15
- package/src/query/optimizer.ts +94 -5
- package/src/transactions.ts +10 -4
- package/src/types.ts +38 -0
- package/src/utils/array-utils.ts +28 -0
- package/src/utils/btree.ts +1010 -0
- package/src/utils/comparison.ts +79 -0
- package/src/utils/index-optimization.ts +546 -0
package/dist/esm/errors.js
CHANGED
|
@@ -1,10 +1,518 @@
|
|
|
1
|
-
class
|
|
1
|
+
class TanStackDBError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = `TanStackDBError`;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
class NonRetriableError extends TanStackDBError {
|
|
2
8
|
constructor(message) {
|
|
3
9
|
super(message);
|
|
4
10
|
this.name = `NonRetriableError`;
|
|
5
11
|
}
|
|
6
12
|
}
|
|
13
|
+
class SchemaValidationError extends TanStackDBError {
|
|
14
|
+
constructor(type, issues, message) {
|
|
15
|
+
const defaultMessage = `${type === `insert` ? `Insert` : `Update`} validation failed: ${issues.map((issue) => `
|
|
16
|
+
- ${issue.message} - path: ${issue.path}`).join(``)}`;
|
|
17
|
+
super(message || defaultMessage);
|
|
18
|
+
this.name = `SchemaValidationError`;
|
|
19
|
+
this.type = type;
|
|
20
|
+
this.issues = issues;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
class CollectionConfigurationError extends TanStackDBError {
|
|
24
|
+
constructor(message) {
|
|
25
|
+
super(message);
|
|
26
|
+
this.name = `CollectionConfigurationError`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
class CollectionRequiresConfigError extends CollectionConfigurationError {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(`Collection requires a config`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
class CollectionRequiresSyncConfigError extends CollectionConfigurationError {
|
|
35
|
+
constructor() {
|
|
36
|
+
super(`Collection requires a sync config`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
class InvalidSchemaError extends CollectionConfigurationError {
|
|
40
|
+
constructor() {
|
|
41
|
+
super(`Schema must implement the standard-schema interface`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
class SchemaMustBeSynchronousError extends CollectionConfigurationError {
|
|
45
|
+
constructor() {
|
|
46
|
+
super(`Schema validation must be synchronous`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
class CollectionStateError extends TanStackDBError {
|
|
50
|
+
constructor(message) {
|
|
51
|
+
super(message);
|
|
52
|
+
this.name = `CollectionStateError`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
class CollectionInErrorStateError extends CollectionStateError {
|
|
56
|
+
constructor(operation, collectionId) {
|
|
57
|
+
super(
|
|
58
|
+
`Cannot perform ${operation} on collection "${collectionId}" - collection is in error state. Try calling cleanup() and restarting the collection.`
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
class InvalidCollectionStatusTransitionError extends CollectionStateError {
|
|
63
|
+
constructor(from, to, collectionId) {
|
|
64
|
+
super(
|
|
65
|
+
`Invalid collection status transition from "${from}" to "${to}" for collection "${collectionId}"`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
class CollectionIsInErrorStateError extends CollectionStateError {
|
|
70
|
+
constructor() {
|
|
71
|
+
super(`Collection is in error state`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
class NegativeActiveSubscribersError extends CollectionStateError {
|
|
75
|
+
constructor() {
|
|
76
|
+
super(`Active subscribers count is negative - this should never happen`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
class CollectionOperationError extends TanStackDBError {
|
|
80
|
+
constructor(message) {
|
|
81
|
+
super(message);
|
|
82
|
+
this.name = `CollectionOperationError`;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
class UndefinedKeyError extends CollectionOperationError {
|
|
86
|
+
constructor(item) {
|
|
87
|
+
super(
|
|
88
|
+
`An object was created without a defined key: ${JSON.stringify(item)}`
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
class DuplicateKeyError extends CollectionOperationError {
|
|
93
|
+
constructor(key) {
|
|
94
|
+
super(
|
|
95
|
+
`Cannot insert document with ID "${key}" because it already exists in the collection`
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
class DuplicateKeySyncError extends CollectionOperationError {
|
|
100
|
+
constructor(key, collectionId) {
|
|
101
|
+
super(
|
|
102
|
+
`Cannot insert document with key "${key}" from sync because it already exists in the collection "${collectionId}"`
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
class MissingUpdateArgumentError extends CollectionOperationError {
|
|
107
|
+
constructor() {
|
|
108
|
+
super(`The first argument to update is missing`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
class NoKeysPassedToUpdateError extends CollectionOperationError {
|
|
112
|
+
constructor() {
|
|
113
|
+
super(`No keys were passed to update`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
class UpdateKeyNotFoundError extends CollectionOperationError {
|
|
117
|
+
constructor(key) {
|
|
118
|
+
super(
|
|
119
|
+
`The key "${key}" was passed to update but an object for this key was not found in the collection`
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
class KeyUpdateNotAllowedError extends CollectionOperationError {
|
|
124
|
+
constructor(originalKey, newKey) {
|
|
125
|
+
super(
|
|
126
|
+
`Updating the key of an item is not allowed. Original key: "${originalKey}", Attempted new key: "${newKey}". Please delete the old item and create a new one if a key change is necessary.`
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
class NoKeysPassedToDeleteError extends CollectionOperationError {
|
|
131
|
+
constructor() {
|
|
132
|
+
super(`No keys were passed to delete`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
class DeleteKeyNotFoundError extends CollectionOperationError {
|
|
136
|
+
constructor(key) {
|
|
137
|
+
super(
|
|
138
|
+
`Collection.delete was called with key '${key}' but there is no item in the collection with this key`
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
class MissingHandlerError extends TanStackDBError {
|
|
143
|
+
constructor(message) {
|
|
144
|
+
super(message);
|
|
145
|
+
this.name = `MissingHandlerError`;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
class MissingInsertHandlerError extends MissingHandlerError {
|
|
149
|
+
constructor() {
|
|
150
|
+
super(
|
|
151
|
+
`Collection.insert called directly (not within an explicit transaction) but no 'onInsert' handler is configured.`
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
class MissingUpdateHandlerError extends MissingHandlerError {
|
|
156
|
+
constructor() {
|
|
157
|
+
super(
|
|
158
|
+
`Collection.update called directly (not within an explicit transaction) but no 'onUpdate' handler is configured.`
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
class MissingDeleteHandlerError extends MissingHandlerError {
|
|
163
|
+
constructor() {
|
|
164
|
+
super(
|
|
165
|
+
`Collection.delete called directly (not within an explicit transaction) but no 'onDelete' handler is configured.`
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
class TransactionError extends TanStackDBError {
|
|
170
|
+
constructor(message) {
|
|
171
|
+
super(message);
|
|
172
|
+
this.name = `TransactionError`;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
class MissingMutationFunctionError extends TransactionError {
|
|
176
|
+
constructor() {
|
|
177
|
+
super(`mutationFn is required when creating a transaction`);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
class TransactionNotPendingMutateError extends TransactionError {
|
|
181
|
+
constructor() {
|
|
182
|
+
super(
|
|
183
|
+
`You can no longer call .mutate() as the transaction is no longer pending`
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
class TransactionAlreadyCompletedRollbackError extends TransactionError {
|
|
188
|
+
constructor() {
|
|
189
|
+
super(
|
|
190
|
+
`You can no longer call .rollback() as the transaction is already completed`
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
class TransactionNotPendingCommitError extends TransactionError {
|
|
195
|
+
constructor() {
|
|
196
|
+
super(
|
|
197
|
+
`You can no longer call .commit() as the transaction is no longer pending`
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
class NoPendingSyncTransactionWriteError extends TransactionError {
|
|
202
|
+
constructor() {
|
|
203
|
+
super(`No pending sync transaction to write to`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
class SyncTransactionAlreadyCommittedWriteError extends TransactionError {
|
|
207
|
+
constructor() {
|
|
208
|
+
super(
|
|
209
|
+
`The pending sync transaction is already committed, you can't still write to it.`
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
class NoPendingSyncTransactionCommitError extends TransactionError {
|
|
214
|
+
constructor() {
|
|
215
|
+
super(`No pending sync transaction to commit`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
class SyncTransactionAlreadyCommittedError extends TransactionError {
|
|
219
|
+
constructor() {
|
|
220
|
+
super(
|
|
221
|
+
`The pending sync transaction is already committed, you can't commit it again.`
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
class QueryBuilderError extends TanStackDBError {
|
|
226
|
+
constructor(message) {
|
|
227
|
+
super(message);
|
|
228
|
+
this.name = `QueryBuilderError`;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
class OnlyOneSourceAllowedError extends QueryBuilderError {
|
|
232
|
+
constructor(context) {
|
|
233
|
+
super(`Only one source is allowed in the ${context}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
class SubQueryMustHaveFromClauseError extends QueryBuilderError {
|
|
237
|
+
constructor(context) {
|
|
238
|
+
super(`A sub query passed to a ${context} must have a from clause itself`);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
class InvalidSourceError extends QueryBuilderError {
|
|
242
|
+
constructor() {
|
|
243
|
+
super(`Invalid source`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
class JoinConditionMustBeEqualityError extends QueryBuilderError {
|
|
247
|
+
constructor() {
|
|
248
|
+
super(`Join condition must be an equality expression`);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
class QueryMustHaveFromClauseError extends QueryBuilderError {
|
|
252
|
+
constructor() {
|
|
253
|
+
super(`Query must have a from clause`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
class QueryCompilationError extends TanStackDBError {
|
|
257
|
+
constructor(message) {
|
|
258
|
+
super(message);
|
|
259
|
+
this.name = `QueryCompilationError`;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
class DistinctRequiresSelectError extends QueryCompilationError {
|
|
263
|
+
constructor() {
|
|
264
|
+
super(`DISTINCT requires a SELECT clause.`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
class HavingRequiresGroupByError extends QueryCompilationError {
|
|
268
|
+
constructor() {
|
|
269
|
+
super(`HAVING clause requires GROUP BY clause`);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
class LimitOffsetRequireOrderByError extends QueryCompilationError {
|
|
273
|
+
constructor() {
|
|
274
|
+
super(
|
|
275
|
+
`LIMIT and OFFSET require an ORDER BY clause to ensure deterministic results`
|
|
276
|
+
);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
class CollectionInputNotFoundError extends QueryCompilationError {
|
|
280
|
+
constructor(collectionId) {
|
|
281
|
+
super(`Input for collection "${collectionId}" not found in inputs map`);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
class UnsupportedFromTypeError extends QueryCompilationError {
|
|
285
|
+
constructor(type) {
|
|
286
|
+
super(`Unsupported FROM type: ${type}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
class UnknownExpressionTypeError extends QueryCompilationError {
|
|
290
|
+
constructor(type) {
|
|
291
|
+
super(`Unknown expression type: ${type}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
class EmptyReferencePathError extends QueryCompilationError {
|
|
295
|
+
constructor() {
|
|
296
|
+
super(`Reference path cannot be empty`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
class UnknownFunctionError extends QueryCompilationError {
|
|
300
|
+
constructor(functionName) {
|
|
301
|
+
super(`Unknown function: ${functionName}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
class JoinError extends TanStackDBError {
|
|
305
|
+
constructor(message) {
|
|
306
|
+
super(message);
|
|
307
|
+
this.name = `JoinError`;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
class UnsupportedJoinTypeError extends JoinError {
|
|
311
|
+
constructor(joinType) {
|
|
312
|
+
super(`Unsupported join type: ${joinType}`);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
class InvalidJoinConditionSameTableError extends JoinError {
|
|
316
|
+
constructor(tableAlias) {
|
|
317
|
+
super(
|
|
318
|
+
`Invalid join condition: both expressions refer to the same table "${tableAlias}"`
|
|
319
|
+
);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
class InvalidJoinConditionTableMismatchError extends JoinError {
|
|
323
|
+
constructor(mainTableAlias, joinedTableAlias) {
|
|
324
|
+
super(
|
|
325
|
+
`Invalid join condition: expressions must reference table aliases "${mainTableAlias}" and "${joinedTableAlias}"`
|
|
326
|
+
);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
class InvalidJoinConditionWrongTablesError extends JoinError {
|
|
330
|
+
constructor(leftTableAlias, rightTableAlias, mainTableAlias, joinedTableAlias) {
|
|
331
|
+
super(
|
|
332
|
+
`Invalid join condition: expressions reference tables "${leftTableAlias}" and "${rightTableAlias}" but join is between "${mainTableAlias}" and "${joinedTableAlias}"`
|
|
333
|
+
);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
class UnsupportedJoinSourceTypeError extends JoinError {
|
|
337
|
+
constructor(type) {
|
|
338
|
+
super(`Unsupported join source type: ${type}`);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
class GroupByError extends TanStackDBError {
|
|
342
|
+
constructor(message) {
|
|
343
|
+
super(message);
|
|
344
|
+
this.name = `GroupByError`;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
class NonAggregateExpressionNotInGroupByError extends GroupByError {
|
|
348
|
+
constructor(alias) {
|
|
349
|
+
super(
|
|
350
|
+
`Non-aggregate expression '${alias}' in SELECT must also appear in GROUP BY clause`
|
|
351
|
+
);
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
class UnsupportedAggregateFunctionError extends GroupByError {
|
|
355
|
+
constructor(functionName) {
|
|
356
|
+
super(`Unsupported aggregate function: ${functionName}`);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
class AggregateFunctionNotInSelectError extends GroupByError {
|
|
360
|
+
constructor(functionName) {
|
|
361
|
+
super(
|
|
362
|
+
`Aggregate function in HAVING clause must also be in SELECT clause: ${functionName}`
|
|
363
|
+
);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
class UnknownHavingExpressionTypeError extends GroupByError {
|
|
367
|
+
constructor(type) {
|
|
368
|
+
super(`Unknown expression type in HAVING clause: ${type}`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
class StorageError extends TanStackDBError {
|
|
372
|
+
constructor(message) {
|
|
373
|
+
super(message);
|
|
374
|
+
this.name = `StorageError`;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
class SerializationError extends StorageError {
|
|
378
|
+
constructor(operation, originalError) {
|
|
379
|
+
super(
|
|
380
|
+
`Cannot ${operation} item because it cannot be JSON serialized: ${originalError}`
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
class LocalStorageCollectionError extends StorageError {
|
|
385
|
+
constructor(message) {
|
|
386
|
+
super(message);
|
|
387
|
+
this.name = `LocalStorageCollectionError`;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
class StorageKeyRequiredError extends LocalStorageCollectionError {
|
|
391
|
+
constructor() {
|
|
392
|
+
super(`[LocalStorageCollection] storageKey must be provided.`);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
class NoStorageAvailableError extends LocalStorageCollectionError {
|
|
396
|
+
constructor() {
|
|
397
|
+
super(
|
|
398
|
+
`[LocalStorageCollection] No storage available. Please provide a storage option or ensure window.localStorage is available.`
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
class NoStorageEventApiError extends LocalStorageCollectionError {
|
|
403
|
+
constructor() {
|
|
404
|
+
super(
|
|
405
|
+
`[LocalStorageCollection] No storage event API available. Please provide a storageEventApi option or ensure window is available.`
|
|
406
|
+
);
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
class InvalidStorageDataFormatError extends LocalStorageCollectionError {
|
|
410
|
+
constructor(storageKey, key) {
|
|
411
|
+
super(
|
|
412
|
+
`[LocalStorageCollection] Invalid data format in storage key "${storageKey}" for key "${key}".`
|
|
413
|
+
);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
class InvalidStorageObjectFormatError extends LocalStorageCollectionError {
|
|
417
|
+
constructor(storageKey) {
|
|
418
|
+
super(
|
|
419
|
+
`[LocalStorageCollection] Invalid data format in storage key "${storageKey}". Expected object format.`
|
|
420
|
+
);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
class SyncCleanupError extends TanStackDBError {
|
|
424
|
+
constructor(collectionId, error) {
|
|
425
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
426
|
+
super(
|
|
427
|
+
`Collection "${collectionId}" sync cleanup function threw an error: ${message}`
|
|
428
|
+
);
|
|
429
|
+
this.name = `SyncCleanupError`;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
class QueryOptimizerError extends TanStackDBError {
|
|
433
|
+
constructor(message) {
|
|
434
|
+
super(message);
|
|
435
|
+
this.name = `QueryOptimizerError`;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
class CannotCombineEmptyExpressionListError extends QueryOptimizerError {
|
|
439
|
+
constructor() {
|
|
440
|
+
super(`Cannot combine empty expression list`);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
7
443
|
export {
|
|
8
|
-
|
|
444
|
+
AggregateFunctionNotInSelectError,
|
|
445
|
+
CannotCombineEmptyExpressionListError,
|
|
446
|
+
CollectionConfigurationError,
|
|
447
|
+
CollectionInErrorStateError,
|
|
448
|
+
CollectionInputNotFoundError,
|
|
449
|
+
CollectionIsInErrorStateError,
|
|
450
|
+
CollectionOperationError,
|
|
451
|
+
CollectionRequiresConfigError,
|
|
452
|
+
CollectionRequiresSyncConfigError,
|
|
453
|
+
CollectionStateError,
|
|
454
|
+
DeleteKeyNotFoundError,
|
|
455
|
+
DistinctRequiresSelectError,
|
|
456
|
+
DuplicateKeyError,
|
|
457
|
+
DuplicateKeySyncError,
|
|
458
|
+
EmptyReferencePathError,
|
|
459
|
+
GroupByError,
|
|
460
|
+
HavingRequiresGroupByError,
|
|
461
|
+
InvalidCollectionStatusTransitionError,
|
|
462
|
+
InvalidJoinConditionSameTableError,
|
|
463
|
+
InvalidJoinConditionTableMismatchError,
|
|
464
|
+
InvalidJoinConditionWrongTablesError,
|
|
465
|
+
InvalidSchemaError,
|
|
466
|
+
InvalidSourceError,
|
|
467
|
+
InvalidStorageDataFormatError,
|
|
468
|
+
InvalidStorageObjectFormatError,
|
|
469
|
+
JoinConditionMustBeEqualityError,
|
|
470
|
+
JoinError,
|
|
471
|
+
KeyUpdateNotAllowedError,
|
|
472
|
+
LimitOffsetRequireOrderByError,
|
|
473
|
+
LocalStorageCollectionError,
|
|
474
|
+
MissingDeleteHandlerError,
|
|
475
|
+
MissingHandlerError,
|
|
476
|
+
MissingInsertHandlerError,
|
|
477
|
+
MissingMutationFunctionError,
|
|
478
|
+
MissingUpdateArgumentError,
|
|
479
|
+
MissingUpdateHandlerError,
|
|
480
|
+
NegativeActiveSubscribersError,
|
|
481
|
+
NoKeysPassedToDeleteError,
|
|
482
|
+
NoKeysPassedToUpdateError,
|
|
483
|
+
NoPendingSyncTransactionCommitError,
|
|
484
|
+
NoPendingSyncTransactionWriteError,
|
|
485
|
+
NoStorageAvailableError,
|
|
486
|
+
NoStorageEventApiError,
|
|
487
|
+
NonAggregateExpressionNotInGroupByError,
|
|
488
|
+
NonRetriableError,
|
|
489
|
+
OnlyOneSourceAllowedError,
|
|
490
|
+
QueryBuilderError,
|
|
491
|
+
QueryCompilationError,
|
|
492
|
+
QueryMustHaveFromClauseError,
|
|
493
|
+
QueryOptimizerError,
|
|
494
|
+
SchemaMustBeSynchronousError,
|
|
495
|
+
SchemaValidationError,
|
|
496
|
+
SerializationError,
|
|
497
|
+
StorageError,
|
|
498
|
+
StorageKeyRequiredError,
|
|
499
|
+
SubQueryMustHaveFromClauseError,
|
|
500
|
+
SyncCleanupError,
|
|
501
|
+
SyncTransactionAlreadyCommittedError,
|
|
502
|
+
SyncTransactionAlreadyCommittedWriteError,
|
|
503
|
+
TanStackDBError,
|
|
504
|
+
TransactionAlreadyCompletedRollbackError,
|
|
505
|
+
TransactionError,
|
|
506
|
+
TransactionNotPendingCommitError,
|
|
507
|
+
TransactionNotPendingMutateError,
|
|
508
|
+
UndefinedKeyError,
|
|
509
|
+
UnknownExpressionTypeError,
|
|
510
|
+
UnknownFunctionError,
|
|
511
|
+
UnknownHavingExpressionTypeError,
|
|
512
|
+
UnsupportedAggregateFunctionError,
|
|
513
|
+
UnsupportedFromTypeError,
|
|
514
|
+
UnsupportedJoinSourceTypeError,
|
|
515
|
+
UnsupportedJoinTypeError,
|
|
516
|
+
UpdateKeyNotFoundError
|
|
9
517
|
};
|
|
10
518
|
//# sourceMappingURL=errors.js.map
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../src/errors.ts"],"sourcesContent":["export class NonRetriableError extends Error {\n constructor(message: string) {\n super(message)\n this.name = `NonRetriableError`\n }\n}\n"],"names":[],"mappings":"AAAO,MAAM,0BAA0B,MAAM;AAAA,EAC3C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;"}
|
|
1
|
+
{"version":3,"file":"errors.js","sources":["../../src/errors.ts"],"sourcesContent":["// Root error class for all TanStack DB errors\nexport class TanStackDBError extends Error {\n constructor(message: string) {\n super(message)\n this.name = `TanStackDBError`\n }\n}\n\n// Base error classes\nexport class NonRetriableError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `NonRetriableError`\n }\n}\n\n// Schema validation error (exported from index for backward compatibility)\nexport class SchemaValidationError extends TanStackDBError {\n type: `insert` | `update`\n issues: ReadonlyArray<{\n message: string\n path?: ReadonlyArray<string | number | symbol>\n }>\n\n constructor(\n type: `insert` | `update`,\n issues: ReadonlyArray<{\n message: string\n path?: ReadonlyArray<string | number | symbol>\n }>,\n message?: string\n ) {\n const defaultMessage = `${type === `insert` ? `Insert` : `Update`} validation failed: ${issues\n .map((issue) => `\\n- ${issue.message} - path: ${issue.path}`)\n .join(``)}`\n\n super(message || defaultMessage)\n this.name = `SchemaValidationError`\n this.type = type\n this.issues = issues\n }\n}\n\n// Collection Configuration Errors\nexport class CollectionConfigurationError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `CollectionConfigurationError`\n }\n}\n\nexport class CollectionRequiresConfigError extends CollectionConfigurationError {\n constructor() {\n super(`Collection requires a config`)\n }\n}\n\nexport class CollectionRequiresSyncConfigError extends CollectionConfigurationError {\n constructor() {\n super(`Collection requires a sync config`)\n }\n}\n\nexport class InvalidSchemaError extends CollectionConfigurationError {\n constructor() {\n super(`Schema must implement the standard-schema interface`)\n }\n}\n\nexport class SchemaMustBeSynchronousError extends CollectionConfigurationError {\n constructor() {\n super(`Schema validation must be synchronous`)\n }\n}\n\n// Collection State Errors\nexport class CollectionStateError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `CollectionStateError`\n }\n}\n\nexport class CollectionInErrorStateError extends CollectionStateError {\n constructor(operation: string, collectionId: string) {\n super(\n `Cannot perform ${operation} on collection \"${collectionId}\" - collection is in error state. Try calling cleanup() and restarting the collection.`\n )\n }\n}\n\nexport class InvalidCollectionStatusTransitionError extends CollectionStateError {\n constructor(from: string, to: string, collectionId: string) {\n super(\n `Invalid collection status transition from \"${from}\" to \"${to}\" for collection \"${collectionId}\"`\n )\n }\n}\n\nexport class CollectionIsInErrorStateError extends CollectionStateError {\n constructor() {\n super(`Collection is in error state`)\n }\n}\n\nexport class NegativeActiveSubscribersError extends CollectionStateError {\n constructor() {\n super(`Active subscribers count is negative - this should never happen`)\n }\n}\n\n// Collection Operation Errors\nexport class CollectionOperationError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `CollectionOperationError`\n }\n}\n\nexport class UndefinedKeyError extends CollectionOperationError {\n constructor(item: any) {\n super(\n `An object was created without a defined key: ${JSON.stringify(item)}`\n )\n }\n}\n\nexport class DuplicateKeyError extends CollectionOperationError {\n constructor(key: string | number) {\n super(\n `Cannot insert document with ID \"${key}\" because it already exists in the collection`\n )\n }\n}\n\nexport class DuplicateKeySyncError extends CollectionOperationError {\n constructor(key: string | number, collectionId: string) {\n super(\n `Cannot insert document with key \"${key}\" from sync because it already exists in the collection \"${collectionId}\"`\n )\n }\n}\n\nexport class MissingUpdateArgumentError extends CollectionOperationError {\n constructor() {\n super(`The first argument to update is missing`)\n }\n}\n\nexport class NoKeysPassedToUpdateError extends CollectionOperationError {\n constructor() {\n super(`No keys were passed to update`)\n }\n}\n\nexport class UpdateKeyNotFoundError extends CollectionOperationError {\n constructor(key: string | number) {\n super(\n `The key \"${key}\" was passed to update but an object for this key was not found in the collection`\n )\n }\n}\n\nexport class KeyUpdateNotAllowedError extends CollectionOperationError {\n constructor(originalKey: string | number, newKey: string | number) {\n super(\n `Updating the key of an item is not allowed. Original key: \"${originalKey}\", Attempted new key: \"${newKey}\". Please delete the old item and create a new one if a key change is necessary.`\n )\n }\n}\n\nexport class NoKeysPassedToDeleteError extends CollectionOperationError {\n constructor() {\n super(`No keys were passed to delete`)\n }\n}\n\nexport class DeleteKeyNotFoundError extends CollectionOperationError {\n constructor(key: string | number) {\n super(\n `Collection.delete was called with key '${key}' but there is no item in the collection with this key`\n )\n }\n}\n\n// Collection Handler Errors\nexport class MissingHandlerError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `MissingHandlerError`\n }\n}\n\nexport class MissingInsertHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.insert called directly (not within an explicit transaction) but no 'onInsert' handler is configured.`\n )\n }\n}\n\nexport class MissingUpdateHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.update called directly (not within an explicit transaction) but no 'onUpdate' handler is configured.`\n )\n }\n}\n\nexport class MissingDeleteHandlerError extends MissingHandlerError {\n constructor() {\n super(\n `Collection.delete called directly (not within an explicit transaction) but no 'onDelete' handler is configured.`\n )\n }\n}\n\n// Transaction Errors\nexport class TransactionError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `TransactionError`\n }\n}\n\nexport class MissingMutationFunctionError extends TransactionError {\n constructor() {\n super(`mutationFn is required when creating a transaction`)\n }\n}\n\nexport class TransactionNotPendingMutateError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .mutate() as the transaction is no longer pending`\n )\n }\n}\n\nexport class TransactionAlreadyCompletedRollbackError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .rollback() as the transaction is already completed`\n )\n }\n}\n\nexport class TransactionNotPendingCommitError extends TransactionError {\n constructor() {\n super(\n `You can no longer call .commit() as the transaction is no longer pending`\n )\n }\n}\n\nexport class NoPendingSyncTransactionWriteError extends TransactionError {\n constructor() {\n super(`No pending sync transaction to write to`)\n }\n}\n\nexport class SyncTransactionAlreadyCommittedWriteError extends TransactionError {\n constructor() {\n super(\n `The pending sync transaction is already committed, you can't still write to it.`\n )\n }\n}\n\nexport class NoPendingSyncTransactionCommitError extends TransactionError {\n constructor() {\n super(`No pending sync transaction to commit`)\n }\n}\n\nexport class SyncTransactionAlreadyCommittedError extends TransactionError {\n constructor() {\n super(\n `The pending sync transaction is already committed, you can't commit it again.`\n )\n }\n}\n\n// Query Builder Errors\nexport class QueryBuilderError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `QueryBuilderError`\n }\n}\n\nexport class OnlyOneSourceAllowedError extends QueryBuilderError {\n constructor(context: string) {\n super(`Only one source is allowed in the ${context}`)\n }\n}\n\nexport class SubQueryMustHaveFromClauseError extends QueryBuilderError {\n constructor(context: string) {\n super(`A sub query passed to a ${context} must have a from clause itself`)\n }\n}\n\nexport class InvalidSourceError extends QueryBuilderError {\n constructor() {\n super(`Invalid source`)\n }\n}\n\nexport class JoinConditionMustBeEqualityError extends QueryBuilderError {\n constructor() {\n super(`Join condition must be an equality expression`)\n }\n}\n\nexport class QueryMustHaveFromClauseError extends QueryBuilderError {\n constructor() {\n super(`Query must have a from clause`)\n }\n}\n\n// Query Compilation Errors\nexport class QueryCompilationError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `QueryCompilationError`\n }\n}\n\nexport class DistinctRequiresSelectError extends QueryCompilationError {\n constructor() {\n super(`DISTINCT requires a SELECT clause.`)\n }\n}\n\nexport class HavingRequiresGroupByError extends QueryCompilationError {\n constructor() {\n super(`HAVING clause requires GROUP BY clause`)\n }\n}\n\nexport class LimitOffsetRequireOrderByError extends QueryCompilationError {\n constructor() {\n super(\n `LIMIT and OFFSET require an ORDER BY clause to ensure deterministic results`\n )\n }\n}\n\nexport class CollectionInputNotFoundError extends QueryCompilationError {\n constructor(collectionId: string) {\n super(`Input for collection \"${collectionId}\" not found in inputs map`)\n }\n}\n\nexport class UnsupportedFromTypeError extends QueryCompilationError {\n constructor(type: string) {\n super(`Unsupported FROM type: ${type}`)\n }\n}\n\nexport class UnknownExpressionTypeError extends QueryCompilationError {\n constructor(type: string) {\n super(`Unknown expression type: ${type}`)\n }\n}\n\nexport class EmptyReferencePathError extends QueryCompilationError {\n constructor() {\n super(`Reference path cannot be empty`)\n }\n}\n\nexport class UnknownFunctionError extends QueryCompilationError {\n constructor(functionName: string) {\n super(`Unknown function: ${functionName}`)\n }\n}\n\n// JOIN Operation Errors\nexport class JoinError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `JoinError`\n }\n}\n\nexport class UnsupportedJoinTypeError extends JoinError {\n constructor(joinType: string) {\n super(`Unsupported join type: ${joinType}`)\n }\n}\n\nexport class InvalidJoinConditionSameTableError extends JoinError {\n constructor(tableAlias: string) {\n super(\n `Invalid join condition: both expressions refer to the same table \"${tableAlias}\"`\n )\n }\n}\n\nexport class InvalidJoinConditionTableMismatchError extends JoinError {\n constructor(mainTableAlias: string, joinedTableAlias: string) {\n super(\n `Invalid join condition: expressions must reference table aliases \"${mainTableAlias}\" and \"${joinedTableAlias}\"`\n )\n }\n}\n\nexport class InvalidJoinConditionWrongTablesError extends JoinError {\n constructor(\n leftTableAlias: string,\n rightTableAlias: string,\n mainTableAlias: string,\n joinedTableAlias: string\n ) {\n super(\n `Invalid join condition: expressions reference tables \"${leftTableAlias}\" and \"${rightTableAlias}\" but join is between \"${mainTableAlias}\" and \"${joinedTableAlias}\"`\n )\n }\n}\n\nexport class UnsupportedJoinSourceTypeError extends JoinError {\n constructor(type: string) {\n super(`Unsupported join source type: ${type}`)\n }\n}\n\n// GROUP BY and Aggregation Errors\nexport class GroupByError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `GroupByError`\n }\n}\n\nexport class NonAggregateExpressionNotInGroupByError extends GroupByError {\n constructor(alias: string) {\n super(\n `Non-aggregate expression '${alias}' in SELECT must also appear in GROUP BY clause`\n )\n }\n}\n\nexport class UnsupportedAggregateFunctionError extends GroupByError {\n constructor(functionName: string) {\n super(`Unsupported aggregate function: ${functionName}`)\n }\n}\n\nexport class AggregateFunctionNotInSelectError extends GroupByError {\n constructor(functionName: string) {\n super(\n `Aggregate function in HAVING clause must also be in SELECT clause: ${functionName}`\n )\n }\n}\n\nexport class UnknownHavingExpressionTypeError extends GroupByError {\n constructor(type: string) {\n super(`Unknown expression type in HAVING clause: ${type}`)\n }\n}\n\n// Storage Errors\nexport class StorageError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `StorageError`\n }\n}\n\nexport class SerializationError extends StorageError {\n constructor(operation: string, originalError: string) {\n super(\n `Cannot ${operation} item because it cannot be JSON serialized: ${originalError}`\n )\n }\n}\n\n// LocalStorage Collection Errors\nexport class LocalStorageCollectionError extends StorageError {\n constructor(message: string) {\n super(message)\n this.name = `LocalStorageCollectionError`\n }\n}\n\nexport class StorageKeyRequiredError extends LocalStorageCollectionError {\n constructor() {\n super(`[LocalStorageCollection] storageKey must be provided.`)\n }\n}\n\nexport class NoStorageAvailableError extends LocalStorageCollectionError {\n constructor() {\n super(\n `[LocalStorageCollection] No storage available. Please provide a storage option or ensure window.localStorage is available.`\n )\n }\n}\n\nexport class NoStorageEventApiError extends LocalStorageCollectionError {\n constructor() {\n super(\n `[LocalStorageCollection] No storage event API available. Please provide a storageEventApi option or ensure window is available.`\n )\n }\n}\n\nexport class InvalidStorageDataFormatError extends LocalStorageCollectionError {\n constructor(storageKey: string, key: string) {\n super(\n `[LocalStorageCollection] Invalid data format in storage key \"${storageKey}\" for key \"${key}\".`\n )\n }\n}\n\nexport class InvalidStorageObjectFormatError extends LocalStorageCollectionError {\n constructor(storageKey: string) {\n super(\n `[LocalStorageCollection] Invalid data format in storage key \"${storageKey}\". Expected object format.`\n )\n }\n}\n\n// Sync Cleanup Errors\nexport class SyncCleanupError extends TanStackDBError {\n constructor(collectionId: string, error: Error | string) {\n const message = error instanceof Error ? error.message : String(error)\n super(\n `Collection \"${collectionId}\" sync cleanup function threw an error: ${message}`\n )\n this.name = `SyncCleanupError`\n }\n}\n\n// Query Optimizer Errors\nexport class QueryOptimizerError extends TanStackDBError {\n constructor(message: string) {\n super(message)\n this.name = `QueryOptimizerError`\n }\n}\n\nexport class CannotCombineEmptyExpressionListError extends QueryOptimizerError {\n constructor() {\n super(`Cannot combine empty expression list`)\n }\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ export * from './collection.js';
|
|
|
2
2
|
export * from './SortedMap.js';
|
|
3
3
|
export * from './transactions.js';
|
|
4
4
|
export * from './types.js';
|
|
5
|
-
export * from './errors.js';
|
|
6
5
|
export * from './proxy.js';
|
|
7
6
|
export * from './query/index.js';
|
|
8
7
|
export * from './optimistic-action.js';
|
|
9
8
|
export * from './local-only.js';
|
|
10
9
|
export * from './local-storage.js';
|
|
10
|
+
export * from './errors.js';
|
|
11
|
+
export * from './indexes/base-index.js';
|
|
12
|
+
export * from './indexes/btree-index.js';
|
|
13
|
+
export * from './indexes/lazy-index.js';
|
|
14
|
+
export { type IndexOptions } from './indexes/index-options.js';
|
|
11
15
|
export type { Collection } from './collection.js';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,22 +1,101 @@
|
|
|
1
|
-
import { CollectionImpl,
|
|
1
|
+
import { CollectionImpl, collectionsStore, createCollection } from "./collection.js";
|
|
2
2
|
import { SortedMap } from "./SortedMap.js";
|
|
3
3
|
import { createTransaction, getActiveTransaction } from "./transactions.js";
|
|
4
|
-
import { NonRetriableError } from "./errors.js";
|
|
5
4
|
import { createArrayChangeProxy, createChangeProxy, withArrayChangeTracking, withChangeTracking } from "./proxy.js";
|
|
6
5
|
import { createOptimisticAction } from "./optimistic-action.js";
|
|
7
6
|
import { localOnlyCollectionOptions } from "./local-only.js";
|
|
8
7
|
import { localStorageCollectionOptions } from "./local-storage.js";
|
|
8
|
+
import { AggregateFunctionNotInSelectError, CannotCombineEmptyExpressionListError, CollectionConfigurationError, CollectionInErrorStateError, CollectionInputNotFoundError, CollectionIsInErrorStateError, CollectionOperationError, CollectionRequiresConfigError, CollectionRequiresSyncConfigError, CollectionStateError, DeleteKeyNotFoundError, DistinctRequiresSelectError, DuplicateKeyError, DuplicateKeySyncError, EmptyReferencePathError, GroupByError, HavingRequiresGroupByError, InvalidCollectionStatusTransitionError, InvalidJoinConditionSameTableError, InvalidJoinConditionTableMismatchError, InvalidJoinConditionWrongTablesError, InvalidSchemaError, InvalidSourceError, InvalidStorageDataFormatError, InvalidStorageObjectFormatError, JoinConditionMustBeEqualityError, JoinError, KeyUpdateNotAllowedError, LimitOffsetRequireOrderByError, LocalStorageCollectionError, MissingDeleteHandlerError, MissingHandlerError, MissingInsertHandlerError, MissingMutationFunctionError, MissingUpdateArgumentError, MissingUpdateHandlerError, NegativeActiveSubscribersError, NoKeysPassedToDeleteError, NoKeysPassedToUpdateError, NoPendingSyncTransactionCommitError, NoPendingSyncTransactionWriteError, NoStorageAvailableError, NoStorageEventApiError, NonAggregateExpressionNotInGroupByError, NonRetriableError, OnlyOneSourceAllowedError, QueryBuilderError, QueryCompilationError, QueryMustHaveFromClauseError, QueryOptimizerError, SchemaMustBeSynchronousError, SchemaValidationError, SerializationError, StorageError, StorageKeyRequiredError, SubQueryMustHaveFromClauseError, SyncCleanupError, SyncTransactionAlreadyCommittedError, SyncTransactionAlreadyCommittedWriteError, TanStackDBError, TransactionAlreadyCompletedRollbackError, TransactionError, TransactionNotPendingCommitError, TransactionNotPendingMutateError, UndefinedKeyError, UnknownExpressionTypeError, UnknownFunctionError, UnknownHavingExpressionTypeError, UnsupportedAggregateFunctionError, UnsupportedFromTypeError, UnsupportedJoinSourceTypeError, UnsupportedJoinTypeError, UpdateKeyNotFoundError } from "./errors.js";
|
|
9
|
+
import { BaseIndex, IndexOperation } from "./indexes/base-index.js";
|
|
10
|
+
import { BTreeIndex } from "./indexes/btree-index.js";
|
|
11
|
+
import { IndexProxy, LazyIndexWrapper } from "./indexes/lazy-index.js";
|
|
9
12
|
import { BaseQueryBuilder, Query } from "./query/builder/index.js";
|
|
10
13
|
import { add, and, avg, coalesce, concat, count, eq, gt, gte, ilike, inArray, length, like, lower, lt, lte, max, min, not, or, sum, upper } from "./query/builder/functions.js";
|
|
11
14
|
import { compileQuery } from "./query/compiler/index.js";
|
|
12
15
|
import { createLiveQueryCollection, liveQueryCollectionOptions } from "./query/live-query-collection.js";
|
|
13
16
|
export {
|
|
17
|
+
AggregateFunctionNotInSelectError,
|
|
18
|
+
BTreeIndex,
|
|
19
|
+
BaseIndex,
|
|
14
20
|
BaseQueryBuilder,
|
|
21
|
+
CannotCombineEmptyExpressionListError,
|
|
22
|
+
CollectionConfigurationError,
|
|
15
23
|
CollectionImpl,
|
|
24
|
+
CollectionInErrorStateError,
|
|
25
|
+
CollectionInputNotFoundError,
|
|
26
|
+
CollectionIsInErrorStateError,
|
|
27
|
+
CollectionOperationError,
|
|
28
|
+
CollectionRequiresConfigError,
|
|
29
|
+
CollectionRequiresSyncConfigError,
|
|
30
|
+
CollectionStateError,
|
|
31
|
+
DeleteKeyNotFoundError,
|
|
32
|
+
DistinctRequiresSelectError,
|
|
33
|
+
DuplicateKeyError,
|
|
34
|
+
DuplicateKeySyncError,
|
|
35
|
+
EmptyReferencePathError,
|
|
36
|
+
GroupByError,
|
|
37
|
+
HavingRequiresGroupByError,
|
|
38
|
+
IndexOperation,
|
|
39
|
+
IndexProxy,
|
|
40
|
+
InvalidCollectionStatusTransitionError,
|
|
41
|
+
InvalidJoinConditionSameTableError,
|
|
42
|
+
InvalidJoinConditionTableMismatchError,
|
|
43
|
+
InvalidJoinConditionWrongTablesError,
|
|
44
|
+
InvalidSchemaError,
|
|
45
|
+
InvalidSourceError,
|
|
46
|
+
InvalidStorageDataFormatError,
|
|
47
|
+
InvalidStorageObjectFormatError,
|
|
48
|
+
JoinConditionMustBeEqualityError,
|
|
49
|
+
JoinError,
|
|
50
|
+
KeyUpdateNotAllowedError,
|
|
51
|
+
LazyIndexWrapper,
|
|
52
|
+
LimitOffsetRequireOrderByError,
|
|
53
|
+
LocalStorageCollectionError,
|
|
54
|
+
MissingDeleteHandlerError,
|
|
55
|
+
MissingHandlerError,
|
|
56
|
+
MissingInsertHandlerError,
|
|
57
|
+
MissingMutationFunctionError,
|
|
58
|
+
MissingUpdateArgumentError,
|
|
59
|
+
MissingUpdateHandlerError,
|
|
60
|
+
NegativeActiveSubscribersError,
|
|
61
|
+
NoKeysPassedToDeleteError,
|
|
62
|
+
NoKeysPassedToUpdateError,
|
|
63
|
+
NoPendingSyncTransactionCommitError,
|
|
64
|
+
NoPendingSyncTransactionWriteError,
|
|
65
|
+
NoStorageAvailableError,
|
|
66
|
+
NoStorageEventApiError,
|
|
67
|
+
NonAggregateExpressionNotInGroupByError,
|
|
16
68
|
NonRetriableError,
|
|
69
|
+
OnlyOneSourceAllowedError,
|
|
17
70
|
Query,
|
|
71
|
+
QueryBuilderError,
|
|
72
|
+
QueryCompilationError,
|
|
73
|
+
QueryMustHaveFromClauseError,
|
|
74
|
+
QueryOptimizerError,
|
|
75
|
+
SchemaMustBeSynchronousError,
|
|
18
76
|
SchemaValidationError,
|
|
77
|
+
SerializationError,
|
|
19
78
|
SortedMap,
|
|
79
|
+
StorageError,
|
|
80
|
+
StorageKeyRequiredError,
|
|
81
|
+
SubQueryMustHaveFromClauseError,
|
|
82
|
+
SyncCleanupError,
|
|
83
|
+
SyncTransactionAlreadyCommittedError,
|
|
84
|
+
SyncTransactionAlreadyCommittedWriteError,
|
|
85
|
+
TanStackDBError,
|
|
86
|
+
TransactionAlreadyCompletedRollbackError,
|
|
87
|
+
TransactionError,
|
|
88
|
+
TransactionNotPendingCommitError,
|
|
89
|
+
TransactionNotPendingMutateError,
|
|
90
|
+
UndefinedKeyError,
|
|
91
|
+
UnknownExpressionTypeError,
|
|
92
|
+
UnknownFunctionError,
|
|
93
|
+
UnknownHavingExpressionTypeError,
|
|
94
|
+
UnsupportedAggregateFunctionError,
|
|
95
|
+
UnsupportedFromTypeError,
|
|
96
|
+
UnsupportedJoinSourceTypeError,
|
|
97
|
+
UnsupportedJoinTypeError,
|
|
98
|
+
UpdateKeyNotFoundError,
|
|
20
99
|
add,
|
|
21
100
|
and,
|
|
22
101
|
avg,
|