@smthrs/platform-bun 0.0.0-stage → 1.0.0-rc.4

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 (384) hide show
  1. package/CHANGELOG.md +73 -0
  2. package/LICENSE +21 -0
  3. package/README.md +113 -2
  4. package/dist/cjs/BunFileSystem.d.ts +44 -0
  5. package/dist/cjs/BunFileSystem.d.ts.map +1 -0
  6. package/dist/cjs/BunFileSystem.js +38 -0
  7. package/dist/cjs/BunFileSystem.js.map +7 -0
  8. package/dist/cjs/BunHost.d.ts +205 -0
  9. package/dist/cjs/BunHost.d.ts.map +1 -0
  10. package/dist/cjs/BunHost.js +147 -0
  11. package/dist/cjs/BunHost.js.map +7 -0
  12. package/dist/cjs/index.d.ts +26 -0
  13. package/dist/cjs/index.d.ts.map +1 -0
  14. package/dist/cjs/index.js +37 -0
  15. package/dist/cjs/index.js.map +7 -0
  16. package/dist/cjs/package.json +1 -0
  17. package/dist/esm/BunFileSystem.d.ts +44 -0
  18. package/dist/esm/BunFileSystem.d.ts.map +1 -0
  19. package/dist/esm/BunFileSystem.js +35 -0
  20. package/dist/esm/BunFileSystem.js.map +1 -0
  21. package/dist/esm/BunHost.d.ts +205 -0
  22. package/dist/esm/BunHost.d.ts.map +1 -0
  23. package/dist/esm/BunHost.js +242 -0
  24. package/dist/esm/BunHost.js.map +1 -0
  25. package/dist/esm/index.d.ts +26 -0
  26. package/dist/esm/index.d.ts.map +1 -0
  27. package/dist/esm/index.js +26 -0
  28. package/dist/esm/index.js.map +1 -0
  29. package/dist/vendor/adapters.json +2707 -0
  30. package/dist/vendor/bun/BunChildProcessSpawner.d.ts +7 -0
  31. package/dist/vendor/bun/BunChildProcessSpawner.js +14 -0
  32. package/dist/vendor/bun/BunClusterHttp.d.ts +83 -0
  33. package/dist/vendor/bun/BunClusterHttp.js +39 -0
  34. package/dist/vendor/bun/BunClusterSocket.d.ts +65 -0
  35. package/dist/vendor/bun/BunClusterSocket.js +22 -0
  36. package/dist/vendor/bun/BunCrypto.d.ts +10 -0
  37. package/dist/vendor/bun/BunCrypto.js +8 -0
  38. package/dist/vendor/bun/BunFileSystem.d.ts +10 -0
  39. package/dist/vendor/bun/BunFileSystem.js +9 -0
  40. package/dist/vendor/bun/BunHttpClient.d.ts +9 -0
  41. package/dist/vendor/bun/BunHttpClient.js +1 -0
  42. package/dist/vendor/bun/BunHttpPlatform.d.ts +10 -0
  43. package/dist/vendor/bun/BunHttpPlatform.js +11 -0
  44. package/dist/vendor/bun/BunHttpServer.d.ts +142 -0
  45. package/dist/vendor/bun/BunHttpServer.js +38 -0
  46. package/dist/vendor/bun/BunHttpServerRequest.d.ts +18 -0
  47. package/dist/vendor/bun/BunHttpServerRequest.js +7 -0
  48. package/dist/vendor/bun/BunMultipart.d.ts +31 -0
  49. package/dist/vendor/bun/BunMultipart.js +12 -0
  50. package/dist/vendor/bun/BunPath.d.ts +24 -0
  51. package/dist/vendor/bun/BunPath.js +12 -0
  52. package/dist/vendor/bun/BunRedis.d.ts +49 -0
  53. package/dist/vendor/bun/BunRedis.js +11 -0
  54. package/dist/vendor/bun/BunRuntime.d.ts +85 -0
  55. package/dist/vendor/bun/BunRuntime.js +8 -0
  56. package/dist/vendor/bun/BunServices.d.ts +34 -0
  57. package/dist/vendor/bun/BunServices.js +23 -0
  58. package/dist/vendor/bun/BunSink.d.ts +8 -0
  59. package/dist/vendor/bun/BunSink.js +12 -0
  60. package/dist/vendor/bun/BunSocket.d.ts +40 -0
  61. package/dist/vendor/bun/BunSocket.js +29 -0
  62. package/dist/vendor/bun/BunSocketServer.d.ts +8 -0
  63. package/dist/vendor/bun/BunSocketServer.js +21 -0
  64. package/dist/vendor/bun/BunStdio.d.ts +11 -0
  65. package/dist/vendor/bun/BunStdio.js +10 -0
  66. package/dist/vendor/bun/BunStream.d.ts +19 -0
  67. package/dist/vendor/bun/BunStream.js +30 -0
  68. package/dist/vendor/bun/BunTerminal.d.ts +21 -0
  69. package/dist/vendor/bun/BunTerminal.js +10 -0
  70. package/dist/vendor/bun/BunWorker.d.ts +20 -0
  71. package/dist/vendor/bun/BunWorker.js +9 -0
  72. package/dist/vendor/bun/BunWorkerRunner.d.ts +12 -0
  73. package/dist/vendor/bun/BunWorkerRunner.js +7 -0
  74. package/dist/vendor/bun/LICENSE +21 -0
  75. package/dist/vendor/bun/index.d.ts +92 -0
  76. package/dist/vendor/bun/index.js +107 -0
  77. package/dist/vendor/chunk-2KZ2IFIZ.js +71 -0
  78. package/dist/vendor/chunk-2Y7WC4KU.js +109 -0
  79. package/dist/vendor/chunk-3GR5VZ2M.js +118 -0
  80. package/dist/vendor/chunk-3QW2PNUY.js +7 -0
  81. package/dist/vendor/chunk-42QKY6T6.js +40 -0
  82. package/dist/vendor/chunk-54RLBMTZ.js +61 -0
  83. package/dist/vendor/chunk-5U3MC37H.js +63 -0
  84. package/dist/vendor/chunk-5ZMHBXIK.js +55 -0
  85. package/dist/vendor/chunk-64Q2B7BA.js +34 -0
  86. package/dist/vendor/chunk-6CRG556Y.js +15 -0
  87. package/dist/vendor/chunk-6HWHSZL3.js +34 -0
  88. package/dist/vendor/chunk-6J25AYCI.js +93 -0
  89. package/dist/vendor/chunk-6ME2W7TF.js +28 -0
  90. package/dist/vendor/chunk-6TZ7LQAC.js +18 -0
  91. package/dist/vendor/chunk-B3FZ67QU.js +59 -0
  92. package/dist/vendor/chunk-BBLQEPNJ.js +22 -0
  93. package/dist/vendor/chunk-BKTBUBQY.js +437 -0
  94. package/dist/vendor/chunk-CIB6JB2Y.js +63 -0
  95. package/dist/vendor/chunk-DS7GF46S.js +34 -0
  96. package/dist/vendor/chunk-DVOAHXPG.js +104 -0
  97. package/dist/vendor/chunk-DWSHTSVX.js +229 -0
  98. package/dist/vendor/chunk-EGBNVEEW.js +14 -0
  99. package/dist/vendor/chunk-EHDTBBPL.js +45 -0
  100. package/dist/vendor/chunk-EZWY45HP.js +18 -0
  101. package/dist/vendor/chunk-F7VENFF4.js +507 -0
  102. package/dist/vendor/chunk-GXCHI7BM.js +131 -0
  103. package/dist/vendor/chunk-HX4AXITW.js +65 -0
  104. package/dist/vendor/chunk-IIJ52ZU6.js +20 -0
  105. package/dist/vendor/chunk-IR7WG7SA.js +564 -0
  106. package/dist/vendor/chunk-J7A4CZDO.js +92 -0
  107. package/dist/vendor/chunk-JG5TTWPT.js +85 -0
  108. package/dist/vendor/chunk-JJ24ARBQ.js +394 -0
  109. package/dist/vendor/chunk-JUVIPOOR.js +18 -0
  110. package/dist/vendor/chunk-KCLEGTEN.js +86 -0
  111. package/dist/vendor/chunk-KOZMM5PZ.js +426 -0
  112. package/dist/vendor/chunk-KUUXSID7.js +18 -0
  113. package/dist/vendor/chunk-KWOY4JDR.js +398 -0
  114. package/dist/vendor/chunk-LEUPYT3Q.js +36 -0
  115. package/dist/vendor/chunk-LJVI2DIF.js +57 -0
  116. package/dist/vendor/chunk-M32LDTW7.js +18 -0
  117. package/dist/vendor/chunk-M7CLUILA.js +0 -0
  118. package/dist/vendor/chunk-MBSKBQ5D.js +21 -0
  119. package/dist/vendor/chunk-MLKGABMK.js +9 -0
  120. package/dist/vendor/chunk-MMEGG3WE.js +96 -0
  121. package/dist/vendor/chunk-MSWDMTAF.js +18 -0
  122. package/dist/vendor/chunk-NBVRTDTV.js +129 -0
  123. package/dist/vendor/chunk-NBYGGMAE.js +70 -0
  124. package/dist/vendor/chunk-NLMT7VBU.js +18 -0
  125. package/dist/vendor/chunk-OXNGN5H7.js +81 -0
  126. package/dist/vendor/chunk-RBKBXDZW.js +18 -0
  127. package/dist/vendor/chunk-RNBBYWS2.js +26 -0
  128. package/dist/vendor/chunk-SFHVFMSR.js +18 -0
  129. package/dist/vendor/chunk-TFIKFFSC.js +26 -0
  130. package/dist/vendor/chunk-TXKLEBBL.js +143 -0
  131. package/dist/vendor/chunk-U6OWSZD2.js +62 -0
  132. package/dist/vendor/chunk-UFH5UUZK.js +48 -0
  133. package/dist/vendor/chunk-UJAEC4DS.js +20 -0
  134. package/dist/vendor/chunk-VZBDV3TV.js +18 -0
  135. package/dist/vendor/chunk-WGN4AMSX.js +0 -0
  136. package/dist/vendor/chunk-WIYD3THC.js +31 -0
  137. package/dist/vendor/chunk-XDKNKFBW.js +22 -0
  138. package/dist/vendor/chunk-XH4U3JSV.js +249 -0
  139. package/dist/vendor/chunk-XWPHMSXO.js +28 -0
  140. package/dist/vendor/chunk-Y35ZAO5U.js +53 -0
  141. package/dist/vendor/chunk-ZJMRMY57.js +0 -0
  142. package/dist/vendor/cjs/bun/BunChildProcessSpawner.d.ts +7 -0
  143. package/dist/vendor/cjs/bun/BunChildProcessSpawner.js +1 -0
  144. package/dist/vendor/cjs/bun/BunClusterHttp.d.ts +83 -0
  145. package/dist/vendor/cjs/bun/BunClusterHttp.js +1 -0
  146. package/dist/vendor/cjs/bun/BunClusterSocket.d.ts +65 -0
  147. package/dist/vendor/cjs/bun/BunClusterSocket.js +1 -0
  148. package/dist/vendor/cjs/bun/BunCrypto.d.ts +10 -0
  149. package/dist/vendor/cjs/bun/BunCrypto.js +1 -0
  150. package/dist/vendor/cjs/bun/BunFileSystem.d.ts +10 -0
  151. package/dist/vendor/cjs/bun/BunFileSystem.js +1 -0
  152. package/dist/vendor/cjs/bun/BunHttpClient.d.ts +9 -0
  153. package/dist/vendor/cjs/bun/BunHttpClient.js +1 -0
  154. package/dist/vendor/cjs/bun/BunHttpPlatform.d.ts +10 -0
  155. package/dist/vendor/cjs/bun/BunHttpPlatform.js +1 -0
  156. package/dist/vendor/cjs/bun/BunHttpServer.d.ts +142 -0
  157. package/dist/vendor/cjs/bun/BunHttpServer.js +1 -0
  158. package/dist/vendor/cjs/bun/BunHttpServerRequest.d.ts +18 -0
  159. package/dist/vendor/cjs/bun/BunHttpServerRequest.js +1 -0
  160. package/dist/vendor/cjs/bun/BunMultipart.d.ts +31 -0
  161. package/dist/vendor/cjs/bun/BunMultipart.js +1 -0
  162. package/dist/vendor/cjs/bun/BunPath.d.ts +24 -0
  163. package/dist/vendor/cjs/bun/BunPath.js +1 -0
  164. package/dist/vendor/cjs/bun/BunRedis.d.ts +49 -0
  165. package/dist/vendor/cjs/bun/BunRedis.js +1 -0
  166. package/dist/vendor/cjs/bun/BunRuntime.d.ts +85 -0
  167. package/dist/vendor/cjs/bun/BunRuntime.js +1 -0
  168. package/dist/vendor/cjs/bun/BunServices.d.ts +34 -0
  169. package/dist/vendor/cjs/bun/BunServices.js +1 -0
  170. package/dist/vendor/cjs/bun/BunSink.d.ts +8 -0
  171. package/dist/vendor/cjs/bun/BunSink.js +1 -0
  172. package/dist/vendor/cjs/bun/BunSocket.d.ts +40 -0
  173. package/dist/vendor/cjs/bun/BunSocket.js +1 -0
  174. package/dist/vendor/cjs/bun/BunSocketServer.d.ts +8 -0
  175. package/dist/vendor/cjs/bun/BunSocketServer.js +1 -0
  176. package/dist/vendor/cjs/bun/BunStdio.d.ts +11 -0
  177. package/dist/vendor/cjs/bun/BunStdio.js +1 -0
  178. package/dist/vendor/cjs/bun/BunStream.d.ts +19 -0
  179. package/dist/vendor/cjs/bun/BunStream.js +1 -0
  180. package/dist/vendor/cjs/bun/BunTerminal.d.ts +21 -0
  181. package/dist/vendor/cjs/bun/BunTerminal.js +1 -0
  182. package/dist/vendor/cjs/bun/BunWorker.d.ts +20 -0
  183. package/dist/vendor/cjs/bun/BunWorker.js +1 -0
  184. package/dist/vendor/cjs/bun/BunWorkerRunner.d.ts +12 -0
  185. package/dist/vendor/cjs/bun/BunWorkerRunner.js +1 -0
  186. package/dist/vendor/cjs/bun/index.d.ts +92 -0
  187. package/dist/vendor/cjs/bun/index.js +1 -0
  188. package/dist/vendor/cjs/node/NodeChildProcessSpawner.d.ts +7 -0
  189. package/dist/vendor/cjs/node/NodeChildProcessSpawner.js +1 -0
  190. package/dist/vendor/cjs/node/NodeClusterHttp.d.ts +63 -0
  191. package/dist/vendor/cjs/node/NodeClusterHttp.js +1 -0
  192. package/dist/vendor/cjs/node/NodeClusterSocket.d.ts +79 -0
  193. package/dist/vendor/cjs/node/NodeClusterSocket.js +1 -0
  194. package/dist/vendor/cjs/node/NodeCrypto.d.ts +10 -0
  195. package/dist/vendor/cjs/node/NodeCrypto.js +1 -0
  196. package/dist/vendor/cjs/node/NodeFileSystem.d.ts +10 -0
  197. package/dist/vendor/cjs/node/NodeFileSystem.js +1 -0
  198. package/dist/vendor/cjs/node/NodeHttpClient.d.ts +179 -0
  199. package/dist/vendor/cjs/node/NodeHttpClient.js +1 -0
  200. package/dist/vendor/cjs/node/NodeHttpIncomingMessage.d.ts +62 -0
  201. package/dist/vendor/cjs/node/NodeHttpIncomingMessage.js +1 -0
  202. package/dist/vendor/cjs/node/NodeHttpPlatform.d.ts +36 -0
  203. package/dist/vendor/cjs/node/NodeHttpPlatform.js +1 -0
  204. package/dist/vendor/cjs/node/NodeHttpServer.d.ts +120 -0
  205. package/dist/vendor/cjs/node/NodeHttpServer.js +1 -0
  206. package/dist/vendor/cjs/node/NodeHttpServerRequest.d.ts +29 -0
  207. package/dist/vendor/cjs/node/NodeHttpServerRequest.js +1 -0
  208. package/dist/vendor/cjs/node/NodeMultipart.d.ts +46 -0
  209. package/dist/vendor/cjs/node/NodeMultipart.js +1 -0
  210. package/dist/vendor/cjs/node/NodeMultipartParser.d.ts +97 -0
  211. package/dist/vendor/cjs/node/NodeMultipartParser.js +1 -0
  212. package/dist/vendor/cjs/node/NodePath.d.ts +27 -0
  213. package/dist/vendor/cjs/node/NodePath.js +1 -0
  214. package/dist/vendor/cjs/node/NodeRedis.d.ts +74 -0
  215. package/dist/vendor/cjs/node/NodeRedis.js +1 -0
  216. package/dist/vendor/cjs/node/NodeRuntime.d.ts +85 -0
  217. package/dist/vendor/cjs/node/NodeRuntime.js +1 -0
  218. package/dist/vendor/cjs/node/NodeServices.d.ts +34 -0
  219. package/dist/vendor/cjs/node/NodeServices.js +1 -0
  220. package/dist/vendor/cjs/node/NodeSink.d.ts +8 -0
  221. package/dist/vendor/cjs/node/NodeSink.js +1 -0
  222. package/dist/vendor/cjs/node/NodeSocket.d.ts +38 -0
  223. package/dist/vendor/cjs/node/NodeSocket.js +1 -0
  224. package/dist/vendor/cjs/node/NodeSocketServer.d.ts +8 -0
  225. package/dist/vendor/cjs/node/NodeSocketServer.js +1 -0
  226. package/dist/vendor/cjs/node/NodeStdio.d.ts +11 -0
  227. package/dist/vendor/cjs/node/NodeStdio.js +1 -0
  228. package/dist/vendor/cjs/node/NodeStream.d.ts +8 -0
  229. package/dist/vendor/cjs/node/NodeStream.js +1 -0
  230. package/dist/vendor/cjs/node/NodeTerminal.d.ts +21 -0
  231. package/dist/vendor/cjs/node/NodeTerminal.js +1 -0
  232. package/dist/vendor/cjs/node/NodeWorker.d.ts +22 -0
  233. package/dist/vendor/cjs/node/NodeWorker.js +1 -0
  234. package/dist/vendor/cjs/node/NodeWorkerRunner.d.ts +12 -0
  235. package/dist/vendor/cjs/node/NodeWorkerRunner.js +1 -0
  236. package/dist/vendor/cjs/node/Undici.d.ts +28 -0
  237. package/dist/vendor/cjs/node/Undici.js +1 -0
  238. package/dist/vendor/cjs/node/index.d.ts +100 -0
  239. package/dist/vendor/cjs/node/index.js +1 -0
  240. package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.d.ts +57 -0
  241. package/dist/vendor/cjs/node-shared/NodeChildProcessSpawner.js +1 -0
  242. package/dist/vendor/cjs/node-shared/NodeClusterSocket.d.ts +22 -0
  243. package/dist/vendor/cjs/node-shared/NodeClusterSocket.js +1 -0
  244. package/dist/vendor/cjs/node-shared/NodeCrypto.d.ts +27 -0
  245. package/dist/vendor/cjs/node-shared/NodeCrypto.js +1 -0
  246. package/dist/vendor/cjs/node-shared/NodeFileSystem.d.ts +11 -0
  247. package/dist/vendor/cjs/node-shared/NodeFileSystem.js +1 -0
  248. package/dist/vendor/cjs/node-shared/NodeHttpCompression.d.ts +36 -0
  249. package/dist/vendor/cjs/node-shared/NodeHttpCompression.js +1 -0
  250. package/dist/vendor/cjs/node-shared/NodePath.d.ts +27 -0
  251. package/dist/vendor/cjs/node-shared/NodePath.js +1 -0
  252. package/dist/vendor/cjs/node-shared/NodeRuntime.d.ts +47 -0
  253. package/dist/vendor/cjs/node-shared/NodeRuntime.js +1 -0
  254. package/dist/vendor/cjs/node-shared/NodeSink.d.ts +69 -0
  255. package/dist/vendor/cjs/node-shared/NodeSink.js +1 -0
  256. package/dist/vendor/cjs/node-shared/NodeSocket.d.ts +134 -0
  257. package/dist/vendor/cjs/node-shared/NodeSocket.js +1 -0
  258. package/dist/vendor/cjs/node-shared/NodeSocketServer.d.ts +80 -0
  259. package/dist/vendor/cjs/node-shared/NodeSocketServer.js +1 -0
  260. package/dist/vendor/cjs/node-shared/NodeStdio.d.ts +12 -0
  261. package/dist/vendor/cjs/node-shared/NodeStdio.js +1 -0
  262. package/dist/vendor/cjs/node-shared/NodeStream.d.ts +179 -0
  263. package/dist/vendor/cjs/node-shared/NodeStream.js +1 -0
  264. package/dist/vendor/cjs/node-shared/NodeTerminal.d.ts +22 -0
  265. package/dist/vendor/cjs/node-shared/NodeTerminal.js +1 -0
  266. package/dist/vendor/cjs/node-shared/index.d.ts +56 -0
  267. package/dist/vendor/cjs/node-shared/index.js +1 -0
  268. package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.d.ts +4 -0
  269. package/dist/vendor/cjs/node-shared/internal/nodeChildProcessSpawner.js +1 -0
  270. package/dist/vendor/cjs/node-shared/internal/utils.d.ts +2 -0
  271. package/dist/vendor/cjs/node-shared/internal/utils.js +1 -0
  272. package/dist/vendor/cjs/package.json +1 -0
  273. package/dist/vendor/cjs/platform-bun.d.ts +92 -0
  274. package/dist/vendor/cjs/platform-bun.js +1 -0
  275. package/dist/vendor/cjs/platform-node-shared.d.ts +56 -0
  276. package/dist/vendor/cjs/platform-node-shared.js +1 -0
  277. package/dist/vendor/cjs/platform-node.d.ts +100 -0
  278. package/dist/vendor/cjs/platform-node.js +1 -0
  279. package/dist/vendor/node/LICENSE +21 -0
  280. package/dist/vendor/node/NodeChildProcessSpawner.d.ts +7 -0
  281. package/dist/vendor/node/NodeChildProcessSpawner.js +14 -0
  282. package/dist/vendor/node/NodeClusterHttp.d.ts +63 -0
  283. package/dist/vendor/node/NodeClusterHttp.js +43 -0
  284. package/dist/vendor/node/NodeClusterSocket.d.ts +79 -0
  285. package/dist/vendor/node/NodeClusterSocket.js +30 -0
  286. package/dist/vendor/node/NodeCrypto.d.ts +10 -0
  287. package/dist/vendor/node/NodeCrypto.js +8 -0
  288. package/dist/vendor/node/NodeFileSystem.d.ts +10 -0
  289. package/dist/vendor/node/NodeFileSystem.js +9 -0
  290. package/dist/vendor/node/NodeHttpClient.d.ts +179 -0
  291. package/dist/vendor/node/NodeHttpClient.js +46 -0
  292. package/dist/vendor/node/NodeHttpIncomingMessage.d.ts +62 -0
  293. package/dist/vendor/node/NodeHttpIncomingMessage.js +10 -0
  294. package/dist/vendor/node/NodeHttpPlatform.d.ts +36 -0
  295. package/dist/vendor/node/NodeHttpPlatform.js +16 -0
  296. package/dist/vendor/node/NodeHttpServer.d.ts +120 -0
  297. package/dist/vendor/node/NodeHttpServer.js +46 -0
  298. package/dist/vendor/node/NodeHttpServerRequest.d.ts +29 -0
  299. package/dist/vendor/node/NodeHttpServerRequest.js +9 -0
  300. package/dist/vendor/node/NodeMultipart.d.ts +46 -0
  301. package/dist/vendor/node/NodeMultipart.js +15 -0
  302. package/dist/vendor/node/NodeMultipartParser.d.ts +97 -0
  303. package/dist/vendor/node/NodeMultipartParser.js +11 -0
  304. package/dist/vendor/node/NodePath.d.ts +27 -0
  305. package/dist/vendor/node/NodePath.js +12 -0
  306. package/dist/vendor/node/NodeRedis.d.ts +74 -0
  307. package/dist/vendor/node/NodeRedis.js +11 -0
  308. package/dist/vendor/node/NodeRuntime.d.ts +85 -0
  309. package/dist/vendor/node/NodeRuntime.js +8 -0
  310. package/dist/vendor/node/NodeServices.d.ts +34 -0
  311. package/dist/vendor/node/NodeServices.js +23 -0
  312. package/dist/vendor/node/NodeSink.d.ts +8 -0
  313. package/dist/vendor/node/NodeSink.js +12 -0
  314. package/dist/vendor/node/NodeSocket.d.ts +38 -0
  315. package/dist/vendor/node/NodeSocket.js +31 -0
  316. package/dist/vendor/node/NodeSocketServer.d.ts +8 -0
  317. package/dist/vendor/node/NodeSocketServer.js +21 -0
  318. package/dist/vendor/node/NodeStdio.d.ts +11 -0
  319. package/dist/vendor/node/NodeStdio.js +10 -0
  320. package/dist/vendor/node/NodeStream.d.ts +8 -0
  321. package/dist/vendor/node/NodeStream.js +27 -0
  322. package/dist/vendor/node/NodeTerminal.d.ts +21 -0
  323. package/dist/vendor/node/NodeTerminal.js +10 -0
  324. package/dist/vendor/node/NodeWorker.d.ts +22 -0
  325. package/dist/vendor/node/NodeWorker.js +9 -0
  326. package/dist/vendor/node/NodeWorkerRunner.d.ts +12 -0
  327. package/dist/vendor/node/NodeWorkerRunner.js +7 -0
  328. package/dist/vendor/node/Undici.d.ts +28 -0
  329. package/dist/vendor/node/Undici.js +9 -0
  330. package/dist/vendor/node/index.d.ts +100 -0
  331. package/dist/vendor/node/index.js +115 -0
  332. package/dist/vendor/node-shared/LICENSE +21 -0
  333. package/dist/vendor/node-shared/NodeChildProcessSpawner.d.ts +57 -0
  334. package/dist/vendor/node-shared/NodeChildProcessSpawner.js +13 -0
  335. package/dist/vendor/node-shared/NodeClusterSocket.d.ts +22 -0
  336. package/dist/vendor/node-shared/NodeClusterSocket.js +11 -0
  337. package/dist/vendor/node-shared/NodeCrypto.d.ts +27 -0
  338. package/dist/vendor/node-shared/NodeCrypto.js +9 -0
  339. package/dist/vendor/node-shared/NodeFileSystem.d.ts +11 -0
  340. package/dist/vendor/node-shared/NodeFileSystem.js +8 -0
  341. package/dist/vendor/node-shared/NodeHttpCompression.d.ts +36 -0
  342. package/dist/vendor/node-shared/NodeHttpCompression.js +13 -0
  343. package/dist/vendor/node-shared/NodePath.d.ts +27 -0
  344. package/dist/vendor/node-shared/NodePath.js +11 -0
  345. package/dist/vendor/node-shared/NodeRuntime.d.ts +47 -0
  346. package/dist/vendor/node-shared/NodeRuntime.js +7 -0
  347. package/dist/vendor/node-shared/NodeSink.d.ts +69 -0
  348. package/dist/vendor/node-shared/NodeSink.js +11 -0
  349. package/dist/vendor/node-shared/NodeSocket.d.ts +134 -0
  350. package/dist/vendor/node-shared/NodeSocket.js +23 -0
  351. package/dist/vendor/node-shared/NodeSocketServer.d.ts +80 -0
  352. package/dist/vendor/node-shared/NodeSocketServer.js +20 -0
  353. package/dist/vendor/node-shared/NodeStdio.d.ts +12 -0
  354. package/dist/vendor/node-shared/NodeStdio.js +9 -0
  355. package/dist/vendor/node-shared/NodeStream.d.ts +179 -0
  356. package/dist/vendor/node-shared/NodeStream.js +26 -0
  357. package/dist/vendor/node-shared/NodeTerminal.d.ts +22 -0
  358. package/dist/vendor/node-shared/NodeTerminal.js +9 -0
  359. package/dist/vendor/node-shared/index.d.ts +56 -0
  360. package/dist/vendor/node-shared/index.js +58 -0
  361. package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.d.ts +4 -0
  362. package/dist/vendor/node-shared/internal/nodeChildProcessSpawner.js +7 -0
  363. package/dist/vendor/node-shared/internal/utils.d.ts +2 -0
  364. package/dist/vendor/node-shared/internal/utils.js +7 -0
  365. package/dist/vendor/platform-bun.d.ts +92 -0
  366. package/dist/vendor/platform-bun.js +107 -0
  367. package/dist/vendor/platform-node-shared.d.ts +56 -0
  368. package/dist/vendor/platform-node-shared.js +58 -0
  369. package/dist/vendor/platform-node.d.ts +100 -0
  370. package/dist/vendor/platform-node.js +115 -0
  371. package/docs/README.md +132 -0
  372. package/docs/api.md +265 -0
  373. package/docs/concepts/host-surface.md +152 -0
  374. package/docs/concepts/runtime-parity.md +80 -0
  375. package/docs/guides/bind-a-repository-root.md +109 -0
  376. package/docs/guides/configure-the-filesystem-helper.md +109 -0
  377. package/docs/guides/contain-child-processes.md +176 -0
  378. package/docs/installation.md +128 -0
  379. package/docs/quickstart.md +159 -0
  380. package/docs/troubleshooting.md +178 -0
  381. package/package.json +146 -3
  382. package/src/BunFileSystem.ts +47 -0
  383. package/src/BunHost.ts +338 -0
  384. package/src/index.ts +27 -0
package/src/BunHost.ts ADDED
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Aggregate Bun Host bundle.
3
+ *
4
+ * Runtime-specific dependencies stay inside this package; callers get the same
5
+ * closed five-service Host surface every other bundle provides, plus native
6
+ * `ProcessConfinement` for guarded commands.
7
+ *
8
+ * There is no Bun shell module: running a command is Effect's
9
+ * `ChildProcessSpawner`, and `@effect/platform-bun`'s implementation is
10
+ * `@effect/platform-node-shared`'s re-exported: the same code on both
11
+ * runtimes, so no runtime detection is needed here.
12
+ *
13
+ * Outgoing HTTP uses the shared EgressHttpClient on both runtimes. Web
14
+ * requests pin approved addresses; ordinary requests retain the shared pool.
15
+ * Redirects remain visible to the capability kernel, and proxy routing follows
16
+ * the host environment.
17
+ *
18
+ * The filesystem slot is `@smthrs/platform-node`'s `AtomicFileSystem`, byte for
19
+ * byte the layer `NodeHost` uses, so a guarded path operation is
20
+ * descriptor-relative and no-follow on both runtimes.
21
+ *
22
+ * @since 1.0.0-rc.0
23
+ */
24
+
25
+ import * as BunChildProcessSpawner from "@effect/platform-bun/BunChildProcessSpawner"
26
+ import * as BunCrypto from "@effect/platform-bun/BunCrypto"
27
+ import * as BunPath from "@effect/platform-bun/BunPath"
28
+ import type { Jj, JjError } from "@smthrs/jj"
29
+ import * as BunJj from "@smthrs/jj/bun/BunJj"
30
+ import type { HostServiceIds } from "@smthrs/kernel/HostServices"
31
+ import type * as KernelProcessConfinement from "@smthrs/kernel/ProcessConfinement"
32
+ import type * as ProcessLedger from "@smthrs/kernel/ProcessLedger"
33
+ import * as AtomicFileSystem from "@smthrs/platform-node/AtomicFileSystem"
34
+ import * as EgressHttpClient from "@smthrs/platform-node/EgressHttpClient"
35
+ import * as HostLiveness from "@smthrs/platform-node/HostLiveness"
36
+ import * as ProcessConfinement from "@smthrs/platform-node/ProcessConfinement"
37
+ import * as ProcessReaper from "@smthrs/platform-node/ProcessReaper"
38
+ import type * as Crypto from "effect/Crypto"
39
+ import type { FileSystem } from "effect/FileSystem"
40
+ import * as Layer from "effect/Layer"
41
+ import type * as Path from "effect/Path"
42
+ import * as Schema from "effect/Schema"
43
+ import type { HttpClient } from "effect/unstable/http/HttpClient"
44
+ import type { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner"
45
+ import { isAbsolute } from "node:path"
46
+ import * as BunFileSystem from "./BunFileSystem.ts"
47
+
48
+ /**
49
+ * Bun platform modules for selectively providing individual services.
50
+ *
51
+ * `AtomicFileSystem` is here for the same reason `NodeHost` re-exports it: it
52
+ * owns the only configuration escape hatch the filesystem slot has, and a Bun
53
+ * program with a different packaged helper path needs to reach
54
+ * `AtomicFileSystem.layerWith` without hand-composing the other four tags.
55
+ *
56
+ * `BunJj` is deliberately absent: it belongs to `@smthrs/jj` and is imported
57
+ * from there, never re-exported here. So is `@effect/platform-bun/BunHttpClient`:
58
+ * its `layer` follows redirects to origins the capability kernel never
59
+ * authorized. The network slot on its own is {@link layerHttpClient}.
60
+ *
61
+ * @category re-exports
62
+ * @since 1.0.0-rc.0
63
+ * @slop
64
+ */
65
+ export { AtomicFileSystem, BunChildProcessSpawner, BunCrypto, BunFileSystem, HostLiveness, ProcessReaper }
66
+
67
+ /**
68
+ * The complete closed Host service union provided by Bun.
69
+ *
70
+ * @category models
71
+ * @since 1.0.0-rc.0
72
+ * @slop
73
+ */
74
+ export type BunHost =
75
+ | FileSystem
76
+ | Path.Path
77
+ | ChildProcessSpawner
78
+ | Jj
79
+ | HttpClient
80
+ | KernelProcessConfinement.ProcessConfinement
81
+
82
+ /**
83
+ * The stable codes a `BunHost` factory refuses with.
84
+ *
85
+ * A code is the contract a caller branches on; the message beside it is for a
86
+ * person. `invalid_repository_root` is the root handed to {@link layerAt} or
87
+ * {@link layerContainedAt} not being absolute, the empty string included.
88
+ *
89
+ * @category models
90
+ * @since 1.0.0-rc.0
91
+ */
92
+ export type BunHostErrorCode = "invalid_repository_root"
93
+
94
+ /**
95
+ * The refusal a `BunHost` factory throws before it builds a layer.
96
+ *
97
+ * It is thrown rather than failed because a factory is called while a program
98
+ * composes its layers, where there is no fiber to fail yet and a wrong root is
99
+ * a composition mistake, not a runtime outcome. It is this package's class,
100
+ * not the `Jj` adapter's, because a Bun caller composes `BunHost` and should
101
+ * learn nothing about the adapter behind the `Jj` slot from an error message.
102
+ *
103
+ * @category errors
104
+ * @since 1.0.0-rc.0
105
+ */
106
+ export class BunHostError extends Schema.TaggedError<BunHostError>()("@smthrs/platform-bun/BunHostError", {
107
+ code: Schema.Literal("invalid_repository_root"),
108
+ message: Schema.String
109
+ }) {
110
+ override readonly name = "BunHostError"
111
+ }
112
+
113
+ /** The longest message a factory refuses with, in UTF-16 code units. */
114
+ const messageLimit = 255
115
+
116
+ /** How many code points of a refused root the message repeats at most. */
117
+ const previewLimit = 64
118
+
119
+ /**
120
+ * A bounded, quoted excerpt of a refused root that fits in `budget` code
121
+ * units of the message.
122
+ *
123
+ * Counted in code points rather than UTF-16 units so a cut never splits a
124
+ * surrogate pair, and passed through `JSON.stringify` so a newline in the root
125
+ * cannot break the log line the message lands on. Each code point is encoded
126
+ * on its own and admitted only while the quoted excerpt plus the length
127
+ * suffix still fit, so a control character that widens to a `\u0001` escape
128
+ * shortens the excerpt instead of lengthening the message, and a cut never
129
+ * lands inside an escape.
130
+ */
131
+ const preview = (root: string, budget: number): string => {
132
+ const points = Array.from(root)
133
+ const whole = JSON.stringify(root)
134
+ if (points.length <= previewLimit && whole.length <= budget) return whole
135
+ const suffix = `... (${points.length} characters)`
136
+ const room = budget - suffix.length - 2
137
+ let excerpt = ""
138
+ for (const point of points.slice(0, previewLimit)) {
139
+ const encoded = JSON.stringify(point).slice(1, -1)
140
+ if (excerpt.length + encoded.length > room) break
141
+ excerpt += encoded
142
+ }
143
+ return `"${excerpt}"${suffix}`
144
+ }
145
+
146
+ /**
147
+ * Refuses a root the `Jj` adapter underneath would refuse, here and in this
148
+ * package's name.
149
+ *
150
+ * `BunJj.layerAt` and `BunJj.layerSpawnerAt` are `NodeJj`'s, and those throw a
151
+ * bare `TypeError` that names `NodeJj`, carries no code, and echoes the whole
152
+ * string. The predicate here is the same `isAbsolute` the adapter applies, so
153
+ * a root that passes this check cannot reach that throw.
154
+ */
155
+ const absoluteRoot = (factory: "layerAt" | "layerContainedAt", root: string): string => {
156
+ if (isAbsolute(root)) return root
157
+ const prefix = `BunHost.${factory} requires an absolute repository root, got `
158
+ throw new BunHostError({
159
+ code: "invalid_repository_root",
160
+ message: `${prefix}${preview(root, messageLimit - prefix.length)}`
161
+ })
162
+ }
163
+
164
+ /**
165
+ * Stable implementation identities keyed by the closed Host service slots.
166
+ *
167
+ * Each value names the module behind that slot in the raw host bundle.
168
+ * Contained POSIX factories replace the spawner with {@link ProcessReaper.layerSpawner}.
169
+ * These are identity
170
+ * tokens rather than import specifiers: the filesystem entry is
171
+ * `@smthrs/platform-node/AtomicFileSystem` because that is the implementation,
172
+ * even though a consumer reaches it through `@smthrs/platform-bun`.
173
+ *
174
+ * Nothing digests them yet. `@smthrs/plan`'s step key carries a `layers`
175
+ * component these values are meant to feed, but no planner derives it from a
176
+ * host bundle today, so changing one invalidates no cached step.
177
+ *
178
+ * The keys are written as literals rather than `HostServiceIds` positions so
179
+ * that reordering the closed list cannot silently pair a slot with another
180
+ * slot's implementation.
181
+ *
182
+ * @category models
183
+ * @since 1.0.0-rc.0
184
+ * @slop
185
+ */
186
+ export const implementationIds: Readonly<Record<(typeof HostServiceIds)[number], string>> = {
187
+ "effect/FileSystem": "@smthrs/platform-node/AtomicFileSystem",
188
+ "effect/Path": "@effect/platform-bun/BunPath",
189
+ "effect/process/ChildProcessSpawner": "@effect/platform-bun/BunChildProcessSpawner",
190
+ "@smthrs/jj/Jj": "@smthrs/jj/bun/BunJj",
191
+ "effect/HttpClient": "@smthrs/platform-node/EgressHttpClient"
192
+ }
193
+
194
+ /**
195
+ * What a caller may configure about containment.
196
+ *
197
+ * `ContainedSpawner.Options.platform` is deliberately not part of it. It
198
+ * decides one thing, whether a command that names no `detached` option gets a
199
+ * process group of its own, and this native host detaches by `process.platform`
200
+ * whatever a record claims. A
201
+ * caller-supplied `"win32"` on a POSIX host would therefore record
202
+ * `pgid: null` for a child that really does lead a group, and
203
+ * {@link ProcessReaper.reap} would retire that record as `no-group` and leave
204
+ * the orphan running forever: a durable lie rather than a compile error.
205
+ *
206
+ * @category models
207
+ * @since 1.0.0-rc.0
208
+ */
209
+ export type ContainedOptions = ProcessReaper.SpawnerOptions & ProcessReaper.Options
210
+
211
+ /** The reaper half of {@link ContainedOptions}. */
212
+ const reaping = (options?: ContainedOptions): ProcessReaper.Options => ({
213
+ ownerPid: options?.ownerPid,
214
+ system: options?.system
215
+ })
216
+
217
+ /** The two services `BunChildProcessSpawner` resolves paths and files with. */
218
+ const platform = Layer.mergeAll(BunFileSystem.layer, BunPath.layer, BunCrypto.layer)
219
+
220
+ /**
221
+ * The network slot on its own: the shared egress client, which never follows a
222
+ * redirect. A `3xx` comes back to the caller with its `location` intact and the
223
+ * second origin uncontacted; following a redirect is `@smthrs/kernel`'s guarded
224
+ * `HttpClient.layer`, which rechecks every hop.
225
+ *
226
+ * @category layers
227
+ * @since 1.0.0-rc.0
228
+ */
229
+ export const layerHttpClient: Layer.Layer<HttpClient> = EgressHttpClient.layer(process.env)
230
+
231
+ /**
232
+ * Provides all five Bun Host services, including the runtime-independent Path
233
+ * service.
234
+ *
235
+ * Fails at construction with {@link JjError} carrying `not_installed` or
236
+ * `unsupported_version`: the `Jj` slot is merged eagerly and probes
237
+ * `jj --version` while the layer is built, before the program body runs and
238
+ * whether or not the program asks for `Jj`. Requires jj 0.39.0 or later.
239
+ *
240
+ * @category layers
241
+ * @since 1.0.0-rc.0
242
+ * @slop
243
+ */
244
+ export const layer: Layer.Layer<BunHost | Crypto.Crypto, JjError> = Layer.mergeAll(
245
+ ProcessConfinement.layer(),
246
+ platform,
247
+ Layer.provide(BunChildProcessSpawner.layer, platform),
248
+ BunJj.layer,
249
+ layerHttpClient
250
+ )
251
+
252
+ /**
253
+ * Provides all five Bun Host services bound to one absolute repository root.
254
+ *
255
+ * Throws {@link BunHostError} with code `invalid_repository_root` when `root`
256
+ * is not absolute; the empty string counts. The check runs when the factory is
257
+ * called, before any layer exists.
258
+ *
259
+ * Fails at construction with {@link JjError} exactly as {@link layer} does:
260
+ * the `Jj` slot probes `jj --version` while the layer is built.
261
+ *
262
+ * @category layers
263
+ * @since 1.0.0-rc.0
264
+ */
265
+ export const layerAt = (root: string): Layer.Layer<BunHost | Crypto.Crypto, JjError> => {
266
+ const repositoryRoot = absoluteRoot("layerAt", root)
267
+ return Layer.mergeAll(
268
+ ProcessConfinement.layer(),
269
+ platform,
270
+ Layer.provide(BunChildProcessSpawner.layer, platform),
271
+ BunJj.layerAt(repositoryRoot),
272
+ layerHttpClient
273
+ )
274
+ }
275
+
276
+ /**
277
+ * Provides the Bun host with process containment turned on.
278
+ *
279
+ * Bun uses the same prepared native process lifecycle as Node on POSIX, while
280
+ * preserving its underlying runtime spawner on Windows. `ContainedSpawner` gives
281
+ * every child an escalation deadline and a ledger entry, and
282
+ * `ProcessReaper` sweeps the entries a crashed incarnation of this host left
283
+ * behind. The reaper module lives in `@smthrs/platform-node` because the calls
284
+ * it makes, `process.kill` and `taskkill`, are Node's, and Bun implements
285
+ * them unchanged.
286
+ *
287
+ * Fails at construction with {@link JjError} exactly as {@link layer} does;
288
+ * here the `jj --version` probe runs through the contained spawner, so its
289
+ * record enters and leaves the ledger like any other child.
290
+ *
291
+ * @category layers
292
+ * @since 1.0.0-rc.0
293
+ */
294
+ export const layerContained = (
295
+ options?: ContainedOptions
296
+ ): Layer.Layer<BunHost | Crypto.Crypto, JjError, ProcessLedger.ProcessLedger> => {
297
+ const spawner = Layer.provide(
298
+ ProcessReaper.layerSpawner({ graceMs: options?.graceMs }),
299
+ Layer.provide(BunChildProcessSpawner.layer, platform)
300
+ )
301
+ return Layer.mergeAll(
302
+ ProcessConfinement.layer(),
303
+ platform,
304
+ layerHttpClient,
305
+ // jj goes through the CONTAINED spawner here, not around it, exactly as in
306
+ // `NodeHost.layerContained`: a jj child that starts its own process leads
307
+ // no recorded group, is in no ledger, and outlives the host that ran it.
308
+ Layer.provideMerge(BunJj.layerSpawner, spawner)
309
+ ).pipe(Layer.provideMerge(ProcessReaper.layer(reaping(options))))
310
+ }
311
+
312
+ /**
313
+ * Provides the contained Bun host bound to one absolute repository root.
314
+ *
315
+ * Refuses a root exactly as {@link layerAt} does: {@link BunHostError} with
316
+ * code `invalid_repository_root`, thrown when the factory is called.
317
+ * Fails at construction with {@link JjError} exactly as {@link layerContained}
318
+ * does.
319
+ *
320
+ * @category layers
321
+ * @since 1.0.0-rc.0
322
+ */
323
+ export const layerContainedAt = (
324
+ root: string,
325
+ options?: ContainedOptions
326
+ ): Layer.Layer<BunHost | Crypto.Crypto, JjError, ProcessLedger.ProcessLedger> => {
327
+ const repositoryRoot = absoluteRoot("layerContainedAt", root)
328
+ const spawner = Layer.provide(
329
+ ProcessReaper.layerSpawner({ graceMs: options?.graceMs }),
330
+ Layer.provide(BunChildProcessSpawner.layer, platform)
331
+ )
332
+ return Layer.mergeAll(
333
+ ProcessConfinement.layer(),
334
+ platform,
335
+ layerHttpClient,
336
+ Layer.provideMerge(BunJj.layerSpawnerAt(repositoryRoot), spawner)
337
+ ).pipe(Layer.provideMerge(ProcessReaper.layer(reaping(options))))
338
+ }
package/src/index.ts ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * `@smthrs/platform-bun`, the Bun Host bundle.
3
+ *
4
+ * `BunHost.layer` composes the closed five-tag Host surface for Bun out of
5
+ * `@effect/platform-bun`'s child-process spawner and the shared egress `HttpClient`,
6
+ * Effect's runtime-independent `Path`, the Bun `Jj` adapter from
7
+ * `@smthrs/jj`, and `@smthrs/platform-node`'s `AtomicFileSystem`, which is the
8
+ * very layer the Node bundle puts in its own filesystem slot.
9
+ *
10
+ * Two host prerequisites come with it: `@effect/platform-bun`, which both this
11
+ * barrel and `@smthrs/platform-bun/BunHost` import at module load, and the
12
+ * `smithers-jj-export` native helper for the filesystem slot.
13
+ *
14
+ * @since 1.0.0-rc.0
15
+ */
16
+
17
+ /**
18
+ * Bun's `FileSystem`, which is `@smthrs/platform-node`'s atomic filesystem.
19
+ * @slop
20
+ */
21
+ export * as BunFileSystem from "./BunFileSystem.ts"
22
+
23
+ /**
24
+ * The complete closed Host bundle for Bun.
25
+ * @slop
26
+ */
27
+ export * as BunHost from "./BunHost.ts"