@fluixi/start 0.1.0-alpha.74 → 0.1.0-alpha.76

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 (120) hide show
  1. package/dist/adapter.cjs +6 -4
  2. package/dist/adapter.d.ts +9 -9
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/adapter.js +13 -11
  5. package/dist/adapter.mjs +6 -4
  6. package/dist/adapters/entry.cjs +1 -1
  7. package/dist/adapters/entry.js +1 -1
  8. package/dist/adapters/entry.mjs +1 -1
  9. package/dist/adapters/platforms.cjs +1 -1
  10. package/dist/adapters/platforms.d.ts +2 -2
  11. package/dist/adapters/platforms.js +8 -8
  12. package/dist/adapters/platforms.mjs +1 -1
  13. package/dist/{api-RH6E5UTH.mjs → api-HD7KU3BS.mjs} +1 -1
  14. package/dist/api.cjs +2 -2
  15. package/dist/api.js +1 -1
  16. package/dist/api.mjs +2 -2
  17. package/dist/commands/{api-RH6E5UTH.mjs → api-HD7KU3BS.mjs} +1 -1
  18. package/dist/commands/{api-23MJFSYL.mjs → api-LTOLCZPE.mjs} +2 -2
  19. package/dist/commands/{api-4IYNQRKG.mjs → api-PBT4QZ34.mjs} +1 -1
  20. package/dist/commands/build.cjs +14 -7
  21. package/dist/commands/build.js +6 -6
  22. package/dist/commands/build.mjs +14 -7
  23. package/dist/commands/{chunk-OCPCK4ZJ.mjs → chunk-JACRXSN7.mjs} +2 -2
  24. package/dist/commands/{chunk-NS5GR2GX.mjs → chunk-MTM6M3TC.mjs} +1 -1
  25. package/dist/commands/dev.cjs +17 -5
  26. package/dist/commands/dev.d.ts.map +1 -1
  27. package/dist/commands/dev.js +9 -4
  28. package/dist/commands/dev.mjs +18 -6
  29. package/dist/commands/index.cjs +21 -9
  30. package/dist/commands/index.d.ts +1 -1
  31. package/dist/commands/index.js +1 -1
  32. package/dist/commands/index.mjs +22 -10
  33. package/dist/commands/prerender.cjs +2 -0
  34. package/dist/commands/prerender.d.ts +1 -1
  35. package/dist/commands/prerender.js +2 -2
  36. package/dist/commands/prerender.mjs +2 -0
  37. package/dist/commands/start.cjs +2 -0
  38. package/dist/commands/start.d.ts +1 -1
  39. package/dist/commands/start.js +2 -2
  40. package/dist/commands/start.mjs +2 -0
  41. package/dist/config.cjs +7 -1
  42. package/dist/config.d.ts +24 -7
  43. package/dist/config.d.ts.map +1 -1
  44. package/dist/config.js +8 -6
  45. package/dist/config.mjs +7 -1
  46. package/dist/define-config.cjs +32 -0
  47. package/dist/define-config.d.ts +12 -0
  48. package/dist/define-config.d.ts.map +1 -0
  49. package/dist/define-config.js +3 -0
  50. package/dist/define-config.mjs +7 -0
  51. package/dist/di.cjs +1 -1
  52. package/dist/di.d.ts +4 -4
  53. package/dist/di.d.ts.map +1 -1
  54. package/dist/di.js +9 -9
  55. package/dist/di.mjs +1 -1
  56. package/dist/document.d.ts +1 -1
  57. package/dist/document.js +1 -1
  58. package/dist/generated-api.cjs +1 -1
  59. package/dist/generated-api.js +1 -1
  60. package/dist/generated-api.mjs +1 -1
  61. package/dist/generated-server-fns.cjs +1 -1
  62. package/dist/generated-server-fns.mjs +1 -1
  63. package/dist/handler-core.cjs +1 -1
  64. package/dist/handler-core.d.ts +2 -2
  65. package/dist/handler-core.js +2 -2
  66. package/dist/handler-core.mjs +1 -1
  67. package/dist/handler.cjs +1 -0
  68. package/dist/handler.d.ts +3 -3
  69. package/dist/handler.js +3 -3
  70. package/dist/handler.mjs +2 -0
  71. package/dist/head.cjs +1 -1
  72. package/dist/head.d.ts +1 -1
  73. package/dist/head.js +1 -1
  74. package/dist/head.mjs +1 -1
  75. package/dist/image-loader.cjs +37 -0
  76. package/dist/image-loader.d.ts +25 -0
  77. package/dist/image-loader.d.ts.map +1 -0
  78. package/dist/image-loader.js +18 -0
  79. package/dist/image-loader.mjs +12 -0
  80. package/dist/image.cjs +13 -8
  81. package/dist/image.d.ts +2 -19
  82. package/dist/image.d.ts.map +1 -1
  83. package/dist/image.js +5 -21
  84. package/dist/image.mjs +14 -8
  85. package/dist/index.cjs +5 -738
  86. package/dist/index.d.ts +28 -8
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +33 -17
  89. package/dist/index.mjs +4 -710
  90. package/dist/interceptors.cjs +1 -0
  91. package/dist/interceptors.js +1 -1
  92. package/dist/interceptors.mjs +2 -0
  93. package/dist/internal.cjs +9 -4
  94. package/dist/internal.d.ts +6 -6
  95. package/dist/internal.d.ts.map +1 -1
  96. package/dist/internal.js +23 -15
  97. package/dist/internal.mjs +9 -4
  98. package/dist/middleware.d.ts +3 -3
  99. package/dist/middleware.d.ts.map +1 -1
  100. package/dist/middleware.js +1 -1
  101. package/dist/preload.cjs +1 -1
  102. package/dist/preload.js +1 -1
  103. package/dist/preload.mjs +1 -1
  104. package/dist/router.cjs +1 -1
  105. package/dist/router.d.ts +3 -3
  106. package/dist/router.js +3 -3
  107. package/dist/router.mjs +1 -1
  108. package/dist/server-fn-setup.cjs +1 -1
  109. package/dist/server-fn-setup.d.ts +1 -1
  110. package/dist/server-fn-setup.js +2 -2
  111. package/dist/server-fn-setup.mjs +1 -1
  112. package/dist/server-fn.cjs +1 -1
  113. package/dist/server-fn.d.ts +2 -2
  114. package/dist/server-fn.js +2 -2
  115. package/dist/server-fn.mjs +1 -1
  116. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  117. package/dist/ui.cjs +1 -1
  118. package/dist/ui.js +1 -1
  119. package/dist/ui.mjs +1 -1
  120. package/package.json +25 -7
@@ -0,0 +1,18 @@
1
+ /**
2
+ * A loader for `@fluixi-ui/image` that targets a `createImageHandler` route.
3
+ *
4
+ * ```tsx
5
+ * import { imageLoader } from '@fluixi/start';
6
+ * const loader = imageLoader({ path: '/api/image' });
7
+ * <Image src="/mug.jpg" loader={loader} widths={[120, 240, 480]} />
8
+ * ```
9
+ */
10
+ export function imageLoader(options = {}) {
11
+ const path = options.path ?? '/api/image';
12
+ return ({ src, width, quality }) => {
13
+ const params = new URLSearchParams({ url: src, w: String(width) });
14
+ if (quality != null)
15
+ params.set('q', String(quality));
16
+ return `${path}?${params.toString()}`;
17
+ };
18
+ }
@@ -0,0 +1,12 @@
1
+ // src/image-loader.ts
2
+ function imageLoader(options = {}) {
3
+ const path = options.path ?? "/api/image";
4
+ return ({ src, width, quality }) => {
5
+ const params = new URLSearchParams({ url: src, w: String(width) });
6
+ if (quality != null) params.set("q", String(quality));
7
+ return `${path}?${params.toString()}`;
8
+ };
9
+ }
10
+ export {
11
+ imageLoader
12
+ };
package/dist/image.cjs CHANGED
@@ -1,3 +1,4 @@
1
+ /*! @fluixi/start v0.1.0-alpha.76 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
1
2
  "use strict";
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -26,6 +27,18 @@ __export(image_exports, {
26
27
  module.exports = __toCommonJS(image_exports);
27
28
  var import_promises = require("node:fs/promises");
28
29
  var import_node_path = require("node:path");
30
+
31
+ // src/image-loader.ts
32
+ function imageLoader(options = {}) {
33
+ const path = options.path ?? "/api/image";
34
+ return ({ src, width, quality }) => {
35
+ const params = new URLSearchParams({ url: src, w: String(width) });
36
+ if (quality != null) params.set("q", String(quality));
37
+ return `${path}?${params.toString()}`;
38
+ };
39
+ }
40
+
41
+ // src/image.ts
29
42
  var DEFAULT_SIZES = [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840];
30
43
  var MIME = {
31
44
  ".jpg": "image/jpeg",
@@ -131,14 +144,6 @@ function createImageHandler(options = {}) {
131
144
  return imageResponse(body, contentType, maxAge);
132
145
  };
133
146
  }
134
- function imageLoader(options = {}) {
135
- const path = options.path ?? "/api/image";
136
- return ({ src, width, quality }) => {
137
- const params = new URLSearchParams({ url: src, w: String(width) });
138
- if (quality != null) params.set("q", String(quality));
139
- return `${path}?${params.toString()}`;
140
- };
141
- }
142
147
  // Annotate the CommonJS export names for ESM import in node:
143
148
  0 && (module.exports = {
144
149
  createImageHandler,
package/dist/image.d.ts CHANGED
@@ -35,7 +35,7 @@ export interface ImageHandlerOptions {
35
35
  *
36
36
  * ```ts
37
37
  * // src/api/image.ts
38
- * import { createImageHandler } from '@fluixi/start';
38
+ * import { createImageHandler } from '@fluixi/start/image';
39
39
  * export const GET = createImageHandler({ root: 'public', domains: ['cdn.example.com'] });
40
40
  * ```
41
41
  *
@@ -43,22 +43,5 @@ export interface ImageHandlerOptions {
43
43
  * through unchanged (so it's safe to ship either way).
44
44
  */
45
45
  export declare function createImageHandler(options?: ImageHandlerOptions): (request: Request) => Promise<Response>;
46
- export interface ImageLoaderOptions {
47
- /** Path the {@link createImageHandler} route is mounted at. Default `/api/image`. */
48
- path?: string;
49
- }
50
- /**
51
- * A loader for `@fluixi-ui/image` that targets a {@link createImageHandler} route.
52
- *
53
- * ```tsx
54
- * import { imageLoader } from '@fluixi/start';
55
- * const loader = imageLoader({ path: '/api/image' });
56
- * <Image src="/mug.jpg" loader={loader} widths={[120, 240, 480]} />
57
- * ```
58
- */
59
- export declare function imageLoader(options?: ImageLoaderOptions): (args: {
60
- src: string;
61
- width: number;
62
- quality?: number;
63
- }) => string;
46
+ export { imageLoader, type ImageLoaderOptions } from './image-loader.js';
64
47
  //# sourceMappingURL=image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IACtD,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,2FAA2F;IAC3F,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAoE7G;AAED,MAAM,WAAW,kBAAkB;IACjC,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAOhI"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IACtD,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,sFAAsF;AACtF,MAAM,MAAM,cAAc,GAAG,CAC3B,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,2FAA2F;IAC3F,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAyCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAoE7G;AAGD,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/image.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // On-demand image optimization: a Web `Request` → `Response` handler that resizes
2
2
  // and re-encodes images (to AVIF/WebP by content negotiation), plus a matching
3
- // `imageLoader` for `@fluixi-ui/image`. The actual codec is pluggable the
3
+ // `imageLoader` for `@fluixi-ui/image`. The actual codec is pluggable, the
4
4
  // default uses `sharp` if it's installed, otherwise it streams the source through
5
5
  // unchanged (so the framework never hard-depends on a native module).
6
6
  import { readFile } from 'node:fs/promises';
@@ -52,7 +52,7 @@ function imageResponse(body, contentType, maxAge) {
52
52
  *
53
53
  * ```ts
54
54
  * // src/api/image.ts
55
- * import { createImageHandler } from '@fluixi/start';
55
+ * import { createImageHandler } from '@fluixi/start/image';
56
56
  * export const GET = createImageHandler({ root: 'public', domains: ['cdn.example.com'] });
57
57
  * ```
58
58
  *
@@ -113,7 +113,7 @@ export function createImageHandler(options = {}) {
113
113
  }
114
114
  sourceType = MIME[extname(filePath).toLowerCase()] ?? 'application/octet-stream';
115
115
  }
116
- // Vector / animated sources aren't rasterized stream them through.
116
+ // Vector / animated sources aren't rasterized, stream them through.
117
117
  if (sourceType === 'image/svg+xml' || sourceType === 'image/gif') {
118
118
  return imageResponse(input, sourceType, maxAge);
119
119
  }
@@ -134,21 +134,5 @@ export function createImageHandler(options = {}) {
134
134
  return imageResponse(body, contentType, maxAge);
135
135
  };
136
136
  }
137
- /**
138
- * A loader for `@fluixi-ui/image` that targets a {@link createImageHandler} route.
139
- *
140
- * ```tsx
141
- * import { imageLoader } from '@fluixi/start';
142
- * const loader = imageLoader({ path: '/api/image' });
143
- * <Image src="/mug.jpg" loader={loader} widths={[120, 240, 480]} />
144
- * ```
145
- */
146
- export function imageLoader(options = {}) {
147
- const path = options.path ?? '/api/image';
148
- return ({ src, width, quality }) => {
149
- const params = new URLSearchParams({ url: src, w: String(width) });
150
- if (quality != null)
151
- params.set('q', String(quality));
152
- return `${path}?${params.toString()}`;
153
- };
154
- }
137
+ // The loader lives apart, so a page can import it without this module's `node:fs`.
138
+ export { imageLoader } from './image-loader.js';
package/dist/image.mjs CHANGED
@@ -1,6 +1,20 @@
1
+ /*! @fluixi/start v0.1.0-alpha.76 | (c) 2026 Ibrahima Touré and Fluixi contributors | MIT */
2
+
1
3
  // src/image.ts
2
4
  import { readFile } from "node:fs/promises";
3
5
  import { resolve as resolvePath, join, extname, sep } from "node:path";
6
+
7
+ // src/image-loader.ts
8
+ function imageLoader(options = {}) {
9
+ const path = options.path ?? "/api/image";
10
+ return ({ src, width, quality }) => {
11
+ const params = new URLSearchParams({ url: src, w: String(width) });
12
+ if (quality != null) params.set("q", String(quality));
13
+ return `${path}?${params.toString()}`;
14
+ };
15
+ }
16
+
17
+ // src/image.ts
4
18
  var DEFAULT_SIZES = [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840];
5
19
  var MIME = {
6
20
  ".jpg": "image/jpeg",
@@ -106,14 +120,6 @@ function createImageHandler(options = {}) {
106
120
  return imageResponse(body, contentType, maxAge);
107
121
  };
108
122
  }
109
- function imageLoader(options = {}) {
110
- const path = options.path ?? "/api/image";
111
- return ({ src, width, quality }) => {
112
- const params = new URLSearchParams({ url: src, w: String(width) });
113
- if (quality != null) params.set("q", String(quality));
114
- return `${path}?${params.toString()}`;
115
- };
116
- }
117
123
  export {
118
124
  createImageHandler,
119
125
  imageLoader