@livestore/livestore 0.0.39 → 0.0.40

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 (190) hide show
  1. package/README.md +15 -24
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/__tests__/react/fixture.d.ts +192 -17
  4. package/dist/__tests__/react/fixture.d.ts.map +1 -1
  5. package/dist/__tests__/react/fixture.js +10 -29
  6. package/dist/__tests__/react/fixture.js.map +1 -1
  7. package/dist/{mutations.d.ts → cud.d.ts} +14 -19
  8. package/dist/cud.d.ts.map +1 -0
  9. package/dist/{mutations.js → cud.js} +15 -7
  10. package/dist/cud.js.map +1 -0
  11. package/dist/cud.test.d.ts +2 -0
  12. package/dist/cud.test.d.ts.map +1 -0
  13. package/dist/cud.test.js +47 -0
  14. package/dist/cud.test.js.map +1 -0
  15. package/dist/inMemoryDatabase.d.ts +1 -1
  16. package/dist/inMemoryDatabase.d.ts.map +1 -1
  17. package/dist/inMemoryDatabase.js +1 -4
  18. package/dist/inMemoryDatabase.js.map +1 -1
  19. package/dist/index.d.ts +4 -4
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +3 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/migrations.d.ts.map +1 -1
  24. package/dist/migrations.js +11 -7
  25. package/dist/migrations.js.map +1 -1
  26. package/dist/query-info.d.ts +2 -5
  27. package/dist/query-info.d.ts.map +1 -1
  28. package/dist/query-info.js +3 -2
  29. package/dist/query-info.js.map +1 -1
  30. package/dist/react/useAtom.d.ts.map +1 -1
  31. package/dist/react/useAtom.js +2 -2
  32. package/dist/react/useAtom.js.map +1 -1
  33. package/dist/react/useQuery.test.d.ts.map +1 -0
  34. package/dist/{__tests__/react → react}/useQuery.test.js +8 -11
  35. package/dist/react/useQuery.test.js.map +1 -0
  36. package/dist/react/useRow.js +4 -4
  37. package/dist/react/useRow.js.map +1 -1
  38. package/dist/react/useRow.test.d.ts.map +1 -0
  39. package/dist/{__tests__/react → react}/useRow.test.js +14 -38
  40. package/dist/react/useRow.test.js.map +1 -0
  41. package/dist/reactive.d.ts +2 -2
  42. package/dist/reactive.d.ts.map +1 -1
  43. package/dist/reactive.js +50 -15
  44. package/dist/reactive.js.map +1 -1
  45. package/dist/reactive.test.d.ts.map +1 -0
  46. package/dist/{__tests__/reactive.test.js → reactive.test.js} +1 -1
  47. package/dist/reactive.test.js.map +1 -0
  48. package/dist/reactiveQueries/base-class.d.ts +2 -0
  49. package/dist/reactiveQueries/base-class.d.ts.map +1 -1
  50. package/dist/reactiveQueries/base-class.js +1 -0
  51. package/dist/reactiveQueries/base-class.js.map +1 -1
  52. package/dist/reactiveQueries/graphql.d.ts.map +1 -1
  53. package/dist/reactiveQueries/graphql.js +1 -0
  54. package/dist/reactiveQueries/graphql.js.map +1 -1
  55. package/dist/reactiveQueries/js.d.ts.map +1 -1
  56. package/dist/reactiveQueries/js.js +1 -0
  57. package/dist/reactiveQueries/js.js.map +1 -1
  58. package/dist/reactiveQueries/sql.d.ts.map +1 -1
  59. package/dist/reactiveQueries/sql.js +1 -0
  60. package/dist/reactiveQueries/sql.js.map +1 -1
  61. package/dist/reactiveQueries/sql.test.d.ts.map +1 -0
  62. package/dist/{__tests__/reactiveQueries → reactiveQueries}/sql.test.js +44 -34
  63. package/dist/reactiveQueries/sql.test.js.map +1 -0
  64. package/dist/row-query.js +7 -5
  65. package/dist/row-query.js.map +1 -1
  66. package/dist/schema/index.d.ts +20 -7
  67. package/dist/schema/index.d.ts.map +1 -1
  68. package/dist/schema/index.js +18 -3
  69. package/dist/schema/index.js.map +1 -1
  70. package/dist/schema/mutations.d.ts +81 -0
  71. package/dist/schema/mutations.d.ts.map +1 -0
  72. package/dist/schema/mutations.js +29 -0
  73. package/dist/schema/mutations.js.map +1 -0
  74. package/dist/schema/parse-utils.d.ts +3 -3
  75. package/dist/schema/parse-utils.d.ts.map +1 -1
  76. package/dist/schema/table-def.d.ts +1 -1
  77. package/dist/schema/table-def.d.ts.map +1 -1
  78. package/dist/schema/table-def.js +2 -2
  79. package/dist/schema/table-def.js.map +1 -1
  80. package/dist/storage/in-memory/index.d.ts +4 -0
  81. package/dist/storage/in-memory/index.d.ts.map +1 -1
  82. package/dist/storage/in-memory/index.js +3 -0
  83. package/dist/storage/in-memory/index.js.map +1 -1
  84. package/dist/storage/index.d.ts +4 -0
  85. package/dist/storage/index.d.ts.map +1 -1
  86. package/dist/storage/tauri/index.d.ts +4 -0
  87. package/dist/storage/tauri/index.d.ts.map +1 -1
  88. package/dist/storage/tauri/index.js +6 -0
  89. package/dist/storage/tauri/index.js.map +1 -1
  90. package/dist/storage/utils/idb.d.ts +1 -0
  91. package/dist/storage/utils/idb.d.ts.map +1 -1
  92. package/dist/storage/utils/idb.js +11 -0
  93. package/dist/storage/utils/idb.js.map +1 -1
  94. package/dist/storage/web-worker/common.d.ts +11 -0
  95. package/dist/storage/web-worker/common.d.ts.map +1 -0
  96. package/dist/storage/web-worker/common.js +2 -0
  97. package/dist/storage/web-worker/common.js.map +1 -0
  98. package/dist/storage/web-worker/index.d.ts +14 -7
  99. package/dist/storage/web-worker/index.d.ts.map +1 -1
  100. package/dist/storage/web-worker/index.js +70 -14
  101. package/dist/storage/web-worker/index.js.map +1 -1
  102. package/dist/storage/web-worker/make-worker.d.ts +20 -0
  103. package/dist/storage/web-worker/make-worker.d.ts.map +1 -0
  104. package/dist/storage/web-worker/make-worker.js +155 -0
  105. package/dist/storage/web-worker/make-worker.js.map +1 -0
  106. package/dist/storage/web-worker/vite-dev-polyfill.d.ts +2 -0
  107. package/dist/storage/web-worker/vite-dev-polyfill.d.ts.map +1 -0
  108. package/dist/storage/web-worker/vite-dev-polyfill.js +35 -0
  109. package/dist/storage/web-worker/vite-dev-polyfill.js.map +1 -0
  110. package/dist/store.d.ts +32 -42
  111. package/dist/store.d.ts.map +1 -1
  112. package/dist/store.js +82 -131
  113. package/dist/store.js.map +1 -1
  114. package/dist/utils/dev.d.ts +3 -0
  115. package/dist/utils/dev.d.ts.map +1 -0
  116. package/dist/utils/dev.js +16 -0
  117. package/dist/utils/dev.js.map +1 -0
  118. package/dist/utils/util.d.ts +2 -0
  119. package/dist/utils/util.d.ts.map +1 -1
  120. package/dist/utils/util.js +2 -0
  121. package/dist/utils/util.js.map +1 -1
  122. package/package.json +24 -12
  123. package/src/__tests__/react/fixture.tsx +12 -30
  124. package/src/cud.test.ts +52 -0
  125. package/src/{mutations.ts → cud.ts} +28 -22
  126. package/src/inMemoryDatabase.ts +2 -7
  127. package/src/index.ts +14 -8
  128. package/src/migrations.ts +10 -7
  129. package/src/query-info.ts +4 -7
  130. package/src/react/useAtom.ts +2 -2
  131. package/src/{__tests__/react → react}/useQuery.test.tsx +11 -11
  132. package/src/{__tests__/react → react}/useRow.test.tsx +21 -39
  133. package/src/react/useRow.ts +4 -4
  134. package/src/{__tests__/reactive.test.ts → reactive.test.ts} +1 -1
  135. package/src/reactive.ts +60 -19
  136. package/src/reactiveQueries/base-class.ts +4 -0
  137. package/src/reactiveQueries/graphql.ts +2 -0
  138. package/src/reactiveQueries/js.ts +2 -0
  139. package/src/{__tests__/reactiveQueries → reactiveQueries}/sql.test.ts +44 -34
  140. package/src/reactiveQueries/sql.ts +2 -0
  141. package/src/row-query.ts +11 -9
  142. package/src/schema/index.ts +47 -11
  143. package/src/schema/mutations.ts +129 -0
  144. package/src/schema/parse-utils.ts +1 -1
  145. package/src/schema/table-def.ts +7 -1
  146. package/src/storage/in-memory/index.ts +7 -0
  147. package/src/storage/index.ts +8 -0
  148. package/src/storage/tauri/index.ts +10 -0
  149. package/src/storage/utils/idb.ts +14 -0
  150. package/src/storage/web-worker/common.ts +6 -0
  151. package/src/storage/web-worker/index.ts +86 -17
  152. package/src/storage/web-worker/make-worker.ts +214 -0
  153. package/src/storage/web-worker/vite-dev-polyfill.ts +33 -0
  154. package/src/store.ts +142 -212
  155. package/src/utils/dev.ts +23 -0
  156. package/src/utils/util.ts +4 -0
  157. package/dist/__tests__/mutations.test.d.ts +0 -2
  158. package/dist/__tests__/mutations.test.d.ts.map +0 -1
  159. package/dist/__tests__/mutations.test.js +0 -40
  160. package/dist/__tests__/mutations.test.js.map +0 -1
  161. package/dist/__tests__/react/useQuery.test.d.ts.map +0 -1
  162. package/dist/__tests__/react/useQuery.test.js.map +0 -1
  163. package/dist/__tests__/react/useRow.test.d.ts.map +0 -1
  164. package/dist/__tests__/react/useRow.test.js.map +0 -1
  165. package/dist/__tests__/reactive.test.d.ts.map +0 -1
  166. package/dist/__tests__/reactive.test.js.map +0 -1
  167. package/dist/__tests__/reactiveQueries/sql.test.d.ts.map +0 -1
  168. package/dist/__tests__/reactiveQueries/sql.test.js.map +0 -1
  169. package/dist/events.d.ts +0 -7
  170. package/dist/events.d.ts.map +0 -1
  171. package/dist/events.js +0 -2
  172. package/dist/events.js.map +0 -1
  173. package/dist/mutations.d.ts.map +0 -1
  174. package/dist/mutations.js.map +0 -1
  175. package/dist/schema/action.d.ts +0 -30
  176. package/dist/schema/action.d.ts.map +0 -1
  177. package/dist/schema/action.js +0 -3
  178. package/dist/schema/action.js.map +0 -1
  179. package/dist/storage/web-worker/worker.d.ts +0 -13
  180. package/dist/storage/web-worker/worker.d.ts.map +0 -1
  181. package/dist/storage/web-worker/worker.js +0 -110
  182. package/dist/storage/web-worker/worker.js.map +0 -1
  183. package/src/__tests__/mutations.test.ts +0 -43
  184. package/src/events.ts +0 -8
  185. package/src/schema/action.ts +0 -41
  186. package/src/storage/web-worker/worker.ts +0 -141
  187. /package/dist/{__tests__/react → react}/useQuery.test.d.ts +0 -0
  188. /package/dist/{__tests__/react → react}/useRow.test.d.ts +0 -0
  189. /package/dist/{__tests__/reactive.test.d.ts → reactive.test.d.ts} +0 -0
  190. /package/dist/{__tests__/reactiveQueries → reactiveQueries}/sql.test.d.ts +0 -0
package/dist/index.d.ts CHANGED
@@ -8,11 +8,11 @@ export { LiveStoreJSQuery, computed } from './reactiveQueries/js.js';
8
8
  export { LiveStoreSQLQuery, querySQL, type MapRows } from './reactiveQueries/sql.js';
9
9
  export { LiveStoreGraphQLQuery, queryGraphQL } from './reactiveQueries/graphql.js';
10
10
  export { type GetAtomResult, type DbGraph, makeDbGraph, type LiveQuery } from './reactiveQueries/base-class.js';
11
- export { globalDbGraph } from './global-state.js';
11
+ export { globalDbGraph, dynamicallyRegisteredTables } from './global-state.js';
12
12
  export { type RowResult, type RowResultEncoded, rowQuery, deriveColQuery } from './row-query.js';
13
- export * from './mutations.js';
14
- export { defineAction, defineActions, makeSchema, DbSchema, ParseUtils } from './schema/index.js';
15
- export type { LiveStoreSchema, InputSchema, GetActionArgs, GetApplyEventArgs, ActionDefinition, ActionDefinitions, SQLWriteStatement, SchemaMetaRow, } from './schema/index.js';
13
+ 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';
16
16
  export { SqliteAst, SqliteDsl } from 'effect-db-schema';
17
17
  export { prepareBindValues, sql, type Bindable, type PreparedBindValues } from './utils/util.js';
18
18
  export { isEqual } from 'lodash-es';
@@ -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,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,gBAAgB,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEjG,YAAY,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,GACd,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,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"}
package/dist/index.js CHANGED
@@ -4,10 +4,10 @@ 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';
6
6
  export { makeDbGraph } from './reactiveQueries/base-class.js';
7
- export { globalDbGraph } from './global-state.js';
7
+ export { globalDbGraph, dynamicallyRegisteredTables } from './global-state.js';
8
8
  export { rowQuery, deriveColQuery } from './row-query.js';
9
- export * from './mutations.js';
10
- export { defineAction, defineActions, makeSchema, DbSchema, ParseUtils } from './schema/index.js';
9
+ export * from './cud.js';
10
+ export { makeSchema, DbSchema, ParseUtils, defineMutation, rawSqlMutation, makeMutationEventSchema, makeMutationDefRecord, } from './schema/index.js';
11
11
  export { SqliteAst, SqliteDsl } from 'effect-db-schema';
12
12
  export { prepareBindValues, sql } from './utils/util.js';
13
13
  export { isEqual } from 'lodash-es';
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,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAyC,QAAQ,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEhG,cAAc,gBAAgB,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAajG,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,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 +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,EAAE,MAAM,kBAAkB,CAAA;AAI5C,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":"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,5 +1,5 @@
1
1
  import { Schema as EffectSchema } from '@livestore/utils/effect';
2
- import { SqliteAst } from 'effect-db-schema';
2
+ import { SqliteAst, SqliteDsl } from 'effect-db-schema';
3
3
  import { memoize } from 'lodash-es';
4
4
  import { dynamicallyRegisteredTables } from './global-state.js';
5
5
  import { SCHEMA_META_TABLE, systemTables } from './schema/index.js';
@@ -9,7 +9,7 @@ const getMemoizedTimestamp = memoize(() => new Date().toISOString());
9
9
  export const migrateDb = ({ db, otelContext, schema, }) => {
10
10
  db.execute(
11
11
  // 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, [], { otelContext });
12
+ sql `create table if not exists ${SCHEMA_META_TABLE} (tableName text primary key, schemaHash text, updatedAt text);`, undefined, new Set(), { otelContext });
13
13
  const schemaMetaRows = db.select(sql `SELECT * FROM ${SCHEMA_META_TABLE}`);
14
14
  const dbSchemaHashByTable = Object.fromEntries(schemaMetaRows.map(({ tableName, schemaHash }) => [tableName, schemaHash]));
15
15
  const tableDefs = new Set([
@@ -39,16 +39,16 @@ export const migrateTable = ({ db, tableAst, otelContext, schemaHash, }) => {
39
39
  const tableName = tableAst.name;
40
40
  const columnSpec = makeColumnSpec(tableAst);
41
41
  // TODO need to possibly handle cascading deletes due to foreign keys
42
- db.execute(sql `drop table if exists ${tableName}`, undefined, [], { otelContext });
43
- db.execute(sql `create table if not exists ${tableName} (${columnSpec});`, undefined, [], { otelContext });
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 });
44
44
  for (const index of tableAst.indexes) {
45
- db.execute(createIndexFromDefinition(tableName, index), undefined, [], { otelContext });
45
+ db.execute(createIndexFromDefinition(tableName, index), undefined, new Set(), { otelContext });
46
46
  }
47
47
  const updatedAt = getMemoizedTimestamp();
48
48
  db.execute(sql `
49
49
  INSERT INTO ${SCHEMA_META_TABLE} (tableName, schemaHash, updatedAt) VALUES ($tableName, $schemaHash, $updatedAt)
50
50
  ON CONFLICT (tableName) DO UPDATE SET schemaHash = $schemaHash, updatedAt = $updatedAt;
51
- `, { $tableName: tableName, $schemaHash: schemaHash, $updatedAt: updatedAt }, [], { otelContext });
51
+ `, { $tableName: tableName, $schemaHash: schemaHash, $updatedAt: updatedAt }, new Set(), { otelContext });
52
52
  };
53
53
  const createIndexFromDefinition = (tableName, index) => {
54
54
  const uniqueStr = index.unique ? 'UNIQUE' : '';
@@ -69,9 +69,13 @@ const toSqliteColumnSpec = (column) => {
69
69
  const defaultValueStr = (() => {
70
70
  if (column.default._tag === 'None')
71
71
  return '';
72
+ if (SqliteDsl.isSqlDefaultValue(column.default.value))
73
+ return `default ${column.default.value.sql}`;
72
74
  const encodeValue = EffectSchema.encodeSync(column.schema);
73
75
  const encodedDefaultValue = encodeValue(column.default.value);
74
- return columnTypeStr === 'text' ? `default '${encodedDefaultValue}'` : `default ${encodedDefaultValue}`;
76
+ if (columnTypeStr === 'text')
77
+ return `default '${encodedDefaultValue}'`;
78
+ return `default ${encodedDefaultValue}`;
75
79
  })();
76
80
  return `${column.name} ${columnTypeStr} ${nullableStr} ${defaultValueStr}`;
77
81
  };
@@ -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,4 +1,5 @@
1
1
  import { Schema } from '@livestore/utils/effect';
2
+ import { type RawSqlMutationEvent } from './schema/mutations.js';
2
3
  import type { FromTable, TableDef } from './schema/table-def.js';
3
4
  /**
4
5
  * Semantic information about a query with supported cases being:
@@ -43,10 +44,6 @@ export type UpdateValueForPath<TPath extends QueryInfo> = TPath extends {
43
44
  } ? {
44
45
  TODO: true;
45
46
  } : never;
46
- export declare const storeEventForQueryInfo: <TPath extends QueryInfo<TableDef>>(updatePath: TPath, value: UpdateValueForPath<TPath>) => StoreEvent;
47
- type StoreEvent = {
48
- eventType: string;
49
- args: any;
50
- };
47
+ export declare const mutationForQueryInfo: <const TPath extends QueryInfo<TableDef>>(updatePath: TPath, value: UpdateValueForPath<TPath>) => RawSqlMutationEvent;
51
48
  export {};
52
49
  //# 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,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;AAID,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,sBAAsB,8FAGhC,UAmCF,CAAA;AAED,KAAK,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,CAAA;CAAE,CAAA"}
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,6 +1,7 @@
1
1
  import { notYetImplemented, shouldNeverHappen } from '@livestore/utils';
2
2
  import { Schema } from '@livestore/utils/effect';
3
- export const storeEventForQueryInfo = (updatePath, value) => {
3
+ import { rawSqlMutation } from './schema/mutations.js';
4
+ export const mutationForQueryInfo = (updatePath, value) => {
4
5
  if (updatePath._tag === 'ColJsonValue' || updatePath._tag === 'None') {
5
6
  return notYetImplemented('TODO');
6
7
  }
@@ -28,6 +29,6 @@ export const storeEventForQueryInfo = (updatePath, value) => {
28
29
  const whereClause = `where id = '${id}'`;
29
30
  const sql = `UPDATE ${sqliteTableDef.name} SET ${updateClause} ${whereClause}`;
30
31
  const writeTables = new Set([updatePath.table.sqliteDef.name]);
31
- return { eventType: 'livestore.RawSql', args: { sql, bindValues, writeTables } };
32
+ return rawSqlMutation({ sql, bindValues, writeTables });
32
33
  };
33
34
  //# sourceMappingURL=query-info.js.map
@@ -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;AA4DhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,UAAiB,EACjB,KAAgC,EACpB,EAAE;IACd,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,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,CAAA;AAClF,CAAC,CAAA"}
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 +1 @@
1
- {"version":3,"file":"useAtom.d.ts","sourceRoot":"","sources":["../../src/react/useAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAA0B,MAAM,kBAAkB,CAAA;AAC/F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE3D,eAAO,MAAM,OAAO,sLAgBnB,CAAA"}
1
+ {"version":3,"file":"useAtom.d.ts","sourceRoot":"","sources":["../../src/react/useAtom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAwB,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC7F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAA;AAGjE,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE3D,eAAO,MAAM,OAAO,sLAgBnB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { storeEventForQueryInfo } from '../query-info.js';
2
+ import { mutationForQueryInfo } from '../query-info.js';
3
3
  import { useStore } from './LiveStoreContext.js';
4
4
  import { useQueryRef } from './useQuery.js';
5
5
  export const useAtom = (query$) => {
@@ -8,7 +8,7 @@ export const useAtom = (query$) => {
8
8
  const setValue = React.useMemo(() => {
9
9
  return (newValueOrFn) => {
10
10
  const newValue = typeof newValueOrFn === 'function' ? newValueOrFn(query$Ref.current) : newValueOrFn;
11
- store.applyEvents([storeEventForQueryInfo(query$.queryInfo, newValue)]);
11
+ store.mutate(mutationForQueryInfo(query$.queryInfo, newValue));
12
12
  };
13
13
  }, [query$.queryInfo, query$Ref, store]);
14
14
  return [query$Ref.current, setValue];
@@ -1 +1 @@
1
- {"version":3,"file":"useAtom.js","sourceRoot":"","sources":["../../src/react/useAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAwC,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAE/F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAc,EACyE,EAAE;IACzF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAErC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAgD,GAAG,EAAE;QACjF,OAAO,CAAC,YAAiB,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;YAEpG,KAAK,CAAC,WAAW,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,SAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC1E,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;IAExC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtC,CAAC,CAAA"}
1
+ {"version":3,"file":"useAtom.js","sourceRoot":"","sources":["../../src/react/useAtom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,oBAAoB,EAAwC,MAAM,kBAAkB,CAAA;AAE7F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,MAAc,EACyE,EAAE;IACzF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAErC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAE5B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAgD,GAAG,EAAE;QACjF,OAAO,CAAC,YAAiB,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;YAEpG,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,SAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;QACjE,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAA;IAExC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AACtC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuery.test.d.ts","sourceRoot":"","sources":["../../src/react/useQuery.test.tsx"],"names":[],"mappings":""}
@@ -1,13 +1,13 @@
1
1
  import { act, renderHook } from '@testing-library/react';
2
2
  import React from 'react';
3
3
  import { describe, expect, it } from 'vitest';
4
- import * as LiveStoreReact from '../../react/index.js';
5
- import { querySQL } from '../../reactiveQueries/sql.js';
6
- import { makeTodoMvc, parseTodos } from './fixture.js';
4
+ import { makeTodoMvc, parseTodos } from '../__tests__/react/fixture.js';
5
+ import { querySQL } from '../reactiveQueries/sql.js';
6
+ import * as LiveStoreReact from './index.js';
7
7
  describe('useQuery', () => {
8
8
  it('simple', async () => {
9
9
  let renderCount = 0;
10
- const { wrapper, store, mutations } = await makeTodoMvc();
10
+ const { wrapper, store, cud } = await makeTodoMvc();
11
11
  const allTodos$ = querySQL(`select * from todos`, { map: parseTodos });
12
12
  const { result } = renderHook(() => {
13
13
  renderCount++;
@@ -15,20 +15,17 @@ describe('useQuery', () => {
15
15
  }, { wrapper });
16
16
  expect(result.current.length).toBe(0);
17
17
  expect(renderCount).toBe(1);
18
- act(() => store.applyEvents([mutations.todos.insert({ id: 't1', text: 'buy milk', completed: false })]));
18
+ act(() => store.mutate(cud.todos.insert({ id: 't1', text: 'buy milk', completed: false })));
19
19
  expect(result.current.length).toBe(1);
20
20
  expect(result.current[0].text).toBe('buy milk');
21
21
  expect(renderCount).toBe(2);
22
22
  });
23
23
  it('same `useQuery` hook invoked with different queries', async () => {
24
24
  let renderCount = 0;
25
- const { wrapper, store, mutations } = await makeTodoMvc();
25
+ const { wrapper, store, cud } = await makeTodoMvc();
26
26
  const todo1$ = querySQL(`select * from todos where id = 't1'`, { label: 'libraryTracksView1', map: parseTodos });
27
27
  const todo2$ = querySQL(`select * from todos where id = 't2'`, { label: 'libraryTracksView2', map: parseTodos });
28
- store.applyEvents([
29
- mutations.todos.insert({ id: 't1', text: 'buy milk', completed: false }),
30
- mutations.todos.insert({ id: 't2', text: 'buy eggs', completed: false }),
31
- ]);
28
+ store.mutate(cud.todos.insert({ id: 't1', text: 'buy milk', completed: false }), cud.todos.insert({ id: 't2', text: 'buy eggs', completed: false }));
32
29
  const { result, rerender } = renderHook((todoId) => {
33
30
  renderCount++;
34
31
  const query$ = React.useMemo(() => (todoId === 't1' ? todo1$ : todo2$), [todoId]);
@@ -36,7 +33,7 @@ describe('useQuery', () => {
36
33
  }, { wrapper, initialProps: 't1' });
37
34
  expect(result.current).toBe('buy milk');
38
35
  expect(renderCount).toBe(1);
39
- act(() => store.applyEvents([mutations.todos.update({ where: { id: 't1' }, values: { text: 'buy soy milk' } })]));
36
+ act(() => store.mutate(cud.todos.update({ where: { id: 't1' }, values: { text: 'buy soy milk' } })));
40
37
  expect(result.current).toBe('buy soy milk');
41
38
  expect(renderCount).toBe(2);
42
39
  rerender('t2');
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useQuery.test.js","sourceRoot":"","sources":["../../src/react/useQuery.test.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import * as otel from '@opentelemetry/api';
2
2
  import { mapValues } from 'lodash-es';
3
3
  import React from 'react';
4
- import { storeEventForQueryInfo } from '../query-info.js';
4
+ import { mutationForQueryInfo } from '../query-info.js';
5
5
  import { rowQuery } from '../row-query.js';
6
6
  import { tableIsSingleton } from '../schema/table-def.js';
7
7
  import { useStore } from './LiveStoreContext.js';
@@ -60,7 +60,7 @@ export const useRow = (table, idOrOptions, options_) => {
60
60
  const newValue = typeof newValueOrFn === 'function' ? newValueOrFn(query$Ref.current) : newValueOrFn;
61
61
  if (query$Ref.current === newValue)
62
62
  return;
63
- store.applyEvents([storeEventForQueryInfo(query$.queryInfo, { value: newValue })]);
63
+ store.mutate(mutationForQueryInfo(query$.queryInfo, { value: newValue }));
64
64
  };
65
65
  }
66
66
  else {
@@ -73,7 +73,7 @@ export const useRow = (table, idOrOptions, options_) => {
73
73
  // @ts-expect-error TODO fix typing
74
74
  if (query$Ref.current[columnName] === newValue)
75
75
  return;
76
- store.applyEvents([storeEventForQueryInfo(query$.queryInfo, { [columnName]: newValue })]);
76
+ store.mutate(mutationForQueryInfo(query$.queryInfo, { [columnName]: newValue }));
77
77
  });
78
78
  setState.setMany = (columnValuesOrFn) => {
79
79
  const columnValues =
@@ -86,7 +86,7 @@ export const useRow = (table, idOrOptions, options_) => {
86
86
  Object.entries(columnValues).every(([columnName, value]) => query$Ref.current[columnName] === value)) {
87
87
  return;
88
88
  }
89
- store.applyEvents([storeEventForQueryInfo(query$.queryInfo, columnValues)]);
89
+ store.mutate(mutationForQueryInfo(query$.queryInfo, columnValues));
90
90
  };
91
91
  return setState;
92
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useRow.js","sourceRoot":"","sources":["../../src/react/useRow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRow.js","sourceRoot":"","sources":["../../src/react/useRow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRow.test.d.ts","sourceRoot":"","sources":["../../src/react/useRow.test.tsx"],"names":[],"mappings":""}
@@ -1,9 +1,10 @@
1
1
  import { act, render, renderHook } from '@testing-library/react';
2
2
  import React from 'react';
3
3
  import { describe, expect, it } from 'vitest';
4
- import * as LiveStore from '../../index.js';
5
- import * as LiveStoreReact from '../../react/index.js';
6
- import { makeTodoMvc, todos } from './fixture.js';
4
+ import { makeTodoMvc, todos } from '../__tests__/react/fixture.js';
5
+ import * as LiveStore from '../index.js';
6
+ import { mutationForQueryInfo } from '../query-info.js';
7
+ import * as LiveStoreReact from './index.js';
7
8
  describe('useRow', () => {
8
9
  it('should update the data based on component key', async () => {
9
10
  let renderCount = 0;
@@ -16,9 +17,7 @@ describe('useRow', () => {
16
17
  expect(result.current.state.id).toBe('u1');
17
18
  expect(result.current.state.username).toBe('');
18
19
  expect(renderCount).toBe(1);
19
- act(() => {
20
- void store.execute(LiveStore.sql `INSERT INTO UserInfo (id, username) VALUES ('u2', 'username_u2');`);
21
- });
20
+ act(() => store.execute(LiveStore.sql `INSERT INTO UserInfo (id, username) VALUES ('u2', 'username_u2')`));
22
21
  rerender('u2');
23
22
  expect(result.current.state.id).toBe('u2');
24
23
  expect(result.current.state.username).toBe('username_u2');
@@ -52,9 +51,7 @@ describe('useRow', () => {
52
51
  expect(result.current.state.username).toBe('');
53
52
  expect(renderCount).toBe(1);
54
53
  act(() => result.current.setState.username('username_u1_hello'));
55
- act(() => {
56
- void store.execute(LiveStore.sql `UPDATE UserInfo SET username = 'username_u1_hello' WHERE id = 'u1';`);
57
- });
54
+ act(() => store.execute(LiveStore.sql `UPDATE UserInfo SET username = 'username_u1_hello' WHERE id = 'u1';`));
58
55
  expect(result.current.state.id).toBe('u1');
59
56
  expect(result.current.state.username).toBe('username_u1_hello');
60
57
  expect(renderCount).toBe(2);
@@ -88,41 +85,20 @@ describe('useRow', () => {
88
85
  };
89
86
  const renderResult = render(React.createElement(AppRouter, null), { wrapper });
90
87
  expect(appRouterRenderCount).toBe(1);
91
- act(() => store.applyEvent('livestore.RawSql', {
92
- sql: LiveStore.sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0);`,
93
- writeTables: ['todos'],
94
- }));
88
+ act(() => store.mutate(LiveStore.rawSqlMutation({
89
+ sql: LiveStore.sql `INSERT INTO todos (id, text, completed) VALUES ('t1', 'buy milk', 0)`,
90
+ })));
95
91
  expect(appRouterRenderCount).toBe(1);
96
92
  expect(renderResult.getByRole('current-id').innerHTML).toMatchInlineSnapshot('"Current Task Id: -"');
97
93
  act(() => globalSetState.currentTaskId('t1'));
98
94
  expect(appRouterRenderCount).toBe(2);
99
95
  expect(renderResult.getByRole('content').innerHTML).toMatchInlineSnapshot(`"{"id":"t1","text":"buy milk","completed":false}"`);
100
96
  expect(renderResult.getByRole('current-id').innerHTML).toMatchInlineSnapshot('"Current Task Id: t1"');
101
- act(() => store.applyEvents([
102
- {
103
- eventType: 'livestore.RawSql',
104
- args: {
105
- sql: LiveStore.sql `INSERT INTO todos (id, text, completed) VALUES ('t2', 'buy eggs', 0);`,
106
- writeTables: ['todos'],
107
- },
108
- },
109
- {
110
- eventType: 'livestore.UpdateComponentState',
111
- args: {
112
- id: 'singleton',
113
- columnNames: ['currentTaskId'],
114
- tableName: AppRouterSchema.sqliteDef.name,
115
- bindValues: { currentTaskId: 't2' },
116
- },
117
- },
118
- {
119
- eventType: 'livestore.RawSql',
120
- args: {
121
- sql: LiveStore.sql `INSERT INTO todos (id, text, completed) VALUES ('t3', 'buy bread', 0);`,
122
- writeTables: ['todos'],
123
- },
124
- },
125
- ]));
97
+ act(() => store.mutate(LiveStore.rawSqlMutation({
98
+ sql: LiveStore.sql `INSERT INTO todos (id, text, completed) VALUES ('t2', 'buy eggs', 0)`,
99
+ }), mutationForQueryInfo({ _tag: 'Col', table: AppRouterSchema, column: 'currentTaskId', id: 'singleton' }, 't2'), LiveStore.rawSqlMutation({
100
+ sql: LiveStore.sql `INSERT INTO todos (id, text, completed) VALUES ('t3', 'buy bread', 0)`,
101
+ })));
126
102
  expect(appRouterRenderCount).toBe(3);
127
103
  expect(renderResult.getByRole('current-id').innerHTML).toMatchInlineSnapshot('"Current Task Id: t2"');
128
104
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRow.test.js","sourceRoot":"","sources":["../../src/react/useRow.test.tsx"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export type DebugThunkInfo<T extends string = string> = {
51
51
  durationMs: number;
52
52
  };
53
53
  export type DebugRefreshReasonBase =
54
- /** Usually in response to some `applyEvent`/`applyEvents` with `skipRefresh: true` */
54
+ /** Usually in response to some `mutate` calls with `skipRefresh: true` */
55
55
  {
56
56
  _tag: 'runDeferredEffects';
57
57
  originalRefreshReasons?: ReadonlyArray<DebugRefreshReasonBase>;
@@ -84,7 +84,7 @@ export type RefreshDebugInfo<TDebugRefreshReason extends DebugRefreshReason, TDe
84
84
  completedTimestamp: number;
85
85
  graphSnapshot: ReactiveGraphSnapshot;
86
86
  };
87
- export type SerializedAtom = Readonly<PrettifyFlat<Pick<Atom<unknown, unknown, any>, '_tag' | 'id' | 'label' | 'meta'> & {
87
+ export type SerializedAtom = Readonly<PrettifyFlat<Pick<Atom<unknown, unknown, any>, '_tag' | 'id' | 'label' | 'meta' | 'isDirty'> & {
88
88
  sub: ReadonlyArray<string>;
89
89
  super: ReadonlyArray<string>;
90
90
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../src/reactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../src/reactive.ts"],"names":[],"mappings":"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"}
package/dist/reactive.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // This is a simple implementation of a reactive dependency graph.
2
- import { pick, shouldNeverHappen } from '@livestore/utils';
2
+ import { shouldNeverHappen } from '@livestore/utils';
3
3
  import { isEqual } from 'lodash-es';
4
4
  import { BoundArray } from './utils/bounded-collections.js';
5
5
  // import { getDurationMsFromSpan } from './otel.js'
@@ -12,15 +12,6 @@ let nodeIdCounter = 0;
12
12
  const uniqueNodeId = () => `node-${++nodeIdCounter}`;
13
13
  let refreshInfoIdCounter = 0;
14
14
  const uniqueRefreshInfoId = () => `refresh-info-${++refreshInfoIdCounter}`;
15
- const serializeAtom = (atom) => ({
16
- ...pick(atom, ['_tag', 'id', 'label', 'meta', 'isDirty']),
17
- sub: Array.from(atom.sub).map((a) => a.id),
18
- super: Array.from(atom.super).map((a) => a.id),
19
- });
20
- const serializeEffect = (effect) => ({
21
- ...pick(effect, ['_tag', 'id', 'label']),
22
- sub: Array.from(effect.sub).map((a) => a.id),
23
- });
24
15
  let globalGraphIdCounter = 0;
25
16
  const uniqueGraphId = () => `graph-${++globalGraphIdCounter}`;
26
17
  export class ReactiveGraph {
@@ -250,11 +241,22 @@ export class ReactiveGraph {
250
241
  }
251
242
  subComp.super.delete(superComp);
252
243
  }
253
- getSnapshot = () => ({
254
- atoms: Array.from(this.atoms).map(serializeAtom),
255
- effects: Array.from(this.effects).map(serializeEffect),
256
- deferredEffects: Array.from(this.deferredEffects.keys()).map((_) => _.id),
257
- });
244
+ // NOTE This function is performance-optimized (i.e. not using `Array.from`)
245
+ getSnapshot = () => {
246
+ const atoms = [];
247
+ for (const atom of this.atoms) {
248
+ atoms.push(serializeAtom(atom));
249
+ }
250
+ const effects = [];
251
+ for (const effect of this.effects) {
252
+ effects.push(serializeEffect(effect));
253
+ }
254
+ const deferredEffects = [];
255
+ for (const [effect] of this.deferredEffects) {
256
+ deferredEffects.push(effect.id);
257
+ }
258
+ return { atoms, effects, deferredEffects };
259
+ };
258
260
  subscribeToRefresh = (cb) => {
259
261
  this.refreshCallbacks.add(cb);
260
262
  return () => {
@@ -293,4 +295,37 @@ const markSuperCompDirtyRec = (atom, effectsToRefresh) => {
293
295
  export const throwContextNotSetError = (graph) => {
294
296
  throw new Error(`LiveStore Error: \`context\` not set on ReactiveGraph (${graph.id})`);
295
297
  };
298
+ // NOTE This function is performance-optimized (i.e. not using `pick` and `Array.from`)
299
+ const serializeAtom = (atom) => {
300
+ const sub = [];
301
+ for (const a of atom.sub) {
302
+ sub.push(a.id);
303
+ }
304
+ const super_ = [];
305
+ for (const a of atom.super) {
306
+ super_.push(a.id);
307
+ }
308
+ return {
309
+ _tag: atom._tag,
310
+ id: atom.id,
311
+ label: atom.label,
312
+ meta: atom.meta,
313
+ isDirty: atom.isDirty,
314
+ sub,
315
+ super: super_,
316
+ };
317
+ };
318
+ // NOTE This function is performance-optimized (i.e. not using `pick` and `Array.from`)
319
+ const serializeEffect = (effect) => {
320
+ const sub = [];
321
+ for (const a of effect.sub) {
322
+ sub.push(a.id);
323
+ }
324
+ return {
325
+ _tag: effect._tag,
326
+ id: effect.id,
327
+ label: effect.label,
328
+ sub,
329
+ };
330
+ };
296
331
  //# sourceMappingURL=reactive.js.map