effect-start 0.23.1 → 0.26.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.
Files changed (351) hide show
  1. package/package.json +18 -86
  2. package/src/Development.ts +3 -1
  3. package/src/Entity.ts +17 -0
  4. package/src/Fetch.ts +271 -0
  5. package/src/SqlIntrospect.ts +64 -70
  6. package/src/Start.ts +21 -24
  7. package/src/StartApp.ts +1 -1
  8. package/src/bun/BunServer.ts +42 -10
  9. package/src/hyper/HyperHtml.ts +0 -1
  10. package/src/sql/bun/index.ts +1 -1
  11. package/src/sql/index.ts +1 -0
  12. package/src/sql/libsql/index.ts +173 -0
  13. package/src/sql/libsql/libsql.d.ts +39 -0
  14. package/src/sql/mssql/index.ts +1 -1
  15. package/dist/BlobStore.d.ts +0 -80
  16. package/dist/BlobStore.js +0 -19
  17. package/dist/ChildProcess.d.ts +0 -60
  18. package/dist/ChildProcess.js +0 -30
  19. package/dist/Commander.d.ts +0 -100
  20. package/dist/Commander.js +0 -326
  21. package/dist/ContentNegotiation.d.ts +0 -12
  22. package/dist/ContentNegotiation.js +0 -359
  23. package/dist/Cookies.d.ts +0 -47
  24. package/dist/Cookies.js +0 -302
  25. package/dist/Development.d.ts +0 -39
  26. package/dist/Development.js +0 -58
  27. package/dist/Effectify.d.ts +0 -209
  28. package/dist/Effectify.js +0 -19
  29. package/dist/Entity.d.ts +0 -47
  30. package/dist/Entity.js +0 -224
  31. package/dist/FilePathPattern.d.ts +0 -29
  32. package/dist/FilePathPattern.js +0 -86
  33. package/dist/FileRouter.d.ts +0 -56
  34. package/dist/FileRouter.js +0 -148
  35. package/dist/FileRouterCodegen.d.ts +0 -18
  36. package/dist/FileRouterCodegen.js +0 -227
  37. package/dist/FileRouterPattern.d.ts +0 -9
  38. package/dist/FileRouterPattern.js +0 -35
  39. package/dist/FileSystem.d.ts +0 -158
  40. package/dist/FileSystem.js +0 -70
  41. package/dist/Http.d.ts +0 -37
  42. package/dist/Http.js +0 -88
  43. package/dist/HttpAppExtra.d.ts +0 -7
  44. package/dist/HttpAppExtra.js +0 -320
  45. package/dist/HttpUtils.d.ts +0 -3
  46. package/dist/HttpUtils.js +0 -11
  47. package/dist/PathPattern.d.ts +0 -134
  48. package/dist/PathPattern.js +0 -413
  49. package/dist/PlatformError.d.ts +0 -38
  50. package/dist/PlatformError.js +0 -25
  51. package/dist/PlatformRuntime.d.ts +0 -27
  52. package/dist/PlatformRuntime.js +0 -46
  53. package/dist/Route.d.ts +0 -97
  54. package/dist/Route.js +0 -100
  55. package/dist/RouteBody.d.ts +0 -47
  56. package/dist/RouteBody.js +0 -67
  57. package/dist/RouteError.d.ts +0 -98
  58. package/dist/RouteError.js +0 -55
  59. package/dist/RouteHook.d.ts +0 -12
  60. package/dist/RouteHook.js +0 -40
  61. package/dist/RouteHttp.d.ts +0 -21
  62. package/dist/RouteHttp.js +0 -258
  63. package/dist/RouteHttpTracer.d.ts +0 -10
  64. package/dist/RouteHttpTracer.js +0 -62
  65. package/dist/RouteMount.d.ts +0 -86
  66. package/dist/RouteMount.js +0 -63
  67. package/dist/RouteSchema.d.ts +0 -86
  68. package/dist/RouteSchema.js +0 -188
  69. package/dist/RouteSse.d.ts +0 -21
  70. package/dist/RouteSse.js +0 -79
  71. package/dist/RouteTree.d.ts +0 -57
  72. package/dist/RouteTree.js +0 -93
  73. package/dist/RouteTrie.d.ts +0 -20
  74. package/dist/RouteTrie.js +0 -152
  75. package/dist/RouterPattern.d.ts +0 -118
  76. package/dist/RouterPattern.js +0 -269
  77. package/dist/SchemaExtra.d.ts +0 -7
  78. package/dist/SchemaExtra.js +0 -74
  79. package/dist/Socket.d.ts +0 -27
  80. package/dist/Socket.js +0 -29
  81. package/dist/Sql.d.ts +0 -34
  82. package/dist/Sql.js +0 -5
  83. package/dist/SqlIntrospect.d.ts +0 -91
  84. package/dist/SqlIntrospect.js +0 -466
  85. package/dist/Start.d.ts +0 -44
  86. package/dist/Start.js +0 -49
  87. package/dist/StartApp.d.ts +0 -19
  88. package/dist/StartApp.js +0 -21
  89. package/dist/StreamExtra.d.ts +0 -28
  90. package/dist/StreamExtra.js +0 -100
  91. package/dist/System.d.ts +0 -7
  92. package/dist/System.js +0 -22
  93. package/dist/TuplePathPattern.d.ts +0 -9
  94. package/dist/TuplePathPattern.js +0 -68
  95. package/dist/Unique.d.ts +0 -50
  96. package/dist/Unique.js +0 -187
  97. package/dist/Values.d.ts +0 -27
  98. package/dist/Values.js +0 -36
  99. package/dist/bun/BunBlobStoreDisk.d.ts +0 -6
  100. package/dist/bun/BunBlobStoreDisk.js +0 -116
  101. package/dist/bun/BunBlobStoreS3.d.ts +0 -11
  102. package/dist/bun/BunBlobStoreS3.js +0 -89
  103. package/dist/bun/BunBlobWatcherDisk.d.ts +0 -6
  104. package/dist/bun/BunBlobWatcherDisk.js +0 -60
  105. package/dist/bun/BunBlobWatcherQueue.d.ts +0 -6
  106. package/dist/bun/BunBlobWatcherQueue.js +0 -17
  107. package/dist/bun/BunBundle.d.ts +0 -11
  108. package/dist/bun/BunBundle.js +0 -137
  109. package/dist/bun/BunChildProcessSpawner.d.ts +0 -3
  110. package/dist/bun/BunChildProcessSpawner.js +0 -103
  111. package/dist/bun/BunHttpServer.d.ts +0 -44
  112. package/dist/bun/BunHttpServer.js +0 -186
  113. package/dist/bun/BunHttpServer_web.d.ts +0 -60
  114. package/dist/bun/BunHttpServer_web.js +0 -252
  115. package/dist/bun/BunImportTrackerPlugin.d.ts +0 -13
  116. package/dist/bun/BunImportTrackerPlugin.js +0 -69
  117. package/dist/bun/BunPlatformHttpServer.d.ts +0 -10
  118. package/dist/bun/BunPlatformHttpServer.js +0 -53
  119. package/dist/bun/BunRoute.d.ts +0 -48
  120. package/dist/bun/BunRoute.js +0 -121
  121. package/dist/bun/BunRuntime.d.ts +0 -2
  122. package/dist/bun/BunRuntime.js +0 -31
  123. package/dist/bun/BunServer.d.ts +0 -40
  124. package/dist/bun/BunServer.js +0 -157
  125. package/dist/bun/BunServerRequest.d.ts +0 -60
  126. package/dist/bun/BunServerRequest.js +0 -252
  127. package/dist/bun/BunSql.d.ts +0 -4
  128. package/dist/bun/BunSql.js +0 -81
  129. package/dist/bun/BunVirtualFilesPlugin.d.ts +0 -4
  130. package/dist/bun/BunVirtualFilesPlugin.js +0 -40
  131. package/dist/bun/_BunEnhancedResolve.d.ts +0 -45
  132. package/dist/bun/_BunEnhancedResolve.js +0 -102
  133. package/dist/bun/index.d.ts +0 -5
  134. package/dist/bun/index.js +0 -5
  135. package/dist/bundler/Bundle.d.ts +0 -61
  136. package/dist/bundler/Bundle.js +0 -48
  137. package/dist/bundler/BundleFiles.d.ts +0 -13
  138. package/dist/bundler/BundleFiles.js +0 -96
  139. package/dist/bundler/BundleHttp.d.ts +0 -45
  140. package/dist/bundler/BundleHttp.js +0 -176
  141. package/dist/bundler/BundleRoute.d.ts +0 -27
  142. package/dist/bundler/BundleRoute.js +0 -51
  143. package/dist/client/Overlay.d.ts +0 -2
  144. package/dist/client/Overlay.js +0 -32
  145. package/dist/client/ScrollState.d.ts +0 -6
  146. package/dist/client/ScrollState.js +0 -94
  147. package/dist/client/index.d.ts +0 -6
  148. package/dist/client/index.js +0 -79
  149. package/dist/console/Console.d.ts +0 -6
  150. package/dist/console/Console.js +0 -26
  151. package/dist/console/ConsoleErrors.d.ts +0 -3
  152. package/dist/console/ConsoleErrors.js +0 -200
  153. package/dist/console/ConsoleLogger.d.ts +0 -3
  154. package/dist/console/ConsoleLogger.js +0 -47
  155. package/dist/console/ConsoleMetrics.d.ts +0 -3
  156. package/dist/console/ConsoleMetrics.js +0 -61
  157. package/dist/console/ConsoleProcess.d.ts +0 -3
  158. package/dist/console/ConsoleProcess.js +0 -49
  159. package/dist/console/ConsoleStore.d.ts +0 -144
  160. package/dist/console/ConsoleStore.js +0 -61
  161. package/dist/console/ConsoleTracer.d.ts +0 -3
  162. package/dist/console/ConsoleTracer.js +0 -94
  163. package/dist/console/Simulation.d.ts +0 -2
  164. package/dist/console/Simulation.js +0 -633
  165. package/dist/console/index.d.ts +0 -3
  166. package/dist/console/index.js +0 -3
  167. package/dist/console/routes/errors/route.d.ts +0 -10
  168. package/dist/console/routes/errors/route.js +0 -47
  169. package/dist/console/routes/fiberDetail.d.ts +0 -16
  170. package/dist/console/routes/fiberDetail.js +0 -38
  171. package/dist/console/routes/fibers/route.d.ts +0 -10
  172. package/dist/console/routes/fibers/route.js +0 -19
  173. package/dist/console/routes/git/route.d.ts +0 -11
  174. package/dist/console/routes/git/route.js +0 -33
  175. package/dist/console/routes/layout.d.ts +0 -9
  176. package/dist/console/routes/layout.js +0 -3
  177. package/dist/console/routes/logs/route.d.ts +0 -10
  178. package/dist/console/routes/logs/route.js +0 -32
  179. package/dist/console/routes/metrics/route.d.ts +0 -10
  180. package/dist/console/routes/metrics/route.js +0 -17
  181. package/dist/console/routes/route.d.ts +0 -6
  182. package/dist/console/routes/route.js +0 -5
  183. package/dist/console/routes/routes/route.d.ts +0 -6
  184. package/dist/console/routes/routes/route.js +0 -20
  185. package/dist/console/routes/services/route.d.ts +0 -6
  186. package/dist/console/routes/services/route.js +0 -12
  187. package/dist/console/routes/system/route.d.ts +0 -10
  188. package/dist/console/routes/system/route.js +0 -18
  189. package/dist/console/routes/traceDetail.d.ts +0 -16
  190. package/dist/console/routes/traceDetail.js +0 -14
  191. package/dist/console/routes/traces/route.d.ts +0 -10
  192. package/dist/console/routes/traces/route.js +0 -39
  193. package/dist/console/routes/tree.d.ts +0 -153
  194. package/dist/console/routes/tree.js +0 -29
  195. package/dist/console/ui/Errors.d.ts +0 -4
  196. package/dist/console/ui/Errors.js +0 -15
  197. package/dist/console/ui/Fibers.d.ts +0 -24
  198. package/dist/console/ui/Fibers.js +0 -121
  199. package/dist/console/ui/Git.d.ts +0 -20
  200. package/dist/console/ui/Git.js +0 -95
  201. package/dist/console/ui/Logs.d.ts +0 -4
  202. package/dist/console/ui/Logs.js +0 -25
  203. package/dist/console/ui/Metrics.d.ts +0 -4
  204. package/dist/console/ui/Metrics.js +0 -26
  205. package/dist/console/ui/Routes.d.ts +0 -8
  206. package/dist/console/ui/Routes.js +0 -70
  207. package/dist/console/ui/Services.d.ts +0 -10
  208. package/dist/console/ui/Services.js +0 -246
  209. package/dist/console/ui/Shell.d.ts +0 -10
  210. package/dist/console/ui/Shell.js +0 -7
  211. package/dist/console/ui/System.d.ts +0 -4
  212. package/dist/console/ui/System.js +0 -35
  213. package/dist/console/ui/Traces.d.ts +0 -12
  214. package/dist/console/ui/Traces.js +0 -179
  215. package/dist/datastar/actions/fetch.d.ts +0 -30
  216. package/dist/datastar/actions/fetch.js +0 -403
  217. package/dist/datastar/actions/peek.d.ts +0 -1
  218. package/dist/datastar/actions/peek.js +0 -13
  219. package/dist/datastar/actions/setAll.d.ts +0 -1
  220. package/dist/datastar/actions/setAll.js +0 -12
  221. package/dist/datastar/actions/toggleAll.d.ts +0 -1
  222. package/dist/datastar/actions/toggleAll.js +0 -12
  223. package/dist/datastar/attributes/attr.d.ts +0 -1
  224. package/dist/datastar/attributes/attr.js +0 -48
  225. package/dist/datastar/attributes/bind.d.ts +0 -1
  226. package/dist/datastar/attributes/bind.js +0 -175
  227. package/dist/datastar/attributes/class.d.ts +0 -1
  228. package/dist/datastar/attributes/class.js +0 -47
  229. package/dist/datastar/attributes/computed.d.ts +0 -1
  230. package/dist/datastar/attributes/computed.js +0 -26
  231. package/dist/datastar/attributes/effect.d.ts +0 -1
  232. package/dist/datastar/attributes/effect.js +0 -9
  233. package/dist/datastar/attributes/indicator.d.ts +0 -1
  234. package/dist/datastar/attributes/indicator.js +0 -30
  235. package/dist/datastar/attributes/init.d.ts +0 -1
  236. package/dist/datastar/attributes/init.js +0 -26
  237. package/dist/datastar/attributes/jsonSignals.d.ts +0 -1
  238. package/dist/datastar/attributes/jsonSignals.js +0 -30
  239. package/dist/datastar/attributes/on.d.ts +0 -1
  240. package/dist/datastar/attributes/on.js +0 -78
  241. package/dist/datastar/attributes/onIntersect.d.ts +0 -1
  242. package/dist/datastar/attributes/onIntersect.js +0 -53
  243. package/dist/datastar/attributes/onInterval.d.ts +0 -1
  244. package/dist/datastar/attributes/onInterval.js +0 -30
  245. package/dist/datastar/attributes/onSignalPatch.d.ts +0 -1
  246. package/dist/datastar/attributes/onSignalPatch.js +0 -42
  247. package/dist/datastar/attributes/ref.d.ts +0 -1
  248. package/dist/datastar/attributes/ref.js +0 -10
  249. package/dist/datastar/attributes/show.d.ts +0 -1
  250. package/dist/datastar/attributes/show.js +0 -31
  251. package/dist/datastar/attributes/signals.d.ts +0 -1
  252. package/dist/datastar/attributes/signals.js +0 -17
  253. package/dist/datastar/attributes/style.d.ts +0 -1
  254. package/dist/datastar/attributes/style.js +0 -50
  255. package/dist/datastar/attributes/text.d.ts +0 -1
  256. package/dist/datastar/attributes/text.js +0 -26
  257. package/dist/datastar/engine.d.ts +0 -162
  258. package/dist/datastar/engine.js +0 -999
  259. package/dist/datastar/happydom.d.ts +0 -1
  260. package/dist/datastar/happydom.js +0 -8
  261. package/dist/datastar/index.d.ts +0 -24
  262. package/dist/datastar/index.js +0 -24
  263. package/dist/datastar/load.d.ts +0 -24
  264. package/dist/datastar/load.js +0 -24
  265. package/dist/datastar/utils.d.ts +0 -51
  266. package/dist/datastar/utils.js +0 -202
  267. package/dist/datastar/watchers/patchElements.d.ts +0 -1
  268. package/dist/datastar/watchers/patchElements.js +0 -399
  269. package/dist/datastar/watchers/patchSignals.d.ts +0 -1
  270. package/dist/datastar/watchers/patchSignals.js +0 -14
  271. package/dist/experimental/EncryptedCookies.d.ts +0 -48
  272. package/dist/experimental/EncryptedCookies.js +0 -212
  273. package/dist/experimental/SseHttpResponse.d.ts +0 -7
  274. package/dist/experimental/SseHttpResponse.js +0 -28
  275. package/dist/experimental/index.d.ts +0 -1
  276. package/dist/experimental/index.js +0 -1
  277. package/dist/hyper/Hyper.d.ts +0 -25
  278. package/dist/hyper/Hyper.js +0 -23
  279. package/dist/hyper/HyperHtml.d.ts +0 -23
  280. package/dist/hyper/HyperHtml.js +0 -150
  281. package/dist/hyper/HyperHtml.test.d.ts +0 -1
  282. package/dist/hyper/HyperHtml.test.js +0 -197
  283. package/dist/hyper/HyperNode.d.ts +0 -14
  284. package/dist/hyper/HyperNode.js +0 -11
  285. package/dist/hyper/HyperRoute.d.ts +0 -8
  286. package/dist/hyper/HyperRoute.js +0 -32
  287. package/dist/hyper/HyperRoute.test.d.ts +0 -1
  288. package/dist/hyper/HyperRoute.test.js +0 -83
  289. package/dist/hyper/html.d.ts +0 -11
  290. package/dist/hyper/html.js +0 -30
  291. package/dist/hyper/index.d.ts +0 -6
  292. package/dist/hyper/index.js +0 -5
  293. package/dist/hyper/jsx-runtime.d.ts +0 -7
  294. package/dist/hyper/jsx-runtime.js +0 -8
  295. package/dist/index.d.ts +0 -8
  296. package/dist/index.js +0 -8
  297. package/dist/inference_check.d.ts +0 -1
  298. package/dist/inference_check.js +0 -15
  299. package/dist/lint/plugin.d.ts +0 -86
  300. package/dist/lint/plugin.js +0 -341
  301. package/dist/middlewares/BasicAuthMiddleware.d.ts +0 -8
  302. package/dist/middlewares/BasicAuthMiddleware.js +0 -22
  303. package/dist/middlewares/index.d.ts +0 -1
  304. package/dist/middlewares/index.js +0 -1
  305. package/dist/node/Effectify.d.ts +0 -209
  306. package/dist/node/Effectify.js +0 -19
  307. package/dist/node/FileSystem.d.ts +0 -7
  308. package/dist/node/FileSystem.js +0 -420
  309. package/dist/node/NodeFileSystem.d.ts +0 -7
  310. package/dist/node/NodeFileSystem.js +0 -410
  311. package/dist/node/NodeUtils.d.ts +0 -2
  312. package/dist/node/NodeUtils.js +0 -20
  313. package/dist/node/PlatformError.d.ts +0 -46
  314. package/dist/node/PlatformError.js +0 -43
  315. package/dist/node/Utils.d.ts +0 -1
  316. package/dist/node/Utils.js +0 -19
  317. package/dist/repro_fail.d.ts +0 -1
  318. package/dist/repro_fail.js +0 -14
  319. package/dist/sql/bun/index.d.ts +0 -3
  320. package/dist/sql/bun/index.js +0 -75
  321. package/dist/sql/mssql/docker.d.ts +0 -2
  322. package/dist/sql/mssql/docker.js +0 -67
  323. package/dist/sql/mssql/index.d.ts +0 -21
  324. package/dist/sql/mssql/index.js +0 -113
  325. package/dist/testing/TestHttpClient.d.ts +0 -13
  326. package/dist/testing/TestHttpClient.js +0 -68
  327. package/dist/testing/TestLogger.d.ts +0 -13
  328. package/dist/testing/TestLogger.js +0 -32
  329. package/dist/testing/index.d.ts +0 -2
  330. package/dist/testing/index.js +0 -2
  331. package/dist/testing/utils.d.ts +0 -9
  332. package/dist/testing/utils.js +0 -39
  333. package/dist/x/cloudflare/CloudflareTunnel.d.ts +0 -10
  334. package/dist/x/cloudflare/CloudflareTunnel.js +0 -30
  335. package/dist/x/cloudflare/index.d.ts +0 -1
  336. package/dist/x/cloudflare/index.js +0 -1
  337. package/dist/x/datastar/Datastar.d.ts +0 -6
  338. package/dist/x/datastar/Datastar.js +0 -47
  339. package/dist/x/datastar/index.d.ts +0 -1
  340. package/dist/x/datastar/index.js +0 -1
  341. package/dist/x/tailscale/TailscaleTunnel.d.ts +0 -15
  342. package/dist/x/tailscale/TailscaleTunnel.js +0 -68
  343. package/dist/x/tailscale/index.d.ts +0 -1
  344. package/dist/x/tailscale/index.js +0 -1
  345. package/dist/x/tailwind/TailwindPlugin.d.ts +0 -23
  346. package/dist/x/tailwind/TailwindPlugin.js +0 -219
  347. package/dist/x/tailwind/compile.d.ts +0 -19
  348. package/dist/x/tailwind/compile.js +0 -154
  349. package/dist/x/tailwind/plugin.d.ts +0 -2
  350. package/dist/x/tailwind/plugin.js +0 -15
  351. /package/src/{Sql.ts → sql/Sql.ts} +0 -0
@@ -1,45 +0,0 @@
1
- type ErrorWithDetail = Error & {
2
- details?: string;
3
- };
4
- interface ResolveRequest {
5
- path: string | false;
6
- context?: object;
7
- descriptionFilePath?: string;
8
- descriptionFileRoot?: string;
9
- descriptionFileData?: Record<string, unknown>;
10
- relativePath?: string;
11
- ignoreSymlinks?: boolean;
12
- fullySpecified?: boolean;
13
- }
14
- interface ResolveContext {
15
- contextDependencies?: {
16
- add: (item: string) => void;
17
- };
18
- fileDependencies?: {
19
- add: (item: string) => void;
20
- };
21
- missingDependencies?: {
22
- add: (item: string) => void;
23
- };
24
- stack?: Set<string>;
25
- log?: (str: string) => void;
26
- yield?: (request: ResolveRequest) => void;
27
- }
28
- interface ResolveOptions {
29
- extensions?: Array<string>;
30
- mainFields?: Array<string | string[]>;
31
- conditionNames?: Array<string>;
32
- fileSystem?: unknown;
33
- useSyncFileSystemCalls?: boolean;
34
- modules?: string | string[];
35
- }
36
- export interface Resolver {
37
- resolve(context: object, path: string, request: string, resolveContext: ResolveContext, callback: (err: null | ErrorWithDetail, res?: string | false, req?: ResolveRequest) => void): void;
38
- }
39
- export declare class CachedInputFileSystem {
40
- constructor(_fileSystem: unknown, _duration: number);
41
- }
42
- export declare const ResolverFactory: {
43
- createResolver(options: ResolveOptions): Resolver;
44
- };
45
- export {};
@@ -1,102 +0,0 @@
1
- /**
2
- * Bun adapter for enhanced-resolve
3
- *
4
- * This module provides a drop-in replacement for `enhanced-resolve` that uses
5
- * Bun's built-in resolver. It implements the subset of the enhanced-resolve API
6
- * used for Tailwind CSS.
7
- */
8
- import fs from "node:fs";
9
- import path from "node:path";
10
- export class CachedInputFileSystem {
11
- constructor(_fileSystem, _duration) { }
12
- }
13
- export const ResolverFactory = {
14
- createResolver(options) {
15
- const extensions = options.extensions ?? [];
16
- const mainFields = (options.mainFields ?? []).flatMap((f) => (Array.isArray(f) ? f : [f]));
17
- const conditionNames = options.conditionNames ?? [];
18
- return {
19
- resolve(_context, basePath, id, _resolveContext, callback) {
20
- try {
21
- const result = resolveSync(id, basePath, {
22
- extensions,
23
- mainFields,
24
- conditionNames,
25
- });
26
- callback(null, result);
27
- }
28
- catch (err) {
29
- callback(err instanceof Error ? err : new Error(String(err)));
30
- }
31
- },
32
- };
33
- },
34
- };
35
- function resolveSync(id, base, options) {
36
- if (id.startsWith(".") || id.startsWith("/")) {
37
- for (const ext of ["", ...options.extensions]) {
38
- const fullPath = path.resolve(base, id + ext);
39
- if (fs.existsSync(fullPath) && fs.statSync(fullPath).isFile()) {
40
- return fullPath;
41
- }
42
- }
43
- return undefined;
44
- }
45
- const packagePath = resolvePackagePath(id, base);
46
- if (!packagePath)
47
- return undefined;
48
- const packageJsonPath = path.join(packagePath, "package.json");
49
- if (!fs.existsSync(packageJsonPath))
50
- return undefined;
51
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
52
- for (const field of options.mainFields) {
53
- if (typeof packageJson[field] === "string") {
54
- const resolved = path.resolve(packagePath, packageJson[field]);
55
- if (fs.existsSync(resolved))
56
- return resolved;
57
- }
58
- }
59
- if (packageJson.exports) {
60
- const resolved = resolveExports(packageJson.exports, packagePath, options.conditionNames);
61
- if (resolved && fs.existsSync(resolved))
62
- return resolved;
63
- }
64
- try {
65
- return Bun.resolveSync(id, base);
66
- }
67
- catch {
68
- return undefined;
69
- }
70
- }
71
- function resolvePackagePath(id, base) {
72
- const parts = id.split("/");
73
- const packageName = id.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
74
- let dir = base;
75
- while (dir !== path.dirname(dir)) {
76
- const candidate = path.join(dir, "node_modules", packageName);
77
- if (fs.existsSync(candidate))
78
- return candidate;
79
- dir = path.dirname(dir);
80
- }
81
- return undefined;
82
- }
83
- function resolveExports(exports, packagePath, conditionNames) {
84
- if (typeof exports === "string") {
85
- return path.resolve(packagePath, exports);
86
- }
87
- if (exports && typeof exports === "object" && !Array.isArray(exports)) {
88
- const exportsObj = exports;
89
- if ("." in exportsObj) {
90
- return resolveExports(exportsObj["."], packagePath, conditionNames);
91
- }
92
- for (const condition of conditionNames) {
93
- if (condition in exportsObj) {
94
- return resolveExports(exportsObj[condition], packagePath, conditionNames);
95
- }
96
- }
97
- if ("default" in exportsObj) {
98
- return resolveExports(exportsObj["default"], packagePath, conditionNames);
99
- }
100
- }
101
- return undefined;
102
- }
@@ -1,5 +0,0 @@
1
- export * as BunChildProcessSpawner from "./BunChildProcessSpawner.ts";
2
- export * as BunBundle from "./BunBundle.ts";
3
- export * as BunImportTrackerPlugin from "./BunImportTrackerPlugin.ts";
4
- export * as BunRoute from "./BunRoute.ts";
5
- export * as BunServer from "./BunServer.ts";
package/dist/bun/index.js DELETED
@@ -1,5 +0,0 @@
1
- export * as BunChildProcessSpawner from "./BunChildProcessSpawner.js";
2
- export * as BunBundle from "./BunBundle.js";
3
- export * as BunImportTrackerPlugin from "./BunImportTrackerPlugin.js";
4
- export * as BunRoute from "./BunRoute.js";
5
- export * as BunServer from "./BunServer.js";
@@ -1,61 +0,0 @@
1
- import type { PubSub } from "effect";
2
- import { Context, Effect } from "effect";
3
- import * as Schema from "effect/Schema";
4
- export declare const BundleEntrypointMetaKey: unique symbol;
5
- export type BundleOutputMetaValue = {};
6
- /**
7
- * Generic shape describing a bundle across multiple bundlers
8
- * (like bun, esbuild & vite)
9
- */
10
- export declare const BundleManifestSchema: Schema.Struct<{
11
- entrypoints: Schema.Record$<typeof Schema.String, typeof Schema.String>;
12
- artifacts: Schema.Array$<Schema.Struct<{
13
- path: typeof Schema.String;
14
- type: typeof Schema.String;
15
- size: typeof Schema.Number;
16
- hash: Schema.optional<typeof Schema.String>;
17
- imports: Schema.optional<Schema.Array$<Schema.Struct<{
18
- path: typeof Schema.String;
19
- kind: Schema.Literal<["import-statement", "require-call", "require-resolve", "dynamic-import", "import-rule", "url-token", "internal", "entry-point-run", "entry-point-build"]>;
20
- }>>>;
21
- }>>;
22
- }>;
23
- export type BundleManifest = typeof BundleManifestSchema.Type;
24
- export declare const BundleEvent: Schema.Union<[Schema.TaggedStruct<"Change", {
25
- path: typeof Schema.String;
26
- }>, Schema.TaggedStruct<"BuildError", {
27
- error: typeof Schema.String;
28
- }>]>;
29
- export type BundleEvent = typeof BundleEvent.Type;
30
- declare const IdPrefix = "effect-start/tags/";
31
- export type BundleKey = `${string}Bundle`;
32
- export type BundleId = `${typeof IdPrefix}${BundleKey}`;
33
- /**
34
- * Passed to bundle effects and within bundle runtime.
35
- * Used to expose artifacts via HTTP server and properly resolve
36
- * imports within the bundle.
37
- */
38
- export type BundleContext = BundleManifest & {
39
- resolve: (url: string) => string | null;
40
- getArtifact: (path: string) => Blob | null;
41
- events?: PubSub.PubSub<BundleEvent>;
42
- };
43
- declare const BundleError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
44
- readonly _tag: "BundleError";
45
- } & Readonly<A>;
46
- export declare class BundleError extends BundleError_base<{
47
- message: string;
48
- cause?: unknown;
49
- }> {
50
- }
51
- export declare const emptyBundleContext: BundleContext;
52
- export declare const handleBundleErrorSilently: (effect: Effect.Effect<BundleContext, BundleError>) => Effect.Effect<BundleContext, never>;
53
- export declare const Tag: <const T extends BundleKey>(name: T) => <Identifier>() => Context.TagClass<Identifier, `effect-start/tags/${string}Bundle`, BundleContext>;
54
- export type Tag = Context.Tag<BundleId, BundleContext>;
55
- declare const ClientBundle_base: Context.TagClass<ClientBundle, `effect-start/tags/${string}Bundle`, BundleContext>;
56
- export declare class ClientBundle extends ClientBundle_base {
57
- }
58
- declare const ServerBundle_base: Context.TagClass<ServerBundle, `effect-start/tags/${string}Bundle`, BundleContext>;
59
- export declare class ServerBundle extends ServerBundle_base {
60
- }
61
- export {};
@@ -1,48 +0,0 @@
1
- import { Context, Data, Effect, pipe } from "effect";
2
- import * as Schema from "effect/Schema";
3
- export const BundleEntrypointMetaKey = Symbol.for("effect-start/BundleEntrypointMetaKey");
4
- /**
5
- * Generic shape describing a bundle across multiple bundlers
6
- * (like bun, esbuild & vite)
7
- */
8
- export const BundleManifestSchema = Schema.Struct({
9
- entrypoints: Schema.Record({
10
- key: Schema.String,
11
- value: Schema.String,
12
- }),
13
- artifacts: Schema.Array(Schema.Struct({
14
- path: Schema.String,
15
- type: Schema.String,
16
- size: Schema.Number,
17
- hash: pipe(Schema.String, Schema.optional),
18
- imports: pipe(Schema.Array(Schema.Struct({
19
- path: Schema.String,
20
- kind: Schema.Literal("import-statement", "require-call", "require-resolve", "dynamic-import", "import-rule", "url-token", "internal", "entry-point-run", "entry-point-build"),
21
- })), Schema.optional),
22
- })),
23
- });
24
- const BundleEventChange = Schema.TaggedStruct("Change", {
25
- path: Schema.String,
26
- });
27
- const BundleEventBuildError = Schema.TaggedStruct("BuildError", {
28
- error: Schema.String,
29
- });
30
- export const BundleEvent = Schema.Union(BundleEventChange, BundleEventBuildError);
31
- const IdPrefix = "effect-start/tags/";
32
- export class BundleError extends Data.TaggedError("BundleError") {
33
- }
34
- export const emptyBundleContext = {
35
- entrypoints: {},
36
- artifacts: [],
37
- resolve: () => null,
38
- getArtifact: () => null,
39
- };
40
- export const handleBundleErrorSilently = (effect) => pipe(effect, Effect.catchTag("BundleError", (error) => Effect.gen(function* () {
41
- yield* Effect.logError("Bundle build failed", error);
42
- return emptyBundleContext;
43
- })));
44
- export const Tag = (name) => () => Context.Tag(`${IdPrefix}${name}`)();
45
- export class ClientBundle extends Tag("ClientBundle")() {
46
- }
47
- export class ServerBundle extends Tag("ServerBundle")() {
48
- }
@@ -1,13 +0,0 @@
1
- import * as FileSystem from "../FileSystem.ts";
2
- import * as Effect from "effect/Effect";
3
- import * as Bundle from "./Bundle.ts";
4
- /**
5
- * Exports a bundle to a file system under specified directory.
6
- */
7
- export declare const toFiles: (context: Bundle.BundleContext, outDir: string) => Effect.Effect<undefined, import("../PlatformError.ts").PlatformError | Bundle.BundleError, FileSystem.FileSystem>;
8
- /**
9
- * Loads a bundle from a directory and returns a Bundle.BundleContext.
10
- * Expects the directory to contain a manifest.json file and all the artifacts
11
- * referenced in the manifest.
12
- */
13
- export declare const fromFiles: (directory: string) => Effect.Effect<Bundle.BundleContext, Bundle.BundleError, FileSystem.FileSystem>;
@@ -1,96 +0,0 @@
1
- import * as FileSystem from "../FileSystem.js";
2
- import * as Array from "effect/Array";
3
- import * as Effect from "effect/Effect";
4
- import * as Function from "effect/Function";
5
- import * as Iterable from "effect/Iterable";
6
- import * as Record from "effect/Record";
7
- import * as S from "effect/Schema";
8
- import * as Bundle from "./Bundle.js";
9
- /**
10
- * Exports a bundle to a file system under specified directory.
11
- */
12
- export const toFiles = (context, outDir) => {
13
- return Effect.gen(function* () {
14
- const fs = yield* FileSystem.FileSystem;
15
- const manifest = {
16
- entrypoints: context.entrypoints,
17
- artifacts: context.artifacts,
18
- };
19
- const normalizedOutDir = outDir.replace(/\/$/, "");
20
- const bundleArtifacts = Function.pipe(manifest.artifacts, Array.map((artifact) => [artifact.path, context.getArtifact(artifact.path)]), Record.fromEntries);
21
- const extraArtifacts = {
22
- "manifest.json": new Blob([JSON.stringify(manifest, undefined, 2)], {
23
- type: "application/json",
24
- }),
25
- };
26
- const allArtifacts = {
27
- ...bundleArtifacts,
28
- ...extraArtifacts,
29
- };
30
- const existingOutDirFiles = yield* fs
31
- .readDirectory(normalizedOutDir)
32
- .pipe(Effect.catchAll(() => Effect.succeed(null)));
33
- // check if the output directory is empty. if it contains previous build,
34
- // remove it. Otherwise fail.
35
- if (existingOutDirFiles && existingOutDirFiles.length > 0) {
36
- if (existingOutDirFiles.includes("manifest.json")) {
37
- yield* Effect.logWarning("Output directory seems to contain previous build. Overwriting...");
38
- yield* fs.remove(normalizedOutDir, {
39
- recursive: true,
40
- });
41
- }
42
- else {
43
- return yield* Effect.fail(new Bundle.BundleError({
44
- message: "Output directory is not empty",
45
- }));
46
- }
47
- }
48
- yield* fs.makeDirectory(normalizedOutDir, {
49
- recursive: true,
50
- });
51
- // write all artifacts to files
52
- yield* Effect.all(Function.pipe(allArtifacts, Record.toEntries, Array.map(([p, b]) => Function.pipe(Effect.tryPromise({
53
- try: () => b.arrayBuffer(),
54
- catch: (e) => new Bundle.BundleError({
55
- message: "Failed to read an artifact as a buffer",
56
- cause: e,
57
- }),
58
- }), Effect.andThen((b) => fs.writeFile(`${normalizedOutDir}/${p}`, new Uint8Array(b)))))), { concurrency: 16 });
59
- });
60
- };
61
- /**
62
- * Loads a bundle from a directory and returns a Bundle.BundleContext.
63
- * Expects the directory to contain a manifest.json file and all the artifacts
64
- * referenced in the manifest.
65
- */
66
- export const fromFiles = (directory) => {
67
- return Effect.gen(function* () {
68
- const fs = yield* FileSystem.FileSystem;
69
- const normalizedDir = directory.replace(/\/$/, "");
70
- const manifest = yield* Function.pipe(fs.readFileString(`${normalizedDir}/manifest.json`), Effect.andThen((v) => JSON.parse(v)), Effect.andThen(S.decodeUnknownSync(Bundle.BundleManifestSchema)), Effect.catchAll((e) => Effect.fail(new Bundle.BundleError({
71
- message: `Failed to read manifest.json from ${normalizedDir}`,
72
- cause: e,
73
- }))));
74
- const artifactPaths = Array.map(manifest.artifacts, (a) => a.path);
75
- const artifactBlobs = yield* Function.pipe(artifactPaths, Iterable.map((path) => fs.readFile(`${normalizedDir}/${path}`)), Effect.all, Effect.catchAll((e) => new Bundle.BundleError({
76
- message: `Failed to read an artifact from ${normalizedDir}`,
77
- cause: e,
78
- })), Effect.andThen(Iterable.map((v, i) => new Blob([v.slice(0)], {
79
- type: manifest.artifacts[i].type,
80
- }))));
81
- const artifactsRecord = Function.pipe(Iterable.zip(artifactPaths, artifactBlobs), Record.fromEntries);
82
- const bundleContext = {
83
- ...manifest,
84
- // TODO: support fullpath file:// urls
85
- // this will require having an access to base path of a build
86
- // and maybe problematic because bundlers transform urls on build
87
- resolve: (url) => {
88
- return manifest.entrypoints[url] ?? null;
89
- },
90
- getArtifact: (path) => {
91
- return artifactsRecord[path] ?? null;
92
- },
93
- };
94
- return bundleContext;
95
- });
96
- };
@@ -1,45 +0,0 @@
1
- import type * as HttpApp from "@effect/platform/HttpApp";
2
- import { RouteNotFound } from "@effect/platform/HttpServerError";
3
- import * as HttpServerRequest from "@effect/platform/HttpServerRequest";
4
- import * as HttpServerResponse from "@effect/platform/HttpServerResponse";
5
- import * as Effect from "effect/Effect";
6
- import * as Scope from "effect/Scope";
7
- import * as Bundle from "./Bundle.ts";
8
- /**
9
- * Handles all entrypoints automatically.
10
- * Serves HTML entrypoints without requiring explicit route definitions for each one.
11
- * Examples:
12
- * index.html -> /
13
- * contact.html -> /contact
14
- * about/index.html -> /about
15
- */
16
- export declare function entrypoint(uri?: string): HttpApp.Default<RouteNotFound, Bundle.ClientBundle>;
17
- export declare function httpApp(opts?: {
18
- urlPrefix?: string;
19
- }): HttpApp.Default<RouteNotFound, Scope.Scope | Bundle.ClientBundle>;
20
- export declare const toHttpApp: <E, R>(bundleTag: Effect.Effect<Bundle.BundleContext, E, R>, opts?: {
21
- urlPrefix?: string;
22
- }) => Effect.Effect<HttpServerResponse.HttpServerResponse, RouteNotFound | E, HttpServerRequest.HttpServerRequest | R>;
23
- /**
24
- * Render HTML to a string.
25
- * Useful for SSR.
26
- */
27
- export declare function renderPromise(clientBundle: Bundle.Tag, render: (request: Request, resolve: (url: string) => string) => Promise<Response>): Effect.Effect<HttpServerResponse.HttpServerResponse, Bundle.BundleError, HttpServerRequest.HttpServerRequest | `effect-start/tags/${string}Bundle`>;
28
- /**
29
- * Exposes bundle assets via HTTP routes.
30
- * Serves bundle artifacts, manifest.json, and events endpoint at the specified path.
31
- */
32
- export declare function withAssets(opts?: {
33
- path?: string;
34
- }): <E, R>(app: HttpApp.Default<E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, RouteNotFound | E, HttpServerRequest.HttpServerRequest | Bundle.ClientBundle | R>;
35
- /**
36
- * @see {entrypoint}
37
- */
38
- export declare function withEntrypoints(): <E, R>(app: HttpApp.Default<E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, E, HttpServerRequest.HttpServerRequest | Bundle.ClientBundle | R>;
39
- /**
40
- * Combines both withAssets and withEntrypoints.
41
- * Provides complete bundle HTTP functionality in a single function call.
42
- */
43
- export declare function withBundle(opts?: {
44
- path?: string;
45
- }): <E, R>(app: HttpApp.Default<E, R>) => Effect.Effect<HttpServerResponse.HttpServerResponse, RouteNotFound | E, HttpServerRequest.HttpServerRequest | Bundle.ClientBundle | R>;
@@ -1,176 +0,0 @@
1
- import * as Headers from "@effect/platform/Headers";
2
- import * as HttpMiddleware from "@effect/platform/HttpMiddleware";
3
- import { RouteNotFound } from "@effect/platform/HttpServerError";
4
- import * as HttpServerRequest from "@effect/platform/HttpServerRequest";
5
- import * as HttpServerResponse from "@effect/platform/HttpServerResponse";
6
- import * as Effect from "effect/Effect";
7
- import * as Function from "effect/Function";
8
- import * as Option from "effect/Option";
9
- import * as Stream from "effect/Stream";
10
- import * as NPath from "node:path";
11
- import * as NUrl from "node:url";
12
- import * as SseHttpResponse from "../experimental/SseHttpResponse.js";
13
- import * as Bundle from "./Bundle.js";
14
- const DefaultBundleEndpoint = "/_bundle";
15
- /**
16
- * Handles all entrypoints automatically.
17
- * Serves HTML entrypoints without requiring explicit route definitions for each one.
18
- * Examples:
19
- * index.html -> /
20
- * contact.html -> /contact
21
- * about/index.html -> /about
22
- */
23
- export function entrypoint(uri) {
24
- return Effect.gen(function* () {
25
- uri = uri?.startsWith("file://") ? NUrl.fileURLToPath(uri) : uri;
26
- const request = yield* HttpServerRequest.HttpServerRequest;
27
- const bundle = yield* Bundle.ClientBundle;
28
- const requestPath = request.url.substring(1);
29
- const pathAttempts = uri
30
- ? [
31
- // try paths from all parent directories in case absolute path is passed,
32
- // like it is the case for `import(f, { type: "file" })`
33
- ...uri
34
- .split(NPath.sep)
35
- .map((_, i, a) => NPath.join(...a.slice(i))),
36
- ]
37
- : [
38
- requestPath ? `${requestPath}.html` : null,
39
- requestPath ? `${requestPath}/index.html` : null,
40
- requestPath === "" ? "index.html" : "",
41
- ];
42
- const artifact = pathAttempts
43
- .filter(Boolean)
44
- .map(path => bundle.getArtifact(path))
45
- .find(Boolean);
46
- if (artifact) {
47
- return yield* renderBlob(artifact);
48
- }
49
- return yield* Effect.fail(new RouteNotFound({
50
- request,
51
- }));
52
- });
53
- }
54
- export function httpApp(opts) {
55
- return toHttpApp(Bundle.ClientBundle, opts);
56
- }
57
- export const toHttpApp = (bundleTag, opts) => {
58
- return Effect.gen(function* () {
59
- const request = yield* HttpServerRequest.HttpServerRequest;
60
- const bundle = yield* bundleTag;
61
- const path = opts?.urlPrefix && request.url.startsWith(opts.urlPrefix + "/")
62
- ? request.url.substring(opts.urlPrefix.length + 1)
63
- : request.url.substring(1);
64
- /**
65
- * Expose manifest that contains information about the bundle.
66
- */
67
- if (path === "manifest.json") {
68
- return HttpServerResponse.text(JSON.stringify({
69
- entrypoints: bundle.entrypoints,
70
- artifacts: bundle.artifacts,
71
- }, undefined, 2), {
72
- headers: {
73
- "Content-Type": "application/json",
74
- },
75
- });
76
- }
77
- /**
78
- * Expose events endpoint if available.
79
- * Useful for development to implement live reload.
80
- */
81
- if (bundle.events && path === "events") {
82
- return yield* SseHttpResponse.make(Stream.fromPubSub(bundle.events));
83
- }
84
- const artifact = bundle.artifacts.find((a) => a.path === path);
85
- /**
86
- * Expose artifacts.
87
- */
88
- if (artifact) {
89
- const artifactBlob = bundle.getArtifact(path);
90
- return yield* renderBlob(artifactBlob);
91
- }
92
- return yield* Effect.fail(new RouteNotFound({
93
- request,
94
- }));
95
- });
96
- };
97
- /**
98
- * Render HTML to a string.
99
- * Useful for SSR.
100
- */
101
- export function renderPromise(clientBundle, render) {
102
- return Effect.gen(function* () {
103
- const bundle = yield* clientBundle;
104
- const req = yield* HttpServerRequest.HttpServerRequest;
105
- const fetchReq = req.source;
106
- // TODO: add support for file:// urls
107
- // this will require handling source base path
108
- const resolve = (url) => {
109
- const path = url.startsWith("file://")
110
- ? NUrl.fileURLToPath(url)
111
- : url;
112
- const publicBase = "/.bundle";
113
- const publicPath = bundle.resolve(path);
114
- return NPath.join(publicBase, publicPath ?? path);
115
- };
116
- const output = yield* Effect.tryPromise({
117
- try: () => render(fetchReq, resolve),
118
- catch: (e) => new Bundle.BundleError({
119
- message: "Failed to render",
120
- cause: e,
121
- }),
122
- });
123
- return yield* HttpServerResponse.raw(output.body, {
124
- status: output.status,
125
- statusText: output.statusText,
126
- headers: Headers.fromInput(output.headers),
127
- });
128
- });
129
- }
130
- const renderBlob = (blob) => {
131
- return Effect.gen(function* () {
132
- const bytes = yield* Effect
133
- .promise(() => blob.arrayBuffer())
134
- .pipe(Effect.andThen(v => new Uint8Array(v)));
135
- return HttpServerResponse.uint8Array(bytes, {
136
- headers: {
137
- "content-type": blob.type,
138
- "content-length": String(blob.size),
139
- "cache-control": "public, max-age=3600",
140
- },
141
- });
142
- });
143
- };
144
- /**
145
- * Exposes bundle assets via HTTP routes.
146
- * Serves bundle artifacts, manifest.json, and events endpoint at the specified path.
147
- */
148
- export function withAssets(opts) {
149
- const path = opts?.path ?? DefaultBundleEndpoint;
150
- return HttpMiddleware.make((app) => Effect.gen(function* () {
151
- const request = yield* HttpServerRequest.HttpServerRequest;
152
- if (request.url.startsWith(path + "/")) {
153
- return yield* toHttpApp(Bundle.ClientBundle, { urlPrefix: path });
154
- }
155
- return yield* app;
156
- }));
157
- }
158
- /**
159
- * @see {entrypoint}
160
- */
161
- export function withEntrypoints() {
162
- return HttpMiddleware.make((app) => Effect.gen(function* () {
163
- const entrypointResponse = yield* entrypoint().pipe(Effect.option);
164
- if (Option.isSome(entrypointResponse)) {
165
- return entrypointResponse.value;
166
- }
167
- return yield* app;
168
- }));
169
- }
170
- /**
171
- * Combines both withAssets and withEntrypoints.
172
- * Provides complete bundle HTTP functionality in a single function call.
173
- */
174
- export function withBundle(opts) {
175
- return Function.flow(withAssets(opts), withEntrypoints());
176
- }
@@ -1,27 +0,0 @@
1
- import type * as Context from "effect/Context";
2
- import * as Layer from "effect/Layer";
3
- import * as PathPattern from "../PathPattern.ts";
4
- import * as Route from "../Route.ts";
5
- import * as Bundle from "./Bundle.ts";
6
- /**
7
- * Creates a GET route that serves bundle artifacts.
8
- * Mount at a path with a wildcard param (any name works).
9
- *
10
- * ```ts
11
- * RouteTree.make({
12
- * "/_bundle/:path+": BundleRoute.make(Bundle.ClientBundle),
13
- * })
14
- * ```
15
- */
16
- export declare const make: <Tag extends Context.Tag<any, Bundle.BundleContext>>(tag: Tag) => import("../RouteMount.ts").RouteMount.Builder<{}, [Route.Route.Route<{
17
- method: "GET";
18
- format: "*";
19
- }, {}, Uint8Array<ArrayBuffer>, never, any>]>;
20
- export declare const client: () => import("../RouteMount.ts").RouteMount.Builder<{}, [Route.Route.Route<{
21
- method: "GET";
22
- format: "*";
23
- }, {}, Uint8Array<ArrayBuffer>, never, any>]>;
24
- export declare const layer: (options?: {
25
- bundle?: Context.Tag<any, Bundle.BundleContext>;
26
- path?: PathPattern.PathPattern;
27
- }) => Layer.Layer<Route.Routes, never, never>;