@fluixi/core 1.0.0-alpha.83 → 1.0.0-alpha.84

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 (177) hide show
  1. package/dist/cdn/core.global.js +2 -1
  2. package/dist/cli/generate.cjs +4117 -292
  3. package/dist/cli/generate.mjs +4122 -292
  4. package/dist/cli/index.cjs +4117 -292
  5. package/dist/cli/index.mjs +4122 -292
  6. package/dist/cli/run.cjs +63 -1
  7. package/dist/cli/run.mjs +39 -1
  8. package/dist/src/cdn/chunk-VNLCQBFQ.mjs +747 -0
  9. package/dist/src/cdn/core.cjs +1279 -1
  10. package/dist/src/cdn/core.d.ts +3 -3
  11. package/dist/src/cdn/core.js +3 -3
  12. package/dist/src/cdn/core.mjs +642 -1
  13. package/dist/src/cdn/router-WMN2AA7E.mjs +66 -0
  14. package/dist/src/index.cjs +1201 -1
  15. package/dist/src/index.d.ts.map +1 -1
  16. package/dist/src/index.js +1 -11
  17. package/dist/src/index.mjs +1313 -1
  18. package/dist/src/jsx-dev-runtime.cjs +26 -1
  19. package/dist/src/jsx-dev-runtime.mjs +24 -1
  20. package/dist/src/jsx-runtime.cjs +26 -1
  21. package/dist/src/jsx-runtime.js +0 -9
  22. package/dist/src/jsx-runtime.mjs +24 -1
  23. package/dist/src/lib/client/chunk-2C2KDDQV.mjs +133 -0
  24. package/dist/src/lib/client/index.cjs +870 -1
  25. package/dist/src/lib/client/index.d.ts +17 -6
  26. package/dist/src/lib/client/index.d.ts.map +1 -1
  27. package/dist/src/lib/client/index.js +26 -19
  28. package/dist/src/lib/client/index.mjs +222 -1
  29. package/dist/src/lib/client/router-X526HSWQ.mjs +548 -0
  30. package/dist/src/lib/context/context.cjs +118 -1
  31. package/dist/src/lib/context/context.d.ts +19 -37
  32. package/dist/src/lib/context/context.d.ts.map +1 -1
  33. package/dist/src/lib/context/context.js +8 -45
  34. package/dist/src/lib/context/context.mjs +99 -1
  35. package/dist/src/lib/context/index.cjs +120 -1
  36. package/dist/src/lib/context/index.mjs +99 -1
  37. package/dist/src/lib/control-flow.cjs +35 -1
  38. package/dist/src/lib/control-flow.mjs +25 -1
  39. package/dist/src/lib/core.cjs +1200 -1
  40. package/dist/src/lib/core.d.ts +0 -2
  41. package/dist/src/lib/core.d.ts.map +1 -1
  42. package/dist/src/lib/core.js +14 -48
  43. package/dist/src/lib/core.mjs +1313 -1
  44. package/dist/src/lib/env/index.cjs +60 -1
  45. package/dist/src/lib/env/index.d.ts +5 -5
  46. package/dist/src/lib/env/index.js +5 -5
  47. package/dist/src/lib/env/index.mjs +39 -1
  48. package/dist/src/lib/i18n/index.cjs +108 -1
  49. package/dist/src/lib/i18n/index.d.ts +31 -10
  50. package/dist/src/lib/i18n/index.d.ts.map +1 -1
  51. package/dist/src/lib/i18n/index.js +31 -10
  52. package/dist/src/lib/i18n/index.mjs +88 -1
  53. package/dist/src/lib/index.cjs +633 -1
  54. package/dist/src/lib/index.d.ts +0 -2
  55. package/dist/src/lib/index.d.ts.map +1 -1
  56. package/dist/src/lib/index.js +5 -11
  57. package/dist/src/lib/index.mjs +721 -1
  58. package/dist/src/lib/isomorphic.cjs +85 -1
  59. package/dist/src/lib/isomorphic.d.ts +41 -8
  60. package/dist/src/lib/isomorphic.d.ts.map +1 -1
  61. package/dist/src/lib/isomorphic.js +38 -5
  62. package/dist/src/lib/isomorphic.mjs +64 -1
  63. package/dist/src/lib/jsx-runtime/index.cjs +21 -1
  64. package/dist/src/lib/jsx-runtime/index.d.ts +1 -1
  65. package/dist/src/lib/jsx-runtime/index.js +1 -11
  66. package/dist/src/lib/jsx-runtime/index.mjs +4 -1
  67. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.cjs +21 -1
  68. package/dist/src/lib/jsx-runtime/jsx-dev-runtime.mjs +4 -1
  69. package/dist/src/lib/plugins/fluixi-routes-plugin.cjs +302 -8
  70. package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts +15 -1
  71. package/dist/src/lib/plugins/fluixi-routes-plugin.d.ts.map +1 -1
  72. package/dist/src/lib/plugins/fluixi-routes-plugin.js +19 -5
  73. package/dist/src/lib/plugins/fluixi-routes-plugin.mjs +271 -8
  74. package/dist/src/lib/plugins/index.cjs +311 -8
  75. package/dist/src/lib/plugins/index.mjs +279 -8
  76. package/dist/src/lib/plugins/route-codegen.cjs +73 -8
  77. package/dist/src/lib/plugins/route-codegen.d.ts +0 -1
  78. package/dist/src/lib/plugins/route-codegen.d.ts.map +1 -1
  79. package/dist/src/lib/plugins/route-codegen.js +4 -5
  80. package/dist/src/lib/plugins/route-codegen.mjs +52 -8
  81. package/dist/src/lib/plugins/route-scanner.cjs +189 -1
  82. package/dist/src/lib/plugins/route-scanner.d.ts +1 -2
  83. package/dist/src/lib/plugins/route-scanner.d.ts.map +1 -1
  84. package/dist/src/lib/plugins/route-scanner.js +7 -8
  85. package/dist/src/lib/plugins/route-scanner.mjs +158 -1
  86. package/dist/src/lib/plugins/vite.cjs +27 -1
  87. package/dist/src/lib/plugins/vite.mjs +6 -1
  88. package/dist/src/lib/render/await.cjs +38 -1
  89. package/dist/src/lib/render/await.d.ts +18 -0
  90. package/dist/src/lib/render/await.d.ts.map +1 -1
  91. package/dist/src/lib/render/await.js +20 -2
  92. package/dist/src/lib/render/await.mjs +17 -1
  93. package/dist/src/lib/render/component.cjs +221 -1
  94. package/dist/src/lib/render/component.d.ts +3 -44
  95. package/dist/src/lib/render/component.d.ts.map +1 -1
  96. package/dist/src/lib/render/component.js +23 -55
  97. package/dist/src/lib/render/component.mjs +214 -1
  98. package/dist/src/lib/render/deferred.cjs +175 -1
  99. package/dist/src/lib/render/deferred.js +5 -5
  100. package/dist/src/lib/render/deferred.mjs +158 -1
  101. package/dist/src/lib/render/index.cjs +573 -1
  102. package/dist/src/lib/render/index.d.ts +3 -17
  103. package/dist/src/lib/render/index.d.ts.map +1 -1
  104. package/dist/src/lib/render/index.js +8 -22
  105. package/dist/src/lib/render/index.mjs +590 -1
  106. package/dist/src/lib/render/lazy.cjs +67 -1
  107. package/dist/src/lib/render/lazy.d.ts +22 -1
  108. package/dist/src/lib/render/lazy.d.ts.map +1 -1
  109. package/dist/src/lib/render/lazy.js +26 -5
  110. package/dist/src/lib/render/lazy.mjs +50 -1
  111. package/dist/src/lib/render/suspense.cjs +141 -1
  112. package/dist/src/lib/render/suspense.d.ts +40 -0
  113. package/dist/src/lib/render/suspense.d.ts.map +1 -1
  114. package/dist/src/lib/render/suspense.js +46 -6
  115. package/dist/src/lib/render/suspense.mjs +136 -1
  116. package/dist/src/lib/render/versions.cjs +35 -1
  117. package/dist/src/lib/render/versions.js +6 -6
  118. package/dist/src/lib/render/versions.mjs +14 -1
  119. package/dist/src/lib/router/data.cjs +230 -1
  120. package/dist/src/lib/router/data.d.ts +1 -13
  121. package/dist/src/lib/router/data.d.ts.map +1 -1
  122. package/dist/src/lib/router/data.js +0 -12
  123. package/dist/src/lib/router/data.mjs +214 -1
  124. package/dist/src/lib/router/index.cjs +627 -1
  125. package/dist/src/lib/router/index.d.ts +62 -10
  126. package/dist/src/lib/router/index.d.ts.map +1 -1
  127. package/dist/src/lib/router/index.js +85 -33
  128. package/dist/src/lib/router/index.mjs +639 -1
  129. package/dist/src/lib/server/hydration.cjs +169 -1
  130. package/dist/src/lib/server/hydration.d.ts +15 -55
  131. package/dist/src/lib/server/hydration.d.ts.map +1 -1
  132. package/dist/src/lib/server/hydration.js +23 -62
  133. package/dist/src/lib/server/hydration.mjs +148 -1
  134. package/dist/src/lib/server/index.cjs +401 -11
  135. package/dist/src/lib/server/index.d.ts +30 -6
  136. package/dist/src/lib/server/index.d.ts.map +1 -1
  137. package/dist/src/lib/server/index.js +34 -11
  138. package/dist/src/lib/server/index.mjs +379 -11
  139. package/dist/src/lib/server/reactive.cjs +197 -1
  140. package/dist/src/lib/server/reactive.d.ts +18 -77
  141. package/dist/src/lib/server/reactive.d.ts.map +1 -1
  142. package/dist/src/lib/server/reactive.js +19 -78
  143. package/dist/src/lib/server/reactive.mjs +176 -1
  144. package/dist/src/lib/theme/index.cjs +110 -1
  145. package/dist/src/lib/theme/index.d.ts +19 -4
  146. package/dist/src/lib/theme/index.d.ts.map +1 -1
  147. package/dist/src/lib/theme/index.js +17 -2
  148. package/dist/src/lib/theme/index.mjs +89 -1
  149. package/dist/src/lib/utils/index.cjs +209 -1
  150. package/dist/src/lib/utils/index.d.ts +0 -93
  151. package/dist/src/lib/utils/index.d.ts.map +1 -1
  152. package/dist/src/lib/utils/index.js +0 -93
  153. package/dist/src/lib/utils/index.mjs +188 -1
  154. package/dist/src/routes.cjs +37 -1
  155. package/dist/src/routes.d.ts +1 -1
  156. package/dist/src/routes.js +2 -2
  157. package/dist/src/routes.mjs +17 -1
  158. package/dist/src/server.cjs +400 -11
  159. package/dist/src/server.d.ts +0 -1
  160. package/dist/src/server.d.ts.map +1 -1
  161. package/dist/src/server.js +0 -1
  162. package/dist/src/server.mjs +377 -11
  163. package/dist/src/utils.cjs +21 -1
  164. package/dist/src/utils.d.ts +1 -1
  165. package/dist/src/utils.js +1 -1
  166. package/dist/src/utils.mjs +4 -1
  167. package/dist/src/version.generated.cjs +26 -1
  168. package/dist/src/version.generated.d.ts +1 -1
  169. package/dist/src/version.generated.js +2 -2
  170. package/dist/src/version.generated.mjs +5 -1
  171. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  172. package/package.json +17 -16
  173. package/src/index.ts +2 -14
  174. package/dist/src/cdn/chunk-55BT3H6E.mjs +0 -1
  175. package/dist/src/cdn/router-5JJZBK4E.mjs +0 -1
  176. package/dist/src/lib/client/chunk-SM4WHBOP.mjs +0 -1
  177. package/dist/src/lib/client/router-IBD4WPQT.mjs +0 -1
@@ -1,5 +1,4 @@
1
1
  /**
2
- * @fileoverview Server Reactive Primitives for Fluixi
3
2
  * @module @fluixi/core/server/reactive
4
3
  *
5
4
  * Maps reactive primitives for server-side execution
@@ -15,14 +14,9 @@ import type { SignalTuple, Accessor, Setter, SignalOptions, RootOwner, Context }
15
14
  /**
16
15
  * Server createSignal - Returns snapshot value
17
16
  *
18
- * Section 4: Signals read-only snapshot on server
17
+ * Signals read-only snapshot on server
19
18
  * No reactivity, no tracking, just initial value
20
19
  *
21
- * @template T
22
- * @param {T} value - Initial value
23
- * @param {SignalOptions<T>} options - SignalTuple options (ignored on server)
24
- * @returns {SignalTuple<T>} Tuple of [getter, setter]
25
- *
26
20
  * @example
27
21
  * ```typescript
28
22
  * // On server, this returns a static snapshot
@@ -36,14 +30,9 @@ export declare function createSignal<T>(value: T, options?: SignalOptions<T>): S
36
30
  /**
37
31
  * Server createEffect - Runs once, no tracking
38
32
  *
39
- * Section 4: Effects run once on server, no scheduling
33
+ * Effects run once on server, no scheduling
40
34
  * Execute immediately and return no-op disposer
41
35
  *
42
- * @param {(v?: any) => any} fn - Effect function
43
- * @param {any} value - Initial value (optional)
44
- * @param {any} options - Effect options (ignored on server)
45
- * @returns {{ dispose: () => void }} Disposer object
46
- *
47
36
  * @example
48
37
  * ```typescript
49
38
  * // On server, runs once immediately
@@ -58,15 +47,9 @@ export declare function createEffect(fn: (v?: any) => any, value?: any, options?
58
47
  /**
59
48
  * Server createMemo - Compute once, return static accessor
60
49
  *
61
- * Section 4: No tracking on server, single evaluation
50
+ * No tracking on server, single evaluation
62
51
  * Memoizes value at creation time
63
52
  *
64
- * @template T
65
- * @param {(v?: T) => T} fn - Computation function
66
- * @param {T} value - Initial value (optional)
67
- * @param {any} options - Memo options (ignored on server)
68
- * @returns {Accessor<T>} Static accessor
69
- *
70
53
  * @example
71
54
  * ```typescript
72
55
  * const [count] = createSignal(5);
@@ -78,13 +61,9 @@ export declare function createMemo<T>(fn: (v?: T) => T, value?: T, options?: any
78
61
  /**
79
62
  * Server createRoot - Creates owner but no reactive tracking
80
63
  *
81
- * Section 5: Owners exist on server for tree structure
64
+ * Owners exist on server for tree structure
82
65
  * Needed for context and cleanup, but no reactive tracking
83
66
  *
84
- * @template T
85
- * @param {(dispose: () => void) => T} fn - Root function
86
- * @returns {T} Function result
87
- *
88
67
  * @example
89
68
  * ```typescript
90
69
  * const result = createRoot((dispose) => {
@@ -97,13 +76,9 @@ export declare function createRoot<T>(fn: (dispose: () => void) => T): T;
97
76
  /**
98
77
  * Server batch - Execute immediately, no batching
99
78
  *
100
- * Section 4: No scheduling on server
79
+ * No scheduling on server
101
80
  * Just runs the function synchronously
102
81
  *
103
- * @template T
104
- * @param {() => T} fn - Function to batch
105
- * @returns {T} Function result
106
- *
107
82
  * @example
108
83
  * ```typescript
109
84
  * batch(() => {
@@ -116,13 +91,9 @@ export declare function batch<T>(fn: () => T): T;
116
91
  /**
117
92
  * Server untrack - Execute function (already untracked)
118
93
  *
119
- * Section 4: No tracking on server anyway
94
+ * No tracking on server anyway
120
95
  * This is a no-op but exists for API compatibility
121
96
  *
122
- * @template T
123
- * @param {() => T} fn - Function to run untracked
124
- * @returns {T} Function result
125
- *
126
97
  * @example
127
98
  * ```typescript
128
99
  * untrack(() => {
@@ -134,11 +105,9 @@ export declare function untrack<T>(fn: () => T): T;
134
105
  /**
135
106
  * Server onCleanup - Register cleanup function
136
107
  *
137
- * Section 5: Cleanup still needed for SSR resource management
108
+ * Cleanup still needed for SSR resource management
138
109
  * Stores cleanup for execution when root disposes
139
110
  *
140
- * @param {() => void} fn - Cleanup function
141
- *
142
111
  * @example
143
112
  * ```typescript
144
113
  * createRoot((dispose) => {
@@ -153,30 +122,19 @@ export declare function onCleanup(fn: () => void): void;
153
122
  /**
154
123
  * Server getOwner - Get current reactive owner
155
124
  *
156
- * Section 5: Owner tree maintained on server for context
157
- *
158
- * @returns {RootOwner | null} Current owner or null
125
+ * Owner tree maintained on server for context
159
126
  */
160
127
  export declare function getOwner(): RootOwner | null;
161
128
  /**
162
129
  * Server runWithOwner - Run function with specific owner
163
130
  *
164
- * Section 5: Owner switching for proper context nesting
165
- *
166
- * @template T
167
- * @param {RootOwner | null} owner - Owner to run with
168
- * @param {() => T} fn - Function to run
169
- * @returns {T} Function result
131
+ * Owner switching for proper context nesting
170
132
  */
171
133
  export declare function runWithOwner<T>(owner: RootOwner | null, fn: () => T): T;
172
134
  /**
173
135
  * Server createContext - Create context with default value
174
136
  *
175
- * Section 9: Context lookup-based, no subscriptions on server
176
- *
177
- * @template T
178
- * @param {T} defaultValue - Default context value
179
- * @returns {Context<T>} Context object
137
+ * Context lookup-based, no subscriptions on server
180
138
  *
181
139
  * @example
182
140
  * ```typescript
@@ -187,11 +145,7 @@ export declare function createContext<T>(defaultValue?: T): Context<T>;
187
145
  /**
188
146
  * Server useContext - Retrieve context value
189
147
  *
190
- * Section 9: No subscriptions on server, just lookup
191
- *
192
- * @template T
193
- * @param {Context<T>} context - Context to use
194
- * @returns {T} Context value
148
+ * No subscriptions on server, just lookup
195
149
  *
196
150
  * @example
197
151
  * ```typescript
@@ -203,44 +157,33 @@ export declare function useContext<T>(context: Context<T>): T;
203
157
  * Server createComputed - Alias for createEffect
204
158
  *
205
159
  * On server, computed values run once like effects
206
- *
207
- * @param {() => any} fn - Computation function
208
- * @returns {{ dispose: () => void }} Disposer
209
160
  */
210
161
  export declare function createComputed(fn: () => any): {
211
162
  dispose: () => void;
212
163
  };
213
164
  /**
214
165
  * Server createRenderEffect - Runs once for SSR rendering
215
- *
216
- * @param {() => any} fn - Render effect function
217
- * @returns {{ dispose: () => void }} Disposer
218
166
  */
219
167
  export declare function createRenderEffect(fn: () => any): {
220
168
  dispose: () => void;
221
169
  };
222
170
  /**
223
171
  * Server createDeferred - No deferring on server
224
- *
225
- * @template T
226
- * @param {() => T} fn - Deferred computation
227
- * @returns {Accessor<T>} Accessor
228
172
  */
229
173
  export declare function createDeferred<T>(fn: () => T): Accessor<T>;
230
174
  /**
231
175
  * Server createSelector - Returns static equality check
176
+ */
177
+ /**
178
+ * The server stand-in for `createSelector`.
232
179
  *
233
- * @template T
234
- * @param {() => T} source - Source value
235
- * @returns {(key: T) => boolean} Selector function
180
+ * On the client a selector is a fine-grained membership test that only notifies the two
181
+ * keys whose match changed. A server render produces one pass and has no subscriptions to
182
+ * be fine-grained about, so this reads the source once and compares.
236
183
  */
237
184
  export declare function createSelector<T>(source: () => T): (key: T) => boolean;
238
185
  /**
239
186
  * Server createResource - Stub for resource creation
240
- *
241
- * @param source Source signal or value
242
- * @param fetcher Fetcher function
243
- * @param options Resource options
244
187
  */
245
188
  export declare function createResource<T, S = true>(source: any, fetcher?: any, options?: any): [() => T | undefined, {
246
189
  mutate: (v: T) => T;
@@ -256,14 +199,12 @@ export type SetStoreFunction<T extends object> = {
256
199
  <K extends keyof T>(key: K, value: T[K] | ((prev: T[K]) => T[K])): void;
257
200
  };
258
201
  /**
259
- * Server createStore plain object wrapper, no reactivity.
202
+ * Server createStore: plain object wrapper, no reactivity.
260
203
  * Mirrors the client API so shared code compiles on both sides.
261
204
  */
262
205
  export declare function createStore<T extends object>(init: T): [Store<T>, SetStoreFunction<T>];
263
206
  /**
264
207
  * Server startTransition - Execute immediately
265
- *
266
- * @param fn Transition function
267
208
  */
268
209
  export declare function startTransition(fn: () => void): void;
269
210
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,MAAM,EACN,aAAa,EACb,SAAS,EACT,OAAO,EACR,MAAM,yBAAyB,CAAC;AAMjC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,KAAK,EAAE,CAAC,EACR,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,WAAW,CAAC,CAAC,CAAC,CAehB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,EACpB,KAAK,CAAC,EAAE,GAAG,EACX,OAAO,CAAC,EAAE,GAAG,GACZ;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAUzB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAChB,KAAK,CAAC,EAAE,CAAC,EACT,OAAO,CAAC,EAAE,GAAG,GACZ,QAAQ,CAAC,CAAC,CAAC,CAIb;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAsB/D;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAGvC;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAGzC;AAQD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAI9C;AAQD;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAE3C;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAQvE;AAQD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyB7D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAIpD;AAMD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAErE;AAMD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,GAAG;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAEzE;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAE1D;AAMD;;;;;;GAMG;AAEH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAGtE;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,EACxC,MAAM,EAAE,GAAG,EACX,OAAO,CAAC,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,GACZ,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE;IAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAQrE;AAMD,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AACxE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC/C,CAAC,KAAK,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAAE,GAAG,IAAI,CAAC;IAClE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACzE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAC1C,IAAI,EAAE,CAAC,GACN,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAoBjC;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAEpD;AAQD;;GAEG;AACH,eAAO,MAAM,QAAQ,OAAO,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAM9B,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAMjF;;GAEG;AACH,eAAO,MAAM,YAAY;aACN,SAAS,GAAG,IAAI;WAClB,SAAS,GAAG,IAAI;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAItD;AAED;;;GAGG;AACH,wBAAgB,eAAe;aAlBZ,SAAS,GAAG,IAAI;WAClB,SAAS,GAAG,IAAI;EAmBhC"}
1
+ {"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../../../src/lib/server/reactive.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  /**
2
- * @fileoverview Server Reactive Primitives for Fluixi
3
2
  * @module @fluixi/core/server/reactive
4
3
  *
5
4
  * Maps reactive primitives for server-side execution
@@ -17,14 +16,9 @@
17
16
  /**
18
17
  * Server createSignal - Returns snapshot value
19
18
  *
20
- * Section 4: Signals read-only snapshot on server
19
+ * Signals read-only snapshot on server
21
20
  * No reactivity, no tracking, just initial value
22
21
  *
23
- * @template T
24
- * @param {T} value - Initial value
25
- * @param {SignalOptions<T>} options - SignalTuple options (ignored on server)
26
- * @returns {SignalTuple<T>} Tuple of [getter, setter]
27
- *
28
22
  * @example
29
23
  * ```typescript
30
24
  * // On server, this returns a static snapshot
@@ -55,14 +49,9 @@ export function createSignal(value, options) {
55
49
  /**
56
50
  * Server createEffect - Runs once, no tracking
57
51
  *
58
- * Section 4: Effects run once on server, no scheduling
52
+ * Effects run once on server, no scheduling
59
53
  * Execute immediately and return no-op disposer
60
54
  *
61
- * @param {(v?: any) => any} fn - Effect function
62
- * @param {any} value - Initial value (optional)
63
- * @param {any} options - Effect options (ignored on server)
64
- * @returns {{ dispose: () => void }} Disposer object
65
- *
66
55
  * @example
67
56
  * ```typescript
68
57
  * // On server, runs once immediately
@@ -88,15 +77,9 @@ export function createEffect(fn, value, options) {
88
77
  /**
89
78
  * Server createMemo - Compute once, return static accessor
90
79
  *
91
- * Section 4: No tracking on server, single evaluation
80
+ * No tracking on server, single evaluation
92
81
  * Memoizes value at creation time
93
82
  *
94
- * @template T
95
- * @param {(v?: T) => T} fn - Computation function
96
- * @param {T} value - Initial value (optional)
97
- * @param {any} options - Memo options (ignored on server)
98
- * @returns {Accessor<T>} Static accessor
99
- *
100
83
  * @example
101
84
  * ```typescript
102
85
  * const [count] = createSignal(5);
@@ -115,13 +98,9 @@ export function createMemo(fn, value, options) {
115
98
  /**
116
99
  * Server createRoot - Creates owner but no reactive tracking
117
100
  *
118
- * Section 5: Owners exist on server for tree structure
101
+ * Owners exist on server for tree structure
119
102
  * Needed for context and cleanup, but no reactive tracking
120
103
  *
121
- * @template T
122
- * @param {(dispose: () => void) => T} fn - Root function
123
- * @returns {T} Function result
124
- *
125
104
  * @example
126
105
  * ```typescript
127
106
  * const result = createRoot((dispose) => {
@@ -159,13 +138,9 @@ export function createRoot(fn) {
159
138
  /**
160
139
  * Server batch - Execute immediately, no batching
161
140
  *
162
- * Section 4: No scheduling on server
141
+ * No scheduling on server
163
142
  * Just runs the function synchronously
164
143
  *
165
- * @template T
166
- * @param {() => T} fn - Function to batch
167
- * @returns {T} Function result
168
- *
169
144
  * @example
170
145
  * ```typescript
171
146
  * batch(() => {
@@ -184,13 +159,9 @@ export function batch(fn) {
184
159
  /**
185
160
  * Server untrack - Execute function (already untracked)
186
161
  *
187
- * Section 4: No tracking on server anyway
162
+ * No tracking on server anyway
188
163
  * This is a no-op but exists for API compatibility
189
164
  *
190
- * @template T
191
- * @param {() => T} fn - Function to run untracked
192
- * @returns {T} Function result
193
- *
194
165
  * @example
195
166
  * ```typescript
196
167
  * untrack(() => {
@@ -209,11 +180,9 @@ let currentCleanups = null;
209
180
  /**
210
181
  * Server onCleanup - Register cleanup function
211
182
  *
212
- * Section 5: Cleanup still needed for SSR resource management
183
+ * Cleanup still needed for SSR resource management
213
184
  * Stores cleanup for execution when root disposes
214
185
  *
215
- * @param {() => void} fn - Cleanup function
216
- *
217
186
  * @example
218
187
  * ```typescript
219
188
  * createRoot((dispose) => {
@@ -236,9 +205,7 @@ let currentOwner = null;
236
205
  /**
237
206
  * Server getOwner - Get current reactive owner
238
207
  *
239
- * Section 5: Owner tree maintained on server for context
240
- *
241
- * @returns {RootOwner | null} Current owner or null
208
+ * Owner tree maintained on server for context
242
209
  */
243
210
  export function getOwner() {
244
211
  return currentOwner;
@@ -246,12 +213,7 @@ export function getOwner() {
246
213
  /**
247
214
  * Server runWithOwner - Run function with specific owner
248
215
  *
249
- * Section 5: Owner switching for proper context nesting
250
- *
251
- * @template T
252
- * @param {RootOwner | null} owner - Owner to run with
253
- * @param {() => T} fn - Function to run
254
- * @returns {T} Function result
216
+ * Owner switching for proper context nesting
255
217
  */
256
218
  export function runWithOwner(owner, fn) {
257
219
  const prev = currentOwner;
@@ -270,11 +232,7 @@ const contextMap = new Map();
270
232
  /**
271
233
  * Server createContext - Create context with default value
272
234
  *
273
- * Section 9: Context lookup-based, no subscriptions on server
274
- *
275
- * @template T
276
- * @param {T} defaultValue - Default context value
277
- * @returns {Context<T>} Context object
235
+ * Context lookup-based, no subscriptions on server
278
236
  *
279
237
  * @example
280
238
  * ```typescript
@@ -309,11 +267,7 @@ export function createContext(defaultValue) {
309
267
  /**
310
268
  * Server useContext - Retrieve context value
311
269
  *
312
- * Section 9: No subscriptions on server, just lookup
313
- *
314
- * @template T
315
- * @param {Context<T>} context - Context to use
316
- * @returns {T} Context value
270
+ * No subscriptions on server, just lookup
317
271
  *
318
272
  * @example
319
273
  * ```typescript
@@ -332,9 +286,6 @@ export function useContext(context) {
332
286
  * Server createComputed - Alias for createEffect
333
287
  *
334
288
  * On server, computed values run once like effects
335
- *
336
- * @param {() => any} fn - Computation function
337
- * @returns {{ dispose: () => void }} Disposer
338
289
  */
339
290
  export function createComputed(fn) {
340
291
  return createEffect(fn);
@@ -344,9 +295,6 @@ export function createComputed(fn) {
344
295
  // ============================================================================
345
296
  /**
346
297
  * Server createRenderEffect - Runs once for SSR rendering
347
- *
348
- * @param {() => any} fn - Render effect function
349
- * @returns {{ dispose: () => void }} Disposer
350
298
  */
351
299
  export function createRenderEffect(fn) {
352
300
  return createEffect(fn);
@@ -356,10 +304,6 @@ export function createRenderEffect(fn) {
356
304
  // ============================================================================
357
305
  /**
358
306
  * Server createDeferred - No deferring on server
359
- *
360
- * @template T
361
- * @param {() => T} fn - Deferred computation
362
- * @returns {Accessor<T>} Accessor
363
307
  */
364
308
  export function createDeferred(fn) {
365
309
  return createMemo(fn);
@@ -369,12 +313,15 @@ export function createDeferred(fn) {
369
313
  // ============================================================================
370
314
  /**
371
315
  * Server createSelector - Returns static equality check
372
- *
373
- * @template T
374
- * @param {() => T} source - Source value
375
- * @returns {(key: T) => boolean} Selector function
376
316
  */
377
317
  // ENVIRONMENT
318
+ /**
319
+ * The server stand-in for `createSelector`.
320
+ *
321
+ * On the client a selector is a fine-grained membership test that only notifies the two
322
+ * keys whose match changed. A server render produces one pass and has no subscriptions to
323
+ * be fine-grained about, so this reads the source once and compares.
324
+ */
378
325
  export function createSelector(source) {
379
326
  const value = source();
380
327
  return (key) => key === value;
@@ -384,10 +331,6 @@ export function createSelector(source) {
384
331
  // ============================================================================
385
332
  /**
386
333
  * Server createResource - Stub for resource creation
387
- *
388
- * @param source Source signal or value
389
- * @param fetcher Fetcher function
390
- * @param options Resource options
391
334
  */
392
335
  export function createResource(source, fetcher, options) {
393
336
  return [
@@ -399,7 +342,7 @@ export function createResource(source, fetcher, options) {
399
342
  ];
400
343
  }
401
344
  /**
402
- * Server createStore plain object wrapper, no reactivity.
345
+ * Server createStore: plain object wrapper, no reactivity.
403
346
  * Mirrors the client API so shared code compiles on both sides.
404
347
  */
405
348
  export function createStore(init) {
@@ -425,8 +368,6 @@ export function createStore(init) {
425
368
  // ============================================================================
426
369
  /**
427
370
  * Server startTransition - Execute immediately
428
- *
429
- * @param fn Transition function
430
371
  */
431
372
  export function startTransition(fn) {
432
373
  fn();
@@ -1 +1,176 @@
1
- function f(e,t){let o=e;return[(()=>o),c=>(typeof c=="function"?o=c(o):o=c,o)]}function T(e,t,o){try{e(t)}catch(n){console.error("[Fluixi Server] Effect error:",n)}return{dispose:()=>{}}}function p(e,t,o){let n=e(t);return(()=>n)}function d(e){let t=[],o=()=>{t.forEach(n=>{try{n()}catch(r){console.error("[Fluixi Server] Cleanup error:",r)}}),t.length=0};try{return e(o)}catch(n){throw o(),n}}function x(e){return e()}function y(e){return e()}var l=null;function v(e){l&&l.push(e)}var s=null;function S(){return s}function g(e,t){let o=s;s=e;try{return t()}finally{s=o}}var i=new Map;function w(e){let t=Symbol("context");return{id:t,Provider:n=>{let r=i.get(t);i.set(t,n.value);try{return n.children}finally{r!==void 0?i.set(t,r):i.delete(t)}},defaultValue:e}}function C(e){let t=i.get(e.id);return t!==void 0?t:e.defaultValue}function h(e){return T(e)}function A(e){return T(e)}function K(e){return p(e)}function R(e){let t=e();return o=>o===t}function O(e,t,o){return[()=>{},{mutate:n=>n,refetch:()=>{}}]}function b(e){let t={...e};function o(n,r){if(typeof n=="object"&&n!==null&&!Array.isArray(n))for(let c of Object.keys(n)){let u=n[c];t[c]=typeof u=="function"?u(t[c]):u}else t[n]=typeof r=="function"?r(t[n]):r}return[t,o]}function m(e){e()}var j=!0,F=!1,a={context:null,owner:null};function E(e){s=e,a.owner=e,a.context=e}function k(){return a}export{x as batch,h as createComputed,w as createContext,K as createDeferred,T as createEffect,p as createMemo,A as createRenderEffect,O as createResource,d as createRoot,R as createSelector,f as createSignal,b as createStore,S as getOwner,k as getSharedConfig,F as isClient,j as isServer,v as onCleanup,g as runWithOwner,E as setOwner,a as sharedConfig,m as startTransition,y as untrack,C as useContext};
1
+ // src/lib/server/reactive.ts
2
+ function createSignal(value, options) {
3
+ let current = value;
4
+ const read = (() => current);
5
+ const write = (newValue) => {
6
+ if (typeof newValue === "function") {
7
+ current = newValue(current);
8
+ } else {
9
+ current = newValue;
10
+ }
11
+ return current;
12
+ };
13
+ return [read, write];
14
+ }
15
+ function createEffect(fn, value, options) {
16
+ try {
17
+ fn(value);
18
+ } catch (error) {
19
+ console.error("[Fluixi Server] Effect error:", error);
20
+ }
21
+ return { dispose: () => {
22
+ } };
23
+ }
24
+ function createMemo(fn, value, options) {
25
+ const computed = fn(value);
26
+ return (() => computed);
27
+ }
28
+ function createRoot(fn) {
29
+ const cleanups = [];
30
+ const dispose = () => {
31
+ cleanups.forEach((cleanup) => {
32
+ try {
33
+ cleanup();
34
+ } catch (error) {
35
+ console.error("[Fluixi Server] Cleanup error:", error);
36
+ }
37
+ });
38
+ cleanups.length = 0;
39
+ };
40
+ try {
41
+ return fn(dispose);
42
+ } catch (error) {
43
+ dispose();
44
+ throw error;
45
+ }
46
+ }
47
+ function batch(fn) {
48
+ return fn();
49
+ }
50
+ function untrack(fn) {
51
+ return fn();
52
+ }
53
+ var currentCleanups = null;
54
+ function onCleanup(fn) {
55
+ if (currentCleanups) {
56
+ currentCleanups.push(fn);
57
+ }
58
+ }
59
+ var currentOwner = null;
60
+ function getOwner() {
61
+ return currentOwner;
62
+ }
63
+ function runWithOwner(owner, fn) {
64
+ const prev = currentOwner;
65
+ currentOwner = owner;
66
+ try {
67
+ return fn();
68
+ } finally {
69
+ currentOwner = prev;
70
+ }
71
+ }
72
+ var contextMap = /* @__PURE__ */ new Map();
73
+ function createContext(defaultValue) {
74
+ const id = /* @__PURE__ */ Symbol("context");
75
+ const Provider = (props) => {
76
+ const prevValue = contextMap.get(id);
77
+ contextMap.set(id, props.value);
78
+ try {
79
+ return props.children;
80
+ } finally {
81
+ if (prevValue !== void 0) {
82
+ contextMap.set(id, prevValue);
83
+ } else {
84
+ contextMap.delete(id);
85
+ }
86
+ }
87
+ };
88
+ return {
89
+ id,
90
+ Provider,
91
+ defaultValue
92
+ };
93
+ }
94
+ function useContext(context) {
95
+ const value = contextMap.get(context.id);
96
+ return value !== void 0 ? value : context.defaultValue;
97
+ }
98
+ function createComputed(fn) {
99
+ return createEffect(fn);
100
+ }
101
+ function createRenderEffect(fn) {
102
+ return createEffect(fn);
103
+ }
104
+ function createDeferred(fn) {
105
+ return createMemo(fn);
106
+ }
107
+ function createSelector(source) {
108
+ const value = source();
109
+ return (key) => key === value;
110
+ }
111
+ function createResource(source, fetcher, options) {
112
+ return [
113
+ () => void 0,
114
+ {
115
+ mutate: (v) => v,
116
+ refetch: () => {
117
+ }
118
+ }
119
+ ];
120
+ }
121
+ function createStore(init) {
122
+ const state = { ...init };
123
+ function setStore(keyOrPatch, value) {
124
+ if (typeof keyOrPatch === "object" && keyOrPatch !== null && !Array.isArray(keyOrPatch)) {
125
+ for (const k of Object.keys(keyOrPatch)) {
126
+ const v = keyOrPatch[k];
127
+ state[k] = typeof v === "function" ? v(state[k]) : v;
128
+ }
129
+ } else {
130
+ state[keyOrPatch] = typeof value === "function" ? value(state[keyOrPatch]) : value;
131
+ }
132
+ }
133
+ return [state, setStore];
134
+ }
135
+ function startTransition(fn) {
136
+ fn();
137
+ }
138
+ var isServer = true;
139
+ var isClient = false;
140
+ var sharedConfig = {
141
+ context: null,
142
+ owner: null
143
+ };
144
+ function setOwner(owner) {
145
+ currentOwner = owner;
146
+ sharedConfig.owner = owner;
147
+ sharedConfig.context = owner;
148
+ }
149
+ function getSharedConfig() {
150
+ return sharedConfig;
151
+ }
152
+ export {
153
+ batch,
154
+ createComputed,
155
+ createContext,
156
+ createDeferred,
157
+ createEffect,
158
+ createMemo,
159
+ createRenderEffect,
160
+ createResource,
161
+ createRoot,
162
+ createSelector,
163
+ createSignal,
164
+ createStore,
165
+ getOwner,
166
+ getSharedConfig,
167
+ isClient,
168
+ isServer,
169
+ onCleanup,
170
+ runWithOwner,
171
+ setOwner,
172
+ sharedConfig,
173
+ startTransition,
174
+ untrack,
175
+ useContext
176
+ };