@livestore/livestore 0.0.54-dev.5 → 0.0.55-dev.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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/MainDatabaseWrapper.d.ts +6 -5
- package/dist/MainDatabaseWrapper.d.ts.map +1 -1
- package/dist/MainDatabaseWrapper.js +3 -3
- package/dist/MainDatabaseWrapper.js.map +1 -1
- package/dist/QueryCache.d.ts +1 -1
- package/dist/QueryCache.d.ts.map +1 -1
- package/dist/QueryCache.js.map +1 -1
- package/dist/__tests__/react/fixture.d.ts +9 -27
- package/dist/__tests__/react/fixture.d.ts.map +1 -1
- package/dist/__tests__/react/fixture.js +12 -10
- package/dist/__tests__/react/fixture.js.map +1 -1
- package/dist/effect/LiveStore.d.ts +20 -12
- package/dist/effect/LiveStore.d.ts.map +1 -1
- package/dist/effect/LiveStore.js +23 -22
- package/dist/effect/LiveStore.js.map +1 -1
- package/dist/effect/index.d.ts +1 -1
- package/dist/effect/index.d.ts.map +1 -1
- package/dist/effect/index.js +1 -1
- package/dist/effect/index.js.map +1 -1
- package/dist/global-state.d.ts +1 -3
- package/dist/global-state.d.ts.map +1 -1
- package/dist/global-state.js +2 -3
- package/dist/global-state.js.map +1 -1
- package/dist/index.d.ts +6 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -6
- package/dist/index.js.map +1 -1
- package/dist/react/LiveStoreContext.d.ts +5 -2
- package/dist/react/LiveStoreContext.d.ts.map +1 -1
- package/dist/react/LiveStoreContext.js +3 -0
- package/dist/react/LiveStoreContext.js.map +1 -1
- package/dist/react/LiveStoreProvider.d.ts +8 -7
- package/dist/react/LiveStoreProvider.d.ts.map +1 -1
- package/dist/react/LiveStoreProvider.js +70 -43
- package/dist/react/LiveStoreProvider.js.map +1 -1
- package/dist/react/LiveStoreProvider.test.js +33 -12
- package/dist/react/LiveStoreProvider.test.js.map +1 -1
- package/dist/react/components/LiveList.d.ts.map +1 -1
- package/dist/react/useAtom.d.ts +1 -1
- package/dist/react/useAtom.d.ts.map +1 -1
- package/dist/react/useLocalId.d.ts.map +1 -1
- package/dist/react/useQuery.d.ts.map +1 -1
- package/dist/react/useQuery.js +2 -2
- package/dist/react/useQuery.js.map +1 -1
- package/dist/react/useRow.d.ts +2 -2
- package/dist/react/useRow.d.ts.map +1 -1
- package/dist/react/useRow.js +5 -5
- package/dist/react/useRow.js.map +1 -1
- package/dist/react/useRow.test.js +22 -22
- package/dist/react/useRow.test.js.map +1 -1
- package/dist/react/useTemporaryQuery.d.ts.map +1 -1
- package/dist/react/useTemporaryQuery.js +1 -1
- package/dist/react/useTemporaryQuery.js.map +1 -1
- package/dist/react/utils/useStateRefWithReactiveInput.d.ts.map +1 -1
- package/dist/reactive.d.ts +1 -1
- package/dist/reactive.d.ts.map +1 -1
- package/dist/reactive.js +4 -5
- package/dist/reactive.js.map +1 -1
- package/dist/reactiveQueries/base-class.d.ts +6 -6
- package/dist/reactiveQueries/base-class.d.ts.map +1 -1
- package/dist/reactiveQueries/base-class.js +3 -3
- package/dist/reactiveQueries/base-class.js.map +1 -1
- package/dist/reactiveQueries/graphql.d.ts +8 -8
- package/dist/reactiveQueries/graphql.d.ts.map +1 -1
- package/dist/reactiveQueries/graphql.js +10 -10
- package/dist/reactiveQueries/graphql.js.map +1 -1
- package/dist/reactiveQueries/js.d.ts +6 -6
- package/dist/reactiveQueries/js.d.ts.map +1 -1
- package/dist/reactiveQueries/js.js +8 -8
- package/dist/reactiveQueries/js.js.map +1 -1
- package/dist/reactiveQueries/sql.d.ts +9 -10
- package/dist/reactiveQueries/sql.d.ts.map +1 -1
- package/dist/reactiveQueries/sql.js +12 -12
- package/dist/reactiveQueries/sql.js.map +1 -1
- package/dist/reactiveQueries/sql.test.js +6 -6
- package/dist/reactiveQueries/sql.test.js.map +1 -1
- package/dist/row-query.d.ts +2 -2
- package/dist/row-query.d.ts.map +1 -1
- package/dist/row-query.js +4 -38
- package/dist/row-query.js.map +1 -1
- package/dist/store.d.ts +41 -24
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +336 -223
- package/dist/store.js.map +1 -1
- package/dist/utils/otel.d.ts.map +1 -1
- package/package.json +10 -19
- package/src/MainDatabaseWrapper.ts +14 -8
- package/src/QueryCache.ts +1 -2
- package/src/__tests__/react/fixture.tsx +13 -11
- package/src/effect/LiveStore.ts +65 -54
- package/src/effect/index.ts +2 -1
- package/src/global-state.ts +2 -6
- package/src/index.ts +25 -7
- package/src/react/LiveStoreContext.ts +7 -2
- package/src/react/LiveStoreProvider.test.tsx +56 -14
- package/src/react/LiveStoreProvider.tsx +105 -46
- package/src/react/useQuery.ts +2 -2
- package/src/react/useRow.test.tsx +22 -22
- package/src/react/useRow.ts +7 -10
- package/src/react/useTemporaryQuery.ts +2 -2
- package/src/reactive.ts +6 -5
- package/src/reactiveQueries/base-class.ts +9 -9
- package/src/reactiveQueries/graphql.ts +19 -15
- package/src/reactiveQueries/js.ts +12 -12
- package/src/reactiveQueries/sql.test.ts +6 -6
- package/src/reactiveQueries/sql.ts +19 -21
- package/src/row-query.ts +8 -54
- package/src/store.ts +533 -284
- package/dist/utils/bounded-collections.d.ts +0 -34
- package/dist/utils/bounded-collections.d.ts.map +0 -1
- package/dist/utils/bounded-collections.js +0 -91
- package/dist/utils/bounded-collections.js.map +0 -1
- package/dist/utils/util.d.ts +0 -14
- package/dist/utils/util.d.ts.map +0 -1
- package/dist/utils/util.js +0 -19
- package/dist/utils/util.js.map +0 -1
- package/src/utils/util.ts +0 -31
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a map that has a fixed number of entries.
|
|
3
|
-
* Once hitting the bound, earliest insertions are removed
|
|
4
|
-
*/
|
|
5
|
-
export default class BoundMap<K, V> {
|
|
6
|
-
#private;
|
|
7
|
-
constructor(sizeLimit: number);
|
|
8
|
-
onEvict: ((key: K, value: V) => void) | undefined;
|
|
9
|
-
set: (key: K, value: V) => void;
|
|
10
|
-
get: (key: K) => V | undefined;
|
|
11
|
-
delete: (key: K) => void;
|
|
12
|
-
keys: () => IterableIterator<K>;
|
|
13
|
-
}
|
|
14
|
-
export declare class BoundSet<V> {
|
|
15
|
-
#private;
|
|
16
|
-
constructor(sizeLimit: number);
|
|
17
|
-
onEvict: ((key: V) => void) | undefined;
|
|
18
|
-
add: (v: V) => void;
|
|
19
|
-
[Symbol.iterator]: () => IterableIterator<V>;
|
|
20
|
-
}
|
|
21
|
-
export declare class BoundArray<V> {
|
|
22
|
-
#private;
|
|
23
|
-
constructor(sizeLimit: number);
|
|
24
|
-
onEvict: ((key: V) => void) | undefined;
|
|
25
|
-
push: (v: V) => void;
|
|
26
|
-
get: (index: number) => V | undefined;
|
|
27
|
-
delete: (index: number) => void;
|
|
28
|
-
get length(): number;
|
|
29
|
-
[Symbol.iterator]: () => IterableIterator<V>;
|
|
30
|
-
map: <T>(fn: (v: V) => T) => T[];
|
|
31
|
-
clear: () => void;
|
|
32
|
-
sort: (fn?: (a: V, b: V) => number) => V[];
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=bounded-collections.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-collections.d.ts","sourceRoot":"","sources":["../../src/utils/bounded-collections.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC;;gBAIpB,SAAS,EAAE,MAAM;IAI7B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEjD,GAAG,QAAS,CAAC,SAAS,CAAC,UAWtB;IAED,GAAG,QAAS,CAAC,KAAG,CAAC,GAAG,SAAS,CAE5B;IAED,MAAM,QAAS,CAAC,UAEf;IAED,IAAI,4BAEH;CACF;AAED,qBAAa,QAAQ,CAAC,CAAC;;gBAGT,SAAS,EAAE,MAAM;IAW7B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEvC,GAAG,MAAO,CAAC,UAET;IAEF,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAEhB;CACF;AAED,qBAAa,UAAU,CAAC,CAAC;;gBAIX,SAAS,EAAE,MAAM;IAI7B,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAEvC,IAAI,MAAO,CAAC,UAQX;IAED,GAAG,UAAW,MAAM,KAAG,CAAC,GAAG,SAAS,CAEnC;IAED,MAAM,UAAW,MAAM,UAEtB;IAED,IAAI,MAAM,WAET;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAEhB;IAED,GAAG,UAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAG,CAAC,EAAE,CAE9B;IAED,KAAK,aAEJ;IAED,IAAI,QAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,SAElC;CACF"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a map that has a fixed number of entries.
|
|
3
|
-
* Once hitting the bound, earliest insertions are removed
|
|
4
|
-
*/
|
|
5
|
-
export default class BoundMap {
|
|
6
|
-
#map = new Map();
|
|
7
|
-
#sizeLimit;
|
|
8
|
-
constructor(sizeLimit) {
|
|
9
|
-
this.#sizeLimit = sizeLimit;
|
|
10
|
-
}
|
|
11
|
-
onEvict;
|
|
12
|
-
set = (key, value) => {
|
|
13
|
-
this.#map.set(key, value);
|
|
14
|
-
// console.log(this.#map.size, this.#sizeLimit);
|
|
15
|
-
if (this.#map.size > this.#sizeLimit) {
|
|
16
|
-
const firstKey = this.#map.keys().next().value;
|
|
17
|
-
const deletedValue = this.#map.get(firstKey);
|
|
18
|
-
this.#map.delete(firstKey);
|
|
19
|
-
if (this.onEvict) {
|
|
20
|
-
this.onEvict(firstKey, deletedValue);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
get = (key) => {
|
|
25
|
-
return this.#map.get(key);
|
|
26
|
-
};
|
|
27
|
-
delete = (key) => {
|
|
28
|
-
this.#map.delete(key);
|
|
29
|
-
};
|
|
30
|
-
keys = () => {
|
|
31
|
-
return this.#map.keys();
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export class BoundSet {
|
|
35
|
-
#map;
|
|
36
|
-
constructor(sizeLimit) {
|
|
37
|
-
this.#map = new BoundMap(sizeLimit);
|
|
38
|
-
this.#map.onEvict = this.#onEvict;
|
|
39
|
-
}
|
|
40
|
-
#onEvict = (v) => {
|
|
41
|
-
if (this.onEvict) {
|
|
42
|
-
this.onEvict(v);
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
onEvict;
|
|
46
|
-
add = (v) => {
|
|
47
|
-
this.#map.set(v, v);
|
|
48
|
-
};
|
|
49
|
-
[Symbol.iterator] = () => {
|
|
50
|
-
return this.#map.keys();
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export class BoundArray {
|
|
54
|
-
#array = [];
|
|
55
|
-
#sizeLimit;
|
|
56
|
-
constructor(sizeLimit) {
|
|
57
|
-
this.#sizeLimit = sizeLimit;
|
|
58
|
-
}
|
|
59
|
-
onEvict;
|
|
60
|
-
push = (v) => {
|
|
61
|
-
this.#array.push(v);
|
|
62
|
-
if (this.#array.length > this.#sizeLimit) {
|
|
63
|
-
const first = this.#array.shift();
|
|
64
|
-
if (first && this.onEvict) {
|
|
65
|
-
this.onEvict(first);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
get = (index) => {
|
|
70
|
-
return this.#array[index];
|
|
71
|
-
};
|
|
72
|
-
delete = (index) => {
|
|
73
|
-
this.#array.splice(index, 1);
|
|
74
|
-
};
|
|
75
|
-
get length() {
|
|
76
|
-
return this.#array.length;
|
|
77
|
-
}
|
|
78
|
-
[Symbol.iterator] = () => {
|
|
79
|
-
return this.#array[Symbol.iterator]();
|
|
80
|
-
};
|
|
81
|
-
map = (fn) => {
|
|
82
|
-
return this.#array.map(fn);
|
|
83
|
-
};
|
|
84
|
-
clear = () => {
|
|
85
|
-
this.#array = [];
|
|
86
|
-
};
|
|
87
|
-
sort = (fn) => {
|
|
88
|
-
return this.#array.sort(fn);
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=bounded-collections.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bounded-collections.js","sourceRoot":"","sources":["../../src/utils/bounded-collections.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/util.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference lib="es2022" />
|
|
2
|
-
import type { Brand } from '@livestore/utils/effect';
|
|
3
|
-
export type ParamsObject = Record<string, SqlValue>;
|
|
4
|
-
export type SqlValue = string | number | Uint8Array | null;
|
|
5
|
-
export type Bindable = ReadonlyArray<SqlValue> | ParamsObject;
|
|
6
|
-
export type PreparedBindValues = Brand.Branded<Bindable, 'PreparedBindValues'>;
|
|
7
|
-
/** Prepare bind values to send to SQLite
|
|
8
|
-
/* Add $ to the beginning of keys; which we use as our interpolation syntax
|
|
9
|
-
/* We also strip out any params that aren't used in the statement,
|
|
10
|
-
/* because rusqlite doesn't allow unused named params
|
|
11
|
-
/* TODO: Search for unused params via proper parsing, not string search
|
|
12
|
-
**/
|
|
13
|
-
export declare const prepareBindValues: (values: Bindable, statement: string) => PreparedBindValues;
|
|
14
|
-
//# sourceMappingURL=util.d.ts.map
|
package/dist/utils/util.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/utils/util.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEpD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AACnD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;AAE1D,MAAM,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;AAI7D,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAA;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,WAAY,QAAQ,aAAa,MAAM,KAAG,kBAWvE,CAAA"}
|
package/dist/utils/util.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference lib="es2022" />
|
|
2
|
-
/** Prepare bind values to send to SQLite
|
|
3
|
-
/* Add $ to the beginning of keys; which we use as our interpolation syntax
|
|
4
|
-
/* We also strip out any params that aren't used in the statement,
|
|
5
|
-
/* because rusqlite doesn't allow unused named params
|
|
6
|
-
/* TODO: Search for unused params via proper parsing, not string search
|
|
7
|
-
**/
|
|
8
|
-
export const prepareBindValues = (values, statement) => {
|
|
9
|
-
if (Array.isArray(values))
|
|
10
|
-
return values;
|
|
11
|
-
const result = {};
|
|
12
|
-
for (const [key, value] of Object.entries(values)) {
|
|
13
|
-
if (statement.includes(key)) {
|
|
14
|
-
result[`$${key}`] = value;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return result;
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=util.js.map
|
package/dist/utils/util.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/utils/util.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAa9B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAgB,EAAE,SAAiB,EAAsB,EAAE;IAC3F,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAmC,CAAA;IAErE,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,KAAK,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,MAA4B,CAAA;AACrC,CAAC,CAAA"}
|
package/src/utils/util.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/// <reference lib="es2022" />
|
|
2
|
-
|
|
3
|
-
import type { Brand } from '@livestore/utils/effect'
|
|
4
|
-
|
|
5
|
-
export type ParamsObject = Record<string, SqlValue>
|
|
6
|
-
export type SqlValue = string | number | Uint8Array | null
|
|
7
|
-
|
|
8
|
-
export type Bindable = ReadonlyArray<SqlValue> | ParamsObject
|
|
9
|
-
|
|
10
|
-
type XXX_TODO_REMOVE_REDUDANCY = 1
|
|
11
|
-
|
|
12
|
-
export type PreparedBindValues = Brand.Branded<Bindable, 'PreparedBindValues'>
|
|
13
|
-
|
|
14
|
-
/** Prepare bind values to send to SQLite
|
|
15
|
-
/* Add $ to the beginning of keys; which we use as our interpolation syntax
|
|
16
|
-
/* We also strip out any params that aren't used in the statement,
|
|
17
|
-
/* because rusqlite doesn't allow unused named params
|
|
18
|
-
/* TODO: Search for unused params via proper parsing, not string search
|
|
19
|
-
**/
|
|
20
|
-
export const prepareBindValues = (values: Bindable, statement: string): PreparedBindValues => {
|
|
21
|
-
if (Array.isArray(values)) return values as any as PreparedBindValues
|
|
22
|
-
|
|
23
|
-
const result: ParamsObject = {}
|
|
24
|
-
for (const [key, value] of Object.entries(values)) {
|
|
25
|
-
if (statement.includes(key)) {
|
|
26
|
-
result[`$${key}`] = value
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return result as PreparedBindValues
|
|
31
|
-
}
|