@fluixi/start 0.1.0-alpha.73 → 0.1.0-alpha.75

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 (123) hide show
  1. package/dist/adapter.cjs +750 -0
  2. package/dist/adapter.d.ts +9 -9
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/adapter.js +10 -10
  5. package/dist/adapter.mjs +719 -0
  6. package/dist/adapters/entry.cjs +122 -0
  7. package/dist/adapters/entry.js +1 -1
  8. package/dist/adapters/entry.mjs +95 -0
  9. package/dist/adapters/platforms.cjs +311 -0
  10. package/dist/adapters/platforms.d.ts +2 -2
  11. package/dist/adapters/platforms.js +8 -8
  12. package/dist/adapters/platforms.mjs +284 -0
  13. package/dist/api-HD7KU3BS.mjs +114 -0
  14. package/dist/api.cjs +145 -0
  15. package/dist/api.js +1 -1
  16. package/dist/api.mjs +116 -0
  17. package/dist/commands/api-HD7KU3BS.mjs +114 -0
  18. package/dist/commands/api-PBT4QZ34.mjs +16 -0
  19. package/dist/commands/api-PJL37LV3.mjs +17 -0
  20. package/dist/commands/build.cjs +877 -0
  21. package/dist/commands/build.js +6 -6
  22. package/dist/commands/build.mjs +717 -0
  23. package/dist/commands/chunk-GFQ4MUIC.mjs +117 -0
  24. package/dist/commands/chunk-MTM6M3TC.mjs +115 -0
  25. package/dist/commands/dev.cjs +670 -0
  26. package/dist/commands/dev.js +3 -3
  27. package/dist/commands/dev.mjs +512 -0
  28. package/dist/commands/index.cjs +1145 -0
  29. package/dist/commands/index.d.ts +1 -1
  30. package/dist/commands/index.js +1 -1
  31. package/dist/commands/index.mjs +982 -0
  32. package/dist/commands/prerender.cjs +404 -0
  33. package/dist/commands/prerender.d.ts +1 -1
  34. package/dist/commands/prerender.js +2 -2
  35. package/dist/commands/prerender.mjs +377 -0
  36. package/dist/commands/start.cjs +463 -0
  37. package/dist/commands/start.d.ts +1 -1
  38. package/dist/commands/start.js +2 -2
  39. package/dist/commands/start.mjs +428 -0
  40. package/dist/config.cjs +150 -0
  41. package/dist/config.d.ts +24 -7
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js +8 -6
  44. package/dist/config.mjs +114 -0
  45. package/dist/define-config.cjs +32 -0
  46. package/dist/define-config.d.ts +12 -0
  47. package/dist/define-config.d.ts.map +1 -0
  48. package/dist/define-config.js +3 -0
  49. package/dist/define-config.mjs +7 -0
  50. package/dist/di.cjs +200 -0
  51. package/dist/di.d.ts +4 -4
  52. package/dist/di.d.ts.map +1 -1
  53. package/dist/di.js +9 -9
  54. package/dist/di.mjs +169 -0
  55. package/dist/document.cjs +115 -0
  56. package/dist/document.d.ts +1 -1
  57. package/dist/document.js +1 -1
  58. package/dist/document.mjs +86 -0
  59. package/dist/generated-api.cjs +43 -0
  60. package/dist/generated-api.js +1 -1
  61. package/dist/generated-api.mjs +18 -0
  62. package/dist/generated-server-fns.cjs +43 -0
  63. package/dist/generated-server-fns.mjs +18 -0
  64. package/dist/handler-core.cjs +211 -0
  65. package/dist/handler-core.d.ts +2 -2
  66. package/dist/handler-core.js +2 -2
  67. package/dist/handler-core.mjs +185 -0
  68. package/dist/handler.cjs +182 -0
  69. package/dist/handler.d.ts +3 -3
  70. package/dist/handler.js +3 -3
  71. package/dist/handler.mjs +152 -0
  72. package/dist/head.cjs +25 -0
  73. package/dist/head.d.ts +1 -1
  74. package/dist/head.js +1 -1
  75. package/dist/head.mjs +4 -0
  76. package/dist/image-loader.cjs +37 -0
  77. package/dist/image-loader.d.ts +25 -0
  78. package/dist/image-loader.d.ts.map +1 -0
  79. package/dist/image-loader.js +18 -0
  80. package/dist/image-loader.mjs +12 -0
  81. package/dist/image.cjs +151 -0
  82. package/dist/image.d.ts +2 -19
  83. package/dist/image.d.ts.map +1 -1
  84. package/dist/image.js +5 -21
  85. package/dist/image.mjs +126 -0
  86. package/dist/index.cjs +303 -0
  87. package/dist/index.d.ts +28 -8
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +33 -17
  90. package/dist/index.mjs +262 -0
  91. package/dist/interceptors.cjs +72 -0
  92. package/dist/interceptors.js +1 -1
  93. package/dist/interceptors.mjs +44 -0
  94. package/dist/internal.cjs +393 -0
  95. package/dist/internal.d.ts +6 -6
  96. package/dist/internal.d.ts.map +1 -1
  97. package/dist/internal.js +23 -15
  98. package/dist/internal.mjs +223 -0
  99. package/dist/middleware.cjs +58 -0
  100. package/dist/middleware.d.ts +3 -3
  101. package/dist/middleware.d.ts.map +1 -1
  102. package/dist/middleware.js +1 -1
  103. package/dist/middleware.mjs +31 -0
  104. package/dist/preload.cjs +42 -0
  105. package/dist/preload.js +1 -1
  106. package/dist/preload.mjs +18 -0
  107. package/dist/router.cjs +25 -0
  108. package/dist/router.d.ts +3 -3
  109. package/dist/router.js +3 -3
  110. package/dist/router.mjs +4 -0
  111. package/dist/server-fn-setup.cjs +46 -0
  112. package/dist/server-fn-setup.d.ts +1 -1
  113. package/dist/server-fn-setup.js +2 -2
  114. package/dist/server-fn-setup.mjs +22 -0
  115. package/dist/server-fn.cjs +109 -0
  116. package/dist/server-fn.d.ts +2 -2
  117. package/dist/server-fn.js +2 -2
  118. package/dist/server-fn.mjs +79 -0
  119. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  120. package/dist/ui.cjs +123 -0
  121. package/dist/ui.js +1 -1
  122. package/dist/ui.mjs +93 -0
  123. package/package.json +63 -25
@@ -0,0 +1,109 @@
1
+ /*! @fluixi/start v0.1.0-alpha.75 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
+ "use strict";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+
21
+ // src/server-fn.ts
22
+ var server_fn_exports = {};
23
+ __export(server_fn_exports, {
24
+ $$createServerReference: () => $$createServerReference,
25
+ $$registerServerFn: () => $$registerServerFn,
26
+ SERVER_FN_ENDPOINT: () => SERVER_FN_ENDPOINT,
27
+ handleServerFn: () => handleServerFn,
28
+ isServerFnRequest: () => isServerFnRequest,
29
+ setServerFnContextRunner: () => setServerFnContextRunner,
30
+ setServerFnFetch: () => setServerFnFetch
31
+ });
32
+ module.exports = __toCommonJS(server_fn_exports);
33
+ var SERVER_FN_ENDPOINT = "/_server";
34
+ var HEADER = "x-fluixi-server-fn";
35
+ var registry = /* @__PURE__ */ new Map();
36
+ function $$registerServerFn(id, fn) {
37
+ registry.set(id, fn);
38
+ return fn;
39
+ }
40
+ function $$createServerReference(id) {
41
+ return (...args) => callServer(id, args);
42
+ }
43
+ var contextRunner = null;
44
+ function setServerFnContextRunner(runner) {
45
+ contextRunner = runner;
46
+ }
47
+ var _fetch = (...a) => fetch(...a);
48
+ function setServerFnFetch(f) {
49
+ _fetch = f;
50
+ }
51
+ async function callServer(id, args) {
52
+ const res = await _fetch(SERVER_FN_ENDPOINT, {
53
+ method: "POST",
54
+ headers: { "content-type": "application/json", [HEADER]: id },
55
+ body: JSON.stringify(args)
56
+ });
57
+ if (!res.ok) {
58
+ throw new Error(`server function "${id}" failed: ${res.status} ${await res.text()}`);
59
+ }
60
+ return (res.headers.get("content-type") || "").includes("application/json") ? res.json() : res.text();
61
+ }
62
+ function isServerFnRequest(request) {
63
+ return request.method === "POST" && request.headers.has(HEADER);
64
+ }
65
+ async function handleServerFn(request) {
66
+ const origin = request.headers.get("origin");
67
+ if (origin) {
68
+ try {
69
+ if (new URL(origin).host !== new URL(request.url).host) {
70
+ return new Response("forbidden", { status: 403 });
71
+ }
72
+ } catch {
73
+ return new Response("forbidden", { status: 403 });
74
+ }
75
+ }
76
+ const id = request.headers.get(HEADER);
77
+ const fn = registry.get(id);
78
+ if (!fn) return new Response(`unknown server function: ${id}`, { status: 404 });
79
+ let args = [];
80
+ try {
81
+ const parsed = await request.json();
82
+ args = Array.isArray(parsed) ? parsed : [parsed];
83
+ } catch {
84
+ }
85
+ try {
86
+ const headers = { "content-type": "application/json" };
87
+ let result;
88
+ if (contextRunner) {
89
+ const ran = contextRunner(request, () => fn(...args));
90
+ result = await ran.result;
91
+ Object.assign(headers, ran.responseHeaders || {});
92
+ } else {
93
+ result = await fn(...args);
94
+ }
95
+ return new Response(JSON.stringify(result ?? null), { status: 200, headers });
96
+ } catch (e) {
97
+ return new Response(String(e?.message || e), { status: 500 });
98
+ }
99
+ }
100
+ // Annotate the CommonJS export names for ESM import in node:
101
+ 0 && (module.exports = {
102
+ $$createServerReference,
103
+ $$registerServerFn,
104
+ SERVER_FN_ENDPOINT,
105
+ handleServerFn,
106
+ isServerFnRequest,
107
+ setServerFnContextRunner,
108
+ setServerFnFetch
109
+ });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Server-functions runtime the target of the `"use server"` compiler transform.
2
+ * Server-functions runtime: the target of the `"use server"` compiler transform.
3
3
  * Client-safe (web APIs only, no node imports): on the client the registry/dispatcher
4
4
  * are dead code and the stub `fetch()`es the RPC endpoint; on the server the bodies are
5
5
  * registered and `handleServerFn` dispatches them.
@@ -13,7 +13,7 @@ export declare function $$createServerReference(id: string): (...args: any[]) =>
13
13
  /**
14
14
  * Runs a server function inside a request context so `getRequestEvent()` (request,
15
15
  * headers, cookies) works inside it. Injected by `@fluixi/start/server-fn-setup` (which
16
- * bridges `@fluixi/server`'s AsyncLocalStorage) so this module stays client-safe no
16
+ * bridges `@fluixi/server`'s AsyncLocalStorage) so this module stays client-safe, no
17
17
  * node imports here. `event.responseHeaders` set inside the fn are returned to the host.
18
18
  */
19
19
  type ContextRunner = (request: Request, run: () => any) => {
package/dist/server-fn.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Server-functions runtime the target of the `"use server"` compiler transform.
2
+ * Server-functions runtime: the target of the `"use server"` compiler transform.
3
3
  * Client-safe (web APIs only, no node imports): on the client the registry/dispatcher
4
4
  * are dead code and the stub `fetch()`es the RPC endpoint; on the server the bodies are
5
5
  * registered and `handleServerFn` dispatches them.
@@ -24,7 +24,7 @@ export function setServerFnContextRunner(runner) {
24
24
  contextRunner = runner;
25
25
  }
26
26
  // The fetch the RPC client uses. Pluggable so interceptors (auth headers, 401 handling,
27
- // retry) apply to server-function calls `addInterceptor` swaps in the intercepted fetch.
27
+ // retry) apply to server-function calls: `addInterceptor` swaps in the intercepted fetch.
28
28
  let _fetch = (...a) => fetch(...a);
29
29
  export function setServerFnFetch(f) {
30
30
  _fetch = f;
@@ -0,0 +1,79 @@
1
+ /*! @fluixi/start v0.1.0-alpha.75 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
+
3
+ // src/server-fn.ts
4
+ var SERVER_FN_ENDPOINT = "/_server";
5
+ var HEADER = "x-fluixi-server-fn";
6
+ var registry = /* @__PURE__ */ new Map();
7
+ function $$registerServerFn(id, fn) {
8
+ registry.set(id, fn);
9
+ return fn;
10
+ }
11
+ function $$createServerReference(id) {
12
+ return (...args) => callServer(id, args);
13
+ }
14
+ var contextRunner = null;
15
+ function setServerFnContextRunner(runner) {
16
+ contextRunner = runner;
17
+ }
18
+ var _fetch = (...a) => fetch(...a);
19
+ function setServerFnFetch(f) {
20
+ _fetch = f;
21
+ }
22
+ async function callServer(id, args) {
23
+ const res = await _fetch(SERVER_FN_ENDPOINT, {
24
+ method: "POST",
25
+ headers: { "content-type": "application/json", [HEADER]: id },
26
+ body: JSON.stringify(args)
27
+ });
28
+ if (!res.ok) {
29
+ throw new Error(`server function "${id}" failed: ${res.status} ${await res.text()}`);
30
+ }
31
+ return (res.headers.get("content-type") || "").includes("application/json") ? res.json() : res.text();
32
+ }
33
+ function isServerFnRequest(request) {
34
+ return request.method === "POST" && request.headers.has(HEADER);
35
+ }
36
+ async function handleServerFn(request) {
37
+ const origin = request.headers.get("origin");
38
+ if (origin) {
39
+ try {
40
+ if (new URL(origin).host !== new URL(request.url).host) {
41
+ return new Response("forbidden", { status: 403 });
42
+ }
43
+ } catch {
44
+ return new Response("forbidden", { status: 403 });
45
+ }
46
+ }
47
+ const id = request.headers.get(HEADER);
48
+ const fn = registry.get(id);
49
+ if (!fn) return new Response(`unknown server function: ${id}`, { status: 404 });
50
+ let args = [];
51
+ try {
52
+ const parsed = await request.json();
53
+ args = Array.isArray(parsed) ? parsed : [parsed];
54
+ } catch {
55
+ }
56
+ try {
57
+ const headers = { "content-type": "application/json" };
58
+ let result;
59
+ if (contextRunner) {
60
+ const ran = contextRunner(request, () => fn(...args));
61
+ result = await ran.result;
62
+ Object.assign(headers, ran.responseHeaders || {});
63
+ } else {
64
+ result = await fn(...args);
65
+ }
66
+ return new Response(JSON.stringify(result ?? null), { status: 200, headers });
67
+ } catch (e) {
68
+ return new Response(String(e?.message || e), { status: 500 });
69
+ }
70
+ }
71
+ export {
72
+ $$createServerReference,
73
+ $$registerServerFn,
74
+ SERVER_FN_ENDPOINT,
75
+ handleServerFn,
76
+ isServerFnRequest,
77
+ setServerFnContextRunner,
78
+ setServerFnFetch
79
+ };