@pyreon/zero 0.12.7 → 0.12.9
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.
- package/lib/favicon.js +6 -0
- package/lib/favicon.js.map +1 -1
- package/lib/fs-router-Dil4IKZR.js +290 -0
- package/lib/fs-router-Dil4IKZR.js.map +1 -0
- package/lib/image-plugin.js +68 -1
- package/lib/image-plugin.js.map +1 -1
- package/lib/server.js +1343 -265
- package/lib/server.js.map +1 -1
- package/lib/types/favicon.d.ts.map +1 -1
- package/lib/types/image-plugin.d.ts +49 -1
- package/lib/types/image-plugin.d.ts.map +1 -1
- package/lib/types/image.d.ts.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/server.d.ts +425 -1
- package/lib/types/server.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/favicon.ts +13 -0
- package/src/image-plugin.ts +143 -0
- package/src/image-types.d.ts +51 -0
- package/src/server.ts +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"favicon2.d.ts","names":[],"sources":["../../../src/favicon.ts"],"mappings":";;;UA6BiB,mBAAA;;EAEf,MAAA;EAFkC;EAIlC,UAAA;AAAA;AAAA,UAGe,mBAAA;EAAA;EAEf,MAAA;;EAEA,UAAA;EAFA;EAIA,eAAA;EAAA;EAEA,IAAA;EAEA;EAAA,QAAA;EA0BA;;;;;EApBA,UAAA;EAqEc;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"favicon2.d.ts","names":[],"sources":["../../../src/favicon.ts"],"mappings":";;;UA6BiB,mBAAA;;EAEf,MAAA;EAFkC;EAIlC,UAAA;AAAA;AAAA,UAGe,mBAAA;EAAA;EAEf,MAAA;;EAEA,UAAA;EAFA;EAIA,eAAA;EAAA;EAEA,IAAA;EAEA;EAAA,QAAA;EA0BA;;;;;EApBA,UAAA;EAqEc;;;;;;;;;AA2YhB;;;;;;;;;;EA5bE,OAAA,GAAU,MAAA,SAAe,mBAAA;EA+b4B;;;AAmDvD;;;;;;;;;AAMA;;;;EAveE,SAAA;AAAA;;;;;;;;;;;;;;;;;iBAgCc,aAAA,CAAc,MAAA,EAAQ,mBAAA,GAAsB,MAAA;;;;;;;;;;;iBA2Y5C,YAAA,CACd,MAAA,sBACA,MAAA,EAAQ,mBAAA,GACP,KAAA;EAAQ,GAAA;EAAa,IAAA;EAAe,KAAA;EAAgB,IAAA;AAAA;AAAA,UAmDtC,QAAA;EACf,MAAA,EAAQ,MAAA;EACR,IAAA;AAAA;;iBAIc,iBAAA,CAAkB,OAAA,EAAS,QAAA,KAAa,UAAA"}
|
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import { Plugin } from "vite";
|
|
2
2
|
|
|
3
3
|
//#region src/image-plugin.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* CDN provider — rewrites image URLs to CDN endpoints.
|
|
6
|
+
* Return the rewritten URL, or null to use local processing.
|
|
7
|
+
*/
|
|
8
|
+
type ImageCdnProvider = (src: string, opts: {
|
|
9
|
+
width: number;
|
|
10
|
+
quality: number;
|
|
11
|
+
format: ImageFormat;
|
|
12
|
+
}) => string | null;
|
|
13
|
+
/** Built-in CDN providers. */
|
|
14
|
+
declare const cdnProviders: {
|
|
15
|
+
/** Cloudinary: `https://res.cloudinary.com/{cloud}/image/upload/...` */readonly cloudinary: (cloudName: string) => ImageCdnProvider; /** Imgix: `https://{domain}.imgix.net/...?w=...&q=...&fm=...` */
|
|
16
|
+
readonly imgix: (domain: string) => ImageCdnProvider; /** Vercel Image Optimization: `/_next/image?url=...&w=...&q=...` */
|
|
17
|
+
readonly vercel: () => ImageCdnProvider; /** Bunny CDN: `https://{pullZone}.b-cdn.net/...?width=...&quality=...` */
|
|
18
|
+
readonly bunny: (pullZone: string) => ImageCdnProvider;
|
|
19
|
+
};
|
|
20
|
+
/** Placeholder generation strategy. */
|
|
21
|
+
type PlaceholderStrategy = 'blur' | 'dominant-color' | 'none';
|
|
22
|
+
/** SVG processing options for ?component imports. */
|
|
23
|
+
interface SvgOptions {
|
|
24
|
+
/** Replace fill/stroke with currentColor. Default: true */
|
|
25
|
+
currentColor?: boolean;
|
|
26
|
+
/** Default size (width/height). */
|
|
27
|
+
defaultSize?: number;
|
|
28
|
+
}
|
|
4
29
|
interface ImagePluginConfig {
|
|
5
30
|
/** Output directory for processed images. Default: "assets/img" */
|
|
6
31
|
outDir?: string;
|
|
@@ -12,8 +37,31 @@ interface ImagePluginConfig {
|
|
|
12
37
|
quality?: number;
|
|
13
38
|
/** Blur placeholder size in px. Default: 16 */
|
|
14
39
|
placeholderSize?: number;
|
|
40
|
+
/** Placeholder strategy. Default: "blur" */
|
|
41
|
+
placeholder?: PlaceholderStrategy;
|
|
15
42
|
/** File patterns to process. Default: /\.(jpe?g|png|webp|avif)$/i */
|
|
16
43
|
include?: RegExp;
|
|
44
|
+
/**
|
|
45
|
+
* CDN provider for URL rewriting. When set, images are NOT processed
|
|
46
|
+
* locally — URLs are rewritten to the CDN endpoint.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* imagePlugin({ cdn: cdnProviders.cloudinary('my-cloud') })
|
|
51
|
+
* imagePlugin({ cdn: cdnProviders.vercel() })
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
cdn?: ImageCdnProvider;
|
|
55
|
+
/**
|
|
56
|
+
* SVG processing options. Enables `?component` import for inline SVGs.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* import Logo from './logo.svg?component'
|
|
61
|
+
* <Logo width={24} class="text-primary" />
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
svg?: SvgOptions | boolean;
|
|
17
65
|
}
|
|
18
66
|
type ImageFormat = 'webp' | 'avif' | 'jpeg' | 'png';
|
|
19
67
|
/** Per-format source set for <picture> <source> elements. */
|
|
@@ -79,5 +127,5 @@ declare function parseWebPDimensions(buffer: Buffer): {
|
|
|
79
127
|
height: number;
|
|
80
128
|
};
|
|
81
129
|
//#endregion
|
|
82
|
-
export { FormatSource, ImageFormat, ImagePluginConfig, ProcessedImage, imagePlugin, parseJpegDimensions, parseWebPDimensions };
|
|
130
|
+
export { FormatSource, ImageCdnProvider, ImageFormat, ImagePluginConfig, PlaceholderStrategy, ProcessedImage, SvgOptions, cdnProviders, imagePlugin, parseJpegDimensions, parseWebPDimensions };
|
|
83
131
|
//# sourceMappingURL=image-plugin2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-plugin2.d.ts","names":[],"sources":["../../../src/image-plugin.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-plugin2.d.ts","names":[],"sources":["../../../src/image-plugin.ts"],"mappings":";;;;;AAmCA;;KAAY,gBAAA,IAAoB,GAAA,UAAa,IAAA;EAC3C,KAAA;EACA,OAAA;EACA,MAAA,EAAQ,WAAA;AAAA;;cAIG,YAAA;EAPgC,oHASV,gBAAA,EALlC;EAAA,oCAS0B,gBAAA,EAUjB;EAAA,uBANI,gBAAA,EARqB;EAAA,sCAYN,gBAAA;AAAA;;KAKjB,mBAAA;;UAGK,UAAA;;EAEf,YAAA;;EAEA,WAAA;AAAA;AAAA,UAGe,iBAAA;EAnBH;EAqBZ,MAAA;;EAEA,MAAA;EAnB2C;EAqB3C,OAAA,GAAU,WAAA;EAhBA;EAkBV,OAAA;;EAEA,eAAA;EApB6B;EAsB7B,WAAA,GAAc,mBAAA;EAnBW;EAqBzB,OAAA,GAAU,MAAA;EAnBV;;AAKF;;;;;;;;EAyBE,GAAA,GAAM,gBAAA;EAUU;;;;;;;;;EAAhB,GAAA,GAAM,UAAA;AAAA;AAAA,KAGI,WAAA;;UAGK,YAAA;EANT;EAQN,IAAA;EARgB;EAUhB,MAAA;AAAA;AAAA,UAGe,cAAA;EAVM;EAYrB,GAAA;EATe;EAWf,MAAA;;EAEA,KAAA;EATM;EAWN,MAAA;EAR6B;EAU7B,WAAA;EAIc;EAFd,OAAA,EAAS,YAAA;EART;EAUA,OAAA,EAAS,KAAA;IAAQ,GAAA;IAAa,KAAA;IAAe,MAAA;EAAA;AAAA;;;;;;;AA6B/C;;;;;;;;;AA4SA;;;;;;;;;iBA5SgB,WAAA,CAAY,MAAA,GAAQ,iBAAA,GAAyB,MAAA;AAiU7D;AAAA,iBArBgB,mBAAA,CAAoB,MAAA,EAAQ,MAAA;EAC1C,KAAA;EACA,MAAA;AAAA;;iBAmBc,mBAAA,CAAoB,MAAA,EAAQ,MAAA;EAC1C,KAAA;EACA,MAAA;AAAA"}
|
package/lib/types/image.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image2.d.ts","names":[],"sources":["../../../src/image-plugin.ts","../../../src/image.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"image2.d.ts","names":[],"sources":["../../../src/image-plugin.ts","../../../src/image.tsx"],"mappings":";;;UAgHiB,YAAA;;EAEf,IAAA;;EAEA,MAAA;AAAA;;;UCpGe,UAAA;;EAEf,GAAA;ED8F2B;EC5F3B,GAAA;ED8FA;EC5FA,KAAA;;EAEA,MAAA;;EAEA,KAAA;EAVyB;EAYzB,MAAA,YAAkB,WAAA;EAEI;EAAtB,OAAA,GAAU,YAAA;EAVV;EAYA,OAAA;EARA;EAUA,QAAA;EANA;EAQA,WAAA;EANA;EAQA,KAAA;EANA;EAQA,KAAA;EAJA;EAMA,GAAA;EAFA;EAIA,QAAA;EAAA;;;;AASF;EAHE,GAAA;AAAA;AAAA,UAGe,WAAA;EACf,GAAA;EACA,KAAA;AAAA;;;;;;;;;;;;;;iBAgBc,KAAA,CAAM,KAAA,EAAO,UAAA,GAAa,UAAA"}
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index2.d.ts","names":[],"sources":["../../../src/image-plugin.ts","../../../src/image.tsx","../../../src/link.tsx","../../../src/script.tsx","../../../src/i18n-routing.ts","../../../src/meta.tsx","../../../src/theme.tsx","../../../src/types.ts","../../../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index2.d.ts","names":[],"sources":["../../../src/image-plugin.ts","../../../src/image.tsx","../../../src/link.tsx","../../../src/script.tsx","../../../src/i18n-routing.ts","../../../src/meta.tsx","../../../src/theme.tsx","../../../src/types.ts","../../../src/index.ts"],"mappings":";;;;;;;;UAgHiB,YAAA;EE/EA;EFiFf,IAAA;EEjFyB;EFmFzB,MAAA;AAAA;;;UCpGe,UAAA;;EAEf,GAAA;;EAEA,GAAA;;EAEA,KAAA;ED0F2B;ECxF3B,MAAA;ED0FA;ECxFA,KAAA;;EAEA,MAAA,YAAkB,WAAA;;EAElB,OAAA,GAAU,YAAA;EAde;EAgBzB,OAAA;EAFsB;EAItB,QAAA;EAdA;EAgBA,WAAA;EAZA;EAcA,KAAA;EAVA;EAYA,KAAA;EAVA;EAYA,GAAA;EAVA;EAYA,QAAA;EARA;;;;;EAcA,GAAA;AAAA;AAAA,UAGe,WAAA;EACf,GAAA;EACA,KAAA;AAAA;;;AAgBF;;;;;;;;;;;iBAAgB,KAAA,CAAM,KAAA,EAAO,UAAA,GAAa,UAAA;;;UC1DzB,SAAA;;EAEf,IAAA;;EAEA,QAAA;;EAEA,KAAA;;EAEA,WAAA;EF2F2B;EEzF3B,gBAAA;EF2FA;EEzFA,QAAA;;EAEA,QAAA;;EAEA,KAAA;EDbyB;ECezB,YAAA;EDDsB;ECGtB,OAAA,KAAY,CAAA,EAAG,UAAA;AAAA;;UAIA,eAAA;EACf,IAAA;EACA,GAAA,EAAiD,aAAA,CAArB,GAAA,CAAI,iBAAA;EAChC,OAAA,GAAU,CAAA,EAAG,UAAA;EACb,YAAA;EACA,YAAA;EACA,QAAA;EACA,aAAA;EDRA;ECUA,KAAA;EACA,KAAA;EACA,MAAA;EACA,GAAA;EACA,YAAA;EACA,QAAA;AAAA;ADEF;AAAA,UCEiB,aAAA;;EAEf,GAAA,EAAiD,aAAA,CAArB,GAAA,CAAI,iBAAA;EDF3B;ECIL,WAAA,GAAc,CAAA,EAAG,UAAA;EDYE;ECVnB,gBAAA;EDUkD;ECRlD,gBAAA;EDQoB;ECNpB,QAAA;EDMkD;ECJlD,aAAA;;EAEA,OAAA;AAAA;AAxDF;;;;;;;;AAAA,iBA+FgB,aAAA,CAAc,IAAA;;;;;;;;;;AAvE9B;;;;;;;iBA2FgB,OAAA,CAAQ,KAAA,EAAO,SAAA,GAAY,aAAA;;;;;;;;;;;;;;;;;;;;AAzE3C;;;;;;;;;;;;;;;;iBA0LgB,UAAA,CAAW,SAAA,GAAY,KAAA,EAAO,eAAA,YAA2B,KAAA,EAAO,SAAA;;;;;AArIhF;;;cAmKa,IAAA,GAAI,KAAA,EA9B+D,SAAA;;;UCpO/D,WAAA;;EAEf,GAAA;;EAEA,QAAA,GAAW,cAAA;;EAEX,QAAA;EH6Fe;EG3Ff,EAAA;;EAEA,KAAA;EH6FM;EG3FN,MAAA;;EAEA,OAAA,IAAW,KAAA,EAAO,KAAA;AAAA;AAAA,KAGR,cAAA;;;;;;;;;;;;;;;;iBAsBI,MAAA,CAAO,KAAA,EAAO,WAAA,GAAc,UAAA;;;UCnC3B,iBAAA;;EAEf,OAAA;;EAEA,aAAA;;EAEA,YAAA;EJyFe;EIvFf,UAAA;;EAEA,QAAA;AAAA;AAAA,UAGe,aAAA;;EAEf,MAAA;EHhBe;EGkBf,OAAA;;EAEA,aAAA;EHlBA;EGoBA,UAAA,GAAa,IAAA,UAAc,MAAA;EHhB3B;EGkBA,UAAA,QAAkB,KAAA;IAAQ,MAAA;IAAgB,GAAA;EAAA;AAAA;;;;;iBAoC5B,qBAAA,CACd,IAAA,UACA,OAAA,YACA,aAAA;EACG,MAAA;EAAgB,iBAAA;AAAA;;;;iBAiBL,eAAA,CACd,IAAA,UACA,MAAA,UACA,aAAA,UACA,QAAA;;;;;;;;;;;;;iBAiKc,SAAA,CAAA;;;;;;;;;iBAYA,SAAA,CACd,MAAA,UACA,MAAA,EAAQ,iBAAA;;;;UCzQA,mBAAA;EACR,MAAA;EACA,UAAA;EACA,QAAA;EACA,OAAA,GAAU,MAAA;IAAiB,MAAA;IAAgB,UAAA;EAAA;EAAA,CAC1C,GAAA;AAAA;AAAA,UA6Bc,SAAA;;EAEf,KAAA;EJ/Be;EIiCf,WAAA;;EAEA,SAAA;EJjCA;EImCA,KAAA;EJ/BA;EIiCA,QAAA;EJ7BA;EI+BA,UAAA;EJ7BkB;EI+BlB,WAAA;EJ7BU;EI+BV,IAAA;EJ3BA;EI6BA,QAAA;EJzBA;EI2BA,WAAA;EJvBA;EIyBA,WAAA;EJjBA;EImBA,cAAA;EJnBG;EIqBH,MAAA;EJlB0B;EIoB1B,gBAAA,GAAmB,KAAA;IAAQ,MAAA;IAAgB,GAAA;EAAA;EJFxB;EIInB,MAAA;EJJkD;EIMlD,OAAA;EJNoB;EIQpB,aAAA;EJRkD;EIUlD,YAAA;;EAEA,MAAA;;EAEA,IAAA;EHxEwB;EG0ExB,MAAA,GAAS,MAAA;EHtDgB;EGwDzB,KAAA,GAAQ,KAAA;IAAQ,IAAA;IAAe,QAAA;IAAmB,OAAA;EAAA;EHhElD;;;;EGqEA,KAAA;EH7De;EG+Df,UAAA;EH/DyB;EGiEzB,WAAA;EH7De;;;EGiEf,KAAA;EH/DiD;;;;;EGqEjD,IAAA,GAAO,iBAAA;EHrEJ;EGuEH,MAAA;EHtEA;;;;;EG4EA,OAAA,GAAU,mBAAA;EHxEV;;;;;EG8EA,UAAA;EHvEA;EGyEA,UAAA;EHzEQ;EG2ER,aAAA;EACA,QAAA,GAAW,UAAA;AAAA;;;;;;;;;;;;;;;;;;;iBAwBG,IAAA,CAAK,KAAA,EAAO,SAAA,GAAY,UAAA;AAAA,UA6B9B,YAAA;EACR,IAAA;EACA,QAAA;EACA,OAAA;EAAA,CACC,GAAA;AAAA;AAAA,UAGO,YAAA;EACR,GAAA;EACA,IAAA;EACA,QAAA;EACA,IAAA;EACA,KAAA;EAAA,CACC,GAAA;AAAA;AAAA,UAGO,cAAA;EACR,IAAA;EACA,QAAA;AAAA;AAAA,UAGQ,QAAA;EACR,IAAA,EAAM,YAAA;EACN,IAAA,EAAM,YAAA;EACN,MAAA,EAAQ,cAAA;AAAA;AAAA,iBAGM,aAAA,CACd,KAAA,EAAO,IAAA,CAAK,SAAA;EACV,KAAA;EACA,WAAA;AAAA,IAED,QAAA;;;KCxMS,KAAA;;cAKC,KAAA,EAAK,mBAAA,CAAA,MAAA,CAAA,KAAA;;;;;iBASF,kBAAA,CAAmB,KAAA;;iBAKnB,aAAA,CAAA;;iBAUA,WAAA,CAAA;;iBAMA,QAAA,CAAS,CAAA,EAAG,KAAA;;AL/B5B;;;iBK+CgB,SAAA,CAAA;;;;;;;;iBAiDA,WAAA,CAAY,KAAA;EAAS,KAAA;EAAgB,KAAA;AAAA,IAAmB,UAAA;;;;;;;;;AL3DxE;;;cK6Ha,WAAA;;;;UC3KI,WAAA;;EAEf,OAAA,GAAU,WAAA;;EAEV,MAAA,GAAS,WAAA;EPqGkB;EOnG3B,OAAA,GAAU,WAAA;EPqGV;EOnGA,KAAA,GAAQ,WAAA;;EAER,MAAA,IAAU,GAAA,EAAK,aAAA,KAAkB,OAAA;;EAEjC,UAAA,GAAa,UAAA,GAAa,UAAA;ENHD;EMKzB,KAAA,GAAQ,eAAA;ENSc;EMPtB,IAAA,GAAO,SAAA;ENHP;EMKA,UAAA,GAAa,UAAA;AAAA;;UAIE,aAAA;EACf,MAAA,EAAQ,MAAA;EACR,KAAA,EAAO,MAAA;EACP,MAAA,EAAQ,WAAA;EACR,OAAA,EAAS,OAAA;AAAA;;UAIM,SAAA;EACf,KAAA;EACA,WAAA;EAAA,CACC,GAAA;AAAA;AAAA,KAKS,UAAA;AAAA,UAEK,SAAA;ENMA;EMJf,UAAA;AAAA;AAAA,UAKe,UAAA;ENCV;EMCL,IAAA,GAAO,UAAA;ENeY;EMZnB,IAAA,GAAO,MAAA;ENY2C;EMTlD,GAAA;INSoB,wCMPlB,IAAA;EAAA;ENOgD;EMHlD,GAAA;4DAEE,KAAA,gCAAqC,OAAA;EAAA;ELzDf;EK6DxB,GAAA,GAAM,SAAA;ELzCmB;EK4CzB,OAAA;EL5DA;EK+DA,IAAA;EL3DA;EK8DA,UAAA,GAAa,UAAA;EL1Db;EK6DA,IAAA;AAAA;;UAMe,SAAA;EL3DA;EK6Df,QAAA;EL7DyB;EK+DzB,OAAA;EL3De;EK6Df,OAAA;;EAEA,KAAA;EL7DiD;EK+DjD,QAAA;EL9DuB;EKgEvB,OAAA;ELlEA;EKoEA,SAAA;ELnEG;EKqEH,UAAA;ELpEA;EKsEA,UAAA;ELtEU;EKwEV,UAAA,EAAY,UAAA;AAAA;;UAMG,oBAAA;EACf,OAAA;EACA,UAAA,EAAY,UAAA,GAAa,UAAA;AAAA;AAAA,UAKV,OAAA;EACf,IAAA;EL3EA;EK6EA,KAAA,CAAM,OAAA,EAAS,mBAAA,GAAsB,OAAA;AAAA;AAAA,UAGtB,mBAAA;EL5Ea;EK8E5B,WAAA;EL5EgC;EK8EhC,YAAA;EL5EiB;EK8EjB,MAAA;EACA,MAAA,EAAQ,UAAA;AAAA;;;;iBC5EM,aAAA,CAAA,GAAiB,CAAA;;iBAEjB,SAAA,CAAA,GAAa,CAAA;;iBAEb,YAAA,CAAA,GAAgB,CAAA;;iBAEhB,YAAA,CAAA,GAAgB,CAAA;;iBAEhB,WAAA,CAAA,GAAe,CAAA;;iBAEf,aAAA,CAAA,GAAiB,CAAA;;iBAEjB,QAAA,CAAA,GAAY,CAAA"}
|
package/lib/types/server.d.ts
CHANGED
|
@@ -391,6 +391,430 @@ declare function getContext(ctx: MiddlewareContext): Record<string, unknown>;
|
|
|
391
391
|
*/
|
|
392
392
|
declare function zeroPlugin(userConfig?: ZeroConfig): Plugin;
|
|
393
393
|
//#endregion
|
|
394
|
+
//#region src/favicon.d.ts
|
|
395
|
+
interface FaviconLocaleConfig {
|
|
396
|
+
/** Locale-specific source icon (SVG or PNG). */
|
|
397
|
+
source: string;
|
|
398
|
+
/** Optional dark mode variant for this locale. */
|
|
399
|
+
darkSource?: string;
|
|
400
|
+
}
|
|
401
|
+
interface FaviconPluginConfig {
|
|
402
|
+
/** Path to the source icon (SVG or PNG, at least 512x512 for PNG). */
|
|
403
|
+
source: string;
|
|
404
|
+
/** Theme color for web manifest. Default: "#ffffff" */
|
|
405
|
+
themeColor?: string;
|
|
406
|
+
/** Background color for web manifest. Default: "#ffffff" */
|
|
407
|
+
backgroundColor?: string;
|
|
408
|
+
/** App name for web manifest. Uses package.json name if not set. */
|
|
409
|
+
name?: string;
|
|
410
|
+
/** Generate web manifest. Default: true */
|
|
411
|
+
manifest?: boolean;
|
|
412
|
+
/**
|
|
413
|
+
* Dark mode favicon (SVG only).
|
|
414
|
+
* When provided, the SVG favicon uses prefers-color-scheme media query
|
|
415
|
+
* to switch between light and dark variants.
|
|
416
|
+
*/
|
|
417
|
+
darkSource?: string;
|
|
418
|
+
/**
|
|
419
|
+
* Locale-specific icon overrides. Each key is a locale code,
|
|
420
|
+
* value is a source icon (and optional dark variant).
|
|
421
|
+
* Locales not in this map use the base `source`.
|
|
422
|
+
*
|
|
423
|
+
* Generated files are placed under `/{locale}/` prefix:
|
|
424
|
+
* /de/favicon.svg, /de/favicon-32x32.png, etc.
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* ```ts
|
|
428
|
+
* faviconPlugin({
|
|
429
|
+
* source: "./icon.svg",
|
|
430
|
+
* locales: {
|
|
431
|
+
* de: { source: "./icon-de.svg" },
|
|
432
|
+
* cs: { source: "./icon-cs.svg" },
|
|
433
|
+
* },
|
|
434
|
+
* })
|
|
435
|
+
* ```
|
|
436
|
+
*/
|
|
437
|
+
locales?: Record<string, FaviconLocaleConfig>;
|
|
438
|
+
/**
|
|
439
|
+
* Dev mode favicon — shown only during development to distinguish
|
|
440
|
+
* dev tabs from production. Can be:
|
|
441
|
+
* - A path to a separate icon file
|
|
442
|
+
* - `true` to auto-generate a dev badge (grayscale + "DEV" overlay)
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```ts
|
|
446
|
+
* faviconPlugin({
|
|
447
|
+
* source: "./icon.svg",
|
|
448
|
+
* devSource: "./icon-dev.svg", // custom dev icon
|
|
449
|
+
* // OR
|
|
450
|
+
* devSource: true, // auto-generate grayscale badge
|
|
451
|
+
* })
|
|
452
|
+
* ```
|
|
453
|
+
*/
|
|
454
|
+
devSource?: string | boolean;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Favicon generation Vite plugin.
|
|
458
|
+
*
|
|
459
|
+
* Generates all required favicon formats at build time from a single source.
|
|
460
|
+
* In dev mode, serves the source directly.
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
* ```ts
|
|
464
|
+
* // vite.config.ts
|
|
465
|
+
* import { faviconPlugin } from "@pyreon/zero"
|
|
466
|
+
*
|
|
467
|
+
* export default {
|
|
468
|
+
* plugins: [faviconPlugin({ source: "./src/assets/icon.svg" })],
|
|
469
|
+
* }
|
|
470
|
+
* ```
|
|
471
|
+
*/
|
|
472
|
+
declare function faviconPlugin(config: FaviconPluginConfig): Plugin;
|
|
473
|
+
/**
|
|
474
|
+
* Get favicon link tags for a specific locale.
|
|
475
|
+
* Returns link objects suitable for `useHead()` or direct HTML injection.
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* ```ts
|
|
479
|
+
* const links = faviconLinks("de", { source: "./icon.svg", locales: { de: { source: "./icon-de.svg" } } })
|
|
480
|
+
* // → [{ rel: "icon", type: "image/svg+xml", href: "/de/favicon.svg" }, ...]
|
|
481
|
+
* ```
|
|
482
|
+
*/
|
|
483
|
+
declare function faviconLinks(locale: string | undefined, config: FaviconPluginConfig): Array<{
|
|
484
|
+
rel: string;
|
|
485
|
+
type?: string;
|
|
486
|
+
sizes?: string;
|
|
487
|
+
href: string;
|
|
488
|
+
}>;
|
|
489
|
+
//#endregion
|
|
490
|
+
//#region src/seo.d.ts
|
|
491
|
+
interface SitemapConfig {
|
|
492
|
+
/** Base URL of the site (required). e.g. "https://example.com" */
|
|
493
|
+
origin: string;
|
|
494
|
+
/** Paths to exclude from the sitemap. */
|
|
495
|
+
exclude?: string[];
|
|
496
|
+
/** Default change frequency. Default: "weekly" */
|
|
497
|
+
changefreq?: ChangeFreq;
|
|
498
|
+
/** Default priority. Default: 0.7 */
|
|
499
|
+
priority?: number;
|
|
500
|
+
/** Additional URLs to include (for dynamic routes). */
|
|
501
|
+
additionalPaths?: SitemapEntry[];
|
|
502
|
+
}
|
|
503
|
+
interface SitemapEntry {
|
|
504
|
+
path: string;
|
|
505
|
+
changefreq?: ChangeFreq;
|
|
506
|
+
priority?: number;
|
|
507
|
+
lastmod?: string;
|
|
508
|
+
}
|
|
509
|
+
type ChangeFreq = 'always' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'never';
|
|
510
|
+
/**
|
|
511
|
+
* Generate a sitemap.xml string from route file paths.
|
|
512
|
+
*/
|
|
513
|
+
declare function generateSitemap(routeFiles: string[], config: SitemapConfig): string;
|
|
514
|
+
interface RobotsConfig {
|
|
515
|
+
/** Rules per user-agent. */
|
|
516
|
+
rules?: RobotsRule[];
|
|
517
|
+
/** Sitemap URL. */
|
|
518
|
+
sitemap?: string;
|
|
519
|
+
/** Host directive. */
|
|
520
|
+
host?: string;
|
|
521
|
+
}
|
|
522
|
+
interface RobotsRule {
|
|
523
|
+
userAgent: string;
|
|
524
|
+
allow?: string[];
|
|
525
|
+
disallow?: string[];
|
|
526
|
+
crawlDelay?: number;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Generate a robots.txt string.
|
|
530
|
+
*/
|
|
531
|
+
declare function generateRobots(config?: RobotsConfig): string;
|
|
532
|
+
/**
|
|
533
|
+
* Generate a JSON-LD script tag string for structured data.
|
|
534
|
+
*
|
|
535
|
+
* @example
|
|
536
|
+
* useHead({
|
|
537
|
+
* script: [jsonLd({
|
|
538
|
+
* "@type": "WebSite",
|
|
539
|
+
* name: "My Site",
|
|
540
|
+
* url: "https://example.com",
|
|
541
|
+
* })],
|
|
542
|
+
* })
|
|
543
|
+
*/
|
|
544
|
+
declare function jsonLd(data: Record<string, unknown>): string;
|
|
545
|
+
interface SeoPluginConfig {
|
|
546
|
+
/** Sitemap configuration. */
|
|
547
|
+
sitemap?: SitemapConfig;
|
|
548
|
+
/** Robots.txt configuration. */
|
|
549
|
+
robots?: RobotsConfig;
|
|
550
|
+
}
|
|
551
|
+
/**
|
|
552
|
+
* Zero SEO Vite plugin.
|
|
553
|
+
* Generates sitemap.xml and robots.txt at build time.
|
|
554
|
+
*
|
|
555
|
+
* @example
|
|
556
|
+
* import { seoPlugin } from "@pyreon/zero/seo"
|
|
557
|
+
*
|
|
558
|
+
* export default {
|
|
559
|
+
* plugins: [
|
|
560
|
+
* pyreon(),
|
|
561
|
+
* zero(),
|
|
562
|
+
* seoPlugin({
|
|
563
|
+
* sitemap: { origin: "https://example.com" },
|
|
564
|
+
* robots: { sitemap: "https://example.com/sitemap.xml" },
|
|
565
|
+
* }),
|
|
566
|
+
* ],
|
|
567
|
+
* }
|
|
568
|
+
*/
|
|
569
|
+
declare function seoPlugin(config?: SeoPluginConfig): Plugin;
|
|
570
|
+
/**
|
|
571
|
+
* SEO middleware for dev server.
|
|
572
|
+
* Serves sitemap.xml and robots.txt dynamically during development.
|
|
573
|
+
*/
|
|
574
|
+
declare function seoMiddleware(config?: SeoPluginConfig): Middleware;
|
|
575
|
+
//#endregion
|
|
576
|
+
//#region src/og-image.d.ts
|
|
577
|
+
interface OgImageLayer {
|
|
578
|
+
/**
|
|
579
|
+
* Text content. Can be:
|
|
580
|
+
* - A string (same for all locales)
|
|
581
|
+
* - A record mapping locale → text
|
|
582
|
+
* - A function receiving locale and returning text
|
|
583
|
+
*/
|
|
584
|
+
text: string | Record<string, string> | ((locale: string) => string);
|
|
585
|
+
/** X position — number (px) or string with % (e.g. "50%"). Default: "50%" */
|
|
586
|
+
x?: number | string;
|
|
587
|
+
/** Y position — number (px) or string with % (e.g. "40%"). Default: "50%" */
|
|
588
|
+
y?: number | string;
|
|
589
|
+
/** Font size in px. Default: 64 */
|
|
590
|
+
fontSize?: number;
|
|
591
|
+
/** Font family. Default: "sans-serif" */
|
|
592
|
+
fontFamily?: string;
|
|
593
|
+
/** Font weight. Default: "bold" */
|
|
594
|
+
fontWeight?: string;
|
|
595
|
+
/** Text color. Default: "#ffffff" */
|
|
596
|
+
color?: string;
|
|
597
|
+
/** Text anchor (alignment). Default: "middle" */
|
|
598
|
+
textAnchor?: 'start' | 'middle' | 'end';
|
|
599
|
+
/** Max width in px before wrapping. Default: 80% of image width. */
|
|
600
|
+
maxWidth?: number;
|
|
601
|
+
}
|
|
602
|
+
interface OgImageTemplate {
|
|
603
|
+
/** Template name — used for output file naming. */
|
|
604
|
+
name: string;
|
|
605
|
+
/**
|
|
606
|
+
* Background: path to an image file, or a solid color config.
|
|
607
|
+
*
|
|
608
|
+
* @example "./src/assets/og-bg.jpg"
|
|
609
|
+
* @example { color: "#0066ff", width: 1200, height: 630 }
|
|
610
|
+
*/
|
|
611
|
+
background: string | {
|
|
612
|
+
color: string;
|
|
613
|
+
width?: number;
|
|
614
|
+
height?: number;
|
|
615
|
+
};
|
|
616
|
+
/** Output width. Default: 1200 */
|
|
617
|
+
width?: number;
|
|
618
|
+
/** Output height. Default: 630 */
|
|
619
|
+
height?: number;
|
|
620
|
+
/** Output format. Default: "png" */
|
|
621
|
+
format?: 'png' | 'jpeg';
|
|
622
|
+
/** JPEG quality (1-100). Default: 90 */
|
|
623
|
+
quality?: number;
|
|
624
|
+
/** Text layers to overlay on the background. */
|
|
625
|
+
layers?: OgImageLayer[];
|
|
626
|
+
}
|
|
627
|
+
interface OgImagePluginConfig {
|
|
628
|
+
/** Templates to generate. */
|
|
629
|
+
templates: OgImageTemplate[];
|
|
630
|
+
/** Locales to generate for. When omitted, generates a single image per template. */
|
|
631
|
+
locales?: string[];
|
|
632
|
+
/** Output directory prefix. Default: "og" */
|
|
633
|
+
outDir?: string;
|
|
634
|
+
}
|
|
635
|
+
/**
|
|
636
|
+
* Compute the OG image path for a template and locale.
|
|
637
|
+
*
|
|
638
|
+
* @example
|
|
639
|
+
* ```ts
|
|
640
|
+
* ogImagePath("default", "de") // → "/og/default-de.png"
|
|
641
|
+
* ogImagePath("default") // → "/og/default.png"
|
|
642
|
+
* ogImagePath("hero", "en", "images") // → "/images/hero-en.png"
|
|
643
|
+
* ```
|
|
644
|
+
*/
|
|
645
|
+
declare function ogImagePath(templateName: string, locale?: string, outDir?: string, format?: 'png' | 'jpeg'): string;
|
|
646
|
+
/**
|
|
647
|
+
* OG image generation Vite plugin.
|
|
648
|
+
*
|
|
649
|
+
* Generates Open Graph images at build time. In dev, generates on-demand.
|
|
650
|
+
* Requires `sharp` as an optional dependency.
|
|
651
|
+
*
|
|
652
|
+
* @example
|
|
653
|
+
* ```ts
|
|
654
|
+
* // vite.config.ts
|
|
655
|
+
* import { ogImagePlugin } from "@pyreon/zero/og-image"
|
|
656
|
+
*
|
|
657
|
+
* export default {
|
|
658
|
+
* plugins: [
|
|
659
|
+
* ogImagePlugin({
|
|
660
|
+
* locales: ["en", "de"],
|
|
661
|
+
* templates: [{
|
|
662
|
+
* name: "default",
|
|
663
|
+
* background: { color: "#0066ff" },
|
|
664
|
+
* layers: [{ text: { en: "Hello", de: "Hallo" }, fontSize: 72 }],
|
|
665
|
+
* }],
|
|
666
|
+
* }),
|
|
667
|
+
* ],
|
|
668
|
+
* }
|
|
669
|
+
* ```
|
|
670
|
+
*/
|
|
671
|
+
declare function ogImagePlugin(config: OgImagePluginConfig): Plugin;
|
|
672
|
+
//#endregion
|
|
673
|
+
//#region src/ai.d.ts
|
|
674
|
+
interface AiPluginConfig {
|
|
675
|
+
/** App/API name. */
|
|
676
|
+
name: string;
|
|
677
|
+
/** App description for AI agents. */
|
|
678
|
+
description: string;
|
|
679
|
+
/** Base URL. e.g. "https://example.com" */
|
|
680
|
+
origin: string;
|
|
681
|
+
/** Contact email (required by OpenAI plugin spec). */
|
|
682
|
+
contactEmail?: string;
|
|
683
|
+
/** Legal info URL. */
|
|
684
|
+
legalUrl?: string;
|
|
685
|
+
/** Logo URL for the plugin. */
|
|
686
|
+
logoUrl?: string;
|
|
687
|
+
/** Routes directory relative to project root. Default: "src/routes" */
|
|
688
|
+
routesDir?: string;
|
|
689
|
+
/** API routes directory relative to project root. Default: "src/api" */
|
|
690
|
+
apiDir?: string;
|
|
691
|
+
/**
|
|
692
|
+
* API route descriptions — map of pattern to description.
|
|
693
|
+
* Used for llms.txt and ai-plugin.json.
|
|
694
|
+
*
|
|
695
|
+
* @example
|
|
696
|
+
* ```ts
|
|
697
|
+
* apiDescriptions: {
|
|
698
|
+
* "GET /api/posts": "List all blog posts, supports ?page=N&limit=N",
|
|
699
|
+
* "GET /api/posts/:id": "Get a single post by ID",
|
|
700
|
+
* "POST /api/posts": "Create a new post (requires auth)",
|
|
701
|
+
* }
|
|
702
|
+
* ```
|
|
703
|
+
*/
|
|
704
|
+
apiDescriptions?: Record<string, string>;
|
|
705
|
+
/**
|
|
706
|
+
* Page descriptions — map of URL path to description.
|
|
707
|
+
* Used for llms.txt. Falls back to route meta.title/description.
|
|
708
|
+
*/
|
|
709
|
+
pageDescriptions?: Record<string, string>;
|
|
710
|
+
/**
|
|
711
|
+
* Additional content to append to llms.txt.
|
|
712
|
+
* Useful for authentication instructions, rate limits, etc.
|
|
713
|
+
*/
|
|
714
|
+
llmsExtra?: string;
|
|
715
|
+
}
|
|
716
|
+
/**
|
|
717
|
+
* Generate llms.txt content from route files and config.
|
|
718
|
+
*
|
|
719
|
+
* Format follows the llms.txt proposal:
|
|
720
|
+
* ```
|
|
721
|
+
* # {name}
|
|
722
|
+
* > {description}
|
|
723
|
+
*
|
|
724
|
+
* ## Pages
|
|
725
|
+
* - [/about](/about): About page
|
|
726
|
+
*
|
|
727
|
+
* ## API
|
|
728
|
+
* - GET /api/posts: List posts
|
|
729
|
+
* ```
|
|
730
|
+
*
|
|
731
|
+
* @internal Exported for testing.
|
|
732
|
+
*/
|
|
733
|
+
declare function generateLlmsTxt(routeFiles: string[], apiFiles: string[], config: AiPluginConfig): string;
|
|
734
|
+
/**
|
|
735
|
+
* Generate llms-full.txt — expanded version with more detail.
|
|
736
|
+
* Includes all route metadata and API descriptions.
|
|
737
|
+
*
|
|
738
|
+
* @internal Exported for testing.
|
|
739
|
+
*/
|
|
740
|
+
declare function generateLlmsFullTxt(routeFiles: string[], apiFiles: string[], config: AiPluginConfig): string;
|
|
741
|
+
interface InferJsonLdOptions {
|
|
742
|
+
/** Page URL. */
|
|
743
|
+
url: string;
|
|
744
|
+
/** Page title. */
|
|
745
|
+
title?: string;
|
|
746
|
+
/** Page description. */
|
|
747
|
+
description?: string;
|
|
748
|
+
/** Page image. */
|
|
749
|
+
image?: string;
|
|
750
|
+
/** Site name. */
|
|
751
|
+
siteName?: string;
|
|
752
|
+
/** Page type hint. */
|
|
753
|
+
type?: 'website' | 'article' | 'product' | 'profile';
|
|
754
|
+
/** Article metadata. */
|
|
755
|
+
publishedTime?: string;
|
|
756
|
+
/** Article author. */
|
|
757
|
+
author?: string;
|
|
758
|
+
/** Article tags. */
|
|
759
|
+
tags?: string[];
|
|
760
|
+
/** Breadcrumb path segments. */
|
|
761
|
+
breadcrumbs?: Array<{
|
|
762
|
+
name: string;
|
|
763
|
+
url: string;
|
|
764
|
+
}>;
|
|
765
|
+
}
|
|
766
|
+
/**
|
|
767
|
+
* Auto-infer JSON-LD structured data from page metadata.
|
|
768
|
+
*
|
|
769
|
+
* Returns an array of JSON-LD objects (multiple schemas can apply to one page).
|
|
770
|
+
* For example, an article page gets both `Article` and `BreadcrumbList`.
|
|
771
|
+
*
|
|
772
|
+
* @example
|
|
773
|
+
* ```tsx
|
|
774
|
+
* const schemas = inferJsonLd({
|
|
775
|
+
* url: "https://example.com/blog/my-post",
|
|
776
|
+
* title: "My Post",
|
|
777
|
+
* description: "A great article",
|
|
778
|
+
* type: "article",
|
|
779
|
+
* author: "Vit Bokisch",
|
|
780
|
+
* publishedTime: "2026-03-31",
|
|
781
|
+
* })
|
|
782
|
+
* // → [Article schema, BreadcrumbList schema]
|
|
783
|
+
* ```
|
|
784
|
+
*/
|
|
785
|
+
declare function inferJsonLd(options: InferJsonLdOptions): Record<string, unknown>[];
|
|
786
|
+
/**
|
|
787
|
+
* AI integration Vite plugin.
|
|
788
|
+
*
|
|
789
|
+
* Generates at build time:
|
|
790
|
+
* - `/llms.txt` — concise site summary for AI agents
|
|
791
|
+
* - `/llms-full.txt` — detailed reference for AI agents
|
|
792
|
+
* - `/.well-known/ai-plugin.json` — OpenAI plugin manifest
|
|
793
|
+
* - `/.well-known/openapi.yaml` — minimal OpenAPI spec from API routes
|
|
794
|
+
*
|
|
795
|
+
* In dev, serves these files via middleware.
|
|
796
|
+
*
|
|
797
|
+
* @example
|
|
798
|
+
* ```ts
|
|
799
|
+
* import { aiPlugin } from "@pyreon/zero/ai"
|
|
800
|
+
*
|
|
801
|
+
* export default {
|
|
802
|
+
* plugins: [
|
|
803
|
+
* aiPlugin({
|
|
804
|
+
* name: "My App",
|
|
805
|
+
* origin: "https://example.com",
|
|
806
|
+
* description: "A modern web application",
|
|
807
|
+
* apiDescriptions: {
|
|
808
|
+
* "GET /api/posts": "List blog posts",
|
|
809
|
+
* "GET /api/posts/:id": "Get post by ID",
|
|
810
|
+
* },
|
|
811
|
+
* }),
|
|
812
|
+
* ],
|
|
813
|
+
* }
|
|
814
|
+
* ```
|
|
815
|
+
*/
|
|
816
|
+
declare function aiPlugin(config: AiPluginConfig): Plugin;
|
|
817
|
+
//#endregion
|
|
394
818
|
//#region src/i18n-routing.d.ts
|
|
395
819
|
interface I18nRoutingConfig {
|
|
396
820
|
/** Supported locales. e.g. ["en", "de", "cs"] */
|
|
@@ -451,5 +875,5 @@ declare function createLocaleContext(locale: string, path: string, config: I18nR
|
|
|
451
875
|
*/
|
|
452
876
|
declare function i18nRouting(config: I18nRoutingConfig): Plugin;
|
|
453
877
|
//#endregion
|
|
454
|
-
export { type CreateAppOptions, type CreateServerOptions, type GenerateRouteModuleOptions, bunAdapter, cloudflareAdapter, compose, createApp, createISRHandler, createLocaleContext, createServer, zeroPlugin as default, defineConfig, detectLocaleFromHeader, filePathToUrlPath, generateMiddlewareModule, generateRouteModule, getContext, i18nRouting, netlifyAdapter, nodeAdapter, parseFileRoutes, render404Page, resolveAdapter, resolveConfig, scanRouteFiles, staticAdapter, vercelAdapter };
|
|
878
|
+
export { type AiPluginConfig, type CreateAppOptions, type CreateServerOptions, type FaviconLocaleConfig, type FaviconPluginConfig, type GenerateRouteModuleOptions, type InferJsonLdOptions, type OgImageLayer, type OgImagePluginConfig, type OgImageTemplate, type RobotsConfig, type SeoPluginConfig, type SitemapConfig, aiPlugin, bunAdapter, cloudflareAdapter, compose, createApp, createISRHandler, createLocaleContext, createServer, zeroPlugin as default, defineConfig, detectLocaleFromHeader, faviconLinks, faviconPlugin, filePathToUrlPath, generateLlmsFullTxt, generateLlmsTxt, generateMiddlewareModule, generateRobots, generateRouteModule, generateSitemap, getContext, i18nRouting, inferJsonLd, jsonLd, netlifyAdapter, nodeAdapter, ogImagePath, ogImagePlugin, parseFileRoutes, render404Page, resolveAdapter, resolveConfig, scanRouteFiles, seoMiddleware, seoPlugin, staticAdapter, vercelAdapter };
|
|
455
879
|
//# sourceMappingURL=server2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server2.d.ts","names":[],"sources":["../../../src/app.ts","../../../src/api-routes.ts","../../../src/types.ts","../../../src/entry-server.ts","../../../src/config.ts","../../../src/fs-router.ts","../../../src/isr.ts","../../../src/adapters/bun.ts","../../../src/adapters/cloudflare.ts","../../../src/adapters/netlify.ts","../../../src/adapters/node.ts","../../../src/adapters/static.ts","../../../src/adapters/vercel.ts","../../../src/adapters/index.ts","../../../src/not-found.ts","../../../src/middleware.ts","../../../src/vite-plugin.ts","../../../src/i18n-routing.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"server2.d.ts","names":[],"sources":["../../../src/app.ts","../../../src/api-routes.ts","../../../src/types.ts","../../../src/entry-server.ts","../../../src/config.ts","../../../src/fs-router.ts","../../../src/isr.ts","../../../src/adapters/bun.ts","../../../src/adapters/cloudflare.ts","../../../src/adapters/netlify.ts","../../../src/adapters/node.ts","../../../src/adapters/static.ts","../../../src/adapters/vercel.ts","../../../src/adapters/index.ts","../../../src/not-found.ts","../../../src/middleware.ts","../../../src/vite-plugin.ts","../../../src/favicon.ts","../../../src/seo.ts","../../../src/og-image.ts","../../../src/ai.ts","../../../src/i18n-routing.ts"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pyreon/zero",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.9",
|
|
4
4
|
"description": "Pyreon Zero — zero-config full-stack framework powered by Pyreon and Vite",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Vit Bokisch",
|
|
@@ -166,17 +166,17 @@
|
|
|
166
166
|
"lint": "oxlint ."
|
|
167
167
|
},
|
|
168
168
|
"dependencies": {
|
|
169
|
-
"@pyreon/core": "^0.12.
|
|
170
|
-
"@pyreon/head": "^0.12.
|
|
171
|
-
"@pyreon/meta": "^0.12.
|
|
172
|
-
"@pyreon/router": "^0.12.
|
|
173
|
-
"@pyreon/runtime-dom": "^0.12.
|
|
174
|
-
"@pyreon/runtime-server": "^0.12.
|
|
175
|
-
"@pyreon/server": "^0.12.
|
|
176
|
-
"@pyreon/vite-plugin": "^0.12.
|
|
169
|
+
"@pyreon/core": "^0.12.9",
|
|
170
|
+
"@pyreon/head": "^0.12.9",
|
|
171
|
+
"@pyreon/meta": "^0.12.9",
|
|
172
|
+
"@pyreon/router": "^0.12.9",
|
|
173
|
+
"@pyreon/runtime-dom": "^0.12.9",
|
|
174
|
+
"@pyreon/runtime-server": "^0.12.9",
|
|
175
|
+
"@pyreon/server": "^0.12.9",
|
|
176
|
+
"@pyreon/vite-plugin": "^0.12.9",
|
|
177
177
|
"vite": "^8.0.0"
|
|
178
178
|
},
|
|
179
179
|
"peerDependencies": {
|
|
180
|
-
"@pyreon/reactivity": "^0.12.
|
|
180
|
+
"@pyreon/reactivity": "^0.12.9"
|
|
181
181
|
}
|
|
182
182
|
}
|
package/src/favicon.ts
CHANGED
|
@@ -303,6 +303,19 @@ export function faviconPlugin(config: FaviconPluginConfig): Plugin {
|
|
|
303
303
|
injectTo: 'head',
|
|
304
304
|
})
|
|
305
305
|
|
|
306
|
+
// Auto-inject favicon swap script when dark variant exists.
|
|
307
|
+
// This runs in the blocking <head> before any render — no flash.
|
|
308
|
+
// Reads theme from localStorage or OS preference, then swaps
|
|
309
|
+
// data-favicon-theme media attributes.
|
|
310
|
+
if (hasDark) {
|
|
311
|
+
tags.push({
|
|
312
|
+
tag: 'script',
|
|
313
|
+
attrs: {},
|
|
314
|
+
injectTo: 'head',
|
|
315
|
+
children: `(function(){try{var t=localStorage.getItem("zero-theme");var r=t==="light"?"light":t==="dark"?"dark":window.matchMedia("(prefers-color-scheme:dark)").matches?"dark":"light";document.querySelectorAll("[data-favicon-theme]").forEach(function(l){l.media=l.dataset.faviconTheme===r?"":"not all"})}catch(e){}})()`,
|
|
316
|
+
} as any)
|
|
317
|
+
}
|
|
318
|
+
|
|
306
319
|
return tags
|
|
307
320
|
},
|
|
308
321
|
|