effective-rsc 0.1.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 (220) hide show
  1. package/LICENSE +21 -0
  2. package/LLMS.md +382 -0
  3. package/README.md +235 -0
  4. package/bin/ersc.js +3 -0
  5. package/dist/application/component.d.ts +15 -0
  6. package/dist/application/component.js +20 -0
  7. package/dist/application/component.js.map +1 -0
  8. package/dist/application/definition.d.ts +31 -0
  9. package/dist/application/definition.js +57 -0
  10. package/dist/application/definition.js.map +1 -0
  11. package/dist/application/ersc-identity.d.ts +25 -0
  12. package/dist/application/ersc-identity.js +23 -0
  13. package/dist/application/ersc-identity.js.map +1 -0
  14. package/dist/application/ersc.d.ts +28 -0
  15. package/dist/application/ersc.js +72 -0
  16. package/dist/application/ersc.js.map +1 -0
  17. package/dist/application/layout.d.ts +18 -0
  18. package/dist/application/layout.js +17 -0
  19. package/dist/application/layout.js.map +1 -0
  20. package/dist/application/loading.d.ts +17 -0
  21. package/dist/application/loading.js +14 -0
  22. package/dist/application/loading.js.map +1 -0
  23. package/dist/application/middleware.d.ts +36 -0
  24. package/dist/application/middleware.js +46 -0
  25. package/dist/application/middleware.js.map +1 -0
  26. package/dist/application/page.d.ts +58 -0
  27. package/dist/application/page.js +50 -0
  28. package/dist/application/page.js.map +1 -0
  29. package/dist/application/render-runtime.d.ts +9 -0
  30. package/dist/application/render-runtime.js +28 -0
  31. package/dist/application/render-runtime.js.map +1 -0
  32. package/dist/application/route-graph.d.ts +22 -0
  33. package/dist/application/route-graph.js +68 -0
  34. package/dist/application/route-graph.js.map +1 -0
  35. package/dist/application/route-path.d.ts +31 -0
  36. package/dist/application/route-path.js +67 -0
  37. package/dist/application/route-path.js.map +1 -0
  38. package/dist/application/routes.d.ts +66 -0
  39. package/dist/application/routes.js +159 -0
  40. package/dist/application/routes.js.map +1 -0
  41. package/dist/application/server-fn.d.ts +30 -0
  42. package/dist/application/server-fn.js +58 -0
  43. package/dist/application/server-fn.js.map +1 -0
  44. package/dist/build/build.d.ts +26 -0
  45. package/dist/build/build.js +59 -0
  46. package/dist/build/build.js.map +1 -0
  47. package/dist/build/compiled-server.d.ts +53 -0
  48. package/dist/build/compiled-server.js +77 -0
  49. package/dist/build/compiled-server.js.map +1 -0
  50. package/dist/build/contract.d.ts +23 -0
  51. package/dist/build/contract.js +41 -0
  52. package/dist/build/contract.js.map +1 -0
  53. package/dist/build/dev-channel.d.ts +20 -0
  54. package/dist/build/dev-channel.js +71 -0
  55. package/dist/build/dev-channel.js.map +1 -0
  56. package/dist/build/dev.d.ts +41 -0
  57. package/dist/build/dev.js +186 -0
  58. package/dist/build/dev.js.map +1 -0
  59. package/dist/build/rsc-entry.d.ts +4 -0
  60. package/dist/build/rsc-entry.js +17 -0
  61. package/dist/build/rsc-entry.js.map +1 -0
  62. package/dist/build/rspack-config.d.ts +17 -0
  63. package/dist/build/rspack-config.js +259 -0
  64. package/dist/build/rspack-config.js.map +1 -0
  65. package/dist/build/rspack.d.ts +45 -0
  66. package/dist/build/rspack.js +231 -0
  67. package/dist/build/rspack.js.map +1 -0
  68. package/dist/build/terminal.d.ts +9 -0
  69. package/dist/build/terminal.js +17 -0
  70. package/dist/build/terminal.js.map +1 -0
  71. package/dist/cli.d.ts +14 -0
  72. package/dist/cli.js +116 -0
  73. package/dist/cli.js.map +1 -0
  74. package/dist/client/application.d.ts +2 -0
  75. package/dist/client/application.js +73 -0
  76. package/dist/client/application.js.map +1 -0
  77. package/dist/client/browser-capabilities.d.ts +9 -0
  78. package/dist/client/browser-capabilities.js +20 -0
  79. package/dist/client/browser-capabilities.js.map +1 -0
  80. package/dist/client/browser-effect-runner.d.ts +13 -0
  81. package/dist/client/browser-effect-runner.js +13 -0
  82. package/dist/client/browser-effect-runner.js.map +1 -0
  83. package/dist/client/browser-renderer.d.ts +70 -0
  84. package/dist/client/browser-renderer.js +159 -0
  85. package/dist/client/browser-renderer.js.map +1 -0
  86. package/dist/client/browser-screen.d.ts +2 -0
  87. package/dist/client/browser-screen.js +215 -0
  88. package/dist/client/browser-screen.js.map +1 -0
  89. package/dist/client/call-server.d.ts +8 -0
  90. package/dist/client/call-server.js +151 -0
  91. package/dist/client/call-server.js.map +1 -0
  92. package/dist/client/client-router.d.ts +6 -0
  93. package/dist/client/client-router.js +588 -0
  94. package/dist/client/client-router.js.map +1 -0
  95. package/dist/client/entry.d.ts +1 -0
  96. package/dist/client/entry.js +12 -0
  97. package/dist/client/entry.js.map +1 -0
  98. package/dist/client/flight-client.d.ts +83 -0
  99. package/dist/client/flight-client.js +146 -0
  100. package/dist/client/flight-client.js.map +1 -0
  101. package/dist/client/initial-flight-stream.d.ts +18 -0
  102. package/dist/client/initial-flight-stream.js +60 -0
  103. package/dist/client/initial-flight-stream.js.map +1 -0
  104. package/dist/client/navigation-api.d.ts +34 -0
  105. package/dist/client/navigation-api.js +25 -0
  106. package/dist/client/navigation-api.js.map +1 -0
  107. package/dist/client/navigation-routing.d.ts +3 -0
  108. package/dist/client/navigation-routing.js +8 -0
  109. package/dist/client/navigation-routing.js.map +1 -0
  110. package/dist/client/react-dom-renderer.d.ts +20 -0
  111. package/dist/client/react-dom-renderer.js +101 -0
  112. package/dist/client/react-dom-renderer.js.map +1 -0
  113. package/dist/client/route-loader.d.ts +81 -0
  114. package/dist/client/route-loader.js +128 -0
  115. package/dist/client/route-loader.js.map +1 -0
  116. package/dist/client/route-refresh.d.ts +31 -0
  117. package/dist/client/route-refresh.js +132 -0
  118. package/dist/client/route-refresh.js.map +1 -0
  119. package/dist/client/route-tree.d.ts +7 -0
  120. package/dist/client/route-tree.js +34 -0
  121. package/dist/client/route-tree.js.map +1 -0
  122. package/dist/dev/channel.d.ts +18 -0
  123. package/dist/dev/channel.js +30 -0
  124. package/dist/dev/channel.js.map +1 -0
  125. package/dist/dev/client.d.ts +3 -0
  126. package/dist/dev/client.js +132 -0
  127. package/dist/dev/client.js.map +1 -0
  128. package/dist/dev/hmr-update.d.ts +20 -0
  129. package/dist/dev/hmr-update.js +28 -0
  130. package/dist/dev/hmr-update.js.map +1 -0
  131. package/dist/dev/panel.d.ts +41 -0
  132. package/dist/dev/panel.js +9946 -0
  133. package/dist/dev/panel.js.map +1 -0
  134. package/dist/dev/runtime-failure.d.ts +11 -0
  135. package/dist/dev/runtime-failure.js +32 -0
  136. package/dist/dev/runtime-failure.js.map +1 -0
  137. package/dist/index.d.ts +1 -0
  138. package/dist/index.js +6 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/rsc/flight.d.ts +16 -0
  141. package/dist/rsc/flight.js +6 -0
  142. package/dist/rsc/flight.js.map +1 -0
  143. package/dist/rsc/render-route-tree.d.ts +11 -0
  144. package/dist/rsc/render-route-tree.js +52 -0
  145. package/dist/rsc/render-route-tree.js.map +1 -0
  146. package/dist/rsc/route-tree.d.ts +6 -0
  147. package/dist/rsc/route-tree.js +5 -0
  148. package/dist/rsc/route-tree.js.map +1 -0
  149. package/dist/server/application.d.ts +17 -0
  150. package/dist/server/application.js +178 -0
  151. package/dist/server/application.js.map +1 -0
  152. package/dist/server/flight-html-stream.d.ts +19 -0
  153. package/dist/server/flight-html-stream.js +193 -0
  154. package/dist/server/flight-html-stream.js.map +1 -0
  155. package/dist/server/flight-renderer.d.ts +31 -0
  156. package/dist/server/flight-renderer.js +47 -0
  157. package/dist/server/flight-renderer.js.map +1 -0
  158. package/dist/server/html-renderer.d.ts +28 -0
  159. package/dist/server/html-renderer.js +82 -0
  160. package/dist/server/html-renderer.js.map +1 -0
  161. package/dist/server/request-outcome.d.ts +8 -0
  162. package/dist/server/request-outcome.js +5 -0
  163. package/dist/server/request-outcome.js.map +1 -0
  164. package/dist/server/server-config.d.ts +17 -0
  165. package/dist/server/server-config.js +18 -0
  166. package/dist/server/server-config.js.map +1 -0
  167. package/dist/server/server-fn-outcome.d.ts +13 -0
  168. package/dist/server/server-fn-outcome.js +24 -0
  169. package/dist/server/server-fn-outcome.js.map +1 -0
  170. package/dist/server/server-fn-request.d.ts +24 -0
  171. package/dist/server/server-fn-request.js +160 -0
  172. package/dist/server/server-fn-request.js.map +1 -0
  173. package/dist/unsupported.d.ts +0 -0
  174. package/dist/unsupported.js +5 -0
  175. package/dist/unsupported.js.map +1 -0
  176. package/docs/01-getting-started/01_first-application.tsx +26 -0
  177. package/docs/01-getting-started/20_styling.tsx +6 -0
  178. package/docs/01-getting-started/index.md +27 -0
  179. package/docs/01-getting-started/styles.css +1 -0
  180. package/docs/02-guides/01-server-functions/10_ersc.ts +6 -0
  181. package/docs/02-guides/01-server-functions/20_follow-author.ts +15 -0
  182. package/docs/02-guides/01-server-functions/30_follow-author-button.tsx +19 -0
  183. package/docs/02-guides/01-server-functions/40_application.tsx +30 -0
  184. package/docs/02-guides/01-server-functions/index.md +19 -0
  185. package/docs/02-guides/02-services/10_catalog.ts +22 -0
  186. package/docs/02-guides/02-services/20_application.tsx +44 -0
  187. package/docs/02-guides/02-services/index.md +17 -0
  188. package/docs/02-guides/03-routing/10_ersc.ts +6 -0
  189. package/docs/02-guides/03-routing/10_layouts.tsx +36 -0
  190. package/docs/02-guides/03-routing/20_pages.tsx +23 -0
  191. package/docs/02-guides/03-routing/30_routes.tsx +17 -0
  192. package/docs/02-guides/03-routing/40_application.ts +7 -0
  193. package/docs/02-guides/03-routing/index.md +22 -0
  194. package/docs/02-guides/04-middleware/10_auth.ts +27 -0
  195. package/docs/02-guides/04-middleware/20_account-page.tsx +13 -0
  196. package/docs/02-guides/04-middleware/30_update-profile.ts +16 -0
  197. package/docs/02-guides/04-middleware/40_application.tsx +20 -0
  198. package/docs/02-guides/04-middleware/index.md +25 -0
  199. package/docs/02-guides/05-http/10_application-layer.tsx +60 -0
  200. package/docs/02-guides/05-http/index.md +23 -0
  201. package/docs/02-guides/index.md +11 -0
  202. package/docs/03-advanced/01-request-runtime-and-lifetimes/index.md +13 -0
  203. package/docs/03-advanced/02-client-navigation/index.md +61 -0
  204. package/docs/03-advanced/03-server-function-execution-and-refresh/index.md +17 -0
  205. package/docs/03-advanced/index.md +11 -0
  206. package/docs/04-api-reference/01-application/index.md +8 -0
  207. package/docs/04-api-reference/02-page/index.md +12 -0
  208. package/docs/04-api-reference/03-layout/index.md +4 -0
  209. package/docs/04-api-reference/04-loading/index.md +4 -0
  210. package/docs/04-api-reference/05-component/10_component.tsx +18 -0
  211. package/docs/04-api-reference/05-component/index.md +10 -0
  212. package/docs/04-api-reference/06-middleware/index.md +33 -0
  213. package/docs/04-api-reference/07-routes/index.md +20 -0
  214. package/docs/04-api-reference/08-server-fn/index.md +43 -0
  215. package/docs/04-api-reference/index.md +17 -0
  216. package/docs/environment.d.ts +1 -0
  217. package/docs/index.md +15 -0
  218. package/logo-dark.svg +6 -0
  219. package/logo.svg +6 -0
  220. package/package.json +87 -0
@@ -0,0 +1,12 @@
1
+ ## Page
2
+
3
+ - `ERSC.Page.make({ render })` creates a static route leaf.
4
+ - `ERSC.Page.make({ params, render })` creates a parameterized route leaf.
5
+
6
+ `render` returns an Effect whose requirements fit the ERSC service union. For parameterized Pages,
7
+ the Schema's encoded keys must exactly match the path parameters and accept strings. Compose the
8
+ Page with `Routes.page`.
9
+
10
+ Pages produce React output. Only an unmatched route receives a native `404`. The mapping from a
11
+ matched Page's parameter rejection to an expected HTTP outcome remains a
12
+ [known limitation](https://github.com/nikhilsnayak/effective-rsc/blob/main/docs/ARCHITECTURE.md#known-limitations).
@@ -0,0 +1,4 @@
1
+ ## Layout
2
+
3
+ `ERSC.Layout.make({ render })` creates an Effectful wrapper with one `children` outlet. It may require
4
+ ERSC application services. The root Layout owns the HTML document; nested Layouts own route scopes.
@@ -0,0 +1,4 @@
1
+ ## Loading
2
+
3
+ `ERSC.Loading.make({ render })` creates a Routes-scope fallback. `render` is synchronous and cannot
4
+ require services. A scope accepts at most one Loading value.
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @title An Effectful Server Component
3
+ *
4
+ * Component runs its render Effect in the current ERSC render scope.
5
+ */
6
+ import { Effect } from 'effect';
7
+ import { Application } from 'effective-rsc';
8
+
9
+ const ERSC = Application.ersc();
10
+
11
+ export const ExchangeRate = ERSC.Component.make({
12
+ render: ({ euros }: { readonly euros: number }) =>
13
+ Effect.succeed(
14
+ <p>
15
+ €{euros} is approximately ${(euros * 1.17).toFixed(2)}
16
+ </p>,
17
+ ),
18
+ });
@@ -0,0 +1,10 @@
1
+ ## Component
2
+
3
+ `ERSC.Component.make({ render })` creates a non-route Effectful Server Component. Props are inferred
4
+ from `render`; requirements must fit the ERSC service union. Use it only in the RSC graph.
5
+
6
+ <!-- source-navigation -->
7
+
8
+ ### Example
9
+
10
+ - [Define an Effectful Server Component](./10_component.tsx)
@@ -0,0 +1,33 @@
1
+ ## Middleware
2
+
3
+ `ERSC.Middleware.make(handler)` adapts an Effect HTTP middleware to the current ERSC identity.
4
+ `ERSC.withMiddleware(middleware)` returns a derived authoring view of that same identity.
5
+
6
+ Use `ERSC.Middleware.make<{ provides: CurrentUser }>(handler)` when the handler provides a service to
7
+ the downstream Effect. Multiple services use a union. The derived view adds those services to the
8
+ requirements available to Page, Layout, Component, ServerFn, Routes, Middleware, and further derived
9
+ views.
10
+
11
+ Routes and ServerFn activate retained middleware. Page, Layout, and Component consume its services
12
+ only while React renders them inside an active scope. Rendering one outside its required scope is a
13
+ programmer error and throws `TypeError`.
14
+
15
+ Chain `withMiddleware` in request order. Ancestors run before descendants; response transformations
16
+ unwind in reverse. A middleware repeated in one resolved mounted route chain is rejected. Shared
17
+ middleware across mounted scopes runs once.
18
+
19
+ ## Reach
20
+
21
+ | Request | Route scope | Server Function scope | Native global middleware |
22
+ | -------------------------------- | ------------------------------------ | --------------------- | ------------------------ |
23
+ | Page GET/HEAD | Matched chain | No | Yes |
24
+ | Hydrated Server Function POST | Remaining route chain around refresh | Server Function chain | Yes |
25
+ | Progressive Server Function POST | No route refresh in the POST | Server Function chain | Yes |
26
+ | Userland HTTP, assets, unmatched | No | No | Yes |
27
+
28
+ During a hydrated Server Function request, middleware already active for the Server Function is not
29
+ executed again for the refreshed route, even if it appears at another position in that route chain.
30
+ Remaining route middleware wraps refreshed rendering.
31
+
32
+ Native global Effect HTTP middleware is separate. Register it through the application Layer for
33
+ server-wide policy.
@@ -0,0 +1,20 @@
1
+ ## Routes
2
+
3
+ `ERSC.Routes.make({ layout?, loading? })` creates an immutable route scope.
4
+
5
+ - `routes.page(path, page)` adds a Page at an absolute Effect HTTP pattern. Parameter Schema keys
6
+ must exactly match path parameters.
7
+ - `routes.mount(prefix, childRoutes)` mounts a non-empty graph of the same ERSC identity below an
8
+ absolute, parameter-free prefix.
9
+ - Mounted scopes retain their Layout, Loading, and middleware ancestry.
10
+
11
+ Both operations return new Routes values. Conflicting matcher shapes and `/_ersc/assets` are
12
+ rejected. Root Routes require a Layout and at least one Page.
13
+
14
+ Routes created from a derived authoring view activate its middleware.
15
+
16
+ <!-- source-navigation -->
17
+
18
+ ### Related
19
+
20
+ - [Middleware](../06-middleware/index.md)
@@ -0,0 +1,43 @@
1
+ ## ServerFn
2
+
3
+ `ERSC.ServerFn.make({ input, handler })` creates a native React Server Function reference. `input`
4
+ decodes the invocation payload and infers the handler parameter; do not annotate it. The handler
5
+ returns an Effect whose requirements fit the ERSC service universe. The client reference accepts the
6
+ Schema's encoded type and resolves `Promise<Output>`; the handler receives its decoded type.
7
+
8
+ ```ts
9
+ const followAuthor = ERSC.ServerFn.make({
10
+ input: Schema.Struct({ authorId: Schema.NonEmptyString }),
11
+ handler: ({ authorId }) => Effect.succeed({ authorId, following: true }),
12
+ });
13
+ ```
14
+
15
+ Schema transformations may use a different encoded type. To pass a Server Function directly to
16
+ `form.action`, decode `FormData` and return `void`:
17
+
18
+ ```tsx
19
+ const followAuthorForm = ERSC.ServerFn.make({
20
+ input: Schema.fromFormData(Schema.Struct({ authorId: Schema.NonEmptyString })),
21
+ handler: ({ authorId }) => Effect.logInfo('Followed author', { authorId }),
22
+ });
23
+
24
+ <form action={followAuthorForm}>
25
+ <input name='authorId' />
26
+ <button type='submit'>Follow</button>
27
+ </form>;
28
+ ```
29
+
30
+ A ServerFn created from a derived view activates its middleware for the POST. The Middleware
31
+ reference defines refresh reach and ordering.
32
+
33
+ Direct server invocation throws. Encode expected failure in a discriminated output union; unexpected
34
+ failures reject the Promise. Browser requests require an Origin matching the application host and
35
+ may contain at most 10 MiB. See the
36
+ [known limitations](https://github.com/nikhilsnayak/effective-rsc/blob/main/docs/ARCHITECTURE.md#known-limitations)
37
+ for the typed failure channel and progressive bound arguments.
38
+
39
+ <!-- source-navigation -->
40
+
41
+ ### Related
42
+
43
+ - [Middleware](../06-middleware/index.md)
@@ -0,0 +1,17 @@
1
+ ## API reference
2
+
3
+ Under the `react-server` condition, the package root exports `Application`.
4
+ `Application.ersc<Services>()` returns `Component`, `Layout`, `Loading`, `Page`, `Middleware`,
5
+ `Routes`, `ServerFn`, `withMiddleware`, and `make`. Values from different ERSC identities cannot
6
+ be composed.
7
+
8
+ <!-- source-navigation -->
9
+
10
+ - [Application](./01-application/index.md)
11
+ - [Page](./02-page/index.md)
12
+ - [Layout](./03-layout/index.md)
13
+ - [Loading](./04-loading/index.md)
14
+ - [Component](./05-component/index.md)
15
+ - [Middleware](./06-middleware/index.md)
16
+ - [Routes](./07-routes/index.md)
17
+ - [ServerFn](./08-server-fn/index.md)
@@ -0,0 +1 @@
1
+ declare module '*.css' {}
package/docs/index.md ADDED
@@ -0,0 +1,15 @@
1
+ # effective-rsc documentation
2
+
3
+ Use the React and Effect documentation for their underlying concepts. ERSC conventions:
4
+
5
+ - Only `src/application.tsx` has framework filename semantics.
6
+ - Create application values from one ERSC identity and its derived middleware views.
7
+ - Provide application services and export the result at `ERSC.make`.
8
+ - Import the package root only from the RSC graph.
9
+
10
+ <!-- source-navigation -->
11
+
12
+ - [Getting started](./01-getting-started/index.md)
13
+ - [Guides](./02-guides/index.md)
14
+ - [Advanced](./03-advanced/index.md)
15
+ - [API reference](./04-api-reference/index.md)
package/logo-dark.svg ADDED
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" role="img" aria-label="effective-rsc">
2
+ <rect x="16" y="27.5" width="26" height="9" rx="4.5" fill="#A18CFF" />
3
+ <rect x="16" y="11" width="9" height="42" rx="4.5" fill="#F7F5F1" />
4
+ <rect x="16" y="11" width="32" height="9" rx="4.5" fill="#F7F5F1" />
5
+ <rect x="16" y="44" width="32" height="9" rx="4.5" fill="#F7F5F1" />
6
+ </svg>
package/logo.svg ADDED
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 64 64" role="img" aria-label="effective-rsc">
2
+ <rect x="16" y="27.5" width="26" height="9" rx="4.5" fill="#5B3FF0" />
3
+ <rect x="16" y="11" width="9" height="42" rx="4.5" fill="#14131A" />
4
+ <rect x="16" y="11" width="32" height="9" rx="4.5" fill="#14131A" />
5
+ <rect x="16" y="44" width="32" height="9" rx="4.5" fill="#14131A" />
6
+ </svg>
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "effective-rsc",
3
+ "version": "0.1.0",
4
+ "description": "An experimental, Effect-native React Server Components framework for Bun.",
5
+ "keywords": [
6
+ "bun",
7
+ "effect",
8
+ "react-server-components"
9
+ ],
10
+ "homepage": "https://github.com/nikhilsnayak/effective-rsc#readme",
11
+ "bugs": {
12
+ "url": "https://github.com/nikhilsnayak/effective-rsc/issues"
13
+ },
14
+ "license": "MIT",
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/nikhilsnayak/effective-rsc.git",
18
+ "directory": "packages/effective-rsc"
19
+ },
20
+ "bin": {
21
+ "ersc": "./bin/ersc.js"
22
+ },
23
+ "files": [
24
+ "bin/ersc.js",
25
+ "dist",
26
+ "docs",
27
+ "LICENSE",
28
+ "LLMS.md",
29
+ "logo-dark.svg",
30
+ "logo.svg",
31
+ "README.md"
32
+ ],
33
+ "type": "module",
34
+ "types": "./dist/index.d.ts",
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/index.d.ts",
38
+ "react-server": "./dist/index.js",
39
+ "default": "./dist/unsupported.js"
40
+ }
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "scripts": {
46
+ "build": "rslib build",
47
+ "docs:check": "bun ../../scripts/generate-docs.ts --check",
48
+ "prepack": "bun run build && bun run docs:check",
49
+ "test": "bun run --bun vitest run",
50
+ "test:types": "tsc --noEmit -p tests/types/tsconfig.json",
51
+ "test:watch": "bun run --bun vitest"
52
+ },
53
+ "dependencies": {
54
+ "@rspack/core": "2.2.2",
55
+ "@rspack/plugin-react-refresh": "2.0.2",
56
+ "@tailwindcss/webpack": "4.3.3",
57
+ "react-refresh": "0.18.0"
58
+ },
59
+ "devDependencies": {
60
+ "@base-ui/react": "^1.8.0",
61
+ "@effect/platform-browser": "4.0.0-rc.112",
62
+ "@effect/platform-bun": "4.0.0-rc.112",
63
+ "@effect/vitest": "4.0.0-rc.112",
64
+ "@rsbuild/plugin-react": "2.1.0",
65
+ "@rslib/core": "1.0.0",
66
+ "@types/bun": "^1.4.1",
67
+ "@types/react": "19.2.18",
68
+ "@types/react-dom": "19.2.7",
69
+ "effect": "4.0.0-rc.112",
70
+ "react": "19.3.0-canary-8425b691-20260904",
71
+ "react-dom": "19.3.0-canary-8425b691-20260904",
72
+ "react-server-dom-rspack": "0.1.0",
73
+ "typescript": "7.0.2",
74
+ "vitest": "^4.1.11"
75
+ },
76
+ "peerDependencies": {
77
+ "@effect/platform-browser": "4.0.0-rc.112",
78
+ "@effect/platform-bun": "4.0.0-rc.112",
79
+ "effect": "4.0.0-rc.112",
80
+ "react": "19.3.0-canary-8425b691-20260904",
81
+ "react-dom": "19.3.0-canary-8425b691-20260904",
82
+ "react-server-dom-rspack": "0.1.0"
83
+ },
84
+ "engines": {
85
+ "bun": ">=1.4.0"
86
+ }
87
+ }