@pyreon/zero 0.12.2 → 0.12.4

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 (145) hide show
  1. package/lib/actions.js +97 -0
  2. package/lib/actions.js.map +1 -0
  3. package/lib/ai.js +503 -0
  4. package/lib/ai.js.map +1 -0
  5. package/lib/api-routes.js +137 -0
  6. package/lib/api-routes.js.map +1 -0
  7. package/lib/compression.js +80 -0
  8. package/lib/compression.js.map +1 -0
  9. package/lib/cors.js +57 -0
  10. package/lib/cors.js.map +1 -0
  11. package/lib/csp.js +119 -0
  12. package/lib/csp.js.map +1 -0
  13. package/lib/env.js +217 -0
  14. package/lib/env.js.map +1 -0
  15. package/lib/favicon.js +424 -0
  16. package/lib/favicon.js.map +1 -0
  17. package/lib/i18n-routing.js +167 -0
  18. package/lib/i18n-routing.js.map +1 -0
  19. package/lib/index.js +340 -4015
  20. package/lib/index.js.map +1 -1
  21. package/lib/link.js +5 -0
  22. package/lib/link.js.map +1 -1
  23. package/lib/logger.js +78 -0
  24. package/lib/logger.js.map +1 -0
  25. package/lib/meta.js +310 -0
  26. package/lib/meta.js.map +1 -0
  27. package/lib/middleware.js +53 -0
  28. package/lib/middleware.js.map +1 -0
  29. package/lib/og-image.js +233 -0
  30. package/lib/og-image.js.map +1 -0
  31. package/lib/rate-limit.js +76 -0
  32. package/lib/rate-limit.js.map +1 -0
  33. package/lib/server.js +1534 -0
  34. package/lib/server.js.map +1 -0
  35. package/lib/testing.js +179 -0
  36. package/lib/testing.js.map +1 -0
  37. package/lib/theme.js +11 -2
  38. package/lib/theme.js.map +1 -1
  39. package/lib/types/actions.d.ts +27 -24
  40. package/lib/types/actions.d.ts.map +1 -1
  41. package/lib/types/ai.d.ts +76 -95
  42. package/lib/types/ai.d.ts.map +1 -1
  43. package/lib/types/api-routes.d.ts +37 -33
  44. package/lib/types/api-routes.d.ts.map +1 -1
  45. package/lib/types/cache.d.ts +26 -22
  46. package/lib/types/cache.d.ts.map +1 -1
  47. package/lib/types/client.d.ts +13 -9
  48. package/lib/types/client.d.ts.map +1 -1
  49. package/lib/types/compression.d.ts +14 -10
  50. package/lib/types/compression.d.ts.map +1 -1
  51. package/lib/types/config.d.ts +39 -4
  52. package/lib/types/config.d.ts.map +1 -1
  53. package/lib/types/cors.d.ts +20 -16
  54. package/lib/types/cors.d.ts.map +1 -1
  55. package/lib/types/csp.d.ts +42 -61
  56. package/lib/types/csp.d.ts.map +1 -1
  57. package/lib/types/env.d.ts +26 -26
  58. package/lib/types/env.d.ts.map +1 -1
  59. package/lib/types/favicon.d.ts +58 -54
  60. package/lib/types/favicon.d.ts.map +1 -1
  61. package/lib/types/font.d.ts +68 -65
  62. package/lib/types/font.d.ts.map +1 -1
  63. package/lib/types/i18n-routing.d.ts +43 -37
  64. package/lib/types/i18n-routing.d.ts.map +1 -1
  65. package/lib/types/image-plugin.d.ts +49 -45
  66. package/lib/types/image-plugin.d.ts.map +1 -1
  67. package/lib/types/image.d.ts +47 -36
  68. package/lib/types/image.d.ts.map +1 -1
  69. package/lib/types/index.d.ts +594 -56
  70. package/lib/types/index.d.ts.map +1 -1
  71. package/lib/types/link.d.ts +61 -56
  72. package/lib/types/link.d.ts.map +1 -1
  73. package/lib/types/logger.d.ts +37 -48
  74. package/lib/types/logger.d.ts.map +1 -1
  75. package/lib/types/meta.d.ts +145 -105
  76. package/lib/types/meta.d.ts.map +1 -1
  77. package/lib/types/middleware.d.ts +8 -4
  78. package/lib/types/middleware.d.ts.map +1 -1
  79. package/lib/types/og-image.d.ts +63 -59
  80. package/lib/types/og-image.d.ts.map +1 -1
  81. package/lib/types/rate-limit.d.ts +20 -16
  82. package/lib/types/rate-limit.d.ts.map +1 -1
  83. package/lib/types/script.d.ts +23 -19
  84. package/lib/types/script.d.ts.map +1 -1
  85. package/lib/types/seo.d.ts +47 -43
  86. package/lib/types/seo.d.ts.map +1 -1
  87. package/lib/types/server.d.ts +455 -0
  88. package/lib/types/server.d.ts.map +1 -0
  89. package/lib/types/testing.d.ts +64 -27
  90. package/lib/types/testing.d.ts.map +1 -1
  91. package/lib/types/theme.d.ts +22 -12
  92. package/lib/types/theme.d.ts.map +1 -1
  93. package/package.json +17 -12
  94. package/src/actions.ts +1 -3
  95. package/src/adapters/bun.ts +2 -0
  96. package/src/adapters/cloudflare.ts +2 -0
  97. package/src/adapters/netlify.ts +2 -0
  98. package/src/adapters/node.ts +2 -0
  99. package/src/adapters/validate.ts +16 -0
  100. package/src/adapters/vercel.ts +2 -0
  101. package/src/compression.ts +19 -3
  102. package/src/entry-server.ts +28 -5
  103. package/src/index.ts +20 -182
  104. package/src/link.tsx +6 -0
  105. package/src/meta.tsx +78 -16
  106. package/src/rate-limit.ts +11 -9
  107. package/src/server.ts +70 -0
  108. package/src/theme.tsx +12 -1
  109. package/src/vite-plugin.ts +5 -1
  110. package/lib/fs-router-Dil4IKZR.js +0 -290
  111. package/lib/fs-router-Dil4IKZR.js.map +0 -1
  112. package/lib/types/adapters/bun.d.ts +0 -6
  113. package/lib/types/adapters/bun.d.ts.map +0 -1
  114. package/lib/types/adapters/cloudflare.d.ts +0 -26
  115. package/lib/types/adapters/cloudflare.d.ts.map +0 -1
  116. package/lib/types/adapters/index.d.ts +0 -13
  117. package/lib/types/adapters/index.d.ts.map +0 -1
  118. package/lib/types/adapters/netlify.d.ts +0 -21
  119. package/lib/types/adapters/netlify.d.ts.map +0 -1
  120. package/lib/types/adapters/node.d.ts +0 -6
  121. package/lib/types/adapters/node.d.ts.map +0 -1
  122. package/lib/types/adapters/static.d.ts +0 -7
  123. package/lib/types/adapters/static.d.ts.map +0 -1
  124. package/lib/types/adapters/vercel.d.ts +0 -21
  125. package/lib/types/adapters/vercel.d.ts.map +0 -1
  126. package/lib/types/app.d.ts +0 -24
  127. package/lib/types/app.d.ts.map +0 -1
  128. package/lib/types/entry-server.d.ts +0 -37
  129. package/lib/types/entry-server.d.ts.map +0 -1
  130. package/lib/types/error-overlay.d.ts +0 -6
  131. package/lib/types/error-overlay.d.ts.map +0 -1
  132. package/lib/types/fs-router.d.ts +0 -47
  133. package/lib/types/fs-router.d.ts.map +0 -1
  134. package/lib/types/isr.d.ts +0 -9
  135. package/lib/types/isr.d.ts.map +0 -1
  136. package/lib/types/not-found.d.ts +0 -7
  137. package/lib/types/not-found.d.ts.map +0 -1
  138. package/lib/types/types.d.ts +0 -111
  139. package/lib/types/types.d.ts.map +0 -1
  140. package/lib/types/utils/use-intersection-observer.d.ts +0 -10
  141. package/lib/types/utils/use-intersection-observer.d.ts.map +0 -1
  142. package/lib/types/utils/with-headers.d.ts +0 -6
  143. package/lib/types/utils/with-headers.d.ts.map +0 -1
  144. package/lib/types/vite-plugin.d.ts +0 -17
  145. package/lib/types/vite-plugin.d.ts.map +0 -1
@@ -1,72 +1,74 @@
1
- import type { Plugin } from 'vite';
2
- export interface OgImageLayer {
3
- /**
4
- * Text content. Can be:
5
- * - A string (same for all locales)
6
- * - A record mapping locale → text
7
- * - A function receiving locale and returning text
8
- */
9
- text: string | Record<string, string> | ((locale: string) => string);
10
- /** X position — number (px) or string with % (e.g. "50%"). Default: "50%" */
11
- x?: number | string;
12
- /** Y position — number (px) or string with % (e.g. "40%"). Default: "50%" */
13
- y?: number | string;
14
- /** Font size in px. Default: 64 */
15
- fontSize?: number;
16
- /** Font family. Default: "sans-serif" */
17
- fontFamily?: string;
18
- /** Font weight. Default: "bold" */
19
- fontWeight?: string;
20
- /** Text color. Default: "#ffffff" */
21
- color?: string;
22
- /** Text anchor (alignment). Default: "middle" */
23
- textAnchor?: 'start' | 'middle' | 'end';
24
- /** Max width in px before wrapping. Default: 80% of image width. */
25
- maxWidth?: number;
1
+ import { Plugin } from "vite";
2
+
3
+ //#region src/og-image.d.ts
4
+ interface OgImageLayer {
5
+ /**
6
+ * Text content. Can be:
7
+ * - A string (same for all locales)
8
+ * - A record mapping locale → text
9
+ * - A function receiving locale and returning text
10
+ */
11
+ text: string | Record<string, string> | ((locale: string) => string);
12
+ /** X position — number (px) or string with % (e.g. "50%"). Default: "50%" */
13
+ x?: number | string;
14
+ /** Y position number (px) or string with % (e.g. "40%"). Default: "50%" */
15
+ y?: number | string;
16
+ /** Font size in px. Default: 64 */
17
+ fontSize?: number;
18
+ /** Font family. Default: "sans-serif" */
19
+ fontFamily?: string;
20
+ /** Font weight. Default: "bold" */
21
+ fontWeight?: string;
22
+ /** Text color. Default: "#ffffff" */
23
+ color?: string;
24
+ /** Text anchor (alignment). Default: "middle" */
25
+ textAnchor?: 'start' | 'middle' | 'end';
26
+ /** Max width in px before wrapping. Default: 80% of image width. */
27
+ maxWidth?: number;
26
28
  }
27
- export interface OgImageTemplate {
28
- /** Template name — used for output file naming. */
29
- name: string;
30
- /**
31
- * Background: path to an image file, or a solid color config.
32
- *
33
- * @example "./src/assets/og-bg.jpg"
34
- * @example { color: "#0066ff", width: 1200, height: 630 }
35
- */
36
- background: string | {
37
- color: string;
38
- width?: number;
39
- height?: number;
40
- };
41
- /** Output width. Default: 1200 */
29
+ interface OgImageTemplate {
30
+ /** Template name — used for output file naming. */
31
+ name: string;
32
+ /**
33
+ * Background: path to an image file, or a solid color config.
34
+ *
35
+ * @example "./src/assets/og-bg.jpg"
36
+ * @example { color: "#0066ff", width: 1200, height: 630 }
37
+ */
38
+ background: string | {
39
+ color: string;
42
40
  width?: number;
43
- /** Output height. Default: 630 */
44
41
  height?: number;
45
- /** Output format. Default: "png" */
46
- format?: 'png' | 'jpeg';
47
- /** JPEG quality (1-100). Default: 90 */
48
- quality?: number;
49
- /** Text layers to overlay on the background. */
50
- layers?: OgImageLayer[];
42
+ };
43
+ /** Output width. Default: 1200 */
44
+ width?: number;
45
+ /** Output height. Default: 630 */
46
+ height?: number;
47
+ /** Output format. Default: "png" */
48
+ format?: 'png' | 'jpeg';
49
+ /** JPEG quality (1-100). Default: 90 */
50
+ quality?: number;
51
+ /** Text layers to overlay on the background. */
52
+ layers?: OgImageLayer[];
51
53
  }
52
- export interface OgImagePluginConfig {
53
- /** Templates to generate. */
54
- templates: OgImageTemplate[];
55
- /** Locales to generate for. When omitted, generates a single image per template. */
56
- locales?: string[];
57
- /** Output directory prefix. Default: "og" */
58
- outDir?: string;
54
+ interface OgImagePluginConfig {
55
+ /** Templates to generate. */
56
+ templates: OgImageTemplate[];
57
+ /** Locales to generate for. When omitted, generates a single image per template. */
58
+ locales?: string[];
59
+ /** Output directory prefix. Default: "og" */
60
+ outDir?: string;
59
61
  }
60
62
  /**
61
63
  * Build an SVG overlay with text layers.
62
64
  * @internal Exported for testing.
63
65
  */
64
- export declare function buildTextOverlaySvg(layers: OgImageLayer[], width: number, height: number, locale: string): string;
66
+ declare function buildTextOverlaySvg(layers: OgImageLayer[], width: number, height: number, locale: string): string;
65
67
  /**
66
68
  * Render an OG image from a template for a specific locale.
67
69
  * @internal Exported for testing.
68
70
  */
69
- export declare function renderOgImage(template: OgImageTemplate, locale: string, rootDir: string): Promise<Uint8Array | null>;
71
+ declare function renderOgImage(template: OgImageTemplate, locale: string, rootDir: string): Promise<Uint8Array | null>;
70
72
  /**
71
73
  * Compute the OG image path for a template and locale.
72
74
  *
@@ -77,7 +79,7 @@ export declare function renderOgImage(template: OgImageTemplate, locale: string,
77
79
  * ogImagePath("hero", "en", "images") // → "/images/hero-en.png"
78
80
  * ```
79
81
  */
80
- export declare function ogImagePath(templateName: string, locale?: string, outDir?: string, format?: 'png' | 'jpeg'): string;
82
+ declare function ogImagePath(templateName: string, locale?: string, outDir?: string, format?: 'png' | 'jpeg'): string;
81
83
  /**
82
84
  * OG image generation Vite plugin.
83
85
  *
@@ -103,5 +105,7 @@ export declare function ogImagePath(templateName: string, locale?: string, outDi
103
105
  * }
104
106
  * ```
105
107
  */
106
- export declare function ogImagePlugin(config: OgImagePluginConfig): Plugin;
107
- //# sourceMappingURL=og-image.d.ts.map
108
+ declare function ogImagePlugin(config: OgImagePluginConfig): Plugin;
109
+ //#endregion
110
+ export { OgImageLayer, OgImagePluginConfig, OgImageTemplate, buildTextOverlaySvg, ogImagePath, ogImagePlugin, renderOgImage };
111
+ //# sourceMappingURL=og-image2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"og-image.d.ts","sourceRoot":"","sources":["../../src/og-image.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAclC,MAAM,WAAW,YAAY;IAC3B;;;;;OAKG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;IACpE,6EAA6E;IAC7E,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,6EAA6E;IAC7E,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IACvC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,UAAU,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACvE,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,SAAS,EAAE,eAAe,EAAE,CAAA;IAC5B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AA0BD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,MAAM,CA0DR;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAuC5B;AAID;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,SAAO,EACb,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,MAAM,CAIR;AAID;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAkFjE"}
1
+ {"version":3,"file":"og-image2.d.ts","names":[],"sources":["../../../src/og-image.ts"],"mappings":";;;UA8CiB,YAAA;;AAAjB;;;;;EAOE,IAAA,WAAe,MAAA,qBAA2B,MAAA;EAAA;EAE1C,CAAA;EAEA;EAAA,CAAA;EAIA;EAFA,QAAA;EAMA;EAJA,UAAA;EAQA;EANA,UAAA;EAMQ;EAJR,KAAA;EAO8B;EAL9B,UAAA;EAwBqB;EAtBrB,QAAA;AAAA;AAAA,UAGe,eAAA;EASuB;EAPtC,IAAA;EASA;;;;;;EAFA,UAAA;IAAuB,KAAA;IAAe,KAAA;IAAgB,MAAA;EAAA;EAe5B;EAb1B,KAAA;EAaW;EAXX,MAAA;EAeA;EAbA,MAAA;EAaM;EAXN,OAAA;EA0CiC;EAxCjC,MAAA,GAAS,YAAA;AAAA;AAAA,UAGM,mBAAA;EAsCf;EApCA,SAAA,EAAW,eAAA;EAsCX;EApCA,OAAA;EAqCc;EAnCd,MAAA;AAAA;;;;;iBA+Bc,mBAAA,CACd,MAAA,EAAQ,YAAA,IACR,KAAA,UACA,MAAA,UACA,MAAA;;;;;iBAiEoB,aAAA,CACpB,QAAA,EAAU,eAAA,EACV,MAAA,UACA,OAAA,WACC,OAAA,CAAQ,UAAA;;;;;;AAqDX;;;;;iBAAgB,WAAA,CACd,YAAA,UACA,MAAA,WACA,MAAA,WACA,MAAA;;;;;AAkCF;;;;;;;;;;;;;;;;;;;;;iBAAgB,aAAA,CAAc,MAAA,EAAQ,mBAAA,GAAsB,MAAA"}
@@ -1,17 +1,19 @@
1
- import type { Middleware, MiddlewareContext } from '@pyreon/server';
2
- export interface RateLimitConfig {
3
- /** Maximum requests per window. Default: `100` */
4
- max?: number;
5
- /** Time window in seconds. Default: `60` */
6
- window?: number;
7
- /** Function to extract the client identifier. Default: IP from headers. */
8
- keyFn?: (ctx: MiddlewareContext) => string;
9
- /** Custom response when rate limited. */
10
- onLimit?: (ctx: MiddlewareContext) => Response;
11
- /** URL patterns to rate limit (glob-style). Default: all paths. */
12
- include?: string[];
13
- /** URL patterns to exclude from rate limiting. */
14
- exclude?: string[];
1
+ import { Middleware, MiddlewareContext } from "@pyreon/server";
2
+
3
+ //#region src/rate-limit.d.ts
4
+ interface RateLimitConfig {
5
+ /** Maximum requests per window. Default: `100` */
6
+ max?: number;
7
+ /** Time window in seconds. Default: `60` */
8
+ window?: number;
9
+ /** Function to extract the client identifier. Default: IP from headers. */
10
+ keyFn?: (ctx: MiddlewareContext) => string;
11
+ /** Custom response when rate limited. */
12
+ onLimit?: (ctx: MiddlewareContext) => Response;
13
+ /** URL patterns to rate limit (glob-style). Default: all paths. */
14
+ include?: string[];
15
+ /** URL patterns to exclude from rate limiting. */
16
+ exclude?: string[];
15
17
  }
16
18
  /**
17
19
  * Rate limiting middleware — limits requests per client within a time window.
@@ -30,5 +32,7 @@ export interface RateLimitConfig {
30
32
  * include: ["/api/*"],
31
33
  * })
32
34
  */
33
- export declare function rateLimitMiddleware(config?: RateLimitConfig): Middleware;
34
- //# sourceMappingURL=rate-limit.d.ts.map
35
+ declare function rateLimitMiddleware(config?: RateLimitConfig): Middleware;
36
+ //#endregion
37
+ export { RateLimitConfig, rateLimitMiddleware };
38
+ //# sourceMappingURL=rate-limit2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../src/rate-limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAInE,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,MAAM,CAAA;IAC1C,yCAAyC;IACzC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,QAAQ,CAAA;IAC9C,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,eAAoB,GAAG,UAAU,CAgE5E"}
1
+ {"version":3,"file":"rate-limit2.d.ts","names":[],"sources":["../../../src/rate-limit.ts"],"mappings":";;;UAIiB,eAAA;;EAEf,GAAA;EAF8B;EAI9B,MAAA;EAEc;EAAd,KAAA,IAAS,GAAA,EAAK,iBAAA;EAEwB;EAAtC,OAAA,IAAW,GAAA,EAAK,iBAAA,KAAsB,QAAA;EAAQ;EAE9C,OAAA;EANA;EAQA,OAAA;AAAA;;;;;;;;;;AAyBF;;;;;;;;iBAAgB,mBAAA,CAAoB,MAAA,GAAQ,eAAA,GAAuB,UAAA"}
@@ -1,21 +1,23 @@
1
- import type { VNodeChild } from '@pyreon/core';
2
- export interface ScriptProps {
3
- /** Script source URL. */
4
- src: string;
5
- /** Loading strategy. Default: "afterHydration" */
6
- strategy?: ScriptStrategy;
7
- /** Inline script content (alternative to src). */
8
- children?: string;
9
- /** Script id for deduplication. */
10
- id?: string;
11
- /** Async attribute. Default: true */
12
- async?: boolean;
13
- /** onLoad callback. */
14
- onLoad?: () => void;
15
- /** onError callback. */
16
- onError?: (error: Error) => void;
1
+ import { VNodeChild } from "@pyreon/core";
2
+
3
+ //#region src/script.d.ts
4
+ interface ScriptProps {
5
+ /** Script source URL. */
6
+ src: string;
7
+ /** Loading strategy. Default: "afterHydration" */
8
+ strategy?: ScriptStrategy;
9
+ /** Inline script content (alternative to src). */
10
+ children?: string;
11
+ /** Script id for deduplication. */
12
+ id?: string;
13
+ /** Async attribute. Default: true */
14
+ async?: boolean;
15
+ /** onLoad callback. */
16
+ onLoad?: () => void;
17
+ /** onError callback. */
18
+ onError?: (error: Error) => void;
17
19
  }
18
- export type ScriptStrategy = 'beforeHydration' | 'afterHydration' | 'onIdle' | 'onInteraction' | 'onViewport';
20
+ type ScriptStrategy = 'beforeHydration' | 'afterHydration' | 'onIdle' | 'onInteraction' | 'onViewport';
19
21
  /**
20
22
  * Optimized script loading component.
21
23
  *
@@ -31,5 +33,7 @@ export type ScriptStrategy = 'beforeHydration' | 'afterHydration' | 'onIdle' | '
31
33
  * {`console.log("App hydrated!")`}
32
34
  * </Script>
33
35
  */
34
- export declare function Script(props: ScriptProps): VNodeChild;
35
- //# sourceMappingURL=script.d.ts.map
36
+ declare function Script(props: ScriptProps): VNodeChild;
37
+ //#endregion
38
+ export { Script, ScriptProps, ScriptStrategy };
39
+ //# sourceMappingURL=script2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../../src/script.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAa9C,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,kDAAkD;IAClD,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,wBAAwB;IACxB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC;AAED,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,YAAY,CAAA;AAEhB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,UAAU,CAgFrD"}
1
+ {"version":3,"file":"script2.d.ts","names":[],"sources":["../../../src/script.tsx"],"mappings":";;;UAaiB,WAAA;;EAEf,GAAA;EAF0B;EAI1B,QAAA,GAAW,cAAA;EAUY;EARvB,QAAA;EAFA;EAIA,EAAA;EAFA;EAIA,KAAA;EAAA;EAEA,MAAA;EAEA;EAAA,OAAA,IAAW,KAAA,EAAO,KAAA;AAAA;AAAA,KAGR,cAAA;;AAAZ;;;;;AAsBA;;;;;;;;;iBAAgB,MAAA,CAAO,KAAA,EAAO,WAAA,GAAc,UAAA"}
@@ -1,47 +1,49 @@
1
- import type { Middleware } from '@pyreon/server';
2
- import type { Plugin } from 'vite';
3
- export interface SitemapConfig {
4
- /** Base URL of the site (required). e.g. "https://example.com" */
5
- origin: string;
6
- /** Paths to exclude from the sitemap. */
7
- exclude?: string[];
8
- /** Default change frequency. Default: "weekly" */
9
- changefreq?: ChangeFreq;
10
- /** Default priority. Default: 0.7 */
11
- priority?: number;
12
- /** Additional URLs to include (for dynamic routes). */
13
- additionalPaths?: SitemapEntry[];
1
+ import { Middleware } from "@pyreon/server";
2
+ import { Plugin } from "vite";
3
+
4
+ //#region src/seo.d.ts
5
+ interface SitemapConfig {
6
+ /** Base URL of the site (required). e.g. "https://example.com" */
7
+ origin: string;
8
+ /** Paths to exclude from the sitemap. */
9
+ exclude?: string[];
10
+ /** Default change frequency. Default: "weekly" */
11
+ changefreq?: ChangeFreq;
12
+ /** Default priority. Default: 0.7 */
13
+ priority?: number;
14
+ /** Additional URLs to include (for dynamic routes). */
15
+ additionalPaths?: SitemapEntry[];
14
16
  }
15
- export interface SitemapEntry {
16
- path: string;
17
- changefreq?: ChangeFreq;
18
- priority?: number;
19
- lastmod?: string;
17
+ interface SitemapEntry {
18
+ path: string;
19
+ changefreq?: ChangeFreq;
20
+ priority?: number;
21
+ lastmod?: string;
20
22
  }
21
- export type ChangeFreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
23
+ type ChangeFreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
22
24
  /**
23
25
  * Generate a sitemap.xml string from route file paths.
24
26
  */
25
- export declare function generateSitemap(routeFiles: string[], config: SitemapConfig): string;
26
- export interface RobotsConfig {
27
- /** Rules per user-agent. */
28
- rules?: RobotsRule[];
29
- /** Sitemap URL. */
30
- sitemap?: string;
31
- /** Host directive. */
32
- host?: string;
27
+ declare function generateSitemap(routeFiles: string[], config: SitemapConfig): string;
28
+ interface RobotsConfig {
29
+ /** Rules per user-agent. */
30
+ rules?: RobotsRule[];
31
+ /** Sitemap URL. */
32
+ sitemap?: string;
33
+ /** Host directive. */
34
+ host?: string;
33
35
  }
34
- export interface RobotsRule {
35
- userAgent: string;
36
- allow?: string[];
37
- disallow?: string[];
38
- crawlDelay?: number;
36
+ interface RobotsRule {
37
+ userAgent: string;
38
+ allow?: string[];
39
+ disallow?: string[];
40
+ crawlDelay?: number;
39
41
  }
40
42
  /**
41
43
  * Generate a robots.txt string.
42
44
  */
43
- export declare function generateRobots(config?: RobotsConfig): string;
44
- export type JsonLdType = 'WebSite' | 'WebPage' | 'Article' | 'BlogPosting' | 'Product' | 'Organization' | 'Person' | 'BreadcrumbList' | 'FAQPage' | (string & {});
45
+ declare function generateRobots(config?: RobotsConfig): string;
46
+ type JsonLdType = 'WebSite' | 'WebPage' | 'Article' | 'BlogPosting' | 'Product' | 'Organization' | 'Person' | 'BreadcrumbList' | 'FAQPage' | (string & {});
45
47
  /**
46
48
  * Generate a JSON-LD script tag string for structured data.
47
49
  *
@@ -54,12 +56,12 @@ export type JsonLdType = 'WebSite' | 'WebPage' | 'Article' | 'BlogPosting' | 'Pr
54
56
  * })],
55
57
  * })
56
58
  */
57
- export declare function jsonLd(data: Record<string, unknown>): string;
58
- export interface SeoPluginConfig {
59
- /** Sitemap configuration. */
60
- sitemap?: SitemapConfig;
61
- /** Robots.txt configuration. */
62
- robots?: RobotsConfig;
59
+ declare function jsonLd(data: Record<string, unknown>): string;
60
+ interface SeoPluginConfig {
61
+ /** Sitemap configuration. */
62
+ sitemap?: SitemapConfig;
63
+ /** Robots.txt configuration. */
64
+ robots?: RobotsConfig;
63
65
  }
64
66
  /**
65
67
  * Zero SEO Vite plugin.
@@ -79,10 +81,12 @@ export interface SeoPluginConfig {
79
81
  * ],
80
82
  * }
81
83
  */
82
- export declare function seoPlugin(config?: SeoPluginConfig): Plugin;
84
+ declare function seoPlugin(config?: SeoPluginConfig): Plugin;
83
85
  /**
84
86
  * SEO middleware for dev server.
85
87
  * Serves sitemap.xml and robots.txt dynamically during development.
86
88
  */
87
- export declare function seoMiddleware(config?: SeoPluginConfig): Middleware;
88
- //# sourceMappingURL=seo.d.ts.map
89
+ declare function seoMiddleware(config?: SeoPluginConfig): Middleware;
90
+ //#endregion
91
+ export { ChangeFreq, JsonLdType, RobotsConfig, RobotsRule, SeoPluginConfig, SitemapConfig, SitemapEntry, generateRobots, generateSitemap, jsonLd, seoMiddleware, seoPlugin };
92
+ //# sourceMappingURL=seo2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/seo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAUlC,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAA;IACd,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,kDAAkD;IAClD,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,uDAAuD;IACvD,eAAe,CAAC,EAAE,YAAY,EAAE,CAAA;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAElG;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM,CAmDnF;AAaD,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CAoBhE;AAID,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,SAAS,GACT,SAAS,GACT,aAAa,GACb,SAAS,GACT,cAAc,GACd,QAAQ,GACR,gBAAgB,GAChB,SAAS,GACT,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEjB;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAM5D;AAID,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,gCAAgC;IAChC,MAAM,CAAC,EAAE,YAAY,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,MAAM,GAAE,eAAoB,GAAG,MAAM,CAqC9D;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,eAAoB,GAAG,UAAU,CAuBtE"}
1
+ {"version":3,"file":"seo2.d.ts","names":[],"sources":["../../../src/seo.ts"],"mappings":";;;;UAWiB,aAAA;;EAEf,MAAA;EAF4B;EAI5B,OAAA;EAM8B;EAJ9B,UAAA,GAAa,UAAA;EAFb;EAIA,QAAA;EAFa;EAIb,eAAA,GAAkB,YAAA;AAAA;AAAA,UAGH,YAAA;EACf,IAAA;EACA,UAAA,GAAa,UAAA;EACb,QAAA;EACA,OAAA;AAAA;AAAA,KAGU,UAAA;;;;iBAKI,eAAA,CAAgB,UAAA,YAAsB,MAAA,EAAQ,aAAA;AAAA,UAgE7C,YAAA;EAxER;EA0EP,KAAA,GAAQ,UAAA;EAvEE;EAyEV,OAAA;;EAEA,IAAA;AAAA;AAAA,UAGe,UAAA;EACf,SAAA;EACA,KAAA;EACA,QAAA;EACA,UAAA;AAAA;;;;iBAMc,cAAA,CAAe,MAAA,GAAQ,YAAA;AAAA,KAwB3B,UAAA;;;;;;;;;AAlCZ;;;;iBA0DgB,MAAA,CAAO,IAAA,EAAM,MAAA;AAAA,UAUZ,eAAA;EAjEf;EAmEA,OAAA,GAAU,aAAA;EAlEA;EAoEV,MAAA,GAAS,YAAA;AAAA;;;;;AAtCX;;;;;AAwBA;;;;;AAUA;;;;iBAyBgB,SAAA,CAAU,MAAA,GAAQ,eAAA,GAAuB,MAAA;;;;;iBA6CzC,aAAA,CAAc,MAAA,GAAQ,eAAA,GAAuB,UAAA"}