gemi 0.122.0 → 0.124.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/index.js +2 -2
- package/dist/ai/index.js.map +1 -1
- package/dist/app/App.d.ts +9 -0
- package/dist/app/App.d.ts.map +1 -1
- package/dist/app/index.js +1 -1
- package/dist/auth/AuthController.d.ts.map +1 -1
- package/dist/bin/gemi.js +4 -1
- package/dist/bin/gemi.js.map +3 -3
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-7ftj43vp.js → chunk-019wz697.js} +2 -2
- package/dist/{chunk-7ftj43vp.js.map → chunk-019wz697.js.map} +1 -1
- package/dist/{chunk-s5k3yq6t.js → chunk-121p4g9j.js} +2 -2
- package/dist/{chunk-s5k3yq6t.js.map → chunk-121p4g9j.js.map} +1 -1
- package/dist/{chunk-tewhms9w.js → chunk-17dndh5z.js} +2 -2
- package/dist/{chunk-3gsv1vv1.js.map → chunk-17dndh5z.js.map} +1 -1
- package/dist/{chunk-r01aqf0q.js → chunk-1qwhty9p.js} +2 -2
- package/dist/{chunk-r01aqf0q.js.map → chunk-1qwhty9p.js.map} +1 -1
- package/dist/{chunk-471htqmz.js → chunk-1rnh9qrp.js} +2 -2
- package/dist/{chunk-471htqmz.js.map → chunk-1rnh9qrp.js.map} +1 -1
- package/dist/{chunk-dedqr5wb.js → chunk-2affxmkn.js} +2 -2
- package/dist/{chunk-dedqr5wb.js.map → chunk-2affxmkn.js.map} +1 -1
- package/dist/{chunk-19dpzp4y.js → chunk-2n4490pk.js} +3 -3
- package/dist/{chunk-19dpzp4y.js.map → chunk-2n4490pk.js.map} +1 -1
- package/dist/{chunk-9xyxbxgk.js → chunk-30xxc6r7.js} +2 -2
- package/dist/{chunk-9xyxbxgk.js.map → chunk-30xxc6r7.js.map} +1 -1
- package/dist/{chunk-vx7hvyvq.js → chunk-34fkx6kb.js} +2 -2
- package/dist/{chunk-vx7hvyvq.js.map → chunk-34fkx6kb.js.map} +1 -1
- package/dist/{chunk-5nj94s66.js → chunk-3hqwz48c.js} +4 -4
- package/dist/{chunk-5nj94s66.js.map → chunk-3hqwz48c.js.map} +1 -1
- package/dist/{chunk-dhbgrv58.js → chunk-3j6s5bmx.js} +1 -1
- package/dist/{chunk-cskqet01.js → chunk-3y294mb8.js} +2 -2
- package/dist/{chunk-cskqet01.js.map → chunk-3y294mb8.js.map} +1 -1
- package/dist/{chunk-qsz9241c.js → chunk-4drnyymm.js} +2 -2
- package/dist/{chunk-qsz9241c.js.map → chunk-4drnyymm.js.map} +1 -1
- package/dist/{chunk-zg6hmc48.js → chunk-5e22tm7m.js} +1 -1
- package/dist/chunk-5j50q4g8.js +57 -0
- package/dist/{chunk-3s21p9n2.js.map → chunk-5j50q4g8.js.map} +19 -9
- package/dist/{chunk-0k02tza1.js → chunk-65s834td.js} +1 -1
- package/dist/{chunk-7mmw0jr2.js → chunk-675kzd7z.js} +2 -2
- package/dist/{chunk-7mmw0jr2.js.map → chunk-675kzd7z.js.map} +1 -1
- package/dist/{chunk-gy81nd9a.js → chunk-6bgb1nhq.js} +2 -2
- package/dist/{chunk-gy81nd9a.js.map → chunk-6bgb1nhq.js.map} +1 -1
- package/dist/chunk-70nnh0y7.js +5 -0
- package/dist/{chunk-htgmy3x7.js.map → chunk-70nnh0y7.js.map} +1 -1
- package/dist/{chunk-er8acmch.js → chunk-75ewjc4a.js} +2 -2
- package/dist/{chunk-er8acmch.js.map → chunk-75ewjc4a.js.map} +1 -1
- package/dist/{chunk-2c0s0561.js → chunk-7gfdts60.js} +2 -2
- package/dist/{chunk-2c0s0561.js.map → chunk-7gfdts60.js.map} +1 -1
- package/dist/{chunk-zefs2b6h.js → chunk-8m2htvjn.js} +2 -2
- package/dist/{chunk-zefs2b6h.js.map → chunk-8m2htvjn.js.map} +1 -1
- package/dist/{chunk-dwedx1jb.js → chunk-92sk56n0.js} +3 -3
- package/dist/{chunk-dwedx1jb.js.map → chunk-92sk56n0.js.map} +1 -1
- package/dist/{chunk-yds7zwc3.js → chunk-96a1459v.js} +2 -2
- package/dist/{chunk-yds7zwc3.js.map → chunk-96a1459v.js.map} +1 -1
- package/dist/{chunk-c7qs1xp3.js → chunk-9tr92nwy.js} +2 -2
- package/dist/{chunk-c7qs1xp3.js.map → chunk-9tr92nwy.js.map} +1 -1
- package/dist/{chunk-1wnnkde0.js → chunk-a3g7y70h.js} +3 -3
- package/dist/{chunk-1wnnkde0.js.map → chunk-a3g7y70h.js.map} +1 -1
- package/dist/{chunk-zrcd9hxr.js → chunk-b5afy6k9.js} +2 -2
- package/dist/{chunk-zrcd9hxr.js.map → chunk-b5afy6k9.js.map} +1 -1
- package/dist/{chunk-c0v61fp5.js → chunk-bnt8kx6x.js} +2 -2
- package/dist/{chunk-c0v61fp5.js.map → chunk-bnt8kx6x.js.map} +1 -1
- package/dist/{chunk-5tdxbwzg.js → chunk-bt9qv2jj.js} +3 -3
- package/dist/{chunk-5tdxbwzg.js.map → chunk-bt9qv2jj.js.map} +1 -1
- package/dist/{chunk-y6wt5b6t.js → chunk-c4jnxmf2.js} +1 -1
- package/dist/{chunk-ep0baa9g.js → chunk-cfdwsvtx.js} +2 -2
- package/dist/{chunk-ep0baa9g.js.map → chunk-cfdwsvtx.js.map} +1 -1
- package/dist/{chunk-51w5ktv2.js → chunk-dxfhhw5h.js} +2 -2
- package/dist/{chunk-51w5ktv2.js.map → chunk-dxfhhw5h.js.map} +1 -1
- package/dist/{chunk-pn2x59ge.js → chunk-f29pktad.js} +3 -3
- package/dist/{chunk-pn2x59ge.js.map → chunk-f29pktad.js.map} +1 -1
- package/dist/chunk-f4cmz31h.js +58 -0
- package/dist/{chunk-3rvn9a76.js.map → chunk-f4cmz31h.js.map} +3 -3
- package/dist/{chunk-0ejjgzwc.js → chunk-fn2qfwgx.js} +2 -2
- package/dist/{chunk-0ejjgzwc.js.map → chunk-fn2qfwgx.js.map} +1 -1
- package/dist/{chunk-pemhmjzp.js → chunk-fvrmptd0.js} +3 -3
- package/dist/{chunk-pemhmjzp.js.map → chunk-fvrmptd0.js.map} +1 -1
- package/dist/{chunk-qy8c0gzr.js → chunk-fw7ds23a.js} +2 -2
- package/dist/{chunk-qy8c0gzr.js.map → chunk-fw7ds23a.js.map} +1 -1
- package/dist/{chunk-fenc5tpv.js → chunk-h3p8qzft.js} +2 -2
- package/dist/{chunk-fenc5tpv.js.map → chunk-h3p8qzft.js.map} +1 -1
- package/dist/{chunk-wjkh2gem.js → chunk-j7v7dft7.js} +1 -1
- package/dist/chunk-jctb7v53.js +4 -0
- package/dist/chunk-jctb7v53.js.map +10 -0
- package/dist/{chunk-wqe47c0j.js → chunk-jys8y39p.js} +2 -2
- package/dist/{chunk-wqe47c0j.js.map → chunk-jys8y39p.js.map} +1 -1
- package/dist/{chunk-m83zm86m.js → chunk-kc924zjz.js} +2 -2
- package/dist/{chunk-m83zm86m.js.map → chunk-kc924zjz.js.map} +1 -1
- package/dist/{chunk-32n8t8x6.js → chunk-kzsjyvvc.js} +2 -2
- package/dist/{chunk-32n8t8x6.js.map → chunk-kzsjyvvc.js.map} +1 -1
- package/dist/{chunk-meg8rtr6.js → chunk-mqtfaqx5.js} +2 -2
- package/dist/{chunk-meg8rtr6.js.map → chunk-mqtfaqx5.js.map} +1 -1
- package/dist/{chunk-7g649j8h.js → chunk-mrswc6qw.js} +2 -2
- package/dist/{chunk-7g649j8h.js.map → chunk-mrswc6qw.js.map} +1 -1
- package/dist/{chunk-gc2dz11k.js → chunk-mvkz22p4.js} +2 -2
- package/dist/{chunk-gc2dz11k.js.map → chunk-mvkz22p4.js.map} +1 -1
- package/dist/{chunk-4acpw92g.js → chunk-n0r5xyk2.js} +3 -3
- package/dist/{chunk-4acpw92g.js.map → chunk-n0r5xyk2.js.map} +1 -1
- package/dist/{chunk-cca0grq3.js → chunk-n1a2zj5z.js} +2 -2
- package/dist/{chunk-cca0grq3.js.map → chunk-n1a2zj5z.js.map} +1 -1
- package/dist/{chunk-d5f1m3d2.js → chunk-nkzmk7v3.js} +2 -2
- package/dist/{chunk-d5f1m3d2.js.map → chunk-nkzmk7v3.js.map} +1 -1
- package/dist/{chunk-3gsv1vv1.js → chunk-nn2jeat2.js} +2 -2
- package/dist/{chunk-tewhms9w.js.map → chunk-nn2jeat2.js.map} +1 -1
- package/dist/chunk-nnarmbjv.js +5 -0
- package/dist/chunk-nnarmbjv.js.map +10 -0
- package/dist/{chunk-h43jp8ws.js → chunk-pe46a5a5.js} +2 -2
- package/dist/{chunk-h43jp8ws.js.map → chunk-pe46a5a5.js.map} +1 -1
- package/dist/{chunk-6yhpprzs.js → chunk-pmyh33v5.js} +2 -2
- package/dist/{chunk-6yhpprzs.js.map → chunk-pmyh33v5.js.map} +1 -1
- package/dist/{chunk-mr94nfp1.js → chunk-pya4rqm2.js} +3 -3
- package/dist/{chunk-mr94nfp1.js.map → chunk-pya4rqm2.js.map} +1 -1
- package/dist/{chunk-jaa6xkeh.js → chunk-qdj8ek8z.js} +2 -2
- package/dist/{chunk-jaa6xkeh.js.map → chunk-qdj8ek8z.js.map} +1 -1
- package/dist/{chunk-0yj0s1pn.js → chunk-qhz0x97z.js} +2 -2
- package/dist/{chunk-0yj0s1pn.js.map → chunk-qhz0x97z.js.map} +1 -1
- package/dist/chunk-qycwjzsv.js +9 -0
- package/dist/chunk-qycwjzsv.js.map +10 -0
- package/dist/{chunk-nz8z8jr1.js → chunk-rpyczdta.js} +3 -3
- package/dist/{chunk-nz8z8jr1.js.map → chunk-rpyczdta.js.map} +1 -1
- package/dist/{chunk-9rr5h818.js → chunk-rtawbqec.js} +3 -3
- package/dist/{chunk-9rr5h818.js.map → chunk-rtawbqec.js.map} +1 -1
- package/dist/{chunk-3wnghdsx.js → chunk-rttrpjqk.js} +2 -2
- package/dist/{chunk-3wnghdsx.js.map → chunk-rttrpjqk.js.map} +1 -1
- package/dist/{chunk-m53fgf20.js → chunk-s5jxc63j.js} +3 -3
- package/dist/{chunk-m53fgf20.js.map → chunk-s5jxc63j.js.map} +1 -1
- package/dist/{chunk-48gmyaxc.js → chunk-sd0c2001.js} +2 -2
- package/dist/{chunk-48gmyaxc.js.map → chunk-sd0c2001.js.map} +1 -1
- package/dist/chunk-skf89vrv.js +5 -0
- package/dist/chunk-skf89vrv.js.map +10 -0
- package/dist/chunk-szn2n976.js +24 -0
- package/dist/{chunk-2yw4yezc.js.map → chunk-szn2n976.js.map} +3 -3
- package/dist/{chunk-gemzbw7f.js → chunk-v2ggafz1.js} +2 -2
- package/dist/{chunk-gemzbw7f.js.map → chunk-v2ggafz1.js.map} +1 -1
- package/dist/{chunk-rhek27sj.js → chunk-v8v5qfnh.js} +3 -3
- package/dist/{chunk-rhek27sj.js.map → chunk-v8v5qfnh.js.map} +1 -1
- package/dist/{chunk-d2c3947c.js → chunk-w3812s34.js} +2 -2
- package/dist/{chunk-d2c3947c.js.map → chunk-w3812s34.js.map} +1 -1
- package/dist/{chunk-tk135gmj.js → chunk-w4z6x54b.js} +3 -3
- package/dist/{chunk-tk135gmj.js.map → chunk-w4z6x54b.js.map} +1 -1
- package/dist/{chunk-65beps2q.js → chunk-w61sphn5.js} +3 -3
- package/dist/{chunk-65beps2q.js.map → chunk-w61sphn5.js.map} +1 -1
- package/dist/{chunk-cvr5624r.js → chunk-wbg2tza5.js} +1 -1
- package/dist/{chunk-9d2d08qm.js → chunk-y434jc1c.js} +2 -2
- package/dist/{chunk-9d2d08qm.js.map → chunk-y434jc1c.js.map} +1 -1
- package/dist/{chunk-shfe0b22.js → chunk-ykz38t0t.js} +2 -2
- package/dist/{chunk-shfe0b22.js.map → chunk-ykz38t0t.js.map} +1 -1
- package/dist/{chunk-krk7mcgm.js → chunk-yzhv93b0.js} +3 -3
- package/dist/{chunk-krk7mcgm.js.map → chunk-yzhv93b0.js.map} +1 -1
- package/dist/{chunk-rhvc1axc.js → chunk-z5jydj5r.js} +2 -2
- package/dist/{chunk-rhvc1axc.js.map → chunk-z5jydj5r.js.map} +1 -1
- package/dist/chunk-zmf3vhex.js +10 -0
- package/dist/{chunk-dyp0wg9e.js.map → chunk-zmf3vhex.js.map} +8 -4
- package/dist/{chunk-sx340k85.js → chunk-zsfwcdqn.js} +2 -2
- package/dist/{chunk-sx340k85.js.map → chunk-zsfwcdqn.js.map} +1 -1
- package/dist/{chunk-4fx8p02c.js → chunk-zsvav1dk.js} +2 -2
- package/dist/{chunk-4fx8p02c.js.map → chunk-zsvav1dk.js.map} +1 -1
- package/dist/chunks/{ThemeProvider-BLI4zpLu.js → ThemeProvider-CbOx8IRl.js} +581 -2
- package/dist/chunks/ThemeProvider-CbOx8IRl.js.map +1 -0
- package/dist/client/auth/useEmailCode.d.ts.map +1 -1
- package/dist/client/auth/useSignIn.d.ts.map +1 -1
- package/dist/client/auth/useSignOut.d.ts.map +1 -1
- package/dist/client/index.d.ts +5 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +216 -8
- package/dist/client/index.js.map +1 -1
- package/dist/client/init.d.ts +8 -0
- package/dist/client/init.d.ts.map +1 -1
- package/dist/client/realtime/FakeSocket.d.ts +47 -0
- package/dist/client/realtime/FakeSocket.d.ts.map +1 -0
- package/dist/client/realtime/RealtimeClient.d.ts +169 -0
- package/dist/client/realtime/RealtimeClient.d.ts.map +1 -0
- package/dist/client/realtime/RealtimeContext.d.ts +8 -0
- package/dist/client/realtime/RealtimeContext.d.ts.map +1 -0
- package/dist/client/realtime/useChannelSubscription.d.ts +32 -0
- package/dist/client/realtime/useChannelSubscription.d.ts.map +1 -0
- package/dist/client/rpc.d.ts +11 -0
- package/dist/client/rpc.d.ts.map +1 -1
- package/dist/client/useChannel.d.ts +87 -0
- package/dist/client/useChannel.d.ts.map +1 -0
- package/dist/client/useMutation.d.ts.map +1 -1
- package/dist/client/useQuery.d.ts +13 -0
- package/dist/client/useQuery.d.ts.map +1 -1
- package/dist/config/index.js +1 -1
- package/dist/console/run.js +2 -2
- package/dist/console/run.js.map +1 -1
- package/dist/container/index.js +2 -2
- package/dist/container/index.js.map +1 -1
- package/dist/database/index.js +2 -2
- package/dist/database/index.js.map +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/Broadcast.d.ts +68 -0
- package/dist/facades/Broadcast.d.ts.map +1 -0
- package/dist/facades/index.d.ts +1 -0
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/foundation/index.js +2 -2
- package/dist/foundation/index.js.map +1 -1
- package/dist/gemi.d.ts +19 -6
- package/dist/http/ChannelRouter.d.ts +171 -0
- package/dist/http/ChannelRouter.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/dictionaryRuntime.js +2 -2
- package/dist/i18n/dictionaryRuntime.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.js.map +2 -2
- package/dist/kernel/Kernel.d.ts +6 -0
- package/dist/kernel/Kernel.d.ts.map +1 -1
- package/dist/kernel/index.js +3 -3
- package/dist/kernel/index.js.map +5 -6
- package/dist/kernel/providers.d.ts +2 -2
- package/dist/kernel/providers.d.ts.map +1 -1
- package/dist/orm/context.d.ts.map +1 -1
- package/dist/orm/index.js +2 -2
- package/dist/orm/index.js.map +1 -1
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/httpDev.d.ts +1 -2
- package/dist/server/httpDev.d.ts.map +1 -1
- package/dist/server/httpProd.d.ts +1 -1
- package/dist/server/httpProd.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +3 -3
- package/dist/server/shutdown.d.ts +9 -0
- package/dist/server/shutdown.d.ts.map +1 -1
- package/dist/services/broadcast/BroadcastDriver.d.ts +75 -0
- package/dist/services/broadcast/BroadcastDriver.d.ts.map +1 -0
- package/dist/services/broadcast/BroadcastEvent.d.ts +67 -0
- package/dist/services/broadcast/BroadcastEvent.d.ts.map +1 -0
- package/dist/services/broadcast/BroadcastManager.d.ts +148 -0
- package/dist/services/broadcast/BroadcastManager.d.ts.map +1 -0
- package/dist/services/broadcast/BroadcastServiceProvider.d.ts +26 -0
- package/dist/services/broadcast/BroadcastServiceProvider.d.ts.map +1 -0
- package/dist/services/broadcast/FakeBroadcastManager.d.ts +45 -0
- package/dist/services/broadcast/FakeBroadcastManager.d.ts.map +1 -0
- package/dist/services/broadcast/MemoryBroadcastDriver.d.ts +23 -0
- package/dist/services/broadcast/MemoryBroadcastDriver.d.ts.map +1 -0
- package/dist/services/broadcast/RedisBroadcastDriver.d.ts +155 -0
- package/dist/services/broadcast/RedisBroadcastDriver.d.ts.map +1 -0
- package/dist/services/broadcast/SocketHub.d.ts +201 -0
- package/dist/services/broadcast/SocketHub.d.ts.map +1 -0
- package/dist/services/broadcast/brand.d.ts +16 -0
- package/dist/services/broadcast/brand.d.ts.map +1 -0
- package/dist/services/broadcast/channels.d.ts +77 -0
- package/dist/services/broadcast/channels.d.ts.map +1 -0
- package/dist/services/broadcast/config.d.ts +106 -0
- package/dist/services/broadcast/config.d.ts.map +1 -0
- package/dist/services/broadcast/protocol.d.ts +123 -0
- package/dist/services/broadcast/protocol.d.ts.map +1 -0
- package/dist/services/broadcast/socketTag.d.ts +17 -0
- package/dist/services/broadcast/socketTag.d.ts.map +1 -0
- package/dist/services/broadcast/types.d.ts +27 -0
- package/dist/services/broadcast/types.d.ts.map +1 -0
- package/dist/services/broadcast/wire.d.ts +35 -0
- package/dist/services/broadcast/wire.d.ts.map +1 -0
- package/dist/services/broadcast/workerWarning.d.ts +10 -0
- package/dist/services/broadcast/workerWarning.d.ts.map +1 -0
- package/dist/services/events/EventManager.d.ts +6 -0
- package/dist/services/events/EventManager.d.ts.map +1 -1
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +9 -9
- package/dist/services/index.js.map +4 -3
- package/dist/services/queue/WorkerProcess.d.ts.map +1 -1
- package/dist/services/queue/work.js +2 -2
- package/dist/services/queue/work.js.map +5 -4
- package/dist/services/router/config.d.ts +7 -0
- package/dist/services/router/config.d.ts.map +1 -1
- package/dist/stats/route-table.js +1 -1
- package/dist/support/index.js +2 -2
- package/dist/support/index.js.map +1 -1
- package/dist/testing/Page.d.ts +8 -0
- package/dist/testing/Page.d.ts.map +1 -1
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +174 -8
- package/dist/testing/index.js.map +1 -1
- package/dist/vitest/index.js +1 -1
- package/package.json +1 -1
- package/skills/gemi-react-best-practices/SKILL.md +3 -1
- package/skills/gemi-react-best-practices/rules/query-live-over-polling.md +56 -0
- package/dist/chunk-2n3pgfnb.js +0 -5
- package/dist/chunk-2n3pgfnb.js.map +0 -10
- package/dist/chunk-2yw4yezc.js +0 -24
- package/dist/chunk-3rvn9a76.js +0 -58
- package/dist/chunk-3s21p9n2.js +0 -57
- package/dist/chunk-dyp0wg9e.js +0 -10
- package/dist/chunk-htgmy3x7.js +0 -5
- package/dist/chunk-krtybgz1.js +0 -4
- package/dist/chunk-krtybgz1.js.map +0 -10
- package/dist/chunk-s07v65x6.js +0 -9
- package/dist/chunk-s07v65x6.js.map +0 -10
- package/dist/chunks/ThemeProvider-BLI4zpLu.js.map +0 -1
- /package/dist/{chunk-dhbgrv58.js.map → chunk-3j6s5bmx.js.map} +0 -0
- /package/dist/{chunk-zg6hmc48.js.map → chunk-5e22tm7m.js.map} +0 -0
- /package/dist/{chunk-0k02tza1.js.map → chunk-65s834td.js.map} +0 -0
- /package/dist/{chunk-y6wt5b6t.js.map → chunk-c4jnxmf2.js.map} +0 -0
- /package/dist/{chunk-wjkh2gem.js.map → chunk-j7v7dft7.js.map} +0 -0
- /package/dist/{chunk-cvr5624r.js.map → chunk-wbg2tza5.js.map} +0 -0
package/dist/client/init.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ComponentType } from "react";
|
|
2
2
|
import type { QueryConfig } from "./QueryManagerContext";
|
|
3
3
|
import { type ChunkLoadRecoveryOptions } from "./chunkLoadRecovery";
|
|
4
|
+
import { type RealtimeOptions } from "./realtime/RealtimeClient";
|
|
4
5
|
export interface InitOptions {
|
|
5
6
|
/**
|
|
6
7
|
* App-wide `useQuery` defaults (per-call config always wins). Mirror the
|
|
@@ -16,6 +17,13 @@ export interface InitOptions {
|
|
|
16
17
|
* boundary. See `recoverFromChunkLoadError`.
|
|
17
18
|
*/
|
|
18
19
|
chunkLoadRecovery?: ChunkLoadRecoveryOptions | false;
|
|
20
|
+
/**
|
|
21
|
+
* The broadcast socket the channel hooks use: `path` (match
|
|
22
|
+
* `defineBroadcastConfig({ path })`, default `/__gemi/socket`) and
|
|
23
|
+
* `hiddenDisconnectMs` (how long a hidden tab keeps its socket, default
|
|
24
|
+
* 60 000).
|
|
25
|
+
*/
|
|
26
|
+
realtime?: RealtimeOptions;
|
|
19
27
|
}
|
|
20
28
|
export declare function init(RootLayout: ComponentType<any>, options?: InitOptions): void;
|
|
21
29
|
export declare function create(RootLayout: ComponentType<any>, { componentTree, loaders, routeManifest, router, i18n, auth, prefetchedData, viewImportMap, }: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../client/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../client/init.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,GAAG,KAAK,CAAC;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAmCD,wBAAgB,IAAI,CAClB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAC9B,OAAO,GAAE,WAAgB,QA6B1B;AAoCD,wBAAgB,MAAM,CACpB,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,EAC9B,EACE,aAAa,EACb,OAAO,EACP,aAAa,EACb,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,cAAc,EACd,aAAa,GACd,EAAE,GAAG,QAiBP"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { DeniedCode } from "../../services/broadcast/protocol";
|
|
2
|
+
import { type ChannelListener, type ChannelParamValues, type ChannelStatus, type RealtimeSocket } from "./RealtimeClient";
|
|
3
|
+
export interface FakeSubscription {
|
|
4
|
+
pattern: string;
|
|
5
|
+
params: ChannelParamValues;
|
|
6
|
+
status: ChannelStatus;
|
|
7
|
+
code: DeniedCode | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A socket for component tests: what `<Page socket={...}>` hands the
|
|
11
|
+
* channel hooks instead of a WebSocket. Every subscription is `open` at
|
|
12
|
+
* once; the test pushes events and resyncs by hand.
|
|
13
|
+
*
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const socket = fakeSocket();
|
|
16
|
+
* render(<Page socket={socket}><SiteEditor /></Page>);
|
|
17
|
+
* act(() => socket.emit("site.:siteId", "changed", { pages: ["/about"] }));
|
|
18
|
+
* act(() => socket.resync());
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* No resync is run on subscribe, unlike the real socket's ack: a test says
|
|
22
|
+
* when one happens.
|
|
23
|
+
*/
|
|
24
|
+
export declare class FakeSocket implements RealtimeSocket {
|
|
25
|
+
private entries;
|
|
26
|
+
private status;
|
|
27
|
+
subscribe(pattern: string, params: ChannelParamValues, listener: ChannelListener): () => void;
|
|
28
|
+
/** The channels subscribed to right now. */
|
|
29
|
+
get subscriptions(): FakeSubscription[];
|
|
30
|
+
/**
|
|
31
|
+
* Delivers `event` to the open subscriptions `channel` names: a pattern
|
|
32
|
+
* (`"site.:siteId"`, every subscription to it, or only those with `params`
|
|
33
|
+
* when given), or a concrete topic (`"site.abc"`).
|
|
34
|
+
*/
|
|
35
|
+
emit(channel: string, event: string, data?: unknown, params?: ChannelParamValues): void;
|
|
36
|
+
/** Runs every matching subscription's resync (all when `channel` is left out). */
|
|
37
|
+
resync(channel?: string, params?: ChannelParamValues): void;
|
|
38
|
+
/** Sets every subscription's status (and the status new ones start in). */
|
|
39
|
+
setStatus(status: ChannelStatus): void;
|
|
40
|
+
/** Refuses the matching subscriptions with `code`. */
|
|
41
|
+
deny(channel: string, code?: DeniedCode, params?: ChannelParamValues): void;
|
|
42
|
+
private update;
|
|
43
|
+
private matching;
|
|
44
|
+
}
|
|
45
|
+
/** A `FakeSocket` for `<Page socket={...}>`. */
|
|
46
|
+
export declare function fakeSocket(): FakeSocket;
|
|
47
|
+
//# sourceMappingURL=FakeSocket.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeSocket.d.ts","sourceRoot":"","sources":["../../../client/realtime/FakeSocket.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAOD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,MAAM,CAAyB;IAEvC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI;IAsB7F,4CAA4C;IAC5C,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAOtC;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAOvF,kFAAkF;IAClF,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAO3D,2EAA2E;IAC3E,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAKtC,sDAAsD;IACtD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,UAAqB,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAIrF,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,QAAQ;CAiBjB;AAED,gDAAgD;AAChD,wBAAgB,UAAU,IAAI,UAAU,CAEvC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { type DeniedCode } from "../../services/broadcast/protocol";
|
|
2
|
+
/**
|
|
3
|
+
* Where a channel subscription stands, as the hooks report it.
|
|
4
|
+
*
|
|
5
|
+
* - `idle`: the hook is disabled (`enabled: false`).
|
|
6
|
+
* - `connecting`: the socket is opening, or the `sub` awaits its answer.
|
|
7
|
+
* - `open`: subscribed; events arrive.
|
|
8
|
+
* - `denied`: the server refused (or revoked) it; `code` says why.
|
|
9
|
+
* - `closed`: no socket, on the server, before the first effect, or while
|
|
10
|
+
* waiting to reconnect.
|
|
11
|
+
*/
|
|
12
|
+
export type ChannelStatus = "idle" | "connecting" | "open" | "denied" | "closed";
|
|
13
|
+
export type ChannelParamValues = Record<string, string | number>;
|
|
14
|
+
/** What a hook hands the socket for one channel. */
|
|
15
|
+
export interface ChannelListener {
|
|
16
|
+
onEvent?(event: string, data: unknown): void;
|
|
17
|
+
/** Events may have been missed: refetch what the channel describes. */
|
|
18
|
+
onResync?(): void;
|
|
19
|
+
onStatus?(status: ChannelStatus, code: DeniedCode | null): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* What the hooks subscribe through: the tab's `RealtimeClient`, or a
|
|
23
|
+
* `FakeSocket` in tests. Returns the release function.
|
|
24
|
+
*/
|
|
25
|
+
export interface RealtimeSocket {
|
|
26
|
+
subscribe(pattern: string, params: ChannelParamValues, listener: ChannelListener): () => void;
|
|
27
|
+
}
|
|
28
|
+
export interface RealtimeOptions {
|
|
29
|
+
/** The socket endpoint, `defineBroadcastConfig({ path })`. Default `/__gemi/socket`. */
|
|
30
|
+
path?: string;
|
|
31
|
+
/**
|
|
32
|
+
* How long a hidden tab keeps its socket, in ms, before disconnecting. On
|
|
33
|
+
* becoming visible again it reconnects and resyncs. Default 60 000.
|
|
34
|
+
*/
|
|
35
|
+
hiddenDisconnectMs?: number;
|
|
36
|
+
}
|
|
37
|
+
interface ClientInternals {
|
|
38
|
+
/** Test seam: the WebSocket class. */
|
|
39
|
+
WebSocket?: typeof WebSocket;
|
|
40
|
+
/** Test seam: the full URL, instead of the page's origin + `path`. */
|
|
41
|
+
url?: string;
|
|
42
|
+
random?: () => number;
|
|
43
|
+
}
|
|
44
|
+
/** The minimum gap between two resyncs of one subscription. */
|
|
45
|
+
export declare const RESYNC_COALESCE_MS = 2000;
|
|
46
|
+
/** How long the socket stays open after its last subscription goes. */
|
|
47
|
+
export declare const IDLE_CLOSE_MS = 5000;
|
|
48
|
+
/**
|
|
49
|
+
* How long a subscription outlives its last listener. A hook that remounts
|
|
50
|
+
* within it (StrictMode's double mount, a route change back, a list that
|
|
51
|
+
* re-renders its rows) picks the same subscription up again: no `unsub`, no
|
|
52
|
+
* new `sub`, nothing counted against the server's rate limit.
|
|
53
|
+
*/
|
|
54
|
+
export declare const RELEASE_LINGER_MS = 1500;
|
|
55
|
+
/**
|
|
56
|
+
* How often a `sub` denied with `limit` is resent on one socket. The socket
|
|
57
|
+
* holds as many channels as the server allows, so only a released one makes
|
|
58
|
+
* room: worth a few tries with backoff, not a retry for as long as the socket
|
|
59
|
+
* lives. Past it the subscription waits for the next connection.
|
|
60
|
+
*/
|
|
61
|
+
export declare const MAX_LIMIT_RETRIES = 5;
|
|
62
|
+
/** `pattern` and its params, canonical: two hooks on one channel share a `sub`. */
|
|
63
|
+
export declare function channelKey(pattern: string, params: ChannelParamValues): string;
|
|
64
|
+
/**
|
|
65
|
+
* The tab's one WebSocket to the app (`gemi.v1`), multiplexing every channel
|
|
66
|
+
* the mounted hooks subscribe to.
|
|
67
|
+
*
|
|
68
|
+
* Opened by the first subscription and closed a few seconds after the last
|
|
69
|
+
* one goes. Reconnects with full-jitter backoff (1 to 30 s), or after the
|
|
70
|
+
* server's `bye.retryAfter`, at once on `online`; resubscribes everything
|
|
71
|
+
* then. A tab hidden for `hiddenDisconnectMs` disconnects, and reconnects
|
|
72
|
+
* when shown. Every `subscribed` ack and every `gap` resyncs the
|
|
73
|
+
* subscription (coalesced to one per 2 s), because events are volatile: a
|
|
74
|
+
* client that may have missed one refetches over HTTP.
|
|
75
|
+
*/
|
|
76
|
+
export declare class RealtimeClient implements RealtimeSocket {
|
|
77
|
+
private options;
|
|
78
|
+
private readonly internals;
|
|
79
|
+
private ws;
|
|
80
|
+
private entries;
|
|
81
|
+
private byId;
|
|
82
|
+
private topics;
|
|
83
|
+
private nextId;
|
|
84
|
+
private attempt;
|
|
85
|
+
private tag;
|
|
86
|
+
private socketIdValue;
|
|
87
|
+
private heartbeatMs;
|
|
88
|
+
private reconnectTimer;
|
|
89
|
+
private idleTimer;
|
|
90
|
+
private hiddenTimer;
|
|
91
|
+
private pingTimer;
|
|
92
|
+
private livenessTimer;
|
|
93
|
+
private retryAfter;
|
|
94
|
+
private revoked;
|
|
95
|
+
private pausedWhileHidden;
|
|
96
|
+
private listening;
|
|
97
|
+
constructor(options?: RealtimeOptions, internals?: ClientInternals);
|
|
98
|
+
configure(options: RealtimeOptions): void;
|
|
99
|
+
/** The id to send as `X-Gemi-Socket`, while the socket is open. */
|
|
100
|
+
get socketId(): string | null;
|
|
101
|
+
subscribe(pattern: string, params: ChannelParamValues, listener: ChannelListener): () => void;
|
|
102
|
+
private release;
|
|
103
|
+
private drop;
|
|
104
|
+
private isOpen;
|
|
105
|
+
private connect;
|
|
106
|
+
private url;
|
|
107
|
+
private sendSub;
|
|
108
|
+
private send;
|
|
109
|
+
private handle;
|
|
110
|
+
private onClosed;
|
|
111
|
+
private scheduleReconnect;
|
|
112
|
+
private clearReconnect;
|
|
113
|
+
private random;
|
|
114
|
+
private startHeartbeat;
|
|
115
|
+
private stopHeartbeat;
|
|
116
|
+
/** Anything from the server proves the socket alive. */
|
|
117
|
+
private touch;
|
|
118
|
+
private setStatus;
|
|
119
|
+
/** At most one resync per subscription per 2 s; a later one is deferred, not dropped. */
|
|
120
|
+
private resync;
|
|
121
|
+
/**
|
|
122
|
+
* A transient denial (`rate_limited`, `error`, `limit`) is retried on the
|
|
123
|
+
* same socket, with backoff: a healthy socket may never reconnect. `denied`
|
|
124
|
+
* and `revoked` are the channel's answer for this session, so they wait for
|
|
125
|
+
* the next connection (a sign-in reconnects), and a permanent one is never
|
|
126
|
+
* resent. `limit` gives up after `MAX_LIMIT_RETRIES` on one socket.
|
|
127
|
+
*/
|
|
128
|
+
private scheduleRetry;
|
|
129
|
+
private clearRetry;
|
|
130
|
+
private dropTopic;
|
|
131
|
+
private scheduleIdleClose;
|
|
132
|
+
private cancelIdleClose;
|
|
133
|
+
/** Closes the socket without reconnecting. */
|
|
134
|
+
private close;
|
|
135
|
+
private listen;
|
|
136
|
+
private onOnline;
|
|
137
|
+
private onVisibility;
|
|
138
|
+
/**
|
|
139
|
+
* Drops the socket and opens a new one at once, when anything is
|
|
140
|
+
* subscribed. A socket keeps the session it was opened with (the upgrade's
|
|
141
|
+
* cookies), so signing in or out in this tab reconnects it: every channel
|
|
142
|
+
* is then authorized as the new session, and the acks resync.
|
|
143
|
+
*/
|
|
144
|
+
reconnect(): void;
|
|
145
|
+
/** For tests: drops the socket, timers and listeners. */
|
|
146
|
+
dispose(): void;
|
|
147
|
+
}
|
|
148
|
+
/** Full jitter, 1 to 30 s: `max(1 s, random × min(30 s, 1 s × 2^attempt))`. */
|
|
149
|
+
export declare function backoffDelay(attempt: number, random: number): number;
|
|
150
|
+
/**
|
|
151
|
+
* Sets the socket options (`init({ realtime })` calls it). Takes effect on
|
|
152
|
+
* the next connection.
|
|
153
|
+
*/
|
|
154
|
+
export declare function configureRealtime(options?: RealtimeOptions): void;
|
|
155
|
+
/** The tab's client, created on first use. `null` on the server. */
|
|
156
|
+
export declare function getRealtimeClient(): RealtimeClient | null;
|
|
157
|
+
/**
|
|
158
|
+
* Reconnects the tab's socket, if it has one, so its channels are authorized
|
|
159
|
+
* as the current session. The auth hooks call it after signing in or out.
|
|
160
|
+
* Never creates the client.
|
|
161
|
+
*/
|
|
162
|
+
export declare function reconnectRealtime(): void;
|
|
163
|
+
/**
|
|
164
|
+
* The open socket's id, for the `X-Gemi-Socket` header, or `null`. Never
|
|
165
|
+
* creates the client.
|
|
166
|
+
*/
|
|
167
|
+
export declare function currentSocketId(): string | null;
|
|
168
|
+
export {};
|
|
169
|
+
//# sourceMappingURL=RealtimeClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealtimeClient.d.ts","sourceRoot":"","sources":["../../../client/realtime/RealtimeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RealtimeSocket } from "./RealtimeClient";
|
|
2
|
+
/**
|
|
3
|
+
* The socket the channel hooks subscribe through. `null` (the default) is the
|
|
4
|
+
* tab's own `RealtimeClient`, created on first use in the browser; `<Page>`
|
|
5
|
+
* in `gemi/testing` provides a `FakeSocket`.
|
|
6
|
+
*/
|
|
7
|
+
export declare const RealtimeContext: import("react").Context<RealtimeSocket>;
|
|
8
|
+
//# sourceMappingURL=RealtimeContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealtimeContext.d.ts","sourceRoot":"","sources":["../../../client/realtime/RealtimeContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,eAAe,yCAA6C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { DeniedCode } from "../../services/broadcast/protocol";
|
|
2
|
+
import { type ChannelParamValues, type ChannelStatus } from "./RealtimeClient";
|
|
3
|
+
export interface ChannelState {
|
|
4
|
+
status: ChannelStatus;
|
|
5
|
+
/** Why the subscription was refused, while `status` is `denied`. */
|
|
6
|
+
code: DeniedCode | null;
|
|
7
|
+
}
|
|
8
|
+
export interface ChannelHandlers {
|
|
9
|
+
onEvent?: (event: string, data: unknown) => void;
|
|
10
|
+
onResync?: () => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The one subscription primitive the channel hooks share. Subscribes only in
|
|
14
|
+
* an effect, so a server render, a static page or an island that never
|
|
15
|
+
* mounts opens no socket; on the server it reports `closed`. Handlers may
|
|
16
|
+
* change between renders without resubscribing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function useChannelSubscription(pattern: string | null, params: ChannelParamValues, handlers: ChannelHandlers, enabled: boolean): ChannelState;
|
|
19
|
+
/**
|
|
20
|
+
* How long an event-driven refetch waits for the events behind it: a burst
|
|
21
|
+
* (a progress tick per second, a bulk update) refetches once per window, not
|
|
22
|
+
* once per event. The window starts at the first event and is never pushed
|
|
23
|
+
* back, so a steady stream still refetches every `EVENT_COALESCE_MS`.
|
|
24
|
+
*/
|
|
25
|
+
export declare const EVENT_COALESCE_MS = 150;
|
|
26
|
+
/**
|
|
27
|
+
* `fn`, run at most once per `ms`: the first call starts the window, and the
|
|
28
|
+
* calls inside it fold into the one run at its end. Stable across renders;
|
|
29
|
+
* a pending run is dropped on unmount.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useCoalesced(fn: () => void, ms?: number): () => void;
|
|
32
|
+
//# sourceMappingURL=useChannelSubscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChannelSubscription.d.ts","sourceRoot":"","sources":["../../../client/realtime/useChannelSubscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,oEAAoE;IACpE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAKD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,GACf,YAAY,CAmCd;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,GAAE,MAA0B,GAAG,MAAM,IAAI,CAoBvF"}
|
package/dist/client/rpc.d.ts
CHANGED
|
@@ -6,6 +6,17 @@ export interface ViewRPC {
|
|
|
6
6
|
}
|
|
7
7
|
export interface I18nDictionary {
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* The application's broadcast channels: `{ "site.:siteId": { params, events } }`.
|
|
11
|
+
*
|
|
12
|
+
* Generated from the app's `app/http/routes/channels.ts` (its `ChannelRouter`)
|
|
13
|
+
* by the framework's own `gemi.d.ts`, the way `RPC` is from its `ApiRouter`.
|
|
14
|
+
* `params` is what the pattern takes; `events` maps each event name the
|
|
15
|
+
* channel declares (`.events(...)`) to its payload. Empty for an app without a
|
|
16
|
+
* channels file, and then every channel takes any event.
|
|
17
|
+
*/
|
|
18
|
+
export interface BroadcastRPC {
|
|
19
|
+
}
|
|
9
20
|
/**
|
|
10
21
|
* The application's features: `{ "feature-key": boolean }`.
|
|
11
22
|
*
|
package/dist/client/rpc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../client/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,GAAI,SAAQ,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;CAAG;AAEjE,MAAM,WAAW,OAAO;CAAG;AAE3B,MAAM,WAAW,cAAc;CAAG;AAElC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;CAAG;AAE5B;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,QAAQ,CAAC;AAEpF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAC3D,MAAM,GACN;KACG,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,QAAQ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../client/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,GAAI,SAAQ,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC;CAAG;AAEjE,MAAM,WAAW,OAAO;CAAG;AAE3B,MAAM,WAAW,cAAc;CAAG;AAElC;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;CAAG;AAE5B;;;;;;;;;GASG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,MAAM,QAAQ,CAAC;AAEpF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAC3D,MAAM,GACN;KACG,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { ChannelParamValues } from "./realtime/RealtimeClient";
|
|
2
|
+
import { type ChannelState } from "./realtime/useChannelSubscription";
|
|
3
|
+
import type { BroadcastRPC } from "./rpc";
|
|
4
|
+
import type { GetRPC } from "./useQuery";
|
|
5
|
+
/** A channel pattern the app's `ChannelRouter` declares (any string without one). */
|
|
6
|
+
export type ChannelPattern<R = BroadcastRPC> = [keyof R] extends [never] ? string : keyof R & string;
|
|
7
|
+
/** The params a pattern takes, from `BroadcastRPC`. */
|
|
8
|
+
export type ChannelParamsFor<P extends string, R = BroadcastRPC> = P extends keyof R ? R[P] extends {
|
|
9
|
+
params: infer X;
|
|
10
|
+
} ? X : ChannelParamValues : ChannelParamValues;
|
|
11
|
+
/** The events a pattern's channel carries, from `BroadcastRPC`. */
|
|
12
|
+
export type ChannelEventsFor<P extends string, R = BroadcastRPC> = P extends keyof R ? R[P] extends {
|
|
13
|
+
events: infer E extends Record<string, unknown>;
|
|
14
|
+
} ? E : Record<string, unknown> : Record<string, unknown>;
|
|
15
|
+
export interface UseChannelOptions<P extends string> {
|
|
16
|
+
params?: ChannelParamsFor<P>;
|
|
17
|
+
}
|
|
18
|
+
export interface UseChannelConfig<Events extends Record<string, unknown>> {
|
|
19
|
+
/** A handler per event name, called with the event's payload. */
|
|
20
|
+
on?: {
|
|
21
|
+
[E in keyof Events]?: (data: Events[E]) => void;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Events may have been missed — after a (re)connect, once the subscription
|
|
25
|
+
* is acknowledged, or on a server `gap`: refetch what this channel
|
|
26
|
+
* describes. Coalesced to one call per 2 s.
|
|
27
|
+
*/
|
|
28
|
+
onResync?: () => void;
|
|
29
|
+
/** `false` unsubscribes. Default `true`. */
|
|
30
|
+
enabled?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export type { ChannelState };
|
|
33
|
+
export type { ChannelStatus } from "./realtime/RealtimeClient";
|
|
34
|
+
/**
|
|
35
|
+
* Subscribes to a broadcast channel while the component is mounted.
|
|
36
|
+
*
|
|
37
|
+
* ```tsx
|
|
38
|
+
* const { status } = useChannel("site.:siteId", { params: { siteId } }, {
|
|
39
|
+
* on: { changed: (d) => mutate({ path: "/pages/:pageId", params: { pageId } }) },
|
|
40
|
+
* onResync: () => mutate({ path: "/pages/:pageId", params: { pageId } }),
|
|
41
|
+
* });
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* Events are hints, delivered at most once: pair `on` with `onResync`, which
|
|
45
|
+
* runs whenever some may have been missed. `useChannelInvalidate` does both
|
|
46
|
+
* for the common case. On the server, and until the effect runs, `status` is
|
|
47
|
+
* `closed`.
|
|
48
|
+
*/
|
|
49
|
+
export declare function useChannel<P extends ChannelPattern>(pattern: P, options?: UseChannelOptions<P>, config?: UseChannelConfig<ChannelEventsFor<P>>): ChannelState;
|
|
50
|
+
type GetPath = [keyof GetRPC] extends [never] ? string : keyof GetRPC & string;
|
|
51
|
+
/**
|
|
52
|
+
* A query `useChannelInvalidate` refetches: an api path (its `:params`
|
|
53
|
+
* filled from the channel's params, over the route's), or one with its own
|
|
54
|
+
* params and a single search variant.
|
|
55
|
+
*/
|
|
56
|
+
export type InvalidatePath = GetPath | {
|
|
57
|
+
path: GetPath;
|
|
58
|
+
params?: Record<string, string | number>;
|
|
59
|
+
/** Only this search variant. Default: every cached variant. */
|
|
60
|
+
search?: Record<string, string | number | boolean | null>;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Refetches `paths` on any event on the channel and on every resync. Only
|
|
64
|
+
* the variants being rendered refetch now; the rest are marked stale. Events
|
|
65
|
+
* are coalesced: a burst within 150 ms refetches once.
|
|
66
|
+
*
|
|
67
|
+
* ```tsx
|
|
68
|
+
* useChannelInvalidate("page.:pageId", { pageId }, ["/pages/:pageId", "/pages/:pageId/pictures"]);
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
export declare function useChannelInvalidate<P extends ChannelPattern>(pattern: P, params: ChannelParamsFor<P> | undefined, paths: readonly InvalidatePath[], config?: {
|
|
72
|
+
enabled?: boolean;
|
|
73
|
+
}): ChannelState;
|
|
74
|
+
/**
|
|
75
|
+
* `useQuery`'s `live` option: the channel whose events and resyncs refetch
|
|
76
|
+
* the query. A pattern without params (`"user"`), `[pattern, params]`, or
|
|
77
|
+
* `{ channel, params }`.
|
|
78
|
+
*/
|
|
79
|
+
export type LiveChannel = ChannelPattern | readonly [ChannelPattern, ChannelParamValues] | {
|
|
80
|
+
channel: ChannelPattern;
|
|
81
|
+
params?: ChannelParamValues;
|
|
82
|
+
};
|
|
83
|
+
export declare function resolveLiveChannel(live: LiveChannel | null | undefined | false): {
|
|
84
|
+
pattern: string;
|
|
85
|
+
params: ChannelParamValues;
|
|
86
|
+
} | null;
|
|
87
|
+
//# sourceMappingURL=useChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChannel.d.ts","sourceRoot":"","sources":["../../client/useChannel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"useMutation.d.ts","sourceRoot":"","sources":["../../client/useMutation.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { ApiRouterHandler } from "../http/ApiRouter";
|
|
|
4
4
|
import type { UnwrapPromise } from "../utils/type";
|
|
5
5
|
import type { UrlParser } from "./types";
|
|
6
6
|
import { type RetryDelayOption, type RetryOption } from "./retryPolicy";
|
|
7
|
+
import { type LiveChannel } from "./useChannel";
|
|
7
8
|
export interface Config<T> {
|
|
8
9
|
fallbackData?: T;
|
|
9
10
|
/**
|
|
@@ -65,6 +66,18 @@ export interface Config<T> {
|
|
|
65
66
|
*/
|
|
66
67
|
suspense?: boolean;
|
|
67
68
|
refetchUntil?: (data: T, duration: number) => number;
|
|
69
|
+
/**
|
|
70
|
+
* A broadcast channel that keeps this query fresh: its events and resyncs
|
|
71
|
+
* refetch the query (every cached variant; the rendered ones now). While
|
|
72
|
+
* the channel is open, `refetchUntil` and `refreshInterval` are paused;
|
|
73
|
+
* while it is not (connecting, denied, offline, on the server), they run
|
|
74
|
+
* as the fallback.
|
|
75
|
+
*
|
|
76
|
+
* ```ts
|
|
77
|
+
* useQuery("/site-imports/:importId", { params }, { refetchUntil: (d) => (d.active ? 2000 : 0), live: "user" });
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
live?: LiveChannel;
|
|
68
81
|
}
|
|
69
82
|
export type GetRPC = {
|
|
70
83
|
[K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAKnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKzC,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useQuery.d.ts","sourceRoot":"","sources":["../../client/useQuery.ts"],"names":[],"mappings":"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"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../chunk-
|
|
2
|
+
import"../chunk-17dndh5z.js";function k(b){return b}function q(b){if((process.env.GEMI_REACT_COMPILER??"auto").toLowerCase()==="off")return!1;return b??!0}export{q as reactCompiler,k as defineConfig};
|
|
3
3
|
|
|
4
4
|
//# debugId=2F7F86887FCF6F1A64756E2164756E21
|
package/dist/console/run.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{ba as c}from"../chunk-
|
|
2
|
+
import{ba as c}from"../chunk-1qwhty9p.js";import{bb as f,cb as o}from"../chunk-fcqx2t0p.js";import{kc as A,nc as n,oc as u,yc as r}from"../chunk-rtawbqec.js";import"../chunk-675kzd7z.js";import"../chunk-92sk56n0.js";import{mh as g,qh as v}from"../chunk-v8v5qfnh.js";import{Bh as h}from"../chunk-2n4490pk.js";import"../chunk-96a1459v.js";import"../chunk-mqtfaqx5.js";import{ki as t}from"../chunk-pe46a5a5.js";import"../chunk-qycwjzsv.js";import"../chunk-mvkz22p4.js";import{oj as k}from"../chunk-rpyczdta.js";import"../chunk-zsvav1dk.js";import"../chunk-nnarmbjv.js";import{Ej as a}from"../chunk-nkzmk7v3.js";import"../chunk-17dndh5z.js";function E(){let z=Promise.resolve(),J=Promise.resolve(),Y=(Q,G)=>new Promise(($)=>{Q.write(G,()=>$())});return{stdout:(Q)=>{z=Y(process.stdout,Q)},stderr:(Q)=>{J=Y(process.stderr,Q)},flush:async()=>{await Promise.all([z,J])}}}function x(z){let J=z.writers??E();return{args:z.args,options:z.options,argv:z.argv,line:(Y="")=>J.stdout(`${Y}
|
|
3
3
|
`),error:(Y)=>J.stderr(`${Y}
|
|
4
4
|
`),fail:(Y,Q=1)=>{throw new A(Y,Q)}}}import b from"path";var Gz=u("encryption:rotate").describe("Re-encrypt encrypted columns that are still under an older key").arg("model",{description:"The model to rotate. Omit to rotate every model with encrypted columns"}).option("batchSize",{type:"number",default:500,description:"Rows read and rewritten per batch"}).option("dryRun",{type:"boolean",description:"Count what would be re-encrypted, and write nothing"}).option("encryptPlaintext",{type:"boolean",description:"Also encrypt values that are not encrypted yet (a column just marked @gemi.encrypted)"}).handle(async({args:z,options:J,line:Y,fail:Q})=>{let G=z.model?[z.model]:[...new Set(h().map((B)=>B.split(".")[0]))],$=z.model?null:Jz();if(G.length===0&&!$){Y("No model has encrypted columns.");return}if($){let B=await $.rotateEncryption({dryRun:J.dryRun});Y(`OAuth connections: ${B.scanned} rows, ${B.rotated} ${J.dryRun?"to re-encrypt":"re-encrypted"}`)}let _=0;for(let B of G){let V=await c(B,{batchSize:J.batchSize,dryRun:J.dryRun,encryptPlaintext:J.encryptPlaintext});_+=V.plaintext,Y(`${V.model} (${V.fields.join(", ")}): ${V.scanned} rows, ${V.rotated} ${J.dryRun?"to re-encrypt":"re-encrypted"}`+(V.skipped>0?`, ${V.skipped} changed meanwhile (already current)`:"")+(V.plaintext>0?`, ${V.plaintext} not encrypted yet`:""))}if(_>0)Q(`${_} value${_===1?" is":"s are"} not encrypted. If the column was just marked @gemi.encrypted, run again with --encrypt-plaintext.`)});function Jz(){let z=k();if(!z.bound(v))return null;let J=z.make(v);if(Object.keys(J.providers).length===0)return null;let Y=J.store;return Y instanceof g?Y:null}var m=[Gz];function R(z){return z.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z])([A-Z][a-z])/g,"$1-$2").toLowerCase()}function Qz(z){let J=new Map,Y=new Map;for(let Q of z){J.set(R(Q.name),Q),J.set(Q.name,Q);let G="alias"in Q?Q.alias:void 0;if(G)Y.set(G,Q)}return{byName:J,byAlias:Y}}function l(z){if(z==="--")return!0;if(!z.startsWith("-"))return!1;if(z==="-")return!1;if(/^-(\d|\.\d)/.test(z))return!1;return!0}function p(z,J){let{byName:Y,byAlias:Q}=Qz(z.options),G=[],$=[],_=new Map,B=!Y.has("help"),V=!Q.has("h"),F=!1,N=!1,W=(X)=>G.push(`Unknown option ${X} for command "${z.commandName}".`),T=(X,Z)=>{if(Z==="--help"||Z==="-h")N=!0;G.push(Z===void 0?`Option ${X} needs a value.`:`Option ${X} needs a value, but the next token is ${JSON.stringify(Z)}, which is another option. If that really is the value, write ${X}=${Z}.`)},j=0;while(j<J.length){let X=J[j];if(X==="--"){$.push(...J.slice(j+1));break}if(X.startsWith("--")){let Z=X.slice(2),K=Z.indexOf("="),M=K===-1?Z:Z.slice(0,K),O=K===-1?void 0:Z.slice(K+1),P=Y.get(M),D=!1;if(!P&&M.startsWith("no-")){let S=Y.get(M.slice(3));if(S&&S.type==="boolean")P=S,D=!0}if(!P&&M==="help"&&B){F=!0,j+=1;continue}if(!P){W(`--${M}`),j+=1;continue}if(P.type==="boolean"){if(O!==void 0&&O!=="true"&&O!=="false")G.push(`Option --${R(P.name)} is a flag and takes no value, but got ${JSON.stringify(O)}.`);else{let S=O===void 0?!0:O==="true";_.set(P.name,D?!S:S)}j+=1;continue}if(O!==void 0){_.set(P.name,O),j+=1;continue}let L=J[j+1];if(L===void 0||l(L)){T(`--${R(P.name)}`,L),j+=1;continue}_.set(P.name,L),j+=2;continue}if(X.startsWith("-")&&X.length>1){let Z=X.slice(1),K=!1;for(let M=0;M<Z.length;M+=1){let O=Q.get(Z[M]);if(!O){if(Z[M]==="h"&&V){F=!0;continue}W(`-${Z[M]}`);break}if(O.type==="boolean"){_.set(O.name,!0);continue}let P=Z.slice(M+1),D=P.startsWith("=")?P.slice(1):P;if(D!==""){_.set(O.name,D);break}let L=J[j+1];if(L===void 0||l(L)){T(`-${O.alias}`,L);break}_.set(O.name,L),K=!0;break}j+=K?2:1;continue}$.push(X),j+=1}let H={},I=0;for(let X of z.args){if(X.variadic){let K=$.slice(I);if(I=$.length,H[X.name]=K,X.required&&K.length===0)G.push(`Missing required argument <${X.name}...>. Command "${z.commandName}" needs at least one.`);continue}let Z=$[I];if(I+=1,Z!==void 0){H[X.name]=Z;continue}if(X.default!==void 0){H[X.name]=X.default;continue}if(X.required)G.push(`Missing required argument <${X.name}>.`);H[X.name]=void 0}if(I<$.length){let X=$.slice(I);G.push(`Unexpected argument${X.length===1?"":"s"} ${X.map((Z)=>JSON.stringify(Z)).join(", ")}. Command "${z.commandName}" takes ${z.args.length} argument${z.args.length===1?"":"s"}.`)}let U={};for(let X of z.options){let Z=_.get(X.name);if(X.type==="boolean"){U[X.name]=Z===void 0?X.default??!1:Boolean(Z);continue}if(Z===void 0){if(X.default!==void 0)U[X.name]=X.default;else if(X.required)G.push(`Missing required option --${R(X.name)}.`),U[X.name]=void 0;else U[X.name]=void 0;continue}let K=String(Z);if(X.type==="number"){let M=Number(K);if(K.trim()===""||!Number.isFinite(M))G.push(`Option --${R(X.name)} expects a number, but got ${JSON.stringify(K)}.`),U[X.name]=void 0;else U[X.name]=M;continue}U[X.name]=K}let q=F&&!N;if(G.length>0)return{ok:!1,help:q,errors:G};return{ok:!0,help:q,args:H,options:U}}function C(z,J=" "){let Y=z.reduce((Q,[G])=>Math.max(Q,G.length),0);return z.map(([Q,G])=>G===""?`${J}${Q}`:`${J}${Q.padEnd(Y)} ${G}`)}function d(z){let J=z.variadic?`${z.name}...`:z.name;return z.required?`<${J}>`:`[${J}]`}function Xz(z){let J=(G)=>z.options.some(G),Y=J((G)=>G.name==="help"||R(G.name)==="help"),Q=J((G)=>("alias"in G)&&G.alias==="h");if(Y&&Q)return[];if(Y)return[["-h","Show this message"]];return[[`${Q?"":"-h, "}--help`,"Show this message"]]}function w(z){let J=[],Y=z.args.map(d).join(" "),Q=["gemi run",z.commandName,z.options.length>0?"[options]":"",Y].filter(Boolean).join(" ");if(J.push(`Usage: ${Q}`),z.description)J.push("",z.description);if(z.args.length>0)J.push("","Arguments:"),J.push(...C(z.args.map((G)=>{let $=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:""].filter(Boolean).join(" ");return[d(G),$]})));return J.push("","Options:"),J.push(...C([...z.options.map((G)=>{let $="alias"in G&&G.alias?`-${G.alias}, `:"",_=G.type==="boolean"?"":` <${G.type}>`,B=[G.description??"",G.default!==void 0?`(default: ${JSON.stringify(G.default)})`:"","required"in G&&G.required?"(required)":""].filter(Boolean).join(" ");return[`${$}--${R(G.name)}${_}`,B]}),...Xz(z)])),J.join(`
|
|
5
5
|
`)}function i(z){return["Provided by gemi:","",...C(z.map((J)=>[J.commandName,J.description]))].join(`
|
|
@@ -15,4 +15,4 @@ ${i(j)}`);return 0}let H=W.get(z.name)??j.find((Z)=>Z.commandName===z.name);if($
|
|
|
15
15
|
${Q.message}
|
|
16
16
|
\`gemi run\` boots your application the way the server does, so it needs the Kernel. Run it from the root of a gemi project.`,{cause:Q})}if(typeof Y.default!=="function")throw new f(`${J} has no default export. gemi expects the Kernel subclass to be the default export of that file.`);return new Y.default}function s(z,J,Y,Q="returned"){if(z===void 0||z===null)return 0;if(typeof z==="number"&&Number.isInteger(z)&&z>=0&&z<=255)return z;let G=J?`Command "${J.commandName}"`:"The command";return Y(`${G} ${Q} ${JSON.stringify(z)}, which is not an exit `+"code \u2014 an exit code is an integer from 0 to 255. Treating this as a "+"failure."),1}var[Zz,..._z]=process.argv.slice(2),zz=E();e({rootDir:process.cwd(),name:Zz,argv:_z,writers:zz}).then(async(z)=>{await zz.flush(),process.exit(z)});
|
|
17
17
|
|
|
18
|
-
//# debugId=
|
|
18
|
+
//# debugId=95F2D888774BDDA964756E2164756E21
|
package/dist/console/run.js.map
CHANGED
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
"/**\n * The entry point `gemi run` spawns.\n *\n * Exposed through the exports map as `gemi/console/run` and resolved by the CLI\n * out of the *application's* `node_modules`, the same way `dev` and `start`\n * resolve `gemi/bun/preload`. That indirection is the point: the runner has to\n * be the application's copy of gemi, not the one bundled into `dist/bin/gemi.js`\n * — see the note at the top of `runner.ts`.\n *\n * Nothing but argv handling lives here, so that everything worth testing lives\n * in `runConsole`, which returns an exit code instead of taking one.\n */\nimport { processWriters } from \"./context\";\nimport { runConsole } from \"./runner\";\n\n// The tail is forwarded exactly as commander handed it over, `--` and all.\n// commander passes a `--` through as a literal operand (verified: `gemi run x --\n// --weird` arrives as `[\"--\", \"--weird\"]`), and `parse.ts` already treats a `--`\n// as \"everything after this is positional\". Stripping it here — which an earlier\n// draft did — consumed the escape hatch before the only thing that reads it,\n// leaving `-- --weird` reported as an unknown option and `-- --` the only way to\n// pass a flag-shaped value.\nconst [name, ...argv] = process.argv.slice(2);\n\nconst writers = processWriters();\n\n// `.then` rather than a top-level `await`, so this file typechecks under the\n// package's inherited `module: NodeNext` — the same TS1309 that keeps `bun/` out\n// of tsconfig.json's `include`. Bun runs it as ESM either way; this just avoids\n// buying a nested tsconfig for two lines.\nrunConsole({ rootDir: process.cwd(), name, argv, writers }).then(\n async (code) => {\n // Everything written has to reach the OS before the exit below discards it —\n // see `processWriters` for what that costs when it is skipped.\n await writers.flush();\n\n // Explicit, and not belt-and-braces. `kernel.destroy()` stops the scheduler,\n // but an open database pool, a Redis client or an unref'd timer will happily\n // hold the loop open after the work is done — a command that finishes and then\n // sits there, which is the failure `kernel/exit.test.ts` exists for and the\n // one `orm/context.test.ts` names by example.\n process.exit(code);\n },\n);\n"
|
|
11
11
|
],
|
|
12
12
|
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
13
|
+
"debugId": "95F2D888774BDDA964756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/dist/container/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{
|
|
2
|
+
import{pj as e,qj as o}from"../chunk-zsvav1dk.js";import"../chunk-17dndh5z.js";export{o as Container,e as BindingResolutionError};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=13DE2D2D6B5617AC64756E2164756E21
|
package/dist/database/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Ea as N}from"../chunk-
|
|
2
|
+
import{Ea as N}from"../chunk-dxfhhw5h.js";import"../chunk-30xxc6r7.js";import"../chunk-s5jxc63j.js";import"../chunk-96a1459v.js";import"../chunk-pe46a5a5.js";import{Ci as j,Di as k,Fi as w,Gi as x,Hi as z,Ii as A,Ji as E,Ki as F,Li as G,Mi as H,Ni as I,Oi as J,Pi as K,Qi as L}from"../chunk-mvkz22p4.js";import"../chunk-17dndh5z.js";export{A as isSqlite,E as isMysqlFamily,z as inferDialect,j as defineDatabaseConfig,k as databaseConfigDefaults,w as UnknownDatabaseUrlError,H as UnknownConnectionError,I as ReservedConnectionNameError,x as MissingDatabaseUrlError,N as DatabaseServiceProvider,L as DatabaseManager,G as DEFAULT_CONNECTION,J as CrossConnectionTransactionError,K as Connection,F as AmbiguousSqlitePathError};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=F381755F8A5E082064756E2164756E21
|