trellis 3.1.35 → 3.2.2

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 (287) hide show
  1. package/CHANGELOG.md +23 -5
  2. package/README.md +63 -156
  3. package/bin/trellis.mjs +2 -75
  4. package/dist/{better-sqlite-backend-ahx5p0br.js → better-sqlite-backend-2P4F6AOJ.js} +91 -29
  5. package/dist/boot-middleware-MHLHFCUC.js +9 -0
  6. package/dist/browser/index.d.ts +18 -0
  7. package/dist/browser/index.d.ts.map +1 -0
  8. package/dist/browser/index.js +95 -0
  9. package/dist/{index-53f3b8p8.js → chunk-2W3MHTMG.js} +552 -213
  10. package/dist/chunk-44FFQKQX.js +142 -0
  11. package/dist/chunk-4HYPLFJD.js +150 -0
  12. package/dist/chunk-4XIVMVHC.js +361 -0
  13. package/dist/{index-yp88he8n.js → chunk-6CTA6MCE.js} +88 -64
  14. package/dist/chunk-6GEZ6DN5.js +394 -0
  15. package/dist/chunk-7ZFRVCUE.js +211 -0
  16. package/dist/chunk-CAG4FULI.js +121 -0
  17. package/dist/chunk-FF36CQHZ.js +61 -0
  18. package/dist/{index-h32txmxe.js → chunk-FKQO5A3H.js} +6 -13
  19. package/dist/{index-nq520y6k.js → chunk-FWRS4CSC.js} +46 -32
  20. package/dist/chunk-GFZCJ4EH.js +108 -0
  21. package/dist/chunk-GLM4HGN4.js +55 -0
  22. package/dist/{index-4cdr7x2x.js → chunk-GU374KWZ.js} +182 -111
  23. package/dist/chunk-H6JB3PZ3.js +45 -0
  24. package/dist/chunk-IZX2PLIB.js +1240 -0
  25. package/dist/chunk-J2TXUFCZ.js +289 -0
  26. package/dist/chunk-J3WYZO3Q.js +211 -0
  27. package/dist/{index-xzym9w0m.js → chunk-JA7AIHRK.js} +12 -7
  28. package/dist/chunk-JHHEXEDM.js +162 -0
  29. package/dist/chunk-JUEMDWLU.js +233 -0
  30. package/dist/chunk-KFQGP6VL.js +33 -0
  31. package/dist/chunk-KIJITUZB.js +419 -0
  32. package/dist/{index-4wxa8xz4.js → chunk-KQ4A2D2P.js} +162 -23
  33. package/dist/chunk-KSU2GW22.js +958 -0
  34. package/dist/{index-rv1p47gp.js → chunk-L5N5PR2S.js} +3015 -2480
  35. package/dist/{index-h9e2efx4.js → chunk-LNUIGRDZ.js} +71 -55
  36. package/dist/{index-skhn0agf.js → chunk-MLC5BUYO.js} +19 -20
  37. package/dist/chunk-MPXUVGT3.js +104 -0
  38. package/dist/chunk-N6MYZT4O.js +68 -0
  39. package/dist/chunk-O2AV5WMN.js +48 -0
  40. package/dist/chunk-PZ4XYZ4J.js +143 -0
  41. package/dist/chunk-QB5ISE47.js +419 -0
  42. package/dist/chunk-RSWUFTO2.js +857 -0
  43. package/dist/chunk-S3XLFZ27.js +1095 -0
  44. package/dist/{index-w5wccer3.js → chunk-S6GBJ2ZB.js} +28 -12
  45. package/dist/{index-7pjz3tsy.js → chunk-SGMDTWJJ.js} +57 -15
  46. package/dist/chunk-SPSPV5BC.js +390 -0
  47. package/dist/chunk-TCKXSOBP.js +123 -0
  48. package/dist/chunk-UBGUDMUV.js +59 -0
  49. package/dist/{index-wt8rz4gn.js → chunk-UQISRW6T.js} +97 -26
  50. package/dist/chunk-USEINYUL.js +12 -0
  51. package/dist/{index-bmyt7k8n.js → chunk-UZRUP7QW.js} +12 -4
  52. package/dist/{index-xhcp6xrn.js → chunk-VBYUTRXX.js} +695 -514
  53. package/dist/{index-vkpkfwhq.js → chunk-VDAKEOML.js} +234 -194
  54. package/dist/chunk-WXSWA3MV.js +0 -0
  55. package/dist/{index-n9f2qyh5.js → chunk-X5FLTRUB.js} +55 -33
  56. package/dist/{index-h7zxhhhh.js → chunk-XMQ7G77X.js} +46 -38
  57. package/dist/{index-w7ng765c.js → chunk-YCM7ZYEZ.js} +102 -49
  58. package/dist/cli/deploy-cli.d.ts +18 -0
  59. package/dist/cli/deploy-cli.d.ts.map +1 -0
  60. package/dist/cli/errors.d.ts +6 -0
  61. package/dist/cli/errors.d.ts.map +1 -0
  62. package/dist/cli/examples.d.ts +23 -0
  63. package/dist/cli/examples.d.ts.map +1 -0
  64. package/dist/cli/index.d.ts +1 -1
  65. package/dist/cli/index.d.ts.map +1 -1
  66. package/dist/cli/index.js +2426 -6225
  67. package/dist/client/index.browser.d.ts +29 -0
  68. package/dist/client/index.browser.d.ts.map +1 -0
  69. package/dist/client/index.browser.js +64 -0
  70. package/dist/client/index.d.ts +6 -1
  71. package/dist/client/index.d.ts.map +1 -1
  72. package/dist/client/index.js +41 -21
  73. package/dist/client/live.d.ts +67 -0
  74. package/dist/client/live.d.ts.map +1 -0
  75. package/dist/client/reactive.d.ts +31 -0
  76. package/dist/client/reactive.d.ts.map +1 -0
  77. package/dist/client/sdk.browser.d.ts +104 -0
  78. package/dist/client/sdk.browser.d.ts.map +1 -0
  79. package/dist/client/sdk.browser.js +9 -0
  80. package/dist/client/sdk.d.ts +26 -2
  81. package/dist/client/sdk.d.ts.map +1 -1
  82. package/dist/client/sdk.js +9 -0
  83. package/dist/client/vcs-client.d.ts +129 -0
  84. package/dist/client/vcs-client.d.ts.map +1 -0
  85. package/dist/cms/index.js +171 -163
  86. package/dist/{config-8hczw0rs.js → config-PFTP67TR.js} +8 -9
  87. package/dist/core/computation/index.d.ts +5 -0
  88. package/dist/core/computation/index.d.ts.map +1 -0
  89. package/dist/core/computation/rollup.d.ts +18 -0
  90. package/dist/core/computation/rollup.d.ts.map +1 -0
  91. package/dist/core/index.d.ts +5 -0
  92. package/dist/core/index.d.ts.map +1 -1
  93. package/dist/core/index.js +171 -104
  94. package/dist/core/kernel/boot-middleware.d.ts +10 -0
  95. package/dist/core/kernel/boot-middleware.d.ts.map +1 -0
  96. package/dist/core/kernel/logic-middleware.d.ts +7 -1
  97. package/dist/core/kernel/logic-middleware.d.ts.map +1 -1
  98. package/dist/core/kernel/trellis-kernel.d.ts.map +1 -1
  99. package/dist/core/ontology/types.d.ts +5 -0
  100. package/dist/core/ontology/types.d.ts.map +1 -1
  101. package/dist/core/persist/better-sqlite-backend.d.ts +9 -2
  102. package/dist/core/persist/better-sqlite-backend.d.ts.map +1 -1
  103. package/dist/core/persist/factory.d.ts +6 -7
  104. package/dist/core/persist/factory.d.ts.map +1 -1
  105. package/dist/core/persist/factory.js +2 -3
  106. package/dist/core/persist/sqljs-backend.js +2 -3
  107. package/dist/db/index.d.ts +4 -1
  108. package/dist/db/index.d.ts.map +1 -1
  109. package/dist/db/index.js +67 -54
  110. package/dist/db/inspector.js +11 -19
  111. package/dist/db/trellis.css +1 -1
  112. package/dist/decisions/index.js +9 -10
  113. package/dist/deploy-LQ7GUGJ5.js +9 -0
  114. package/dist/deploy-YNVG5E4E.js +9 -0
  115. package/dist/deploy-cli-24BCHAXY.js +67 -0
  116. package/dist/deploy-cli-C35HTITO.js +67 -0
  117. package/dist/embeddings/auto-embed.d.ts +2 -2
  118. package/dist/embeddings/auto-embed.d.ts.map +1 -1
  119. package/dist/embeddings/index.js +20 -22
  120. package/dist/embeddings/search.d.ts +2 -1
  121. package/dist/embeddings/search.d.ts.map +1 -1
  122. package/dist/embeddings/store.d.ts +25 -4
  123. package/dist/embeddings/store.d.ts.map +1 -1
  124. package/dist/engine.d.ts +59 -19
  125. package/dist/engine.d.ts.map +1 -1
  126. package/dist/import-UZEKXU3B.js +10 -0
  127. package/dist/index.js +102 -93
  128. package/dist/launch-explorer-HZ4ZJA4X.js +95 -0
  129. package/dist/links/index.js +24 -26
  130. package/dist/mcp/server.d.ts.map +1 -1
  131. package/dist/plugins/agent-memory/index.js +316 -0
  132. package/dist/plugins/idea-garden/index.js +165 -0
  133. package/dist/plugins/plan-approval/index.js +579 -0
  134. package/dist/plugins/proactive-watcher/index.js +194 -0
  135. package/dist/{index-2r4jxwnb.js → query-XYLTJYSA.js} +14 -15
  136. package/dist/react/index.js +39 -70
  137. package/dist/react/realtime.js +11 -0
  138. package/dist/react/schema-hooks.js +87 -0
  139. package/dist/realtime/broadcast-channel-transport.d.ts +43 -0
  140. package/dist/realtime/broadcast-channel-transport.d.ts.map +1 -0
  141. package/dist/realtime/durable-object-relay-transport.d.ts +96 -0
  142. package/dist/realtime/durable-object-relay-transport.d.ts.map +1 -0
  143. package/dist/realtime/index.d.ts +44 -0
  144. package/dist/realtime/index.d.ts.map +1 -0
  145. package/dist/realtime/index.js +40 -0
  146. package/dist/realtime/memory-hub.d.ts +32 -0
  147. package/dist/realtime/memory-hub.d.ts.map +1 -0
  148. package/dist/realtime/persistent-channel.d.ts +105 -0
  149. package/dist/realtime/persistent-channel.d.ts.map +1 -0
  150. package/dist/realtime/presence.d.ts +73 -0
  151. package/dist/realtime/presence.d.ts.map +1 -0
  152. package/dist/realtime/relay-persistence.d.ts +37 -0
  153. package/dist/realtime/relay-persistence.d.ts.map +1 -0
  154. package/dist/realtime/relay-persistence.js +107 -0
  155. package/dist/realtime/relay-server.d.ts +103 -0
  156. package/dist/realtime/relay-server.d.ts.map +1 -0
  157. package/dist/realtime/room.d.ts +98 -0
  158. package/dist/realtime/room.d.ts.map +1 -0
  159. package/dist/realtime/text.d.ts +73 -0
  160. package/dist/realtime/text.d.ts.map +1 -0
  161. package/dist/realtime/types.d.ts +89 -0
  162. package/dist/realtime/types.d.ts.map +1 -0
  163. package/dist/realtime/websocket-relay-transport.d.ts +28 -0
  164. package/dist/realtime/websocket-relay-transport.d.ts.map +1 -0
  165. package/dist/realtime.bundle.js +1100 -0
  166. package/dist/{remote-manager-xvbg4230.js → remote-manager-ODE3T2KR.js} +25 -15
  167. package/dist/scaffold/seed.d.ts.map +1 -1
  168. package/dist/scaffold/write.d.ts +1 -1
  169. package/dist/scaffold/write.d.ts.map +1 -1
  170. package/dist/schema/define.d.ts +137 -0
  171. package/dist/schema/define.d.ts.map +1 -0
  172. package/dist/schema/entity-projection.d.ts +34 -0
  173. package/dist/schema/entity-projection.d.ts.map +1 -0
  174. package/dist/schema/eql.d.ts +46 -0
  175. package/dist/schema/eql.d.ts.map +1 -0
  176. package/dist/schema/index.d.ts +21 -0
  177. package/dist/schema/index.d.ts.map +1 -0
  178. package/dist/schema/index.js +46 -0
  179. package/dist/schema/kernel-resolve.d.ts +21 -0
  180. package/dist/schema/kernel-resolve.d.ts.map +1 -0
  181. package/dist/schema/mutations.d.ts +20 -0
  182. package/dist/schema/mutations.d.ts.map +1 -0
  183. package/dist/schema/resolve.d.ts +21 -0
  184. package/dist/schema/resolve.d.ts.map +1 -0
  185. package/dist/server/deploy-meta.d.ts +25 -0
  186. package/dist/server/deploy-meta.d.ts.map +1 -0
  187. package/dist/server/deploy.d.ts +7 -2
  188. package/dist/server/deploy.d.ts.map +1 -1
  189. package/dist/server/index.d.ts +7 -2
  190. package/dist/server/index.d.ts.map +1 -1
  191. package/dist/server/index.js +100 -58
  192. package/dist/server/node-adapter.js +5 -104
  193. package/dist/server/realtime.d.ts +14 -3
  194. package/dist/server/realtime.d.ts.map +1 -1
  195. package/dist/server/server.d.ts +8 -16
  196. package/dist/server/server.d.ts.map +1 -1
  197. package/dist/server/sprites.d.ts +18 -1
  198. package/dist/server/sprites.d.ts.map +1 -1
  199. package/dist/server/tenancy.d.ts +4 -0
  200. package/dist/server/tenancy.d.ts.map +1 -1
  201. package/dist/server/usage-meter.d.ts +53 -0
  202. package/dist/server/usage-meter.d.ts.map +1 -0
  203. package/dist/server-MB3OPSPI.js +18 -0
  204. package/dist/server-ZVWGLLRF.js +18 -0
  205. package/dist/sprites-KQGTGM6W.js +27 -0
  206. package/dist/{sprites-vc4qbrp1.js → sprites-RU3E4XQN.js} +6 -7
  207. package/dist/svelte/index.d.ts +17 -0
  208. package/dist/svelte/index.d.ts.map +1 -0
  209. package/dist/svelte/index.js +51 -0
  210. package/dist/svelte/schema-hooks.d.ts +45 -0
  211. package/dist/svelte/schema-hooks.d.ts.map +1 -0
  212. package/dist/svelte/schema-hooks.js +71 -0
  213. package/dist/svelte/stores.d.ts +78 -0
  214. package/dist/svelte/stores.d.ts.map +1 -0
  215. package/dist/sync/http-transport.d.ts +3 -3
  216. package/dist/sync/http-transport.d.ts.map +1 -1
  217. package/dist/sync/index.d.ts +15 -1
  218. package/dist/sync/index.d.ts.map +1 -1
  219. package/dist/sync/index.js +617 -0
  220. package/dist/sync/memory-room.d.ts +37 -0
  221. package/dist/sync/memory-room.d.ts.map +1 -0
  222. package/dist/sync/memory-transport.d.ts +3 -3
  223. package/dist/sync/memory-transport.d.ts.map +1 -1
  224. package/dist/sync/partykit-room.d.ts +40 -0
  225. package/dist/sync/partykit-room.d.ts.map +1 -0
  226. package/dist/sync/partykit-transport.d.ts +84 -0
  227. package/dist/sync/partykit-transport.d.ts.map +1 -0
  228. package/dist/sync/room-core.d.ts +53 -0
  229. package/dist/sync/room-core.d.ts.map +1 -0
  230. package/dist/sync/sync-engine.d.ts +40 -2
  231. package/dist/sync/sync-engine.d.ts.map +1 -1
  232. package/dist/sync/sync-room-server.d.ts +39 -0
  233. package/dist/sync/sync-room-server.d.ts.map +1 -0
  234. package/dist/sync/types.d.ts +70 -3
  235. package/dist/sync/types.d.ts.map +1 -1
  236. package/dist/sync/vcs-sync-peer.d.ts +63 -0
  237. package/dist/sync/vcs-sync-peer.d.ts.map +1 -0
  238. package/dist/sync/ws-transport.d.ts +2 -2
  239. package/dist/sync/ws-transport.d.ts.map +1 -1
  240. package/dist/tenancy-NBLLGCNJ.js +14 -0
  241. package/dist/tenancy-POMWQP6M.js +16 -0
  242. package/dist/ui/client.html +355 -67
  243. package/dist/ui/launch-explorer.d.ts +22 -0
  244. package/dist/ui/launch-explorer.d.ts.map +1 -0
  245. package/dist/ui/server.d.ts +1 -1
  246. package/dist/ui/server.d.ts.map +1 -1
  247. package/dist/vcs/blob-store.d.ts.map +1 -1
  248. package/dist/vcs/idb-op-log.d.ts +67 -0
  249. package/dist/vcs/idb-op-log.d.ts.map +1 -0
  250. package/dist/vcs/index.d.ts +1 -0
  251. package/dist/vcs/index.d.ts.map +1 -1
  252. package/dist/vcs/index.js +81 -72
  253. package/dist/vcs/issue.d.ts +22 -5
  254. package/dist/vcs/issue.d.ts.map +1 -1
  255. package/dist/vcs/lane-materialize.d.ts +5 -0
  256. package/dist/vcs/lane-materialize.d.ts.map +1 -1
  257. package/dist/vcs/op-log.d.ts +28 -2
  258. package/dist/vcs/op-log.d.ts.map +1 -1
  259. package/dist/vcs/ops.d.ts +10 -0
  260. package/dist/vcs/ops.d.ts.map +1 -1
  261. package/dist/vcs/types.d.ts +2 -0
  262. package/dist/vcs/types.d.ts.map +1 -1
  263. package/dist/{vm-config-6xhsj6b3.js → vm-config-JI4OXKDQ.js} +9 -10
  264. package/dist/vue/hooks.d.ts +64 -0
  265. package/dist/vue/hooks.d.ts.map +1 -0
  266. package/dist/vue/index.d.ts +19 -0
  267. package/dist/vue/index.d.ts.map +1 -0
  268. package/dist/vue/index.js +59 -0
  269. package/dist/vue/schema-hooks.d.ts +41 -0
  270. package/dist/vue/schema-hooks.d.ts.map +1 -0
  271. package/dist/vue/schema-hooks.js +64 -0
  272. package/package.json +130 -17
  273. package/dist/deploy-999q207z.js +0 -10
  274. package/dist/engine-y0724kjq.js +0 -8
  275. package/dist/import-s2b8e0ft.js +0 -11
  276. package/dist/index-a76rekgs.js +0 -67
  277. package/dist/index-c9h37r6h.js +0 -1
  278. package/dist/index-hr9qvv77.js +0 -860
  279. package/dist/index-k5b0xskw.js +0 -1
  280. package/dist/index-nzb3am4f.js +0 -80
  281. package/dist/index-wncptktd.js +0 -292
  282. package/dist/index-y6a4kj0p.js +0 -43
  283. package/dist/index-yhwjgfvj.js +0 -342
  284. package/dist/sdk-bepky0xs.js +0 -16
  285. package/dist/server-szdjx0nt.js +0 -13
  286. package/dist/sqlite-backend-0vsmc6qj.js +0 -8
  287. package/dist/tenancy-pjm32b4v.js +0 -14
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Trellis Svelte — Public API Surface
3
+ *
4
+ * Svelte store bindings for the Trellis realtime layer. Import from
5
+ * `trellis/svelte`:
6
+ *
7
+ * import { createRoom, toStore } from 'trellis/svelte';
8
+ * import { RealtimeRoom, WebSocketRelayTransport } from 'trellis/svelte';
9
+ *
10
+ * @module trellis/svelte
11
+ */
12
+ export { toStore, createRoom } from './stores.js';
13
+ export type { RoomHandle } from './stores.js';
14
+ export { Signal, BatchSignal } from '../client/reactive.js';
15
+ export { RealtimeRoom, MemoryHub, MemoryRealtimeTransport, BroadcastChannelTransport, WebSocketRelayTransport, } from '../realtime/index.js';
16
+ export type { PresencePeer, PresenceState, BroadcastEvent, RealtimeTransport, } from '../realtime/types.js';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/svelte/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EACL,YAAY,EACZ,SAAS,EACT,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import {
2
+ BroadcastChannelTransport,
3
+ MemoryHub,
4
+ MemoryRealtimeTransport,
5
+ RealtimeRoom,
6
+ WebSocketRelayTransport
7
+ } from "../chunk-KSU2GW22.js";
8
+ import "../chunk-GFZCJ4EH.js";
9
+ import {
10
+ BatchSignal,
11
+ Signal
12
+ } from "../chunk-UBGUDMUV.js";
13
+ import "../chunk-KFQGP6VL.js";
14
+
15
+ // src/svelte/stores.ts
16
+ function toStore(signal) {
17
+ return {
18
+ subscribe(run) {
19
+ return signal.subscribe(run);
20
+ }
21
+ };
22
+ }
23
+ function mapStore(source, project) {
24
+ return {
25
+ subscribe(run) {
26
+ return source.subscribe((value) => run(project(value)));
27
+ }
28
+ };
29
+ }
30
+ function createRoom(create) {
31
+ const room = create();
32
+ const presence = toStore(room.presenceSignal);
33
+ const others = mapStore(presence, (peers) => peers.filter((p) => !p.self));
34
+ return {
35
+ room,
36
+ presence,
37
+ others,
38
+ destroy: () => room.leave()
39
+ };
40
+ }
41
+ export {
42
+ BatchSignal,
43
+ BroadcastChannelTransport,
44
+ MemoryHub,
45
+ MemoryRealtimeTransport,
46
+ RealtimeRoom,
47
+ Signal,
48
+ WebSocketRelayTransport,
49
+ createRoom,
50
+ toStore
51
+ };
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Trellis Svelte — schema-typed, live entity stores.
3
+ *
4
+ * The Svelte half of the typed read surface. Like the realtime adapter, it takes
5
+ * no dependency on the `svelte` package — it returns the structural store
6
+ * contract (`subscribe(run) => unsubscribe`), so `$entities` works in markup. The
7
+ * store is lazy: the first subscriber opens the {@link liveEntities} subscription
8
+ * (live + hydrated) and the last to unsubscribe disposes it. Shipped under
9
+ * `trellis/svelte/typed`.
10
+ *
11
+ * import { defineType } from 'trellis/schema';
12
+ * import { entitiesStore, mutations } from 'trellis/svelte/typed';
13
+ *
14
+ * const sections = entitiesStore(client, NavSection); // {#each $sections.data as s}…
15
+ *
16
+ * @module trellis/svelte/typed
17
+ */
18
+ import { type LiveEntitiesOptions, type LiveEntityOptions } from '../client/live.js';
19
+ import type { TrellisDb } from '../client/sdk.js';
20
+ import { type EntityMutations } from '../schema/mutations.js';
21
+ import type { AnyType, InferEntitiesRead, InferEntityRead, InferType, ResolveSpecFor } from '../schema/define.js';
22
+ import type { WhereInput } from '../schema/eql.js';
23
+ /** Minimal Svelte store contract (a structural subset of `svelte/store`'s `Readable`). */
24
+ export interface Readable<T> {
25
+ subscribe(run: (value: T) => void): () => void;
26
+ }
27
+ export interface TypedRead<T> {
28
+ data: T;
29
+ loading: boolean;
30
+ error: Error | null;
31
+ }
32
+ export type TypedReadOptions<S extends AnyType> = LiveEntitiesOptions & {
33
+ where?: WhereInput;
34
+ resolve?: ResolveSpecFor<S>;
35
+ };
36
+ export type TypedEntityOptions<S extends AnyType> = LiveEntityOptions & {
37
+ resolve?: ResolveSpecFor<S>;
38
+ };
39
+ /** Live list of a type as a Svelte store. */
40
+ export declare function entitiesStore<S extends AnyType, O extends Partial<InferType<S>> | TypedReadOptions<S> | undefined = undefined>(client: TrellisDb, schema: S, opts?: O): Readable<TypedRead<InferEntitiesRead<S, O>>>;
41
+ /** Live single entity by id as a Svelte store — read-first, then type subscription. */
42
+ export declare function entityStore<S extends AnyType, O extends TypedEntityOptions<S> | undefined = undefined>(client: TrellisDb, schema: S, id: string | null | undefined, opts?: O): Readable<TypedRead<InferEntityRead<S, O>>>;
43
+ /** Schema-typed create/update/remove. */
44
+ export declare function mutations<S extends AnyType>(client: TrellisDb, schema: S): EntityMutations<InferType<S>>;
45
+ //# sourceMappingURL=schema-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-hooks.d.ts","sourceRoot":"","sources":["../../src/svelte/schema-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,0FAA0F;AAC1F,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,IAAI,mBAAmB,GAAG;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,OAAO,IAAI,iBAAiB,GAAG;IACtE,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AA4CF,6CAA6C;AAC7C,wBAAgB,aAAa,CAC3B,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,EAE7E,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,EACT,IAAI,CAAC,EAAE,CAAC,GACP,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAW9C;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,CAAC,SAAS,OAAO,EACjB,CAAC,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,SAAS,EAEvD,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC7B,IAAI,CAAC,EAAE,CAAC,GACP,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAS5C;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,EACzC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,CAAC,GACR,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAE/B"}
@@ -0,0 +1,71 @@
1
+ import {
2
+ liveEntities,
3
+ liveEntity
4
+ } from "../chunk-J3WYZO3Q.js";
5
+ import {
6
+ entityMutations
7
+ } from "../chunk-USEINYUL.js";
8
+ import "../chunk-JUEMDWLU.js";
9
+ import "../chunk-UBGUDMUV.js";
10
+ import "../chunk-KFQGP6VL.js";
11
+
12
+ // src/svelte/schema-hooks.ts
13
+ function parseReadOptions(opts) {
14
+ if (!opts) return {};
15
+ if ("resolve" in opts || "where" in opts) return opts;
16
+ return { where: opts };
17
+ }
18
+ function bindLiveResource(create, project) {
19
+ const res = create();
20
+ let stop = null;
21
+ let count = 0;
22
+ return {
23
+ subscribe(run) {
24
+ if (count++ === 0) stop = res.start();
25
+ const off = res.signal.subscribe((v) => run(project(v)));
26
+ return () => {
27
+ off();
28
+ if (--count === 0) {
29
+ stop?.();
30
+ stop = null;
31
+ }
32
+ };
33
+ }
34
+ };
35
+ }
36
+ function liveListStore(client, schema, opts, project) {
37
+ return bindLiveResource(
38
+ () => liveEntities(client, schema, opts),
39
+ project
40
+ );
41
+ }
42
+ function entitiesStore(client, schema, opts) {
43
+ return liveListStore(
44
+ client,
45
+ schema,
46
+ parseReadOptions(opts),
47
+ (v) => ({
48
+ data: v.data,
49
+ loading: v.loading,
50
+ error: v.error
51
+ })
52
+ );
53
+ }
54
+ function entityStore(client, schema, id, opts) {
55
+ return bindLiveResource(
56
+ () => liveEntity(client, schema, id, opts),
57
+ (v) => ({
58
+ data: v.data,
59
+ loading: v.loading,
60
+ error: v.error
61
+ })
62
+ );
63
+ }
64
+ function mutations(client, schema) {
65
+ return entityMutations(client, schema);
66
+ }
67
+ export {
68
+ entitiesStore,
69
+ entityStore,
70
+ mutations
71
+ };
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Trellis Svelte — Realtime / Signal bindings
3
+ *
4
+ * Framework adapter that exposes the framework-agnostic {@link Signal} and
5
+ * {@link RealtimeRoom} through the Svelte store contract.
6
+ *
7
+ * Svelte's `$store` auto-subscription depends only on the store *contract*
8
+ * (`subscribe(run) => unsubscribe`, with `run` invoked immediately), not on
9
+ * importing anything from `svelte`. `Signal.subscribe` already matches that
10
+ * contract verbatim, so this adapter takes no dependency on the Svelte package
11
+ * or compiler — it stays plain `.ts` and works across Svelte 4/5.
12
+ *
13
+ * import { createRoom } from 'trellis/svelte';
14
+ * import { RealtimeRoom, WebSocketRelayTransport } from 'trellis/svelte';
15
+ *
16
+ * const { presence, others, room, destroy } = createRoom(() =>
17
+ * RealtimeRoom.join({
18
+ * transport: new WebSocketRelayTransport({ id, url: 'ws://localhost:8231/rt' }),
19
+ * initialPresence: { name: 'Ada', color: '#6d5bfa' },
20
+ * }),
21
+ * );
22
+ * onDestroy(destroy);
23
+ * // In markup: {#each $presence as peer}…{/each}
24
+ *
25
+ * @module trellis/svelte
26
+ */
27
+ import type { Signal } from '../client/reactive.js';
28
+ import type { RealtimeRoom } from '../realtime/room.js';
29
+ import type { PresencePeer, PresenceState } from '../realtime/types.js';
30
+ /**
31
+ * Minimal Svelte store contract (a structural subset of `svelte/store`'s
32
+ * `Readable`). Declared locally so the adapter never imports the Svelte
33
+ * package; any `Readable` from `svelte/store` is assignable to/from this.
34
+ */
35
+ export interface Readable<T> {
36
+ subscribe(run: (value: T) => void): () => void;
37
+ }
38
+ /**
39
+ * Adapt a {@link Signal} to the Svelte store contract. The returned store is
40
+ * auto-subscribable with the `$` prefix in components.
41
+ *
42
+ * ```svelte
43
+ * <script>
44
+ * const peers = toStore(room.presenceSignal);
45
+ * </script>
46
+ * {#each $peers as peer}{peer.id}{/each}
47
+ * ```
48
+ */
49
+ export declare function toStore<T>(signal: Signal<T>): Readable<T>;
50
+ export interface RoomHandle<P extends PresenceState = PresenceState> {
51
+ /** The live room. */
52
+ room: RealtimeRoom<P>;
53
+ /** All peers including self (self first) as a Svelte store. */
54
+ presence: Readable<PresencePeer<P>[]>;
55
+ /** Peers excluding self as a Svelte store. */
56
+ others: Readable<PresencePeer<P>[]>;
57
+ /** Tear down the room. Call from `onDestroy`. */
58
+ destroy: () => void;
59
+ }
60
+ /**
61
+ * Create a {@link RealtimeRoom} and expose its presence as Svelte stores.
62
+ *
63
+ * Unlike the React/Vue adapters, lifecycle is explicit: call the returned
64
+ * `destroy()` from the component's `onDestroy` (Svelte has no scope-dispose
65
+ * hook usable from a plain module).
66
+ *
67
+ * ```svelte
68
+ * <script>
69
+ * import { onDestroy } from 'svelte';
70
+ * const { presence, others, room, destroy } = createRoom(() =>
71
+ * RealtimeRoom.join({ transport, initialPresence: { name } }),
72
+ * );
73
+ * onDestroy(destroy);
74
+ * </script>
75
+ * ```
76
+ */
77
+ export declare function createRoom<P extends PresenceState = PresenceState>(create: () => RealtimeRoom<P>): RoomHandle<P>;
78
+ //# sourceMappingURL=stores.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../src/svelte/stores.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAExE;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAChD;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAMzD;AAkBD,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa;IACjE,qBAAqB;IACrB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC,8CAA8C;IAC9C,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpC,iDAAiD;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,EAChE,MAAM,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,GAC5B,UAAU,CAAC,CAAC,CAAC,CAWf"}
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * @module trellis/sync
13
13
  */
14
- import type { SyncTransport, SyncMessage, PeerId } from './types.js';
14
+ import type { SyncTransport, SyncMessage, SyncMessageHandler, PeerId } from './types.js';
15
15
  export declare class HttpSyncTransport implements SyncTransport {
16
16
  private localPeerId;
17
17
  private peerUrls;
@@ -27,11 +27,11 @@ export declare class HttpSyncTransport implements SyncTransport {
27
27
  */
28
28
  removePeer(peerId: string): void;
29
29
  send(peerId: string, message: SyncMessage): Promise<void>;
30
- onMessage(handler: (message: SyncMessage) => void): void;
30
+ onMessage(handler: SyncMessageHandler): void;
31
31
  /**
32
32
  * Receive a message (called by the HTTP server handler).
33
33
  */
34
- receiveMessage(message: SyncMessage): void;
34
+ receiveMessage(message: SyncMessage): Promise<void>;
35
35
  peers(): PeerId[];
36
36
  getLocalPeerId(): string;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../src/sync/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAMrE,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,UAAU,CAAkC;gBAExC,WAAW,EAAE,MAAM;IAI/B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IASzD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI;IAIxD;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAa1C,KAAK,IAAI,MAAM,EAAE;IAIjB,cAAc,IAAI,MAAM;CAGzB;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CA2BjG"}
1
+ {"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../src/sync/http-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,MAAM,EACP,MAAM,YAAY,CAAC;AAMpB,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,UAAU,CAAkC;gBAExC,WAAW,EAAE,MAAM;IAI/B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IASzD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAI5C;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,KAAK,IAAI,MAAM,EAAE;IAIjB,cAAc,IAAI,MAAM;CAGzB;AAMD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,QAAQ,GAAG,IAAI,CA2BjG"}
@@ -10,11 +10,25 @@
10
10
  *
11
11
  * @see DESIGN.md §3.5 for the branch concurrency model.
12
12
  */
13
- export type { PeerId, SyncMessage, SyncHaveMessage, SyncWantMessage, SyncOpsMessage, SyncAckMessage, SyncState, BranchPolicy, SyncTransport, } from './types.js';
13
+ export type { PeerId, SyncMessage, SyncHaveMessage, SyncWantMessage, SyncOpsMessage, SyncAckMessage, SyncNackMessage, SyncSnapshotRequestMessage, SyncSnapshotMessage, NackReason, SyncState, BranchPolicy, SyncTransport, } from './types.js';
14
+ export { PROTOCOL_VERSION, MIN_SUPPORTED_VERSION, MAX_SUPPORTED_VERSION, } from './types.js';
14
15
  export { reconcile, findForkPoint } from './reconciler.js';
15
16
  export type { ReconcileResult, ReconcileConflict } from './reconciler.js';
16
17
  export { SyncEngine } from './sync-engine.js';
18
+ export type { OpsReceivedRejection, OpsReceivedResult, } from './sync-engine.js';
19
+ export { TrellisVcsSyncPeer } from './vcs-sync-peer.js';
20
+ export type { TrellisVcsSyncPeerOptions, TrellisVcsSyncResult, RemoteNackInfo, } from './vcs-sync-peer.js';
17
21
  export { MemoryTransport } from './memory-transport.js';
22
+ export { MemorySyncRoom, MemoryRoomTransport } from './memory-room.js';
23
+ export type { MemorySyncRoomAppendRejection, MemorySyncRoomAppendResult, } from './memory-room.js';
24
+ export { SyncRoomCore, DEFAULT_SNAPSHOT_MAX_OPS, } from './room-core.js';
25
+ export type { SyncRoomAppendRejection, SyncRoomAppendResult, SyncRoomDelivery, SyncRoomSnapshot, } from './room-core.js';
26
+ export { SyncRoomServer } from './sync-room-server.js';
27
+ export type { SyncRoomServerConnection, SyncRoomServerOptions, } from './sync-room-server.js';
28
+ export { createPartyKitRoomHandler } from './partykit-room.js';
29
+ export type { PartyKitRoomLike, PartyKitConnectionLike, PartyKitRoomHandlerOptions, } from './partykit-room.js';
30
+ export { PartyKitRoomTransport } from './partykit-transport.js';
31
+ export type { PartyKitRoomTransportOptions, PartyKitReconnectOptions, } from './partykit-transport.js';
18
32
  export { HttpSyncTransport, createSyncHandler } from './http-transport.js';
19
33
  export { WebSocketSyncTransport } from './ws-transport.js';
20
34
  export { MultiRepoManager, parseCrossRepoRef, formatCrossRepoRef, } from './multi-repo.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sync/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,YAAY,EACV,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,0BAA0B,EAC1B,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,YAAY,EACZ,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EACV,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EACV,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EACV,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}