@livestore/common 0.0.0-snapshot-c6330a60e7275b5927ecbbc1e80621925454d819 → 0.0.0-snapshot-94ba5e580b4c16c662c6b4fde4fc7c6313cacf6f
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/mutation.d.ts +1 -0
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +25 -0
- package/dist/mutation.js.map +1 -1
- package/dist/query-info.d.ts +4 -3
- package/dist/query-info.d.ts.map +1 -1
- package/dist/query-info.js.map +1 -1
- package/package.json +3 -3
- package/src/mutation.ts +25 -0
- package/src/query-info.ts +4 -3
package/dist/mutation.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export declare const getExecArgsFromMutation: ({ mutationDef, mutationEventDecod
|
|
|
10
10
|
writeTables: ReadonlySet<string> | undefined;
|
|
11
11
|
}>;
|
|
12
12
|
export declare const makeShouldExcludeMutationFromLog: (schema: LiveStoreSchema) => (mutationName: string, mutationEventDecoded: MutationEvent.Any) => boolean;
|
|
13
|
+
export declare const replaceSessionIdSymbol: (bindValues: Record<string, unknown>, sessionId: string) => void;
|
|
13
14
|
//# sourceMappingURL=mutation.d.ts.map
|
package/dist/mutation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGnD,eAAO,MAAM,uBAAuB,2CAGjC;IACD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAA;IAC5B,oBAAoB,EAAE,aAAa,CAAC,GAAG,CAAA;CACxC,KAAG,aAAa,CAAC;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC7C,CAiCA,CAAA;AAED,eAAO,MAAM,gCAAgC,WAAyB,eAAe,oBAO7D,MAAM,wBAAwB,aAAa,CAAC,GAAG,KAAG,OAQxE,CAAA;AAIF,eAAO,MAAM,sBAAsB,eAAgB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,MAAM,SAI5F,CAAA"}
|
package/dist/mutation.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { memoizeByRef, shouldNeverHappen } from '@livestore/utils';
|
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
|
3
|
+
import { SessionIdSymbol } from './adapter-types.js';
|
|
3
4
|
import { prepareBindValues } from './util.js';
|
|
4
5
|
export const getExecArgsFromMutation = ({ mutationDef, mutationEventDecoded, }) => {
|
|
5
6
|
let statementRes;
|
|
@@ -40,4 +41,28 @@ export const makeShouldExcludeMutationFromLog = memoizeByRef((schema) => {
|
|
|
40
41
|
return execArgsArr.some((_) => _.statementSql.includes('__livestore'));
|
|
41
42
|
};
|
|
42
43
|
});
|
|
44
|
+
// NOTE we should explore whether there is a more elegant solution
|
|
45
|
+
// e.g. by leveraging the schema to replace the sessionIdSymbol
|
|
46
|
+
export const replaceSessionIdSymbol = (bindValues, sessionId) => {
|
|
47
|
+
for (const key in bindValues) {
|
|
48
|
+
deepReplaceValue(bindValues[key], SessionIdSymbol, sessionId);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const deepReplaceValue = (input, searchValue, replaceValue) => {
|
|
52
|
+
if (Array.isArray(input)) {
|
|
53
|
+
for (const i in input) {
|
|
54
|
+
deepReplaceValue(input[i], searchValue, replaceValue);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (typeof input === 'object' && input !== null) {
|
|
58
|
+
for (const key in input) {
|
|
59
|
+
if (input[key] === searchValue) {
|
|
60
|
+
input[key] = replaceValue;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
deepReplaceValue(input[key], searchValue, replaceValue);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
};
|
|
43
68
|
//# sourceMappingURL=mutation.js.map
|
package/dist/mutation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"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"}
|
package/dist/query-info.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Schema } from '@livestore/utils/effect';
|
|
2
|
+
import type { SessionIdSymbol } from './adapter-types.js';
|
|
2
3
|
import type { DbSchema } from './schema/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Semantic information about a query with supported cases being:
|
|
@@ -13,18 +14,18 @@ export type QueryInfoNone = {
|
|
|
13
14
|
export type QueryInfoRow<TTableDef extends DbSchema.TableDef> = {
|
|
14
15
|
_tag: 'Row';
|
|
15
16
|
table: TTableDef;
|
|
16
|
-
id: string;
|
|
17
|
+
id: string | SessionIdSymbol;
|
|
17
18
|
};
|
|
18
19
|
export type QueryInfoCol<TTableDef extends DbSchema.TableDef, TColName extends keyof TTableDef['sqliteDef']['columns']> = {
|
|
19
20
|
_tag: 'Col';
|
|
20
21
|
table: TTableDef;
|
|
21
|
-
id: string;
|
|
22
|
+
id: string | SessionIdSymbol;
|
|
22
23
|
column: TColName;
|
|
23
24
|
};
|
|
24
25
|
export type QueryInfoColJsonValue<TTableDef extends DbSchema.TableDef, TColName extends GetJsonColumn<TTableDef>> = {
|
|
25
26
|
_tag: 'ColJsonValue';
|
|
26
27
|
table: TTableDef;
|
|
27
|
-
id: string;
|
|
28
|
+
id: string | SessionIdSymbol;
|
|
28
29
|
column: TColName;
|
|
29
30
|
/**
|
|
30
31
|
* example: `$.tabs[3].items[2]` (`$` referring to the column value)
|
package/dist/query-info.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IACzE,aAAa,GACb,YAAY,CAAC,SAAS,CAAC,GACvB,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IACzE,aAAa,GACb,YAAY,CAAC,SAAS,CAAC,GACvB,qBAAqB,CAAC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,GAC1D,YAAY,CAAC,SAAS,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAEpE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC9D,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,QAAQ,CAAC,QAAQ,EACnC,QAAQ,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IACtD;IACF,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5B,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,EAAE,QAAQ,SAAS,aAAa,CAAC,SAAS,CAAC,IAAI;IAClH,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,GAAG,eAAe,CAAA;IAC5B,MAAM,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,MAAM;KAC7D,OAAO,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,SAAS,MAAM,GAC1H,OAAO,GACP,KAAK,GAAG,EAAE;CACf,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,SAAS,IAAI,UAAU,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC7F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAC9D,UAAU,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAC/F,UAAU,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd,KAAK,CAAA"}
|
package/dist/query-info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";AA8DA,4EAA4E;AAC5E,2BAA2B;AAC3B,2CAA2C;AAC3C,8BAA8B;AAC9B,0EAA0E;AAC1E,uCAAuC;AACvC,MAAM;AAEN,qDAAqD;AACrD,4BAA4B;AAE5B,iDAAiD;AACjD,sCAAsC;AACtC,+CAA+C;AAE/C,6FAA6F;AAE7F,kDAAkD;AAClD,kFAAkF;AAClF,iDAAiD;AACjD,sEAAsE;AACtE,iBAAiB;AACjB,sEAAsE;AACtE,UAAU;AACV,6CAA6C;AAC7C,4CAA4C;AAC5C,6BAA6B;AAC7B,4GAA4G;AAC5G,oFAAoF;AACpF,yDAAyD;AACzD,eAAe;AACf,mCAAmC;AACnC,QAAQ;AACR,SAAS;AAET,sGAAsG;AAEtG,6CAA6C;AAC7C,mFAAmF;AACnF,0EAA0E;AAE1E,4DAA4D;AAC5D,IAAI"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@livestore/common",
|
|
3
|
-
"version": "0.0.0-snapshot-
|
|
3
|
+
"version": "0.0.0-snapshot-94ba5e580b4c16c662c6b4fde4fc7c6313cacf6f",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
"graphology": "0.26.0-alpha1",
|
|
47
47
|
"graphology-dag": "0.4.1",
|
|
48
48
|
"graphology-types": "0.24.7",
|
|
49
|
-
"@livestore/utils": "0.0.0-snapshot-
|
|
50
|
-
"@livestore/db-schema": "0.0.0-snapshot-
|
|
49
|
+
"@livestore/utils": "0.0.0-snapshot-94ba5e580b4c16c662c6b4fde4fc7c6313cacf6f",
|
|
50
|
+
"@livestore/db-schema": "0.0.0-snapshot-94ba5e580b4c16c662c6b4fde4fc7c6313cacf6f"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"vitest": "^2.1.4"
|
package/src/mutation.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { memoizeByRef, shouldNeverHappen } from '@livestore/utils'
|
|
2
2
|
import { Schema } from '@livestore/utils/effect'
|
|
3
3
|
|
|
4
|
+
import { SessionIdSymbol } from './adapter-types.js'
|
|
4
5
|
import type { LiveStoreSchema } from './schema/index.js'
|
|
5
6
|
import type { MutationDef, MutationEvent } from './schema/mutations.js'
|
|
6
7
|
import type { PreparedBindValues } from './util.js'
|
|
@@ -67,3 +68,27 @@ export const makeShouldExcludeMutationFromLog = memoizeByRef((schema: LiveStoreS
|
|
|
67
68
|
return execArgsArr.some((_) => _.statementSql.includes('__livestore'))
|
|
68
69
|
}
|
|
69
70
|
})
|
|
71
|
+
|
|
72
|
+
// NOTE we should explore whether there is a more elegant solution
|
|
73
|
+
// e.g. by leveraging the schema to replace the sessionIdSymbol
|
|
74
|
+
export const replaceSessionIdSymbol = (bindValues: Record<string, unknown>, sessionId: string) => {
|
|
75
|
+
for (const key in bindValues) {
|
|
76
|
+
deepReplaceValue(bindValues[key], SessionIdSymbol, sessionId)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const deepReplaceValue = <S, R>(input: any, searchValue: S, replaceValue: R): void => {
|
|
81
|
+
if (Array.isArray(input)) {
|
|
82
|
+
for (const i in input) {
|
|
83
|
+
deepReplaceValue(input[i], searchValue, replaceValue)
|
|
84
|
+
}
|
|
85
|
+
} else if (typeof input === 'object' && input !== null) {
|
|
86
|
+
for (const key in input) {
|
|
87
|
+
if (input[key] === searchValue) {
|
|
88
|
+
input[key] = replaceValue
|
|
89
|
+
} else {
|
|
90
|
+
deepReplaceValue(input[key], searchValue, replaceValue)
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
package/src/query-info.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Schema } from '@livestore/utils/effect'
|
|
2
2
|
|
|
3
|
+
import type { SessionIdSymbol } from './adapter-types.js'
|
|
3
4
|
import type { DbSchema } from './schema/index.js'
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -21,7 +22,7 @@ export type QueryInfoNone = {
|
|
|
21
22
|
export type QueryInfoRow<TTableDef extends DbSchema.TableDef> = {
|
|
22
23
|
_tag: 'Row'
|
|
23
24
|
table: TTableDef
|
|
24
|
-
id: string
|
|
25
|
+
id: string | SessionIdSymbol
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
export type QueryInfoCol<
|
|
@@ -30,14 +31,14 @@ export type QueryInfoCol<
|
|
|
30
31
|
> = {
|
|
31
32
|
_tag: 'Col'
|
|
32
33
|
table: TTableDef
|
|
33
|
-
id: string
|
|
34
|
+
id: string | SessionIdSymbol
|
|
34
35
|
column: TColName
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
export type QueryInfoColJsonValue<TTableDef extends DbSchema.TableDef, TColName extends GetJsonColumn<TTableDef>> = {
|
|
38
39
|
_tag: 'ColJsonValue'
|
|
39
40
|
table: TTableDef
|
|
40
|
-
id: string
|
|
41
|
+
id: string | SessionIdSymbol
|
|
41
42
|
column: TColName
|
|
42
43
|
/**
|
|
43
44
|
* example: `$.tabs[3].items[2]` (`$` referring to the column value)
|