@hugomrdias/foxer 0.1.3 → 0.1.11

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 (343) hide show
  1. package/CHANGELOG.md +71 -17
  2. package/README.md +77 -10
  3. package/dist/{src/api/runner.d.ts → api/create-api.d.ts} +2 -2
  4. package/dist/api/create-api.d.ts.map +1 -0
  5. package/dist/{src/api/runner.js → api/create-api.js} +2 -2
  6. package/dist/api/create-api.js.map +1 -0
  7. package/dist/api/index.d.ts.map +1 -0
  8. package/dist/api/index.js.map +1 -0
  9. package/dist/api/server.d.ts.map +1 -0
  10. package/dist/api/server.js.map +1 -0
  11. package/dist/api/sql-middleware.d.ts.map +1 -0
  12. package/dist/{src/api → api}/sql-middleware.js +3 -3
  13. package/dist/api/sql-middleware.js.map +1 -0
  14. package/dist/api/sql.d.ts.map +1 -0
  15. package/dist/api/sql.js.map +1 -0
  16. package/dist/api/sse.d.ts.map +1 -0
  17. package/dist/api/sse.js.map +1 -0
  18. package/dist/bin/create.d.ts.map +1 -0
  19. package/dist/{src/bin → bin}/create.js +4 -4
  20. package/dist/bin/create.js.map +1 -0
  21. package/dist/bin/dev.d.ts.map +1 -0
  22. package/dist/{src/bin → bin}/dev.js +9 -11
  23. package/dist/bin/dev.js.map +1 -0
  24. package/dist/bin/flags.d.ts.map +1 -0
  25. package/dist/{src/bin → bin}/flags.js +1 -1
  26. package/dist/bin/flags.js.map +1 -0
  27. package/dist/{src/bin → bin}/index.d.ts.map +1 -1
  28. package/dist/{src/bin → bin}/index.js +4 -2
  29. package/dist/bin/index.js.map +1 -0
  30. package/dist/bin/serve.d.ts +3 -0
  31. package/dist/bin/serve.d.ts.map +1 -0
  32. package/dist/bin/serve.js +53 -0
  33. package/dist/bin/serve.js.map +1 -0
  34. package/dist/bin/start.d.ts +3 -0
  35. package/dist/bin/start.d.ts.map +1 -0
  36. package/dist/bin/start.js +72 -0
  37. package/dist/bin/start.js.map +1 -0
  38. package/dist/bin/utils.d.ts.map +1 -0
  39. package/dist/bin/utils.js +39 -0
  40. package/dist/bin/utils.js.map +1 -0
  41. package/dist/config/config.d.ts.map +1 -0
  42. package/dist/config/config.js.map +1 -0
  43. package/dist/{src/config → config}/env.d.ts +1 -1
  44. package/dist/config/env.d.ts.map +1 -0
  45. package/dist/{src/config → config}/env.js +4 -3
  46. package/dist/config/env.js.map +1 -0
  47. package/dist/contants.d.ts.map +1 -0
  48. package/dist/contants.js.map +1 -0
  49. package/dist/{src/db → db}/actions/blocks.d.ts +9 -6
  50. package/dist/db/actions/blocks.d.ts.map +1 -0
  51. package/dist/{src/db → db}/actions/blocks.js +40 -44
  52. package/dist/db/actions/blocks.js.map +1 -0
  53. package/dist/db/actions/index.d.ts.map +1 -0
  54. package/dist/db/actions/index.js.map +1 -0
  55. package/dist/db/actions/transactions.d.ts.map +1 -0
  56. package/dist/db/actions/transactions.js.map +1 -0
  57. package/dist/{src/db → db}/client.d.ts +3 -3
  58. package/dist/db/client.d.ts.map +1 -0
  59. package/dist/{src/db → db}/client.js +9 -3
  60. package/dist/db/client.js.map +1 -0
  61. package/dist/{src/db → db}/column-types.d.ts +2 -2
  62. package/dist/db/column-types.d.ts.map +1 -0
  63. package/dist/{src/db → db}/column-types.js +11 -3
  64. package/dist/db/column-types.js.map +1 -0
  65. package/dist/db/encode.d.ts.map +1 -0
  66. package/dist/db/encode.js.map +1 -0
  67. package/dist/db/migrate.d.ts.map +1 -0
  68. package/dist/db/migrate.js.map +1 -0
  69. package/dist/{src/db → db}/schema/blocks.d.ts +16 -16
  70. package/dist/{src/db → db}/schema/blocks.d.ts.map +1 -1
  71. package/dist/db/schema/blocks.js.map +1 -0
  72. package/dist/{src/db → db}/schema/index.d.ts +44 -44
  73. package/dist/{src/db → db}/schema/index.d.ts.map +1 -1
  74. package/dist/db/schema/index.js.map +1 -0
  75. package/dist/{src/db → db}/schema/transactions.d.ts +6 -6
  76. package/dist/{src/db → db}/schema/transactions.d.ts.map +1 -1
  77. package/dist/{src/db → db}/schema/transactions.js +3 -1
  78. package/dist/db/schema/transactions.js.map +1 -0
  79. package/dist/db/transaction.d.ts.map +1 -0
  80. package/dist/db/transaction.js.map +1 -0
  81. package/dist/{src/hooks → hooks}/registry.d.ts +7 -3
  82. package/dist/hooks/registry.d.ts.map +1 -0
  83. package/dist/{src/hooks → hooks}/registry.js +5 -0
  84. package/dist/hooks/registry.js.map +1 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/indexer/backfill.d.ts.map +1 -0
  88. package/dist/{src/indexer → indexer}/backfill.js +22 -19
  89. package/dist/indexer/backfill.js.map +1 -0
  90. package/dist/{src/indexer/runner.d.ts → indexer/create-indexer.d.ts} +2 -2
  91. package/dist/indexer/create-indexer.d.ts.map +1 -0
  92. package/dist/{src/indexer/runner.js → indexer/create-indexer.js} +2 -2
  93. package/dist/indexer/create-indexer.js.map +1 -0
  94. package/dist/indexer/live.d.ts.map +1 -0
  95. package/dist/{src/indexer → indexer}/live.js +3 -3
  96. package/dist/indexer/live.js.map +1 -0
  97. package/dist/{src/indexer → indexer}/process-block.d.ts +4 -4
  98. package/dist/indexer/process-block.d.ts.map +1 -0
  99. package/dist/{src/indexer → indexer}/process-block.js +6 -31
  100. package/dist/indexer/process-block.js.map +1 -0
  101. package/dist/indexer/queue-block.d.ts.map +1 -0
  102. package/dist/{src/indexer → indexer}/queue-block.js +19 -1
  103. package/dist/indexer/queue-block.js.map +1 -0
  104. package/dist/{src/indexer → indexer}/reorg.d.ts +2 -2
  105. package/dist/indexer/reorg.d.ts.map +1 -0
  106. package/dist/indexer/reorg.js.map +1 -0
  107. package/dist/rpc/client.d.ts.map +1 -0
  108. package/dist/rpc/client.js.map +1 -0
  109. package/dist/rpc/get-block.d.ts.map +1 -0
  110. package/dist/rpc/get-block.js.map +1 -0
  111. package/dist/rpc/get-logs.d.ts.map +1 -0
  112. package/dist/{src/rpc → rpc}/get-logs.js +2 -2
  113. package/dist/rpc/get-logs.js.map +1 -0
  114. package/dist/schema.d.ts.map +1 -0
  115. package/dist/schema.js.map +1 -0
  116. package/dist/{src/types.d.ts → types.d.ts} +2 -0
  117. package/dist/types.d.ts.map +1 -0
  118. package/dist/types.js.map +1 -0
  119. package/dist/utils/bloom.d.ts.map +1 -0
  120. package/dist/utils/bloom.js.map +1 -0
  121. package/dist/utils/build-conflict-columns.d.ts.map +1 -0
  122. package/dist/utils/build-conflict-columns.js.map +1 -0
  123. package/dist/utils/common.d.ts.map +1 -0
  124. package/dist/utils/common.js.map +1 -0
  125. package/dist/utils/cursor.d.ts.map +1 -0
  126. package/dist/utils/cursor.js.map +1 -0
  127. package/dist/utils/format.d.ts.map +1 -0
  128. package/dist/utils/format.js.map +1 -0
  129. package/dist/utils/hash.d.ts.map +1 -0
  130. package/dist/utils/hash.js.map +1 -0
  131. package/dist/utils/json.d.ts.map +1 -0
  132. package/dist/utils/json.js.map +1 -0
  133. package/dist/utils/logger.d.ts.map +1 -0
  134. package/dist/{src/utils → utils}/logger.js +0 -3
  135. package/dist/utils/logger.js.map +1 -0
  136. package/dist/utils/shutdown.d.ts.map +1 -0
  137. package/dist/{src/utils → utils}/shutdown.js +3 -2
  138. package/dist/utils/shutdown.js.map +1 -0
  139. package/dist/utils/timer.d.ts.map +1 -0
  140. package/dist/utils/timer.js.map +1 -0
  141. package/dist/utils/types.d.ts.map +1 -0
  142. package/dist/{src → utils}/types.js.map +1 -1
  143. package/package.json +45 -41
  144. package/src/api/{runner.ts → create-api.ts} +2 -1
  145. package/src/api/server.ts +1 -0
  146. package/src/api/sql-middleware.ts +4 -3
  147. package/src/api/sql.ts +2 -1
  148. package/src/bin/create.ts +7 -8
  149. package/src/bin/dev.ts +11 -13
  150. package/src/bin/flags.ts +1 -1
  151. package/src/bin/index.ts +6 -2
  152. package/src/bin/serve.ts +65 -0
  153. package/src/bin/start.ts +87 -0
  154. package/src/bin/utils.ts +22 -25
  155. package/src/config/config.ts +1 -0
  156. package/src/config/env.ts +5 -3
  157. package/src/db/actions/blocks.ts +53 -52
  158. package/src/db/actions/transactions.ts +1 -0
  159. package/src/db/client.ts +12 -5
  160. package/src/db/column-types.ts +17 -6
  161. package/src/db/encode.ts +1 -0
  162. package/src/db/migrate.ts +1 -0
  163. package/src/db/schema/blocks.ts +1 -0
  164. package/src/db/schema/transactions.ts +4 -1
  165. package/src/hooks/registry.ts +15 -3
  166. package/src/indexer/backfill.ts +31 -20
  167. package/src/indexer/{runner.ts → create-indexer.ts} +1 -1
  168. package/src/indexer/live.ts +4 -3
  169. package/src/indexer/process-block.ts +13 -41
  170. package/src/indexer/queue-block.ts +25 -1
  171. package/src/indexer/reorg.ts +3 -2
  172. package/src/rpc/client.ts +1 -0
  173. package/src/rpc/get-block.ts +1 -0
  174. package/src/rpc/get-logs.ts +3 -2
  175. package/src/types.ts +3 -0
  176. package/src/utils/logger.ts +1 -3
  177. package/src/utils/shutdown.ts +3 -2
  178. package/src/utils/types.ts +1 -0
  179. package/template/{package.json → package.json.tpl} +10 -8
  180. package/template/{pnpm-workspace.yaml → pnpm-workspace.yaml.tpl} +1 -1
  181. package/template/{tsconfig.json → tsconfig.json.tpl} +1 -2
  182. package/template/turbo.json.tpl +22 -0
  183. package/tsconfig.json +3 -1
  184. package/dist/src/api/index.d.ts.map +0 -1
  185. package/dist/src/api/index.js.map +0 -1
  186. package/dist/src/api/runner.d.ts.map +0 -1
  187. package/dist/src/api/runner.js.map +0 -1
  188. package/dist/src/api/server.d.ts.map +0 -1
  189. package/dist/src/api/server.js.map +0 -1
  190. package/dist/src/api/sql-middleware.d.ts.map +0 -1
  191. package/dist/src/api/sql-middleware.js.map +0 -1
  192. package/dist/src/api/sql.d.ts.map +0 -1
  193. package/dist/src/api/sql.js.map +0 -1
  194. package/dist/src/api/sse.d.ts.map +0 -1
  195. package/dist/src/api/sse.js.map +0 -1
  196. package/dist/src/bin/create.d.ts.map +0 -1
  197. package/dist/src/bin/create.js.map +0 -1
  198. package/dist/src/bin/dev.d.ts.map +0 -1
  199. package/dist/src/bin/dev.js.map +0 -1
  200. package/dist/src/bin/flags.d.ts.map +0 -1
  201. package/dist/src/bin/flags.js.map +0 -1
  202. package/dist/src/bin/index.js.map +0 -1
  203. package/dist/src/bin/utils.d.ts.map +0 -1
  204. package/dist/src/bin/utils.js +0 -52
  205. package/dist/src/bin/utils.js.map +0 -1
  206. package/dist/src/config/config.d.ts.map +0 -1
  207. package/dist/src/config/config.js.map +0 -1
  208. package/dist/src/config/env.d.ts.map +0 -1
  209. package/dist/src/config/env.js.map +0 -1
  210. package/dist/src/contants.d.ts.map +0 -1
  211. package/dist/src/contants.js.map +0 -1
  212. package/dist/src/db/actions/blocks.d.ts.map +0 -1
  213. package/dist/src/db/actions/blocks.js.map +0 -1
  214. package/dist/src/db/actions/index.d.ts.map +0 -1
  215. package/dist/src/db/actions/index.js.map +0 -1
  216. package/dist/src/db/actions/transactions.d.ts.map +0 -1
  217. package/dist/src/db/actions/transactions.js.map +0 -1
  218. package/dist/src/db/client.d.ts.map +0 -1
  219. package/dist/src/db/client.js.map +0 -1
  220. package/dist/src/db/column-types.d.ts.map +0 -1
  221. package/dist/src/db/column-types.js.map +0 -1
  222. package/dist/src/db/encode.d.ts.map +0 -1
  223. package/dist/src/db/encode.js.map +0 -1
  224. package/dist/src/db/migrate.d.ts.map +0 -1
  225. package/dist/src/db/migrate.js.map +0 -1
  226. package/dist/src/db/schema/blocks.js.map +0 -1
  227. package/dist/src/db/schema/index.js.map +0 -1
  228. package/dist/src/db/schema/transactions.js.map +0 -1
  229. package/dist/src/db/transaction.d.ts.map +0 -1
  230. package/dist/src/db/transaction.js.map +0 -1
  231. package/dist/src/hooks/registry.d.ts.map +0 -1
  232. package/dist/src/hooks/registry.js.map +0 -1
  233. package/dist/src/index.d.ts.map +0 -1
  234. package/dist/src/index.js.map +0 -1
  235. package/dist/src/indexer/backfill.d.ts.map +0 -1
  236. package/dist/src/indexer/backfill.js.map +0 -1
  237. package/dist/src/indexer/live.d.ts.map +0 -1
  238. package/dist/src/indexer/live.js.map +0 -1
  239. package/dist/src/indexer/process-block.d.ts.map +0 -1
  240. package/dist/src/indexer/process-block.js.map +0 -1
  241. package/dist/src/indexer/queue-block.d.ts.map +0 -1
  242. package/dist/src/indexer/queue-block.js.map +0 -1
  243. package/dist/src/indexer/reorg.d.ts.map +0 -1
  244. package/dist/src/indexer/reorg.js.map +0 -1
  245. package/dist/src/indexer/runner.d.ts.map +0 -1
  246. package/dist/src/indexer/runner.js.map +0 -1
  247. package/dist/src/rpc/client.d.ts.map +0 -1
  248. package/dist/src/rpc/client.js.map +0 -1
  249. package/dist/src/rpc/get-block.d.ts.map +0 -1
  250. package/dist/src/rpc/get-block.js.map +0 -1
  251. package/dist/src/rpc/get-logs.d.ts.map +0 -1
  252. package/dist/src/rpc/get-logs.js.map +0 -1
  253. package/dist/src/schema.d.ts.map +0 -1
  254. package/dist/src/schema.js.map +0 -1
  255. package/dist/src/types.d.ts.map +0 -1
  256. package/dist/src/utils/bloom.d.ts.map +0 -1
  257. package/dist/src/utils/bloom.js.map +0 -1
  258. package/dist/src/utils/build-conflict-columns.d.ts.map +0 -1
  259. package/dist/src/utils/build-conflict-columns.js.map +0 -1
  260. package/dist/src/utils/common.d.ts.map +0 -1
  261. package/dist/src/utils/common.js.map +0 -1
  262. package/dist/src/utils/cursor.d.ts.map +0 -1
  263. package/dist/src/utils/cursor.js.map +0 -1
  264. package/dist/src/utils/format.d.ts.map +0 -1
  265. package/dist/src/utils/format.js.map +0 -1
  266. package/dist/src/utils/hash.d.ts.map +0 -1
  267. package/dist/src/utils/hash.js.map +0 -1
  268. package/dist/src/utils/json.d.ts.map +0 -1
  269. package/dist/src/utils/json.js.map +0 -1
  270. package/dist/src/utils/logger.d.ts.map +0 -1
  271. package/dist/src/utils/logger.js.map +0 -1
  272. package/dist/src/utils/shutdown.d.ts.map +0 -1
  273. package/dist/src/utils/shutdown.js.map +0 -1
  274. package/dist/src/utils/timer.d.ts.map +0 -1
  275. package/dist/src/utils/timer.js.map +0 -1
  276. package/dist/src/utils/types.d.ts.map +0 -1
  277. package/dist/src/utils/types.js.map +0 -1
  278. package/dist/tsconfig.tsbuildinfo +0 -1
  279. package/template/biome.template.json +0 -50
  280. /package/dist/{src/api → api}/index.d.ts +0 -0
  281. /package/dist/{src/api → api}/index.js +0 -0
  282. /package/dist/{src/api → api}/server.d.ts +0 -0
  283. /package/dist/{src/api → api}/server.js +0 -0
  284. /package/dist/{src/api → api}/sql-middleware.d.ts +0 -0
  285. /package/dist/{src/api → api}/sql.d.ts +0 -0
  286. /package/dist/{src/api → api}/sql.js +0 -0
  287. /package/dist/{src/api → api}/sse.d.ts +0 -0
  288. /package/dist/{src/api → api}/sse.js +0 -0
  289. /package/dist/{src/bin → bin}/create.d.ts +0 -0
  290. /package/dist/{src/bin → bin}/dev.d.ts +0 -0
  291. /package/dist/{src/bin → bin}/flags.d.ts +0 -0
  292. /package/dist/{src/bin → bin}/index.d.ts +0 -0
  293. /package/dist/{src/bin → bin}/utils.d.ts +0 -0
  294. /package/dist/{src/config → config}/config.d.ts +0 -0
  295. /package/dist/{src/config → config}/config.js +0 -0
  296. /package/dist/{src/contants.d.ts → contants.d.ts} +0 -0
  297. /package/dist/{src/contants.js → contants.js} +0 -0
  298. /package/dist/{src/db → db}/actions/index.d.ts +0 -0
  299. /package/dist/{src/db → db}/actions/index.js +0 -0
  300. /package/dist/{src/db → db}/actions/transactions.d.ts +0 -0
  301. /package/dist/{src/db → db}/actions/transactions.js +0 -0
  302. /package/dist/{src/db → db}/encode.d.ts +0 -0
  303. /package/dist/{src/db → db}/encode.js +0 -0
  304. /package/dist/{src/db → db}/migrate.d.ts +0 -0
  305. /package/dist/{src/db → db}/migrate.js +0 -0
  306. /package/dist/{src/db → db}/schema/blocks.js +0 -0
  307. /package/dist/{src/db → db}/schema/index.js +0 -0
  308. /package/dist/{src/db → db}/transaction.d.ts +0 -0
  309. /package/dist/{src/db → db}/transaction.js +0 -0
  310. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  311. /package/dist/{src/index.js → index.js} +0 -0
  312. /package/dist/{src/indexer → indexer}/backfill.d.ts +0 -0
  313. /package/dist/{src/indexer → indexer}/live.d.ts +0 -0
  314. /package/dist/{src/indexer → indexer}/queue-block.d.ts +0 -0
  315. /package/dist/{src/indexer → indexer}/reorg.js +0 -0
  316. /package/dist/{src/rpc → rpc}/client.d.ts +0 -0
  317. /package/dist/{src/rpc → rpc}/client.js +0 -0
  318. /package/dist/{src/rpc → rpc}/get-block.d.ts +0 -0
  319. /package/dist/{src/rpc → rpc}/get-block.js +0 -0
  320. /package/dist/{src/rpc → rpc}/get-logs.d.ts +0 -0
  321. /package/dist/{src/schema.d.ts → schema.d.ts} +0 -0
  322. /package/dist/{src/schema.js → schema.js} +0 -0
  323. /package/dist/{src/types.js → types.js} +0 -0
  324. /package/dist/{src/utils → utils}/bloom.d.ts +0 -0
  325. /package/dist/{src/utils → utils}/bloom.js +0 -0
  326. /package/dist/{src/utils → utils}/build-conflict-columns.d.ts +0 -0
  327. /package/dist/{src/utils → utils}/build-conflict-columns.js +0 -0
  328. /package/dist/{src/utils → utils}/common.d.ts +0 -0
  329. /package/dist/{src/utils → utils}/common.js +0 -0
  330. /package/dist/{src/utils → utils}/cursor.d.ts +0 -0
  331. /package/dist/{src/utils → utils}/cursor.js +0 -0
  332. /package/dist/{src/utils → utils}/format.d.ts +0 -0
  333. /package/dist/{src/utils → utils}/format.js +0 -0
  334. /package/dist/{src/utils → utils}/hash.d.ts +0 -0
  335. /package/dist/{src/utils → utils}/hash.js +0 -0
  336. /package/dist/{src/utils → utils}/json.d.ts +0 -0
  337. /package/dist/{src/utils → utils}/json.js +0 -0
  338. /package/dist/{src/utils → utils}/logger.d.ts +0 -0
  339. /package/dist/{src/utils → utils}/shutdown.d.ts +0 -0
  340. /package/dist/{src/utils → utils}/timer.d.ts +0 -0
  341. /package/dist/{src/utils → utils}/timer.js +0 -0
  342. /package/dist/{src/utils → utils}/types.d.ts +0 -0
  343. /package/dist/{src/utils → utils}/types.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,41 +1,95 @@
1
1
  # Changelog
2
2
 
3
- ## [0.1.3](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.2...foxer-v0.1.3) (2026-03-11)
3
+ ## [0.1.11](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.10...foxer-v0.1.11) (2026-03-23)
4
4
 
5
5
 
6
6
  ### Bug Fixes
7
7
 
8
- * update package.json files for foxer components to include repository details and publish configuration ([6f4dcac](https://github.com/hugomrdias/foxer/commit/6f4dcacd9b998f08a540561b97e8306e8051a843))
8
+ * update foxer configuration and environment handling ([64df052](https://github.com/hugomrdias/foxer/commit/64df052eace280a5074be4763f50871d74456e76))
9
9
 
10
- ## [0.1.2](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.1...foxer-v0.1.2) (2026-03-11)
10
+ ## [0.1.10](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.9...foxer-v0.1.10) (2026-03-23)
11
11
 
12
12
 
13
13
  ### Bug Fixes
14
14
 
15
- * update README to include support for live queries ([d4101b2](https://github.com/hugomrdias/foxer/commit/d4101b2b019f0ee6628e60fdcef6441f7ba84d73))
15
+ * update block and transaction handling in the database actions ([8d7df5e](https://github.com/hugomrdias/foxer/commit/8d7df5e7babdb0277d74a19360a16e2158e6469c))
16
+ * update dependencies and configuration ([9335f07](https://github.com/hugomrdias/foxer/commit/9335f07ea4df9f8f378ceac4a2c4f9f4d6c530fe))
17
+ * update dependencies and improve bytea handling in database ([1bff003](https://github.com/hugomrdias/foxer/commit/1bff003c6f21ffc6a22ad79cd32df6113e11bce8))
16
18
 
17
- ## [0.1.1](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.0...foxer-v0.1.1) (2026-03-11)
19
+ ## [0.1.9](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.8...foxer-v0.1.9) (2026-03-16)
18
20
 
19
21
 
20
22
  ### Bug Fixes
21
23
 
22
- * update README to include Hono middleware support for SQL over HTTP ([20c19b9](https://github.com/hugomrdias/foxer/commit/20c19b925e8da49076f21fa9bd4ee0e93885f8dd))
24
+ * enhance release workflow and update foxer configuration ([f6f3773](https://github.com/hugomrdias/foxer/commit/f6f3773a87658ff172ba1ba4899348a48d2486fe))
23
25
 
24
- ## [0.1.0](https://github.com/hugomrdias/foxer/compare/foxer-v0.0.7...foxer-v0.1.0) (2026-03-11)
26
+ ## [0.1.8](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.7...foxer-v0.1.8) (2026-03-16)
25
27
 
26
28
 
27
- ### Features
29
+ ### Bug Fixes
30
+
31
+ * update npm publish command and remove batch size from foxer config ([1de27ab](https://github.com/hugomrdias/foxer/commit/1de27ab86fdb801544db92b3485c6180d7d893f0))
32
+
33
+ ## [0.1.7](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.6...foxer-v0.1.7) (2026-03-16)
34
+
35
+
36
+ ### Bug Fixes
37
+
38
+ * update release workflow and foxer configuration ([0489392](https://github.com/hugomrdias/foxer/commit/048939280e434bb7b86ab207c7f120a16b86a114))
39
+
40
+ ## [0.1.6](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.5...foxer-v0.1.6) (2026-03-16)
41
+
42
+
43
+ ### Bug Fixes
44
+
45
+ * migrate package management from pnpm to bun ([6795718](https://github.com/hugomrdias/foxer/commit/6795718527732de1023a075e8dbd841b03d8bed3))
46
+
47
+ ## [0.1.5](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.4...foxer-v0.1.5) (2026-03-16)
48
+
49
+
50
+ ### Bug Fixes
51
+
52
+ * update check script in package.json files for foxer components ([9639807](https://github.com/hugomrdias/foxer/commit/96398072c86a8ff3d5ca4a2a8d2cb95418fba5ba))
53
+
54
+ ## [0.1.4](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.3...foxer-v0.1.4) (2026-03-15)
28
55
 
29
- * add database migration and schema for datasets, pieces, providers, and transactions; implement chunked inserts for performance ([144c870](https://github.com/hugomrdias/foxer/commit/144c8703406cae99950bfa30168baa3507d8427e))
30
- * cleanup and more events ([0cb8d44](https://github.com/hugomrdias/foxer/commit/0cb8d44f653fdbe4a5702e2bfaf6b9a6a3debcb0))
31
- * client, react, cli and app ([792a12a](https://github.com/hugomrdias/foxer/commit/792a12a4db8243d88b328765cba1b3341ff296f1))
32
- * implement API structure with database schema, session key management, and CLI commands for session key operations ([f4aeeb4](https://github.com/hugomrdias/foxer/commit/f4aeeb4641af1ab4910e61af6967b4a913e16c24))
33
- * live queries ([251e92f](https://github.com/hugomrdias/foxer/commit/251e92f46ce3637516e4aa4c37fb908010444fa6))
34
- * sql endpoint ([22b2bd8](https://github.com/hugomrdias/foxer/commit/22b2bd8d478eb3404c69b7016a7a059f52d77ec0))
35
56
 
57
+ ### Bug Fixes
58
+
59
+ * update foxer package configuration and dependencies ([980077b](https://github.com/hugomrdias/foxer/commit/980077b8f2b5847372894fdfa033825a179abc4c))
60
+ * update README.md to reflect new features and improvements in foxer ([b4ede99](https://github.com/hugomrdias/foxer/commit/b4ede995b408d7470e280ac6a4acff4ea5eb1f35))
61
+
62
+ ## [0.1.3](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.2...foxer-v0.1.3) (2026-03-11)
63
+
64
+ ### Bug Fixes
65
+
66
+ - update package.json files for foxer components to include repository details and publish configuration ([6f4dcac](https://github.com/hugomrdias/foxer/commit/6f4dcacd9b998f08a540561b97e8306e8051a843))
67
+
68
+ ## [0.1.2](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.1...foxer-v0.1.2) (2026-03-11)
69
+
70
+ ### Bug Fixes
71
+
72
+ - update README to include support for live queries ([d4101b2](https://github.com/hugomrdias/foxer/commit/d4101b2b019f0ee6628e60fdcef6441f7ba84d73))
73
+
74
+ ## [0.1.1](https://github.com/hugomrdias/foxer/compare/foxer-v0.1.0...foxer-v0.1.1) (2026-03-11)
75
+
76
+ ### Bug Fixes
77
+
78
+ - update README to include Hono middleware support for SQL over HTTP ([20c19b9](https://github.com/hugomrdias/foxer/commit/20c19b925e8da49076f21fa9bd4ee0e93885f8dd))
79
+
80
+ ## [0.1.0](https://github.com/hugomrdias/foxer/compare/foxer-v0.0.7...foxer-v0.1.0) (2026-03-11)
81
+
82
+ ### Features
83
+
84
+ - add database migration and schema for datasets, pieces, providers, and transactions; implement chunked inserts for performance ([144c870](https://github.com/hugomrdias/foxer/commit/144c8703406cae99950bfa30168baa3507d8427e))
85
+ - cleanup and more events ([0cb8d44](https://github.com/hugomrdias/foxer/commit/0cb8d44f653fdbe4a5702e2bfaf6b9a6a3debcb0))
86
+ - client, react, cli and app ([792a12a](https://github.com/hugomrdias/foxer/commit/792a12a4db8243d88b328765cba1b3341ff296f1))
87
+ - implement API structure with database schema, session key management, and CLI commands for session key operations ([f4aeeb4](https://github.com/hugomrdias/foxer/commit/f4aeeb4641af1ab4910e61af6967b4a913e16c24))
88
+ - live queries ([251e92f](https://github.com/hugomrdias/foxer/commit/251e92f46ce3637516e4aa4c37fb908010444fa6))
89
+ - sql endpoint ([22b2bd8](https://github.com/hugomrdias/foxer/commit/22b2bd8d478eb3404c69b7016a7a059f52d77ec0))
36
90
 
37
91
  ### Bug Fixes
38
92
 
39
- * enhance error handling in isWalEnabled function to catch and throw specific errors when checking WAL status ([4a2f269](https://github.com/hugomrdias/foxer/commit/4a2f269bc22d833e09c7f98e5e59c4afb0608647))
40
- * remove .gitignore file from foxer package; update biome.json template path and add new biome.template.json file ([29e9e98](https://github.com/hugomrdias/foxer/commit/29e9e98bfaa3606fdfa36d3c138d20805fa70f42))
41
- * update README files across the monorepo to enhance clarity and structure; add setup instructions, usage examples, and detailed descriptions for each package and app ([dd27678](https://github.com/hugomrdias/foxer/commit/dd276781e8891d5d0f11cef3a8101709a3a2dbb1))
93
+ - enhance error handling in isWalEnabled function to catch and throw specific errors when checking WAL status ([4a2f269](https://github.com/hugomrdias/foxer/commit/4a2f269bc22d833e09c7f98e5e59c4afb0608647))
94
+ - remove .gitignore file from foxer package; update biome.json template path and add new biome.template.json file ([29e9e98](https://github.com/hugomrdias/foxer/commit/29e9e98bfaa3606fdfa36d3c138d20805fa70f42))
95
+ - update README files across the monorepo to enhance clarity and structure; add setup instructions, usage examples, and detailed descriptions for each package and app ([dd27678](https://github.com/hugomrdias/foxer/commit/dd276781e8891d5d0f11cef3a8101709a3a2dbb1))
package/README.md CHANGED
@@ -4,13 +4,12 @@
4
4
 
5
5
  ## What it includes
6
6
 
7
- - `createConfig()` for strongly typed project configuration
8
- - Contract and event indexing with hook registration
9
- - Hono middleware with support for SQL over HTTP
10
- - Live queries support
11
- - Drizzle schema and relations support
7
+ - End-to-end type safety & autocomplete with no codegen
8
+ - Contract events indexing
9
+ - Hono middleware with support for SQL over HTTP and Live queries
10
+ - Database schema and relations powered by Drizzle
11
+ - Local development server and database with PGlite
12
12
  - A `foxer` CLI for project scaffolding and local development
13
- - Subpath exports for API and schema helpers
14
13
 
15
14
  ## Install
16
15
 
@@ -45,6 +44,7 @@ npx @hugomrdias/foxer create my-foxer-app --template app
45
44
  Create a `foxer.config.ts` file in your project root:
46
45
 
47
46
  ```ts
47
+ import { calibration } from '@filoz/synapse-core/chains'
48
48
  import { createConfig } from '@hugomrdias/foxer'
49
49
  import { http } from 'viem'
50
50
 
@@ -52,7 +52,7 @@ export const config = createConfig({
52
52
  client: {
53
53
  transport: http(process.env.RPC_URL),
54
54
  realtimeTransport: http(process.env.RPC_LIVE_URL),
55
- chain: /* your viem chain */,
55
+ chain: calibration,
56
56
  },
57
57
  contracts: {
58
58
  // contract definitions keyed by name
@@ -93,6 +93,75 @@ foxer dev --config ./foxer.config.ts
93
93
 
94
94
  The dev server also looks for `.env.local` in the project root.
95
95
 
96
+ ## Postgres recommendations
97
+
98
+ Foxer supports both `pglite` and Postgres, but production deployments should use Postgres when you need higher write throughput, concurrent reads, or live SQL subscriptions.
99
+
100
+ Live SQL requires logical replication to be enabled because Foxer creates a publication and subscribes to table changes at runtime.
101
+
102
+ Recommended Postgres settings for a dedicated Foxer instance:
103
+
104
+ ```conf
105
+ wal_level = logical
106
+ max_wal_senders = 8
107
+ max_replication_slots = 8
108
+ wal_compression = on
109
+ checkpoint_timeout = 15min
110
+ checkpoint_completion_target = 0.9
111
+ max_wal_size = 8GB
112
+ min_wal_size = 1GB
113
+ random_page_cost = 1.1
114
+ effective_io_concurrency = 200
115
+ default_statistics_target = 200
116
+ ```
117
+
118
+ If you treat the chain as the source of truth and can tolerate replaying the most recent blocks after a crash, `synchronous_commit = off` is a valid ingest-speed optimization.
119
+
120
+ Memory settings depend on the machine. A good starting point is:
121
+
122
+ - `shared_buffers`: about 25% of RAM
123
+ - `effective_cache_size`: about 60-75% of RAM
124
+ - `work_mem`: `16MB`
125
+ - `maintenance_work_mem`: `512MB`
126
+
127
+ Foxer now defaults the Node Postgres pool to:
128
+
129
+ - `application_name: 'foxer'`
130
+ - `max: 10`
131
+ - `connectionTimeoutMillis: 5000`
132
+ - `idleTimeoutMillis: 30000`
133
+
134
+ You can still override those defaults with `database.options` in `foxer.config.ts`:
135
+
136
+ ```ts
137
+ import { createConfig } from '@hugomrdias/foxer'
138
+ import { http } from 'viem'
139
+
140
+ export const config = createConfig({
141
+ client: {
142
+ transport: http(process.env.RPC_URL),
143
+ realtimeTransport: http(process.env.RPC_LIVE_URL),
144
+ chain: /* your viem chain */,
145
+ },
146
+ database: {
147
+ driver: 'postgres',
148
+ url: process.env.DATABASE_URL,
149
+ options: {
150
+ max: 20,
151
+ idleTimeoutMillis: 60_000,
152
+ },
153
+ },
154
+ contracts: {},
155
+ hooks: ({ registry }) => {
156
+ // register event handlers
157
+ },
158
+ hono: ({ db, logger }) => {
159
+ // return your Hono app
160
+ },
161
+ schema: {},
162
+ })
163
+ ```
164
+
96
165
  ## Example
97
166
 
98
167
  ```ts
@@ -102,9 +171,7 @@ import { http } from 'viem'
102
171
  export const config = createConfig({
103
172
  batchSize: 500,
104
173
  client: {
105
- transport: http(process.env.RPC_URL, {
106
- batch: { batchSize: 10 },
107
- }),
174
+ transport: http(process.env.RPC_URL),
108
175
  realtimeTransport: http(process.env.RPC_LIVE_URL),
109
176
  chain: /* calibration, mainnet, etc */,
110
177
  },
@@ -1,7 +1,7 @@
1
1
  import type { InternalConfig } from '../config/config.ts';
2
2
  import type { Database } from '../db/client.ts';
3
3
  import type { Logger } from '../utils/logger.ts';
4
- export declare function bootstrapApiServer(options: {
4
+ export declare function createApi(options: {
5
5
  db: Database;
6
6
  config: InternalConfig;
7
7
  logger: Logger;
@@ -9,4 +9,4 @@ export declare function bootstrapApiServer(options: {
9
9
  }): {
10
10
  stop: () => void;
11
11
  };
12
- //# sourceMappingURL=runner.d.ts.map
12
+ //# sourceMappingURL=create-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-api.d.ts","sourceRoot":"","sources":["../../src/api/create-api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGhD,wBAAgB,SAAS,CAAC,OAAO,EAAE;IACjC,EAAE,EAAE,QAAQ,CAAA;IACZ,MAAM,EAAE,cAAc,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb,GAAG;IAAE,IAAI,EAAE,MAAM,IAAI,CAAA;CAAE,CA8BvB"}
@@ -1,7 +1,7 @@
1
1
  import { serve } from '@hono/node-server';
2
2
  import shutdown from 'http-shutdown';
3
3
  import { createApiServer } from "./server.js";
4
- export function bootstrapApiServer(options) {
4
+ export function createApi(options) {
5
5
  const app = createApiServer({
6
6
  logger: options.logger,
7
7
  db: options.db,
@@ -26,4 +26,4 @@ export function bootstrapApiServer(options) {
26
26
  },
27
27
  };
28
28
  }
29
- //# sourceMappingURL=runner.js.map
29
+ //# sourceMappingURL=create-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-api.js","sourceRoot":"","sources":["../../src/api/create-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,QAAQ,MAAM,eAAe,CAAA;AAKpC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,UAAU,SAAS,CAAC,OAKzB;IACC,MAAM,GAAG,GAAG,eAAe,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,KAAK,CAClB;QACE,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,EACD,GAAG,EAAE;QACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAA;IACrE,CAAC,CACF,CAAA;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IAEhC,OAAO;QACL,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,4BAA4B,CAAC,CAAA;oBAC7D,OAAM;gBACR,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAA;YACrD,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,KAAK,UAAU,EAAc,MAAM,WAAW,CAAA;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,MAAM,EACN,MAAM,GACP,EAAE;IACD,EAAE,EAAE,QAAQ,CAAA;IACZ,MAAM,EAAE,cAAc,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;eACmC;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE;0CAmBzD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/api/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAmB,UAAU,EAAE,MAAM,WAAW,CAAA;AAMvD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAC9B,EAAE,EACF,MAAM,EACN,MAAM,GAKP;IACC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAyC,CAAA;IAE7D,GAAG,CAAC,GAAG,CACL,UAAU,CAAC;QACT,IAAI,EAAE,MAAM;KACb,CAAC,CACH,CAAA;IAED,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,MAAM,GACV,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI,CAAA;QAClE,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,IAAI;YACR,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,IAAI;SAC/C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC3C,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-middleware.d.ts","sourceRoot":"","sources":["../../src/api/sql-middleware.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAMhD,wBAAgB,aAAa,CAAC,EAC5B,EAAE,EACF,MAAM,GACP,EAAE;IACD,EAAE,EAAE,QAAQ,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,+DAgHA"}
@@ -65,17 +65,17 @@ export function sqlMiddleware({ db, logger, }) {
65
65
  unsubscribe();
66
66
  });
67
67
  });
68
- stream.writeSSE({
68
+ await stream.writeSSE({
69
69
  data: JSON.stringify(dbResult.result),
70
70
  });
71
71
  for (const table of tables) {
72
72
  const sub = await pg.subscribe(`*:${table}`, async () => {
73
73
  const dbResult = await executeSql({ db, query });
74
- stream.writeSSE({
74
+ await stream.writeSSE({
75
75
  data: JSON.stringify(dbResult.result),
76
76
  });
77
77
  });
78
- subscriptions.push(sub.unsubscribe);
78
+ subscriptions.push(() => sub.unsubscribe());
79
79
  }
80
80
  while (stream.closed === false && stream.aborted === false) {
81
81
  // keep the stream alive
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql-middleware.js","sourceRoot":"","sources":["../../src/api/sql-middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/api/sql.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,IAAI,EAGV,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAK3C,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,CAAC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAAC,CAiCxD;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAwDhC;AAED,wBAAsB,UAAU,CAAC,EAC/B,EAAE,EACF,KAAK,GACN,EAAE;IACD,EAAE,EAAE,QAAQ,CAAA;IACZ,KAAK,EAAE,gBAAgB,CAAA;CACxB,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CA4BhC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/api/sql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../src/api/sse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAQnD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../src/api/sse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,UAAU,QAAQ,CAAC,CAAU,EAAE,OAAe;IAClD,OAAO,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,CAAC,QAAQ,CAAC;YACpB,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,KAAK,EAAE,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/bin/create.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,OAAO,CAAA;AAgG7C,eAAO,MAAM,MAAM,EAAE,OA0FpB,CAAA"}
@@ -112,14 +112,14 @@ export const create = command({
112
112
  }
113
113
  mkdirSync(root, { recursive: true });
114
114
  p.log.step(`Scaffolding project in ${root}...`);
115
- const pkg = JSON.parse(readFileSync(resolve(__dirname, `../../../template/package.json`), 'utf-8'));
115
+ const pkg = JSON.parse(readFileSync(resolve(__dirname, `../../template/package.json.tpl`), 'utf-8'));
116
116
  pkg.name = packageName;
117
117
  writeFileSync(resolve(root, 'package.json'), `${JSON.stringify(pkg, null, 2)}\n`);
118
118
  if (pm === 'pnpm') {
119
- copy(resolve(__dirname, `../../../template/pnpm-workspace.yaml`), resolve(root, 'pnpm-workspace.yaml'));
119
+ copy(resolve(__dirname, `../../template/pnpm-workspace.yaml.tpl`), resolve(root, 'pnpm-workspace.yaml'));
120
120
  }
121
- copy(resolve(__dirname, `../../../template/biome.template.json`), resolve(root, 'biome.json'));
122
- copy(resolve(__dirname, `../../../template/tsconfig.json`), resolve(root, 'tsconfig.json'));
121
+ copy(resolve(__dirname, `../../template/turbo.json.tpl`), resolve(root, 'turbo.json'));
122
+ copy(resolve(__dirname, `../../template/tsconfig.json.tpl`), resolve(root, 'tsconfig.json'));
123
123
  // copy apps/foc-api
124
124
  await downloadTemplate('hugomrdias/foxer/examples/api', {
125
125
  dir: resolve(root, 'apps/api'),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/bin/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/bin/dev.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,OAAO,CAAA;AAe7C,eAAO,MAAM,GAAG,EAAE,OAsEjB,CAAA"}
@@ -2,29 +2,28 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { command } from 'cleye';
4
4
  import { gracefulExit } from 'exit-hook';
5
- import { bootstrapApiServer } from "../api/runner.js";
5
+ import { createApi } from "../api/create-api.js";
6
6
  import { createEnv } from "../config/env.js";
7
7
  import { createDatabase } from "../db/client.js";
8
8
  import { runMigrations } from "../db/migrate.js";
9
9
  import * as InternalSchema from "../db/schema/index.js";
10
- import { HookRegistry } from "../hooks/registry.js";
11
- import { bootstrapIndexer } from "../indexer/runner.js";
10
+ import { createRegistry } from "../hooks/registry.js";
11
+ import { createIndexer } from "../indexer/create-indexer.js";
12
12
  import { createLogger } from "../utils/logger.js";
13
- import { createExit, registerUnhandled } from "../utils/shutdown.js";
13
+ import { createExit } from "../utils/shutdown.js";
14
14
  import { globalFlags } from "./flags.js";
15
15
  import { loadConfig } from "./utils.js";
16
16
  export const dev = command({
17
17
  name: 'dev',
18
18
  flags: { ...globalFlags },
19
19
  help: {
20
- description: 'Start the development server with hot reloading',
20
+ description: 'Start the development server',
21
21
  },
22
22
  }, async (argv) => {
23
23
  const logger = createLogger({
24
24
  level: argv.flags.logLevel,
25
25
  mode: argv.flags.logMode,
26
26
  });
27
- registerUnhandled({ logger });
28
27
  if (!fs.existsSync(path.join(argv.flags.root, '.env.local'))) {
29
28
  logger.warn({
30
29
  msg: 'Local environment file (.env.local) not found',
@@ -43,16 +42,15 @@ export const dev = command({
43
42
  folder: path.resolve(argv.flags.root, config.drizzleFolder),
44
43
  logger,
45
44
  });
46
- const registry = new HookRegistry();
47
- config.hooks({ registry });
45
+ const registry = createRegistry({ config });
48
46
  const [api, indexer] = await Promise.all([
49
- bootstrapApiServer({
47
+ createApi({
50
48
  db: dbContext.db,
51
49
  config,
52
50
  logger,
53
51
  port: argv.flags.port,
54
52
  }),
55
- bootstrapIndexer({
53
+ createIndexer({
56
54
  logger,
57
55
  db: dbContext.db,
58
56
  registry,
@@ -64,7 +62,7 @@ export const dev = command({
64
62
  stop: async () => {
65
63
  indexer.stop();
66
64
  api.stop();
67
- await dbContext.close();
65
+ await dbContext.stop();
68
66
  },
69
67
  });
70
68
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/bin/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAgB,OAAO,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,MAAM,GAAG,GAAY,OAAO,CACjC;IACE,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE;IACzB,IAAI,EAAE;QACJ,WAAW,EAAE,8BAA8B;KAC5C;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;QAC1B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;KACzB,CAAC,CAAA;IAEF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7D,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,+CAA+C;SACrD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAClB,CAAA;QAED,MAAM,SAAS,GAAG,cAAc,CAAC;YAC/B,GAAG;YACH,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE;YACtD,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE;SAChE,CAAC,CAAA;QAEF,MAAM,aAAa,CAAC;YAClB,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC;YAC3D,MAAM;SACP,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAE3C,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACvC,SAAS,CAAC;gBACR,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,MAAM;gBACN,MAAM;gBACN,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aACtB,CAAC;YACF,aAAa,CAAC;gBACZ,MAAM;gBACN,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,QAAQ;gBACR,MAAM;aACP,CAAC;SACH,CAAC,CAAA;QAEF,UAAU,CAAC;YACT,MAAM;YACN,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,OAAO,CAAC,IAAI,EAAE,CAAA;gBACd,GAAG,CAAC,IAAI,EAAE,CAAA;gBACV,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;YACxB,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,CAAC,CAAA;QAC5C,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CACF,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../../src/bin/flags.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,gBAAgB,6BAA8B,CAAA;AAEpD,KAAK,QAAQ,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAA;AAWjD,QAAA,MAAM,SAAS,yEAQL,CAAA;AACV,KAAK,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAU3C,eAAO,MAAM,WAAW;;;;;;6BApCL,MAAM;;;;;kCA6BG,SAAS;;;;;iCApBX,QAAQ;;;;;;;;;CAqDxB,CAAA"}
@@ -44,7 +44,7 @@ export const globalFlags = {
44
44
  logMode: {
45
45
  type: LogMode,
46
46
  description: 'The log mode to use',
47
- default: LogMode(process.env.NODE_ENV !== 'production' ? 'pretty' : 'json'),
47
+ default: LogMode(process.env.NODE_ENV === 'production' ? 'json' : 'pretty'),
48
48
  },
49
49
  port: {
50
50
  type: Number,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../../src/bin/flags.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE;IAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAA;AAIpD,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,OAAiB,EAAE,EAAE;IACpC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,OAAO,GAAG,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,SAAS,GAAG;IAChB,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;CACA,CAAA;AAGV,uBAAuB;AACvB,MAAM,QAAQ,GAAG,CAAC,QAAmB,EAAE,EAAE;IACvC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AACD,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,6BAA6B;KAC3C;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;KACvB;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,QAAQ,CAAE,OAAO,CAAC,GAAG,CAAC,SAAuB,IAAI,MAAM,CAAC;KAClE;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC5E;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,oCAAoC;QACjD,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;KAC5D;CACO,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bin/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":""}
@@ -5,13 +5,15 @@ import { fileURLToPath } from 'node:url';
5
5
  import { cli } from 'cleye';
6
6
  import { create } from "./create.js";
7
7
  import { dev } from "./dev.js";
8
+ import { serve } from "./serve.js";
9
+ import { start } from "./start.js";
8
10
  const __dirname = dirname(fileURLToPath(import.meta.url));
9
- const packageJsonPath = resolve(__dirname, '../../../package.json');
11
+ const packageJsonPath = resolve(__dirname, '../../package.json');
10
12
  const packageJson = JSON.parse(readFileSync(packageJsonPath, { encoding: 'utf8' }));
11
13
  const argv = cli({
12
14
  name: 'foxer',
13
15
  version: packageJson.version,
14
- commands: [dev, create],
16
+ commands: [dev, create, start, serve],
15
17
  help: {
16
18
  version: packageJson.version,
17
19
  },
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AACzD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;AAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,YAAY,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CACpD,CAAA;AAED,MAAM,IAAI,GAAG,GAAG,CAAC;IACf,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,WAAW,CAAC,OAAO;IAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;IACrC,IAAI,EAAE;QACJ,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B;CACF,CAAC,CAAA;AAEF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAClB,IAAI,CAAC,QAAQ,EAAE,CAAA;IACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Command } from 'cleye';
2
+ export declare const serve: Command;
3
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/bin/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,OAAO,CAAA;AAY7C,eAAO,MAAM,KAAK,EAAE,OAoDnB,CAAA"}
@@ -0,0 +1,53 @@
1
+ import { command } from 'cleye';
2
+ import { gracefulExit } from 'exit-hook';
3
+ import { createApi } from "../api/create-api.js";
4
+ import { createEnv } from "../config/env.js";
5
+ import { createDatabase } from "../db/client.js";
6
+ import * as InternalSchema from "../db/schema/index.js";
7
+ import { createLogger } from "../utils/logger.js";
8
+ import { createExit } from "../utils/shutdown.js";
9
+ import { globalFlags } from "./flags.js";
10
+ import { loadConfig } from "./utils.js";
11
+ export const serve = command({
12
+ name: 'serve',
13
+ flags: { ...globalFlags },
14
+ help: {
15
+ description: 'Serve the production HTTP API and without the indexer',
16
+ },
17
+ }, async (argv) => {
18
+ const logger = createLogger({
19
+ level: argv.flags.logLevel,
20
+ mode: 'json',
21
+ });
22
+ if (process.env.DATABASE_URL == null) {
23
+ logger.error('DATABASE_URL environment variable is not set');
24
+ gracefulExit(1);
25
+ }
26
+ try {
27
+ const env = createEnv(logger);
28
+ const config = await loadConfig(logger, argv.flags.root, argv.flags.config);
29
+ const dbContext = createDatabase({
30
+ env,
31
+ schema: { ...config.schema, ...InternalSchema.schema },
32
+ relations: { ...config.relations, ...InternalSchema.relations },
33
+ });
34
+ const api = createApi({
35
+ db: dbContext.db,
36
+ config,
37
+ logger,
38
+ port: argv.flags.port,
39
+ });
40
+ createExit({
41
+ logger,
42
+ stop: async () => {
43
+ api.stop();
44
+ await dbContext.stop();
45
+ },
46
+ });
47
+ }
48
+ catch (error) {
49
+ logger.error({ error }, 'HTTP API server failed');
50
+ gracefulExit(1);
51
+ }
52
+ });
53
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/bin/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,OAAO,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEvC,MAAM,CAAC,MAAM,KAAK,GAAY,OAAO,CACnC;IACE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE;IACzB,IAAI,EAAE;QACJ,WAAW,EAAE,uDAAuD;KACrE;CACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;IACb,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;QAC1B,IAAI,EAAE,MAAM;KACb,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAC5D,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,MAAM,EACN,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,IAAI,CAAC,KAAK,CAAC,MAAM,CAClB,CAAA;QAED,MAAM,SAAS,GAAG,cAAc,CAAC;YAC/B,GAAG;YACH,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE;YACtD,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE;SAChE,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,SAAS,CAAC;YACpB,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,MAAM;YACN,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACtB,CAAC,CAAA;QAEF,UAAU,CAAC;YACT,MAAM;YACN,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,GAAG,CAAC,IAAI,EAAE,CAAA;gBACV,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;YACxB,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAA;QACjD,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CACF,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { type Command } from 'cleye';
2
+ export declare const start: Command;
3
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/bin/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAW,MAAM,OAAO,CAAA;AAe7C,eAAO,MAAM,KAAK,EAAE,OAqEnB,CAAA"}