@livestore/livestore 0.0.41-dev.2 → 0.0.42-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.
Files changed (146) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{inMemoryDatabase.d.ts → MainDatabaseWrapper.d.ts} +11 -18
  3. package/dist/MainDatabaseWrapper.d.ts.map +1 -0
  4. package/dist/{inMemoryDatabase.js → MainDatabaseWrapper.js} +26 -72
  5. package/dist/MainDatabaseWrapper.js.map +1 -0
  6. package/dist/__tests__/react/fixture.d.ts +41 -40
  7. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  8. package/dist/__tests__/react/fixture.js +2 -8
  9. package/dist/__tests__/react/fixture.js.map +1 -1
  10. package/dist/cud.d.ts +9 -9
  11. package/dist/cud.d.ts.map +1 -1
  12. package/dist/cud.js +7 -8
  13. package/dist/cud.js.map +1 -1
  14. package/dist/effect/LiveStore.d.ts +10 -10
  15. package/dist/effect/LiveStore.d.ts.map +1 -1
  16. package/dist/effect/LiveStore.js +2 -11
  17. package/dist/effect/LiveStore.js.map +1 -1
  18. package/dist/global-state.d.ts +2 -2
  19. package/dist/global-state.d.ts.map +1 -1
  20. package/dist/global-state.js.map +1 -1
  21. package/dist/index.d.ts +6 -6
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +4 -3
  24. package/dist/index.js.map +1 -1
  25. package/dist/migrations.d.ts +5 -5
  26. package/dist/migrations.d.ts.map +1 -1
  27. package/dist/migrations.js +37 -21
  28. package/dist/migrations.js.map +1 -1
  29. package/dist/query-info.d.ts +8 -9
  30. package/dist/query-info.d.ts.map +1 -1
  31. package/dist/query-info.js +1 -1
  32. package/dist/query-info.js.map +1 -1
  33. package/dist/react/LiveStoreProvider.d.ts +7 -7
  34. package/dist/react/LiveStoreProvider.d.ts.map +1 -1
  35. package/dist/react/LiveStoreProvider.js +11 -19
  36. package/dist/react/LiveStoreProvider.js.map +1 -1
  37. package/dist/react/useRow.d.ts +6 -6
  38. package/dist/react/useRow.d.ts.map +1 -1
  39. package/dist/react/useRow.js +2 -2
  40. package/dist/react/useRow.js.map +1 -1
  41. package/dist/reactiveQueries/sql.js +2 -2
  42. package/dist/reactiveQueries/sql.js.map +1 -1
  43. package/dist/reactiveQueries/sql.test.js +12 -31
  44. package/dist/reactiveQueries/sql.test.js.map +1 -1
  45. package/dist/row-query.d.ts +6 -6
  46. package/dist/row-query.d.ts.map +1 -1
  47. package/dist/row-query.js +9 -12
  48. package/dist/row-query.js.map +1 -1
  49. package/dist/store.d.ts +18 -18
  50. package/dist/store.d.ts.map +1 -1
  51. package/dist/store.js +80 -86
  52. package/dist/store.js.map +1 -1
  53. package/dist/utils/bounded-collections.d.ts +1 -1
  54. package/dist/utils/bounded-collections.d.ts.map +1 -1
  55. package/dist/utils/bounded-collections.js +2 -1
  56. package/dist/utils/bounded-collections.js.map +1 -1
  57. package/dist/utils/util.d.ts +0 -16
  58. package/dist/utils/util.d.ts.map +1 -1
  59. package/dist/utils/util.js +0 -38
  60. package/dist/utils/util.js.map +1 -1
  61. package/package.json +8 -44
  62. package/src/{inMemoryDatabase.ts → MainDatabaseWrapper.ts} +40 -94
  63. package/src/__tests__/react/fixture.tsx +3 -9
  64. package/src/cud.ts +17 -16
  65. package/src/effect/LiveStore.ts +12 -24
  66. package/src/global-state.ts +3 -2
  67. package/src/index.ts +7 -23
  68. package/src/migrations.ts +51 -34
  69. package/src/query-info.ts +10 -9
  70. package/src/react/LiveStoreProvider.tsx +19 -27
  71. package/src/react/useRow.ts +24 -12
  72. package/src/reactiveQueries/sql.test.ts +12 -31
  73. package/src/reactiveQueries/sql.ts +2 -2
  74. package/src/row-query.ts +32 -29
  75. package/src/store.ts +98 -103
  76. package/src/utils/bounded-collections.ts +3 -2
  77. package/src/utils/util.ts +0 -44
  78. package/tsconfig.json +1 -1
  79. package/vitest.config.js +4 -0
  80. package/dist/inMemoryDatabase.d.ts.map +0 -1
  81. package/dist/inMemoryDatabase.js.map +0 -1
  82. package/dist/schema/index.d.ts +0 -42
  83. package/dist/schema/index.d.ts.map +0 -1
  84. package/dist/schema/index.js +0 -42
  85. package/dist/schema/index.js.map +0 -1
  86. package/dist/schema/mutations.d.ts +0 -81
  87. package/dist/schema/mutations.d.ts.map +0 -1
  88. package/dist/schema/mutations.js +0 -29
  89. package/dist/schema/mutations.js.map +0 -1
  90. package/dist/schema/parse-utils.d.ts +0 -6
  91. package/dist/schema/parse-utils.d.ts.map +0 -1
  92. package/dist/schema/parse-utils.js +0 -22
  93. package/dist/schema/parse-utils.js.map +0 -1
  94. package/dist/schema/system-tables.d.ts +0 -76
  95. package/dist/schema/system-tables.d.ts.map +0 -1
  96. package/dist/schema/system-tables.js +0 -11
  97. package/dist/schema/system-tables.js.map +0 -1
  98. package/dist/schema/table-def.d.ts +0 -100
  99. package/dist/schema/table-def.d.ts.map +0 -1
  100. package/dist/schema/table-def.js +0 -70
  101. package/dist/schema/table-def.js.map +0 -1
  102. package/dist/storage/in-memory/index.d.ts +0 -19
  103. package/dist/storage/in-memory/index.d.ts.map +0 -1
  104. package/dist/storage/in-memory/index.js +0 -16
  105. package/dist/storage/in-memory/index.js.map +0 -1
  106. package/dist/storage/index.d.ts +0 -18
  107. package/dist/storage/index.d.ts.map +0 -1
  108. package/dist/storage/index.js +0 -9
  109. package/dist/storage/index.js.map +0 -1
  110. package/dist/storage/tauri/index.d.ts +0 -23
  111. package/dist/storage/tauri/index.d.ts.map +0 -1
  112. package/dist/storage/tauri/index.js +0 -46
  113. package/dist/storage/tauri/index.js.map +0 -1
  114. package/dist/storage/utils/idb.d.ts +0 -11
  115. package/dist/storage/utils/idb.d.ts.map +0 -1
  116. package/dist/storage/utils/idb.js +0 -71
  117. package/dist/storage/utils/idb.js.map +0 -1
  118. package/dist/storage/web-worker/common.d.ts +0 -11
  119. package/dist/storage/web-worker/common.d.ts.map +0 -1
  120. package/dist/storage/web-worker/common.js +0 -2
  121. package/dist/storage/web-worker/common.js.map +0 -1
  122. package/dist/storage/web-worker/index.d.ts +0 -34
  123. package/dist/storage/web-worker/index.d.ts.map +0 -1
  124. package/dist/storage/web-worker/index.js +0 -134
  125. package/dist/storage/web-worker/index.js.map +0 -1
  126. package/dist/storage/web-worker/make-worker.d.ts +0 -20
  127. package/dist/storage/web-worker/make-worker.d.ts.map +0 -1
  128. package/dist/storage/web-worker/make-worker.js +0 -155
  129. package/dist/storage/web-worker/make-worker.js.map +0 -1
  130. package/dist/storage/web-worker/vite-dev-polyfill.d.ts +0 -2
  131. package/dist/storage/web-worker/vite-dev-polyfill.d.ts.map +0 -1
  132. package/dist/storage/web-worker/vite-dev-polyfill.js +0 -35
  133. package/dist/storage/web-worker/vite-dev-polyfill.js.map +0 -1
  134. package/src/schema/index.ts +0 -100
  135. package/src/schema/mutations.ts +0 -128
  136. package/src/schema/parse-utils.ts +0 -42
  137. package/src/schema/system-tables.ts +0 -21
  138. package/src/schema/table-def.ts +0 -270
  139. package/src/storage/in-memory/index.ts +0 -28
  140. package/src/storage/index.ts +0 -36
  141. package/src/storage/tauri/index.ts +0 -66
  142. package/src/storage/utils/idb.ts +0 -85
  143. package/src/storage/web-worker/common.ts +0 -6
  144. package/src/storage/web-worker/index.ts +0 -185
  145. package/src/storage/web-worker/make-worker.ts +0 -214
  146. package/src/storage/web-worker/vite-dev-polyfill.ts +0 -33
package/dist/cud.d.ts CHANGED
@@ -1,24 +1,24 @@
1
+ import type { RawSqlMutationEvent } from '@livestore/common/schema';
2
+ import { DbSchema } from '@livestore/common/schema';
1
3
  import type { SqliteDsl } from 'effect-db-schema';
2
4
  import type { RowResult } from './row-query.js';
3
- import { type RawSqlMutationEvent } from './schema/index.js';
4
- import { type TableDef } from './schema/table-def.js';
5
5
  import { type GetValForKey } from './utils/util.js';
6
- export declare const makeCudMutations: <TTableDef extends TableDef>(tables: Iterable<TTableDef> | Record<string, TTableDef>) => CudMutations<TTableDef>;
7
- export type UpdateMutation<TTableDef extends TableDef> = (args: {
6
+ export declare const makeCudMutations: <TTableDef extends DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, DbSchema.TableOptions, import("@effect/schema/Schema").Schema<any, any, never>>>(tables: Iterable<TTableDef> | Record<string, TTableDef>) => CudMutations<TTableDef>;
7
+ export type UpdateMutation<TTableDef extends DbSchema.TableDef> = (args: {
8
8
  where: Partial<RowResult<TTableDef>>;
9
9
  values: Partial<RowResult<TTableDef>>;
10
10
  }) => RawSqlMutationEvent;
11
- export type RowInsert<TTableDef extends TableDef> = TTableDef['isSingleColumn'] extends true ? GetValForKey<SqliteDsl.FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>, 'value'> : SqliteDsl.FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>;
12
- export type InsertMutation<TTableDef extends TableDef> = (values: RowInsert<TTableDef>) => RawSqlMutationEvent;
13
- export type DeleteMutation<TTableDef extends TableDef> = (args: {
11
+ export type RowInsert<TTableDef extends DbSchema.TableDef> = TTableDef['isSingleColumn'] extends true ? GetValForKey<SqliteDsl.FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>, 'value'> : SqliteDsl.FromColumns.InsertRowDecoded<TTableDef['sqliteDef']['columns']>;
12
+ export type InsertMutation<TTableDef extends DbSchema.TableDef> = (values: RowInsert<TTableDef>) => RawSqlMutationEvent;
13
+ export type DeleteMutation<TTableDef extends DbSchema.TableDef> = (args: {
14
14
  where: Partial<RowResult<TTableDef>>;
15
15
  }) => RawSqlMutationEvent;
16
- export type CudMutation<TTableDef extends TableDef> = {
16
+ export type CudMutation<TTableDef extends DbSchema.TableDef> = {
17
17
  insert: InsertMutation<TTableDef>;
18
18
  update: UpdateMutation<TTableDef>;
19
19
  delete: DeleteMutation<TTableDef>;
20
20
  };
21
- export type CudMutations<TTableDef extends TableDef> = {
21
+ export type CudMutations<TTableDef extends DbSchema.TableDef> = {
22
22
  [TTableName in TTableDef['sqliteDef']['name']]: CudMutation<Extract<TTableDef, {
23
23
  sqliteDef: {
24
24
  name: TTableName;
package/dist/cud.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cud.d.ts","sourceRoot":"","sources":["../src/cud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,iBAAiB,CAAA;AAE/D,eAAO,MAAM,gBAAgB,kHAa5B,CAAA;AAyCD,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,IAAI,CAAC,IAAI,EAAE;IAE9D,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IACpC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;CACtC,KAAK,mBAAmB,CAAA;AAEzB,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAC,SAAS,IAAI,GACxF,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,GAChG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAE7E,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,mBAAmB,CAAA;AAE9G,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,IAAI,CAAC,IAAI,EAAE;IAC9D,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;CACrC,KAAK,mBAAmB,CAAA;AAEzB,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,IAAI;IACpD,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,IAAI;KACpD,UAAU,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;QAAE,SAAS,EAAE;YAAE,IAAI,EAAE,UAAU,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACrH,CAAA"}
1
+ {"version":3,"file":"cud.d.ts","sourceRoot":"","sources":["../src/cud.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAkB,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEnD,eAAO,MAAM,gBAAgB,+PAa5B,CAAA;AAyCD,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE;IAEvE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IACpC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;CACtC,KAAK,mBAAmB,CAAA;AAEzB,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAC,SAAS,IAAI,GACjG,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,GAChG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;AAE7E,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,mBAAmB,CAAA;AAEvH,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE;IACvE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;CACrC,KAAK,mBAAmB,CAAA;AAEzB,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;IAC7D,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACjC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,CAAC,QAAQ,IAAI;KAC7D,UAAU,IAAI,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE;QAAE,SAAS,EAAE;YAAE,IAAI,EAAE,UAAU,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACrH,CAAA"}
package/dist/cud.js CHANGED
@@ -1,7 +1,6 @@
1
- import * as SqlQueries from '@livestore/sql-queries';
2
- import { rawSqlMutation } from './schema/index.js';
3
- import { getDefaultValuesEncoded } from './schema/table-def.js';
4
- import { isIterable } from './utils/util.js';
1
+ import { deleteRows, insertRow, updateRows } from '@livestore/common';
2
+ import { DbSchema, rawSqlMutation } from '@livestore/common/schema';
3
+ import { isIterable } from '@livestore/utils';
5
4
  export const makeCudMutations = (tables) => {
6
5
  const cudMutationRecord = {};
7
6
  const tables_ = isIterable(tables) ? tables : Object.values(tables);
@@ -16,8 +15,8 @@ const cudMutationsForTable = (tableDef) => {
16
15
  const writeTables = new Set([table.name]);
17
16
  const api = {
18
17
  insert: (values_) => {
19
- const values = getDefaultValuesEncoded(tableDef, values_);
20
- const [sql, bindValues] = SqlQueries.insertRow({
18
+ const values = DbSchema.getDefaultValuesDecoded(tableDef, values_);
19
+ const [sql, bindValues] = insertRow({
21
20
  tableName: table.name,
22
21
  columns: table.columns,
23
22
  options: { orReplace: false },
@@ -26,7 +25,7 @@ const cudMutationsForTable = (tableDef) => {
26
25
  return rawSqlMutation({ sql, bindValues, writeTables });
27
26
  },
28
27
  update: ({ where, values }) => {
29
- const [sql, bindValues] = SqlQueries.updateRows({
28
+ const [sql, bindValues] = updateRows({
30
29
  tableName: table.name,
31
30
  columns: table.columns,
32
31
  where: where,
@@ -35,7 +34,7 @@ const cudMutationsForTable = (tableDef) => {
35
34
  return rawSqlMutation({ sql, bindValues, writeTables });
36
35
  },
37
36
  delete: ({ where }) => {
38
- const [sql, bindValues] = SqlQueries.deleteRows({
37
+ const [sql, bindValues] = deleteRows({
39
38
  tableName: table.name,
40
39
  columns: table.columns,
41
40
  where: where,
package/dist/cud.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cud.js","sourceRoot":"","sources":["../src/cud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AAIpD,OAAO,EAAE,cAAc,EAA4B,MAAM,mBAAmB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAiB,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAqB,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAuD,EAC9B,EAAE;IAC3B,MAAM,iBAAiB,GAA4B,EAAS,CAAA;IAE5D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEnE,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QAC/D,iBAAiB,CAAC,SAAS,CAAC,GAAG,WAAkB,CAAA;IACnD,CAAC;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,QAAmB,EACuC,EAAE;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAA;IAChC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG;QACV,MAAM,EAAE,CAAC,OAAY,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAEzD,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC;gBAC7C,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC7B,MAAM,EAAE,MAAa;aACtB,CAAC,CAAA;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;gBAC9C,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,MAAM;aACrB,CAAC,CAAA;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC;gBAC9C,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK;aACb,CAAC,CAAA;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;KAC+B,CAAA;IAElC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
1
+ {"version":3,"file":"cud.js","sourceRoot":"","sources":["../src/cud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAErE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAM7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAuD,EAC9B,EAAE;IAC3B,MAAM,iBAAiB,GAA4B,EAAS,CAAA;IAE5D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEnE,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC/B,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QAC/D,iBAAiB,CAAC,SAAS,CAAC,GAAG,WAAkB,CAAA;IACnD,CAAC;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,oBAAoB,GAAG,CAC3B,QAAmB,EACuC,EAAE;IAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAA;IAChC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,MAAM,GAAG,GAAG;QACV,MAAM,EAAE,CAAC,OAAY,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAElE,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;gBAClC,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC7B,MAAM,EAAE,MAAa;aACtB,CAAC,CAAA;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;gBACnC,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK;gBACZ,YAAY,EAAE,MAAM;aACrB,CAAC,CAAA;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC;gBACnC,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,KAAK;aACb,CAAC,CAAA;YACF,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;QACzD,CAAC;KAC+B,CAAA;IAElC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;AACvC,CAAC,CAAA"}
@@ -1,37 +1,37 @@
1
+ import type { DatabaseFactory, MainDatabase } from '@livestore/common';
2
+ import type { LiveStoreSchema } from '@livestore/common/schema';
1
3
  import type { Scope } from '@livestore/utils/effect';
2
4
  import { Context, Deferred, Effect, Layer } from '@livestore/utils/effect';
3
5
  import * as otel from '@opentelemetry/api';
4
6
  import type { GraphQLSchema } from 'graphql';
5
- import type { InMemoryDatabase } from '../inMemoryDatabase.js';
6
7
  import type { LiveQuery } from '../reactiveQueries/base-class.js';
7
- import type { LiveStoreSchema } from '../schema/index.js';
8
- import type { StorageInit } from '../storage/index.js';
9
- import type { BaseGraphQLContext, GraphQLOptions, Store } from '../store.js';
8
+ import type { BaseGraphQLContext, BootDb, GraphQLOptions, Store } from '../store.js';
10
9
  export type LiveStoreContext = {
11
10
  store: Store;
12
11
  };
13
12
  export type QueryDefinition = <TResult>(store: Store) => LiveQuery<TResult>;
14
13
  export type LiveStoreCreateStoreOptions<GraphQLContext extends BaseGraphQLContext> = {
15
14
  schema: LiveStoreSchema;
16
- loadStorage: () => StorageInit | Promise<StorageInit>;
17
15
  graphQLOptions?: GraphQLOptions<GraphQLContext>;
18
16
  otelTracer?: otel.Tracer;
19
17
  otelRootSpanContext?: otel.Context;
20
- boot?: (db: InMemoryDatabase, parentSpan: otel.Span) => unknown | Promise<unknown>;
18
+ boot?: (db: BootDb, parentSpan: otel.Span) => unknown | Promise<unknown>;
19
+ makeDb: DatabaseFactory;
20
+ batchUpdates?: (run: () => void) => void;
21
21
  };
22
22
  export declare const LiveStoreContext: Context.Tag<LiveStoreContext, LiveStoreContext>;
23
23
  export type DeferredStoreContext = Deferred.Deferred<LiveStoreContext>;
24
24
  export declare const DeferredStoreContext: Context.Tag<DeferredStoreContext, DeferredStoreContext>;
25
25
  export type LiveStoreContextProps<GraphQLContext extends BaseGraphQLContext> = {
26
26
  schema: LiveStoreSchema;
27
- loadStorage: () => StorageInit | Promise<StorageInit>;
28
27
  graphQLOptions?: {
29
28
  schema: Effect.Effect<GraphQLSchema, never, otel.Tracer>;
30
- makeContext: (db: InMemoryDatabase) => GraphQLContext;
29
+ makeContext: (db: MainDatabase) => GraphQLContext;
31
30
  };
32
- boot?: (db: InMemoryDatabase) => Effect.Effect<void>;
31
+ boot?: (db: BootDb) => Effect.Effect<void>;
32
+ makeDb: DatabaseFactory;
33
33
  };
34
34
  export declare const LiveStoreContextLayer: <GraphQLContext extends BaseGraphQLContext>(props: LiveStoreContextProps<GraphQLContext>) => Layer.Layer<LiveStoreContext, never, otel.Tracer>;
35
35
  export declare const LiveStoreContextDeferred: Layer.Layer<DeferredStoreContext, never, never>;
36
- export declare const makeLiveStoreContext: <GraphQLContext extends BaseGraphQLContext>({ schema, loadStorage, graphQLOptions: graphQLOptions_, boot: boot_, }: LiveStoreContextProps<GraphQLContext>) => Effect.Effect<LiveStoreContext, never, DeferredStoreContext | Scope.Scope | otel.Tracer>;
36
+ export declare const makeLiveStoreContext: <GraphQLContext extends BaseGraphQLContext>({ schema, graphQLOptions: graphQLOptions_, boot: boot_, makeDb, }: LiveStoreContextProps<GraphQLContext>) => Effect.Effect<LiveStoreContext, never, DeferredStoreContext | Scope.Scope | otel.Tracer>;
37
37
  //# sourceMappingURL=LiveStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,MAAM,EAAE,KAAK,EAA6B,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAW5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;AAE3E,MAAM,MAAM,2BAA2B,CAAC,cAAc,SAAS,kBAAkB,IAAI;IACnF,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACrD,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;IAClC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACnF,CAAA;AAED,eAAO,MAAM,gBAAgB,iDAAgF,CAAA;AAE7G,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;AACtE,eAAO,MAAM,oBAAoB,yDAEhC,CAAA;AAID,MAAM,MAAM,qBAAqB,CAAC,cAAc,SAAS,kBAAkB,IAAI;IAC7E,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACrD,cAAc,CAAC,EAAE;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACxD,WAAW,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,cAAc,CAAA;KACtD,CAAA;IACD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACrD,CAAA;AAED,eAAO,MAAM,qBAAqB,+FAE/B,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,MAAM,CAIhD,CAAA;AAEH,eAAO,MAAM,wBAAwB,iDAAwE,CAAA;AAE7G,eAAO,MAAM,oBAAoB,gKAKU,aAAa,CACtD,gBAAgB,EAChB,KAAK,EACL,oBAAoB,GAAG,WAAW,GAAG,KAAK,MAAM,CAgD/C,CAAA"}
1
+ {"version":3,"file":"LiveStore.d.ts","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAY,MAAM,EAAE,KAAK,EAA6B,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIpF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,OAAO,CAAC,CAAA;AAE3E,MAAM,MAAM,2BAA2B,CAAC,cAAc,SAAS,kBAAkB,IAAI;IACnF,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;IAClC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,gBAAgB,iDAAgF,CAAA;AAE7G,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;AACtE,eAAO,MAAM,oBAAoB,yDAEhC,CAAA;AAID,MAAM,MAAM,qBAAqB,CAAC,cAAc,SAAS,kBAAkB,IAAI;IAC7E,MAAM,EAAE,eAAe,CAAA;IACvB,cAAc,CAAC,EAAE;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACxD,WAAW,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,cAAc,CAAA;KAClD,CAAA;IACD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,EAAE,eAAe,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,qBAAqB,+FAE/B,WAAW,CAAC,gBAAgB,EAAE,KAAK,EAAE,KAAK,MAAM,CAIhD,CAAA;AAEH,eAAO,MAAM,wBAAwB,iDAAwE,CAAA;AAE7G,eAAO,MAAM,oBAAoB,2JAKU,aAAa,CACtD,gBAAgB,EAChB,KAAK,EACL,oBAAoB,GAAG,WAAW,GAAG,KAAK,MAAM,CA4C/C,CAAA"}
@@ -1,18 +1,11 @@
1
1
  import { Context, Deferred, Duration, Effect, Layer, OtelTracer, pipe, Runtime } from '@livestore/utils/effect';
2
2
  import * as otel from '@opentelemetry/api';
3
- import initSqlite3Wasm from 'sqlite-esm';
4
3
  import { createStore } from '../store.js';
5
- // NOTE we're starting to initialize the sqlite wasm binary here (already before calling `createStore`),
6
- // so that it's ready when we need it
7
- const sqlite3Promise = initSqlite3Wasm({
8
- print: (message) => console.log(`[livestore sqlite] ${message}`),
9
- printErr: (message) => console.error(`[livestore sqlite] ${message}`),
10
- });
11
4
  export const LiveStoreContext = Context.GenericTag('@livestore/livestore/LiveStoreContext');
12
5
  export const DeferredStoreContext = Context.GenericTag('@livestore/livestore/DeferredStoreContext');
13
6
  export const LiveStoreContextLayer = (props) => Layer.scoped(LiveStoreContext, makeLiveStoreContext(props)).pipe(Layer.withSpan('LiveStore'), Layer.provide(LiveStoreContextDeferred));
14
7
  export const LiveStoreContextDeferred = Layer.effect(DeferredStoreContext, Deferred.make());
15
- export const makeLiveStoreContext = ({ schema, loadStorage, graphQLOptions: graphQLOptions_, boot: boot_, }) => pipe(Effect.gen(function* ($) {
8
+ export const makeLiveStoreContext = ({ schema, graphQLOptions: graphQLOptions_, boot: boot_, makeDb, }) => pipe(Effect.gen(function* ($) {
16
9
  const runtime = yield* $(Effect.runtime());
17
10
  const otelRootSpanContext = otel.context.active();
18
11
  const otelTracer = yield* $(OtelTracer.Tracer);
@@ -22,15 +15,13 @@ export const makeLiveStoreContext = ({ schema, loadStorage, graphQLOptions: grap
22
15
  const boot = boot_
23
16
  ? (db) => boot_(db).pipe(Effect.withSpan('boot'), Effect.tapCauseLogPretty, Runtime.runPromise(runtime))
24
17
  : undefined;
25
- const sqlite3 = yield* $(Effect.promise(() => sqlite3Promise));
26
18
  const store = yield* $(Effect.tryPromise(() => createStore({
27
19
  schema,
28
- loadStorage,
29
20
  graphQLOptions,
30
21
  otelTracer,
31
22
  otelRootSpanContext,
32
23
  boot,
33
- sqlite3,
24
+ makeDb,
34
25
  })), Effect.acquireRelease((store) => Effect.sync(() => store.destroy())));
35
26
  window.__debugLiveStore = store;
36
27
  return { store };
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStore.js","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveStore.js","sourceRoot":"","sources":["../../src/effect/LiveStore.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@
10
10
  * explicitly pass instances of state below into the LiveStore constructors.
11
11
  *
12
12
  */
13
- import type { TableDef } from './schema/table-def.js';
13
+ import type { DbSchema } from '@livestore/common/schema';
14
14
  export declare const globalDbGraph: import("./reactiveQueries/base-class.js").DbGraph;
15
- export declare const dynamicallyRegisteredTables: Map<string, TableDef>;
15
+ export declare const dynamicallyRegisteredTables: Map<string, DbSchema.TableDef>;
16
16
  //# sourceMappingURL=global-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-state.d.ts","sourceRoot":"","sources":["../src/global-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD,eAAO,MAAM,aAAa,mDAAgB,CAAA;AAE1C,eAAO,MAAM,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAa,CAAA"}
1
+ {"version":3,"file":"global-state.d.ts","sourceRoot":"","sources":["../src/global-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAIxD,eAAO,MAAM,aAAa,mDAAgB,CAAA;AAE1C,eAAO,MAAM,2BAA2B,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"global-state.js","sourceRoot":"","sources":["../src/global-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAG7D,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,2BAA2B,GAA0B,IAAI,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"global-state.js","sourceRoot":"","sources":["../src/global-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,EAAE,CAAA;AAE1C,MAAM,CAAC,MAAM,2BAA2B,GAAmC,IAAI,GAAG,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  export { Store, createStore } from './store.js';
2
- export type { BaseGraphQLContext, QueryDebugInfo, RefreshReason } from './store.js';
2
+ export type { BaseGraphQLContext, QueryDebugInfo, RefreshReason, BootDb } from './store.js';
3
3
  export type { QueryDefinition, LiveStoreCreateStoreOptions, LiveStoreContext } from './effect/LiveStore.js';
4
- export { InMemoryDatabase, type DebugInfo, emptyDebugInfo } from './inMemoryDatabase.js';
5
- export type { Storage, StorageType, StorageInit } from './storage/index.js';
4
+ export { MainDatabaseWrapper as InMemoryDatabase, type DebugInfo, emptyDebugInfo } from './MainDatabaseWrapper.js';
6
5
  export type { GetAtom, AtomDebugInfo, RefreshDebugInfo, SerializedAtom, Atom, Node, Ref, Effect } from './reactive.js';
7
6
  export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js';
8
7
  export { LiveStoreSQLQuery, querySQL, type MapRows } from './reactiveQueries/sql.js';
@@ -11,9 +10,10 @@ export { type GetAtomResult, type DbGraph, makeDbGraph, type LiveQuery } from '.
11
10
  export { globalDbGraph, dynamicallyRegisteredTables } from './global-state.js';
12
11
  export { type RowResult, type RowResultEncoded, rowQuery, deriveColQuery } from './row-query.js';
13
12
  export * from './cud.js';
14
- export { makeSchema, DbSchema, ParseUtils, defineMutation, rawSqlMutation, makeMutationEventSchema, makeMutationDefRecord, } from './schema/index.js';
15
- export type { LiveStoreSchema, InputSchema, SchemaMetaRow, MutationDef, MutationEvent, MutationDefMap, } from './schema/index.js';
13
+ export * from '@livestore/common/schema';
14
+ export { sql } from '@livestore/common';
16
15
  export { SqliteAst, SqliteDsl } from 'effect-db-schema';
17
- export { prepareBindValues, sql, type Bindable, type PreparedBindValues } from './utils/util.js';
16
+ export { prepareBindValues, type Bindable, type PreparedBindValues } from './utils/util.js';
18
17
  export { isEqual } from 'lodash-es';
18
+ export type { DatabaseImpl, DatabaseFactory, PreparedStatement } from '@livestore/common';
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEnF,YAAY,EAAE,eAAe,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE3G,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAExF,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE3E,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE/G,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,UAAU,CAAA;AAExB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE3F,YAAY,EAAE,eAAe,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE3G,OAAO,EAAE,mBAAmB,IAAI,gBAAgB,EAAE,KAAK,SAAS,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAElH,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,OAAO,EAAE,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAE/G,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,UAAU,CAAA;AAExB,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Store, createStore } from './store.js';
2
- export { InMemoryDatabase, emptyDebugInfo } from './inMemoryDatabase.js';
2
+ export { MainDatabaseWrapper as InMemoryDatabase, emptyDebugInfo } from './MainDatabaseWrapper.js';
3
3
  export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js';
4
4
  export { LiveStoreSQLQuery, querySQL } from './reactiveQueries/sql.js';
5
5
  export { LiveStoreGraphQLQuery, queryGraphQL } from './reactiveQueries/graphql.js';
@@ -7,8 +7,9 @@ export { makeDbGraph } from './reactiveQueries/base-class.js';
7
7
  export { globalDbGraph, dynamicallyRegisteredTables } from './global-state.js';
8
8
  export { rowQuery, deriveColQuery } from './row-query.js';
9
9
  export * from './cud.js';
10
- export { makeSchema, DbSchema, ParseUtils, defineMutation, rawSqlMutation, makeMutationEventSchema, makeMutationDefRecord, } from './schema/index.js';
10
+ export * from '@livestore/common/schema';
11
+ export { sql } from '@livestore/common';
11
12
  export { SqliteAst, SqliteDsl } from 'effect-db-schema';
12
- export { prepareBindValues, sql } from './utils/util.js';
13
+ export { prepareBindValues } from './utils/util.js';
13
14
  export { isEqual } from 'lodash-es';
14
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK/C,OAAO,EAAE,gBAAgB,EAAkB,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAKxF,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAgB,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAoC,WAAW,EAAkB,MAAM,iCAAiC,CAAA;AAE/G,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,EAAyC,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,UAAU,CAAA;AAExB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAA;AAW1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAA0C,MAAM,iBAAiB,CAAA;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAK/C,OAAO,EAAE,mBAAmB,IAAI,gBAAgB,EAAkB,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAGlH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAgB,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAoC,WAAW,EAAkB,MAAM,iCAAiC,CAAA;AAE/G,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,EAAyC,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,UAAU,CAAA;AAExB,cAAc,0BAA0B,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEvD,OAAO,EAAE,iBAAiB,EAA0C,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
@@ -1,14 +1,14 @@
1
+ import { type DatabaseImpl } from '@livestore/common';
2
+ import type { LiveStoreSchema } from '@livestore/common/schema';
1
3
  import type * as otel from '@opentelemetry/api';
2
4
  import { SqliteAst } from 'effect-db-schema';
3
- import type { InMemoryDatabase } from './index.js';
4
- import type { LiveStoreSchema } from './schema/index.js';
5
5
  export declare const migrateDb: ({ db, otelContext, schema, }: {
6
- db: InMemoryDatabase;
6
+ db: DatabaseImpl;
7
7
  otelContext: otel.Context;
8
8
  schema: LiveStoreSchema;
9
9
  }) => void;
10
- export declare const migrateTable: ({ db, tableAst, otelContext, schemaHash, }: {
11
- db: InMemoryDatabase;
10
+ export declare const migrateTable: ({ db, tableAst, schemaHash, }: {
11
+ db: DatabaseImpl;
12
12
  tableAst: SqliteAst.Table;
13
13
  otelContext: otel.Context;
14
14
  schemaHash: number;
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAa,MAAM,kBAAkB,CAAA;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAA;AAQvE,eAAO,MAAM,SAAS;QAKhB,gBAAgB;iBACP,KAAK,OAAO;YACjB,eAAe;UA0CxB,CAAA;AAED,eAAO,MAAM,YAAY;QAMnB,gBAAgB;cACV,UAAU,KAAK;iBACZ,KAAK,OAAO;gBACb,MAAM;UAwBnB,CAAA"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAO,MAAM,mBAAmB,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,0BAA0B,CAAA;AAG9E,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAa,MAAM,kBAAkB,CAAA;AAoCvD,eAAO,MAAM,SAAS;QAKhB,YAAY;iBACH,KAAK,OAAO;YACjB,eAAe;UAiCxB,CAAA;AAED,eAAO,MAAM,YAAY;QAMnB,YAAY;cACN,UAAU,KAAK;iBACZ,KAAK,OAAO;gBACb,MAAM;UAwBnB,CAAA"}
@@ -1,54 +1,70 @@
1
+ import { sql } from '@livestore/common';
2
+ import { SCHEMA_META_TABLE, systemTables } from '@livestore/common/schema';
1
3
  import { Schema as EffectSchema } from '@livestore/utils/effect';
2
4
  import { SqliteAst, SqliteDsl } from 'effect-db-schema';
3
5
  import { memoize } from 'lodash-es';
4
- import { dynamicallyRegisteredTables } from './global-state.js';
5
- import { SCHEMA_META_TABLE, systemTables } from './schema/index.js';
6
- import { sql } from './utils/util.js';
6
+ import { prepareBindValues } from './utils/util.js';
7
7
  const getMemoizedTimestamp = memoize(() => new Date().toISOString());
8
+ // TODO bring back statement caching
9
+ // const cachedStmts = new Map<string, PreparedStatement>()
10
+ const dbExecute = (db, queryStr, bindValues) => {
11
+ // let stmt = cachedStmts.get(queryStr)
12
+ // if (!stmt) {
13
+ const stmt = db.mainDb.prepare(queryStr);
14
+ // cachedStmts.set(queryStr, stmt)
15
+ // }
16
+ const preparedBindValues = bindValues ? prepareBindValues(bindValues, queryStr) : undefined;
17
+ stmt.execute(preparedBindValues);
18
+ void db.storageDb.execute(queryStr, preparedBindValues, undefined);
19
+ };
20
+ const dbSelect = (db, queryStr, bindValues) => {
21
+ // let stmt = cachedStmts.get(queryStr)
22
+ // if (!stmt) {
23
+ const stmt = db.mainDb.prepare(queryStr);
24
+ // cachedStmts.set(queryStr, stmt)
25
+ // }
26
+ return stmt.select(bindValues ? prepareBindValues(bindValues, queryStr) : undefined);
27
+ };
8
28
  // TODO more graceful DB migration (e.g. backup DB before destructive migrations)
9
29
  export const migrateDb = ({ db, otelContext, schema, }) => {
10
- db.execute(
30
+ dbExecute(db,
11
31
  // TODO use schema migration definition from schema.ts instead
12
- sql `create table if not exists ${SCHEMA_META_TABLE} (tableName text primary key, schemaHash text, updatedAt text);`, undefined, new Set(), { otelContext });
13
- const schemaMetaRows = db.select(sql `SELECT * FROM ${SCHEMA_META_TABLE}`);
32
+ sql `create table if not exists ${SCHEMA_META_TABLE} (tableName text primary key, schemaHash text, updatedAt text);`);
33
+ const schemaMetaRows = dbSelect(db, sql `SELECT * FROM ${SCHEMA_META_TABLE}`);
14
34
  const dbSchemaHashByTable = Object.fromEntries(schemaMetaRows.map(({ tableName, schemaHash }) => [tableName, schemaHash]));
15
35
  const tableDefs = new Set([
16
36
  // NOTE it's important the `SCHEMA_META_TABLE` comes first since we're writing to it below
17
37
  ...systemTables,
18
38
  ...Array.from(schema.tables.values()).filter((_) => _.sqliteDef.name !== SCHEMA_META_TABLE),
19
- ...dynamicallyRegisteredTables.values(),
20
39
  ]);
21
40
  for (const tableDef of tableDefs) {
22
41
  const tableAst = tableDef.sqliteDef.ast;
23
42
  const tableName = tableAst.name;
24
43
  const dbSchemaHash = dbSchemaHashByTable[tableName];
25
44
  const schemaHash = SqliteAst.hash(tableAst);
26
- if (schemaHash !== dbSchemaHash) {
27
- if (import.meta.env.VITE_LIVESTORE_SKIP_MIGRATIONS) {
28
- console.log(`Schema hash mismatch for table '${tableName}' (DB: ${dbSchemaHash}, expected: ${schemaHash}), skipping migration...`);
29
- }
30
- else {
31
- console.log(`Schema hash mismatch for table '${tableName}' (DB: ${dbSchemaHash}, expected: ${schemaHash}), migrating table...`);
32
- migrateTable({ db, tableAst, otelContext, schemaHash });
33
- }
45
+ if (schemaHash !== dbSchemaHash && import.meta.env.VITE_LIVESTORE_SKIP_MIGRATIONS === undefined) {
46
+ console.log(`Schema hash mismatch for table '${tableName}' (DB: ${dbSchemaHash}, expected: ${schemaHash}), migrating table...`);
47
+ migrateTable({ db, tableAst, otelContext, schemaHash });
34
48
  }
35
49
  }
36
50
  };
37
- export const migrateTable = ({ db, tableAst, otelContext, schemaHash, }) => {
51
+ export const migrateTable = ({ db, tableAst,
52
+ // otelContext,
53
+ schemaHash, }) => {
38
54
  console.log(`Migrating table '${tableAst.name}'...`);
39
55
  const tableName = tableAst.name;
40
56
  const columnSpec = makeColumnSpec(tableAst);
41
57
  // TODO need to possibly handle cascading deletes due to foreign keys
42
- db.execute(sql `drop table if exists ${tableName}`, undefined, new Set(), { otelContext });
43
- db.execute(sql `create table if not exists ${tableName} (${columnSpec});`, undefined, new Set(), { otelContext });
58
+ dbExecute(db, sql `drop table if exists ${tableName}`);
59
+ dbExecute(db, sql `create table if not exists ${tableName} (${columnSpec})`);
44
60
  for (const index of tableAst.indexes) {
45
- db.execute(createIndexFromDefinition(tableName, index), undefined, new Set(), { otelContext });
61
+ dbExecute(db, createIndexFromDefinition(tableName, index));
46
62
  }
47
63
  const updatedAt = getMemoizedTimestamp();
48
- db.execute(sql `
64
+ dbExecute(db, sql `
49
65
  INSERT INTO ${SCHEMA_META_TABLE} (tableName, schemaHash, updatedAt) VALUES ($tableName, $schemaHash, $updatedAt)
50
66
  ON CONFLICT (tableName) DO UPDATE SET schemaHash = $schemaHash, updatedAt = $updatedAt;
51
- `, { $tableName: tableName, $schemaHash: schemaHash, $updatedAt: updatedAt }, new Set(), { otelContext });
67
+ `, { tableName, schemaHash, updatedAt });
52
68
  };
53
69
  const createIndexFromDefinition = (tableName, index) => {
54
70
  const uniqueStr = index.unique ? 'UNIQUE' : '';
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,27 @@
1
+ import { type DbSchema, type RawSqlMutationEvent } from '@livestore/common/schema';
1
2
  import { Schema } from '@livestore/utils/effect';
2
- import { type RawSqlMutationEvent } from './schema/mutations.js';
3
- import type { FromTable, TableDef } from './schema/table-def.js';
4
3
  /**
5
4
  * Semantic information about a query with supported cases being:
6
5
  * - a whole row
7
6
  * - a single column value
8
7
  * - a sub value in a JSON column
9
8
  */
10
- export type QueryInfo<TTableDef extends TableDef = TableDef> = QueryInfoNone | QueryInfoRow<TTableDef> | QueryInfoColJsonValue<TTableDef, GetJsonColumn<TTableDef>> | QueryInfoCol<TTableDef, keyof TTableDef['sqliteDef']['columns']>;
9
+ export type QueryInfo<TTableDef extends DbSchema.TableDef = DbSchema.TableDef> = QueryInfoNone | QueryInfoRow<TTableDef> | QueryInfoColJsonValue<TTableDef, GetJsonColumn<TTableDef>> | QueryInfoCol<TTableDef, keyof TTableDef['sqliteDef']['columns']>;
11
10
  export type QueryInfoNone = {
12
11
  _tag: 'None';
13
12
  };
14
- export type QueryInfoRow<TTableDef extends TableDef> = {
13
+ export type QueryInfoRow<TTableDef extends DbSchema.TableDef> = {
15
14
  _tag: 'Row';
16
15
  table: TTableDef;
17
16
  id: string;
18
17
  };
19
- export type QueryInfoCol<TTableDef extends TableDef, TColName extends keyof TTableDef['sqliteDef']['columns']> = {
18
+ export type QueryInfoCol<TTableDef extends DbSchema.TableDef, TColName extends keyof TTableDef['sqliteDef']['columns']> = {
20
19
  _tag: 'Col';
21
20
  table: TTableDef;
22
21
  id: string;
23
22
  column: TColName;
24
23
  };
25
- export type QueryInfoColJsonValue<TTableDef extends TableDef, TColName extends GetJsonColumn<TTableDef>> = {
24
+ export type QueryInfoColJsonValue<TTableDef extends DbSchema.TableDef, TColName extends GetJsonColumn<TTableDef>> = {
26
25
  _tag: 'ColJsonValue';
27
26
  table: TTableDef;
28
27
  id: string;
@@ -32,18 +31,18 @@ export type QueryInfoColJsonValue<TTableDef extends TableDef, TColName extends G
32
31
  */
33
32
  jsonPath: string;
34
33
  };
35
- type GetJsonColumn<TTableDef extends TableDef> = keyof {
34
+ type GetJsonColumn<TTableDef extends DbSchema.TableDef> = keyof {
36
35
  [ColName in keyof TTableDef['sqliteDef']['columns'] as TTableDef['sqliteDef']['columns'][ColName]['columnType'] extends 'text' ? ColName : never]: {};
37
36
  };
38
37
  export type UpdateValueForPath<TPath extends QueryInfo> = TPath extends {
39
38
  _tag: 'Row';
40
- } ? Partial<FromTable.RowDecodedAll<TPath['table']>> : TPath extends {
39
+ } ? Partial<DbSchema.FromTable.RowDecodedAll<TPath['table']>> : TPath extends {
41
40
  _tag: 'Col';
42
41
  } ? Schema.Schema.To<TPath['table']['sqliteDef']['columns'][TPath['column']]['schema']> : TPath extends {
43
42
  _tag: 'ColJsonValue';
44
43
  } ? {
45
44
  TODO: true;
46
45
  } : never;
47
- export declare const mutationForQueryInfo: <const TPath extends QueryInfo<TableDef>>(updatePath: TPath, value: UpdateValueForPath<TPath>) => RawSqlMutationEvent;
46
+ export declare const mutationForQueryInfo: <const TPath extends QueryInfo<DbSchema.TableDef<DbSchema.DefaultSqliteTableDefConstrained, boolean, DbSchema.TableOptions, Schema.Schema<any, any, never>>>>(updatePath: TPath, value: UpdateValueForPath<TPath>) => RawSqlMutationEvent;
48
47
  export {};
49
48
  //# sourceMappingURL=query-info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,SAAS,SAAS,QAAQ,GAAG,QAAQ,IACvD,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,IAAI;IACrD,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,MAAM,MAAM,YAAY,CAAC,SAAS,SAAS,QAAQ,EAAE,QAAQ,SAAS,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI;IAC/G,IAAI,EAAE,KAAK,CAAA;IACX,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,SAAS,SAAS,QAAQ,EAAE,QAAQ,SAAS,aAAa,CAAC,SAAS,CAAC,IAAI;IACzG,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,SAAS,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,QAAQ,CAAA;IAChB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,CAAC,SAAS,SAAS,QAAQ,IAAI,MAAM;KACpD,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,KAAK,SAAS,SAAS,IAAI,KAAK,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACnF,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAChD,KAAK,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GACnF,KAAK,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd,KAAK,CAAA;AAEb,eAAO,MAAM,oBAAoB,oGAG9B,mBAmCF,CAAA"}
1
+ {"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAkB,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD;;;;;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;CACX,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,CAAA;IACV,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,CAAA;IACV,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,KAAK,SAAS,SAAS,IAAI,KAAK,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACnF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GACzD,KAAK,SAAS;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAC3B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GACnF,KAAK,SAAS;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACd,KAAK,CAAA;AAEb,eAAO,MAAM,oBAAoB,wNAG9B,mBAmCF,CAAA"}
@@ -1,6 +1,6 @@
1
+ import { rawSqlMutation } from '@livestore/common/schema';
1
2
  import { notYetImplemented, shouldNeverHappen } from '@livestore/utils';
2
3
  import { Schema } from '@livestore/utils/effect';
3
- import { rawSqlMutation } from './schema/mutations.js';
4
4
  export const mutationForQueryInfo = (updatePath, value) => {
5
5
  if (updatePath._tag === 'ColJsonValue' || updatePath._tag === 'None') {
6
6
  return notYetImplemented('TODO');
@@ -1 +1 @@
1
- {"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,EAAE,cAAc,EAA4B,MAAM,uBAAuB,CAAA;AAyDhF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAiB,EACjB,KAAgC,EACX,EAAE;IACvB,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAA;IACjD,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAA;IAExB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE;QACxC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEtC,MAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAA;YAErF,yCAAyC;YACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAA;YAChE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA;QACpC,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAA;YACpC,MAAM,YAAY,GAChB,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,iBAAiB,CAAC,UAAU,UAAU,YAAY,CAAC,CAAA;YACnG,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3E,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,iBAAiB,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,OAAO,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjG,MAAM,WAAW,GAAG,eAAe,EAAE,GAAG,CAAA;IACxC,MAAM,GAAG,GAAG,UAAU,cAAc,CAAC,IAAI,QAAQ,YAAY,IAAI,WAAW,EAAE,CAAA;IAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEtE,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;AACzD,CAAC,CAAA"}
1
+ {"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,cAAc,EAA4B,MAAM,0BAA0B,CAAA;AAClG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AA2DhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAiB,EACjB,KAAgC,EACX,EAAE;IACvB,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACrE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAA;IACjD,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,CAAA;IAExB,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,EAAE;QACxC,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEtC,MAAM,mBAAmB,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAA;YAErF,yCAAyC;YACzC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAA;YAChE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,CAAA;QACpC,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAA;YACpC,MAAM,YAAY,GAChB,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,iBAAiB,CAAC,UAAU,UAAU,YAAY,CAAC,CAAA;YACnG,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,CAAA;YAC3E,OAAO,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,CAAA;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,iBAAiB,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,OAAO,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEjG,MAAM,WAAW,GAAG,eAAe,EAAE,GAAG,CAAA;IACxC,MAAM,GAAG,GAAG,UAAU,cAAc,CAAC,IAAI,QAAQ,YAAY,IAAI,WAAW,EAAE,CAAA;IAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEtE,OAAO,cAAc,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAA;AACzD,CAAC,CAAA"}
@@ -1,19 +1,19 @@
1
+ import type { DatabaseFactory } from '@livestore/common';
2
+ import type { LiveStoreSchema } from '@livestore/common/schema';
1
3
  import type * as otel from '@opentelemetry/api';
2
4
  import type { ReactElement, ReactNode } from 'react';
3
- import type { InMemoryDatabase } from '../inMemoryDatabase.js';
4
- import type { LiveStoreSchema } from '../schema/index.js';
5
- import type { StorageInit } from '../storage/index.js';
6
- import type { BaseGraphQLContext, GraphQLOptions } from '../store.js';
5
+ import type { BaseGraphQLContext, BootDb, GraphQLOptions } from '../store.js';
7
6
  interface LiveStoreProviderProps<GraphQLContext> {
8
7
  schema: LiveStoreSchema;
9
- loadStorage: () => StorageInit | Promise<StorageInit>;
10
- boot?: (db: InMemoryDatabase, parentSpan: otel.Span) => unknown | Promise<unknown>;
8
+ boot?: (db: BootDb, parentSpan: otel.Span) => unknown | Promise<unknown>;
11
9
  graphQLOptions?: GraphQLOptions<GraphQLContext>;
12
10
  otelTracer?: otel.Tracer;
13
11
  otelRootSpanContext?: otel.Context;
14
12
  fallback: ReactElement;
13
+ makeDb: DatabaseFactory;
14
+ batchUpdates?: (run: () => void) => void;
15
15
  }
16
- export declare const LiveStoreProvider: <GraphQLContext extends BaseGraphQLContext>({ fallback, loadStorage, graphQLOptions, otelTracer, otelRootSpanContext, children, schema, boot, }: LiveStoreProviderProps<GraphQLContext> & {
16
+ export declare const LiveStoreProvider: <GraphQLContext extends BaseGraphQLContext>({ fallback, graphQLOptions, otelTracer, otelRootSpanContext, children, schema, boot, makeDb, batchUpdates, }: LiveStoreProviderProps<GraphQLContext> & {
17
17
  children?: ReactNode;
18
18
  }) => JSX.Element;
19
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStoreProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAS,MAAM,aAAa,CAAA;AAW5E,UAAU,sBAAsB,CAAC,cAAc;IAC7C,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClF,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;IAClC,QAAQ,EAAE,YAAY,CAAA;CACvB;AAED,eAAO,MAAM,iBAAiB;eAS2B,SAAS;MAAK,WAiBtE,CAAA"}
1
+ {"version":3,"file":"LiveStoreProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveStoreProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,EAAS,MAAM,aAAa,CAAA;AAIpF,UAAU,sBAAsB,CAAC,cAAc;IAC7C,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;IAC/C,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAA;IAClC,QAAQ,EAAE,YAAY,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CACzC;AAED,eAAO,MAAM,iBAAiB;eAU2B,SAAS;MAAK,WAkBtE,CAAA"}