semajsx 0.6.0 → 0.7.0
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/dist/{client-CButR91p.mjs → client-BrupjhG0.mjs} +4 -4
- package/dist/{client-CButR91p.mjs.map → client-BrupjhG0.mjs.map} +1 -1
- package/dist/{computed-BidG06Lt.mjs → computed-BpjqvQu1.mjs} +2 -2
- package/dist/{computed-BidG06Lt.mjs.map → computed-BpjqvQu1.mjs.map} +1 -1
- package/dist/document-DsiJO2jG.mjs +5 -0
- package/dist/{document-BOJDaiBc.mjs → document-XKyAs62C.mjs} +2 -2
- package/dist/{document-BOJDaiBc.mjs.map → document-XKyAs62C.mjs.map} +1 -1
- package/dist/dom/index.mjs +3 -3
- package/dist/dom/jsx-dev-runtime.d.mts +1 -1
- package/dist/dom/jsx-dev-runtime.mjs +2 -2
- package/dist/dom/jsx-runtime.d.mts +1 -1
- package/dist/dom/jsx-runtime.mjs +2 -2
- package/dist/{index-D_FIlSk3.d.mts → index-CmxkYOtR.d.mts} +2 -2
- package/dist/{index-D_FIlSk3.d.mts.map → index-CmxkYOtR.d.mts.map} +1 -1
- package/dist/index.mjs +4 -4
- package/dist/{jsx-runtime-D9ZNjMJ2.mjs → jsx-runtime-BFs1c0xz.mjs} +1 -1
- package/dist/jsx-runtime-BFs1c0xz.mjs.map +1 -0
- package/dist/{jsx-runtime-tIuFmhTh.d.mts → jsx-runtime-C-TtSL51.d.mts} +9 -4
- package/dist/jsx-runtime-C-TtSL51.d.mts.map +1 -0
- package/dist/{jsx-runtime-BjCGsceN.mjs → jsx-runtime-kv_6vBiR.mjs} +1 -1
- package/dist/{jsx-runtime-BjCGsceN.mjs.map → jsx-runtime-kv_6vBiR.mjs.map} +1 -1
- package/dist/{lucide-C5BghhSl.mjs → lucide-Ddt_N9dJ.mjs} +3 -3
- package/dist/{lucide-C5BghhSl.mjs.map → lucide-Ddt_N9dJ.mjs.map} +1 -1
- package/dist/{resource-CNwiNxJX.d.mts → resource-CX-sVeS_.d.mts} +5 -2
- package/dist/resource-CX-sVeS_.d.mts.map +1 -0
- package/dist/{resource-DSlXDZZi.mjs → resource-pm7qP-jV.mjs} +2 -2
- package/dist/{resource-DSlXDZZi.mjs.map → resource-pm7qP-jV.mjs.map} +1 -1
- package/dist/signal/index.mjs +3 -3
- package/dist/{signal-BN8vHXDb.mjs → signal-4PgGfydw.mjs} +1 -1
- package/dist/{signal-BN8vHXDb.mjs.map → signal-4PgGfydw.mjs.map} +1 -1
- package/dist/{src-B4VBiHa8.mjs → src-CAyv9Uf9.mjs} +24 -17
- package/dist/src-CAyv9Uf9.mjs.map +1 -0
- package/dist/{src-DUpFNNM_.mjs → src-CXY-7FC3.mjs} +4 -4
- package/dist/{src-DUpFNNM_.mjs.map → src-CXY-7FC3.mjs.map} +1 -1
- package/dist/{src-BqX3sryB.mjs → src-C_aFsFJ3.mjs} +4 -4
- package/dist/{src-BqX3sryB.mjs.map → src-C_aFsFJ3.mjs.map} +1 -1
- package/dist/{src-DW3tIczg.mjs → src-Cv4rRVzv.mjs} +4 -4
- package/dist/{src-DW3tIczg.mjs.map → src-Cv4rRVzv.mjs.map} +1 -1
- package/dist/{src-Ds9vl42d.mjs → src-DV9uwtE5.mjs} +2 -2
- package/dist/{src-Ds9vl42d.mjs.map → src-DV9uwtE5.mjs.map} +1 -1
- package/dist/{src-75qcxwT_.mjs → src-SqJ6k7Xv.mjs} +13 -29
- package/dist/src-SqJ6k7Xv.mjs.map +1 -0
- package/dist/ssg/index.d.mts +1 -1
- package/dist/ssg/index.d.mts.map +1 -1
- package/dist/ssg/index.mjs +14 -9
- package/dist/ssg/index.mjs.map +1 -1
- package/dist/ssg/plugins/docs-theme.d.mts +68 -29
- package/dist/ssg/plugins/docs-theme.d.mts.map +1 -1
- package/dist/ssg/plugins/docs-theme.mjs +2747 -380
- package/dist/ssg/plugins/docs-theme.mjs.map +1 -1
- package/dist/ssg/plugins/fonts/MAPLE_MONO_LICENSE.txt +93 -0
- package/dist/ssg/plugins/fonts/MapleMono-NF-CN-Regular.woff2 +0 -0
- package/dist/ssg/plugins/lucide.d.mts +2 -2
- package/dist/ssg/plugins/lucide.mjs +5 -5
- package/dist/ssr/client.d.mts +1 -1
- package/dist/ssr/client.mjs +5 -5
- package/dist/ssr/index.d.mts +1 -1
- package/dist/ssr/index.d.mts.map +1 -1
- package/dist/ssr/index.mjs +8 -8
- package/dist/style/index.mjs +1 -1
- package/dist/style/react.mjs +2 -2
- package/dist/style/vue.mjs +2 -2
- package/dist/terminal/index.mjs +3 -3
- package/dist/terminal/jsx-dev-runtime.mjs +2 -2
- package/dist/terminal/jsx-runtime.mjs +2 -2
- package/dist/{types-BmDIxXiP.d.mts → types-BaS-zTDX.d.mts} +3 -1
- package/dist/{types-BmDIxXiP.d.mts.map → types-BaS-zTDX.d.mts.map} +1 -1
- package/dist/{utils-DbTAs943.mjs → utils-BrGmTgfG.mjs} +1 -1
- package/dist/{utils-DbTAs943.mjs.map → utils-BrGmTgfG.mjs.map} +1 -1
- package/package.json +2 -2
- package/dist/document-CwHVG_PJ.mjs +0 -5
- package/dist/jsx-runtime-D9ZNjMJ2.mjs.map +0 -1
- package/dist/jsx-runtime-tIuFmhTh.d.mts.map +0 -1
- package/dist/resource-CNwiNxJX.d.mts.map +0 -1
- package/dist/src-75qcxwT_.mjs.map +0 -1
- package/dist/src-B4VBiHa8.mjs.map +0 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2022 The Maple Mono Project Authors (https://github.com/subframe7536/maple-font)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://openfontlicense.org
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
Binary file
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "../../types-
|
|
2
|
-
import { i as IconProps, n as lucide, r as Icon, t as LucidePluginOptions } from "../../index-
|
|
1
|
+
import "../../types-BaS-zTDX.mjs";
|
|
2
|
+
import { i as IconProps, n as lucide, r as Icon, t as LucidePluginOptions } from "../../index-CmxkYOtR.mjs";
|
|
3
3
|
export { Icon, IconProps, LucidePluginOptions, lucide };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../../src-
|
|
2
|
-
import "../../src-
|
|
3
|
-
import "../../src-
|
|
4
|
-
import "../../jsx-runtime-
|
|
5
|
-
import { n as Icon, t as lucide } from "../../lucide-
|
|
1
|
+
import "../../src-Cv4rRVzv.mjs";
|
|
2
|
+
import "../../src-C_aFsFJ3.mjs";
|
|
3
|
+
import "../../src-DV9uwtE5.mjs";
|
|
4
|
+
import "../../jsx-runtime-BFs1c0xz.mjs";
|
|
5
|
+
import { n as Icon, t as lucide } from "../../lucide-Ddt_N9dJ.mjs";
|
|
6
6
|
|
|
7
7
|
export { Icon, lucide };
|
package/dist/ssr/client.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { d as VNode, t as Component } from "../types-C83YtOen.mjs";
|
|
2
2
|
import { t as ISLAND_MARKER } from "../island-marker-Dne5tuWe.mjs";
|
|
3
|
-
import { a as ResourceTools, b as IslandMarker, c as isAssetVNode, d as resource, i as LinkProps, l as isLinkVNode, n as AssetProps, o as STYLE_MARKER, r as LINK_MARKER, s as StyleProps, t as ASSET_MARKER, u as isStyleVNode } from "../resource-
|
|
3
|
+
import { a as ResourceTools, b as IslandMarker, c as isAssetVNode, d as resource, i as LinkProps, l as isLinkVNode, n as AssetProps, o as STYLE_MARKER, r as LINK_MARKER, s as StyleProps, t as ASSET_MARKER, u as isStyleVNode } from "../resource-CX-sVeS_.mjs";
|
|
4
4
|
|
|
5
5
|
//#region ../ssr/src/client/hydrate.d.ts
|
|
6
6
|
/**
|
package/dist/ssr/client.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../src-
|
|
2
|
-
import "../src-
|
|
3
|
-
import "../src-
|
|
4
|
-
import { a as isLinkVNode, c as getIslandMetadata, d as island, i as isAssetVNode, l as isIslandComponent, n as LINK_MARKER, o as isStyleVNode, r as STYLE_MARKER, s as resource, t as ASSET_MARKER, u as isIslandVNode } from "../resource-
|
|
5
|
-
import { a as resolveCSS, c as getIslandInfo, d as hydrateAllIslands, f as hydrateIsland, h as markIslandHydrated, i as resolveAsset, l as hasIslands, m as hydrateIslands, n as getManifest, o as setManifest, p as hydrateIslandById, r as loadStylesheet, s as getIslandIds, t as clientResource, u as hydrate } from "../client-
|
|
1
|
+
import "../src-Cv4rRVzv.mjs";
|
|
2
|
+
import "../src-C_aFsFJ3.mjs";
|
|
3
|
+
import "../src-DV9uwtE5.mjs";
|
|
4
|
+
import { a as isLinkVNode, c as getIslandMetadata, d as island, i as isAssetVNode, l as isIslandComponent, n as LINK_MARKER, o as isStyleVNode, r as STYLE_MARKER, s as resource, t as ASSET_MARKER, u as isIslandVNode } from "../resource-pm7qP-jV.mjs";
|
|
5
|
+
import { a as resolveCSS, c as getIslandInfo, d as hydrateAllIslands, f as hydrateIsland, h as markIslandHydrated, i as resolveAsset, l as hasIslands, m as hydrateIslands, n as getManifest, o as setManifest, p as hydrateIslandById, r as loadStylesheet, s as getIslandIds, t as clientResource, u as hydrate } from "../client-BrupjhG0.mjs";
|
|
6
6
|
|
|
7
7
|
export { ASSET_MARKER, LINK_MARKER, STYLE_MARKER, clientResource, getIslandIds, getIslandInfo, getIslandMetadata, getManifest, hasIslands, hydrate, hydrateAllIslands, hydrateIsland, hydrateIslandById, hydrateIslands, isAssetVNode, isIslandComponent, isIslandVNode, isLinkVNode, isStyleVNode, island, loadStylesheet, markIslandHydrated, resolveAsset, resolveCSS, resource, setManifest };
|
package/dist/ssr/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as VNode } from "../types-C83YtOen.mjs";
|
|
2
|
-
import { A as RouterConfig, C as IslandScriptTransformer, D as RouteContext, E as RenderToStringOptions, O as RouteHandler, S as IslandScriptContext, T as RenderResult, _ as BuildScriptEntry, a as ResourceTools, d as resource, f as App, g as BuildResult, h as BuildOptions, i as LinkProps, j as SSRResult, k as RouteMeta, m as AssetMetadata, n as AssetProps, o as STYLE_MARKER, p as AppConfig, r as LINK_MARKER, s as StyleProps, t as ASSET_MARKER, v as DevOptions, w as LinkMetadata, x as IslandMetadata, y as DocumentTemplate } from "../resource-
|
|
2
|
+
import { A as RouterConfig, C as IslandScriptTransformer, D as RouteContext, E as RenderToStringOptions, O as RouteHandler, S as IslandScriptContext, T as RenderResult, _ as BuildScriptEntry, a as ResourceTools, d as resource, f as App, g as BuildResult, h as BuildOptions, i as LinkProps, j as SSRResult, k as RouteMeta, m as AssetMetadata, n as AssetProps, o as STYLE_MARKER, p as AppConfig, r as LINK_MARKER, s as StyleProps, t as ASSET_MARKER, v as DevOptions, w as LinkMetadata, x as IslandMetadata, y as DocumentTemplate } from "../resource-CX-sVeS_.mjs";
|
|
3
3
|
import { PluginOption, ViteDevServer } from "vite";
|
|
4
4
|
|
|
5
5
|
//#region ../ssr/src/app.d.ts
|
package/dist/ssr/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../ssr/src/app.ts","../../../ssr/src/render.ts","../../../ssr/src/vite-router.ts","../../../ssr/src/vite-builder.ts","../../../ssr/src/collector.ts","../../../ssr/src/document.tsx"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../ssr/src/app.ts","../../../ssr/src/render.ts","../../../ssr/src/vite-router.ts","../../../ssr/src/vite-builder.ts","../../../ssr/src/collector.ts","../../../ssr/src/document.tsx"],"mappings":";;;;;;;;iBA0qBgB,SAAA,CAAU,MAAA,GAAS,SAAA,GAAY,GAAA;;;;;;AAA/C;;;;;;;;;;;;AC3kBA;;;;;;;;iBAAsB,cAAA,CACpB,KAAA,EAAO,KAAA,EACP,OAAA,GAAS,qBAAA,GACR,OAAA,CAAQ,SAAA;;;;;;ADwkBX;cEpoBa,UAAA;EAAA,QACH,QAAA;EAAA,QACA,aAAA;EAAA,QACA,OAAA;EAAA,QACA,MAAA;EAAA,QAEA,YAAA;EAAA,QACA,WAAA;EAER,WAAA,CAAY,MAAA,GAAQ,YAAA;;;;EAuBpB,UAAA,CAAA,GAAoB,OAAA;EDyBA;;;ECTpB,KAAA,CAAM,IAAA,UAAc,OAAA,EAAS,YAAA;;;;EAe7B,MAAA,CAAO,MAAA,EAAQ,MAAA,SAAe,YAAA;;;;EAU9B,GAAA,CAAU,IAAA,WAAe,OAAA,CAAQ,SAAA;;;;;;EAsEjC,mBAAA,CAA0B,QAAA,WAAmB,OAAA;;AA/I/C;;;EAkKE,mBAAA,CAA0B,GAAA,WAAc,OAAA;IAAU,IAAA;EAAA;;;;EAalD,SAAA,CAAU,QAAA,WAAmB,cAAA;;;;EAO7B,aAAA,CAAA,GAAiB,aAAA;;;;EAOjB,KAAA,CAAA,GAAe,OAAA;;;;UASP,UAAA;;;;;UAuBA,WAAA;;;;UAQA,aAAA;AAAA;;;;iBAQY,gBAAA,CACpB,MAAA,GAAS,MAAA,SAAe,YAAA,GACxB,MAAA,GAAS,YAAA,GACR,OAAA,CAAQ,UAAA;;;;;;AFoZX;cGlqBa,iBAAA;EAAA,QACH,IAAA;EAAA,QACA,WAAA;EAAA,QACA,OAAA;EAER,WAAA,CAAY,OAAA,GAAS,kBAAA;;;;EAUrB,UAAA,CAAA,GAAoB,OAAA;;;AFwEtB;EEhBE,aAAA,CAAoB,MAAA,EAAQ,cAAA,GAAiB,OAAA;;;;EAiC7C,eAAA,CAAsB,GAAA,WAAc,OAAA;IAAU,IAAA;EAAA;EFd7C;;;;EAAA,QEoCO,kBAAA;;;;UAsDA,mBAAA;;;;EAuBR,KAAA,CAAA,GAAe,OAAA;ED7KJ;;;ECuLX,aAAA,CAAA,GAAiB,aAAA;AAAA;;;;UAQF,kBAAA;;EAEf,GAAA;;EAEA,IAAA;;EAEA,OAAA,GAAU,YAAA;AAAA;;;;iBAMU,uBAAA,CACpB,OAAA,GAAU,kBAAA,GACT,OAAA,CAAQ,iBAAA;;;;;;cC3OE,eAAA;EAAA,QACH,OAAA;EAAA,QACA,OAAA;EJgqBqC;;;EI3pB7C,OAAA,CAAQ,KAAA,EAAO,KAAA,GAAQ,cAAA;;;;UAUf,QAAA;;AHsEV;;;UGlBU,cAAA;AAAA;;;;iBAoEM,qBAAA,CAAA,GAAyB,eAAA;;;;;;;AJyhBzC;;;;;;;;;;cKvpBa,eAAA,EAAiB,gBAAA;;AJ4E9B;;;;;;iBIpDgB,cAAA,CAAe,aAAA"}
|
package/dist/ssr/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "../src-
|
|
2
|
-
import "../src-
|
|
3
|
-
import "../jsx-runtime-
|
|
4
|
-
import "../src-
|
|
5
|
-
import "../jsx-runtime-
|
|
6
|
-
import { n as LINK_MARKER, r as STYLE_MARKER, s as resource, t as ASSET_MARKER } from "../resource-
|
|
7
|
-
import { a as ViteIslandBuilder, c as renderToString, i as createViteRouter, n as createIslandCollector, o as createViteIslandBuilder, r as ViteRouter, s as createApp, t as IslandCollector } from "../src-
|
|
8
|
-
import { n as renderDocument, t as DefaultDocument } from "../document-
|
|
1
|
+
import "../src-Cv4rRVzv.mjs";
|
|
2
|
+
import "../src-DV9uwtE5.mjs";
|
|
3
|
+
import "../jsx-runtime-BFs1c0xz.mjs";
|
|
4
|
+
import "../src-CXY-7FC3.mjs";
|
|
5
|
+
import "../jsx-runtime-kv_6vBiR.mjs";
|
|
6
|
+
import { n as LINK_MARKER, r as STYLE_MARKER, s as resource, t as ASSET_MARKER } from "../resource-pm7qP-jV.mjs";
|
|
7
|
+
import { a as ViteIslandBuilder, c as renderToString, i as createViteRouter, n as createIslandCollector, o as createViteIslandBuilder, r as ViteRouter, s as createApp, t as IslandCollector } from "../src-CAyv9Uf9.mjs";
|
|
8
|
+
import { n as renderDocument, t as DefaultDocument } from "../document-XKyAs62C.mjs";
|
|
9
9
|
|
|
10
10
|
export { ASSET_MARKER, DefaultDocument, IslandCollector, LINK_MARKER, STYLE_MARKER, ViteIslandBuilder, ViteRouter, createApp, createIslandCollector, createViteIslandBuilder, createViteRouter, renderDocument, renderToString, resource };
|
package/dist/style/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as keyframes, B as inject, C as slideRight, D as spin, E as slideUpKf, F as StyleRegistry, G as rules, H as preload, I as createCx, K as classes, L as createRegistry, M as createTheme, N as defineTokens, O as spinKf, P as isTokenRef, R as hashString, S as slideLeftKf, T as slideUp, U as isStyleToken, V as injectStyles, W as rule, _ as scaleOut, a as bounce, b as slideDownKf, c as fadeInKf, d as ping, f as pingKf, g as scaleInKf, h as scaleIn, i as media, j as keyframesToken, k as isKeyframeRef, l as fadeOut, m as pulseKf, n as container, o as bounceKf, p as pulse, q as isClassRef, r as defineBreakpoints, s as fadeIn, t as breakpoints, u as fadeOutKf, v as scaleOutKf, w as slideRightKf, x as slideLeft, y as slideDown, z as uniqueId } from "../src-
|
|
1
|
+
import { A as keyframes, B as inject, C as slideRight, D as spin, E as slideUpKf, F as StyleRegistry, G as rules, H as preload, I as createCx, K as classes, L as createRegistry, M as createTheme, N as defineTokens, O as spinKf, P as isTokenRef, R as hashString, S as slideLeftKf, T as slideUp, U as isStyleToken, V as injectStyles, W as rule, _ as scaleOut, a as bounce, b as slideDownKf, c as fadeInKf, d as ping, f as pingKf, g as scaleInKf, h as scaleIn, i as media, j as keyframesToken, k as isKeyframeRef, l as fadeOut, m as pulseKf, n as container, o as bounceKf, p as pulse, q as isClassRef, r as defineBreakpoints, s as fadeIn, t as breakpoints, u as fadeOutKf, v as scaleOutKf, w as slideRightKf, x as slideLeft, y as slideDown, z as uniqueId } from "../src-DV9uwtE5.mjs";
|
|
2
2
|
|
|
3
3
|
export { StyleRegistry, bounce, bounceKf, breakpoints, classes, container, createCx, createRegistry, createTheme, defineBreakpoints, defineTokens, fadeIn, fadeInKf, fadeOut, fadeOutKf, hashString, inject, injectStyles, isClassRef, isKeyframeRef, isStyleToken, isTokenRef, keyframes, keyframesToken, media, ping, pingKf, preload, pulse, pulseKf, rule, rules, scaleIn, scaleInKf, scaleOut, scaleOutKf, slideDown, slideDownKf, slideLeft, slideLeftKf, slideRight, slideRightKf, slideUp, slideUpKf, spin, spinKf, uniqueId };
|
package/dist/style/react.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as signal } from "../signal-
|
|
2
|
-
import { U as isStyleToken, V as injectStyles, z as uniqueId } from "../src-
|
|
1
|
+
import { t as signal } from "../signal-4PgGfydw.mjs";
|
|
2
|
+
import { U as isStyleToken, V as injectStyles, z as uniqueId } from "../src-DV9uwtE5.mjs";
|
|
3
3
|
import { createContext, createElement, useCallback, useContext, useEffect, useRef } from "react";
|
|
4
4
|
|
|
5
5
|
//#region ../style/src/react.ts
|
package/dist/style/vue.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as signal } from "../signal-
|
|
2
|
-
import { U as isStyleToken, V as injectStyles, z as uniqueId } from "../src-
|
|
1
|
+
import { t as signal } from "../signal-4PgGfydw.mjs";
|
|
2
|
+
import { U as isStyleToken, V as injectStyles, z as uniqueId } from "../src-DV9uwtE5.mjs";
|
|
3
3
|
import { defineComponent, h, inject, onMounted, onUnmounted, provide, ref } from "vue";
|
|
4
4
|
|
|
5
5
|
//#region ../style/src/vue.ts
|
package/dist/terminal/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as when, o as resource, s as stream } from "../src-
|
|
2
|
-
import { C as renderBackground, E as getChalkColor, S as setText, T as getChalkBgColor, _ as getParent, a as setProperty, b as removeChild, c as renderTextElement, d as applyStyle, f as collectText, g as getNextSibling, h as createTextNode, i as ExitHint, l as renderTextNode, m as createElement, n as print, o as setSignalProperty, p as createComment, r as render, s as TerminalRenderer, t as BlankLine, u as appendChild, v as insertBefore, w as renderBorder, x as replaceNode, y as markNodeAsDirty } from "../src-
|
|
3
|
-
import "../jsx-runtime-
|
|
1
|
+
import { c as when, o as resource, s as stream } from "../src-Cv4rRVzv.mjs";
|
|
2
|
+
import { C as renderBackground, E as getChalkColor, S as setText, T as getChalkBgColor, _ as getParent, a as setProperty, b as removeChild, c as renderTextElement, d as applyStyle, f as collectText, g as getNextSibling, h as createTextNode, i as ExitHint, l as renderTextNode, m as createElement, n as print, o as setSignalProperty, p as createComment, r as render, s as TerminalRenderer, t as BlankLine, u as appendChild, v as insertBefore, w as renderBorder, x as replaceNode, y as markNodeAsDirty } from "../src-CXY-7FC3.mjs";
|
|
3
|
+
import "../jsx-runtime-kv_6vBiR.mjs";
|
|
4
4
|
|
|
5
5
|
export { BlankLine, ExitHint, TerminalRenderer, appendChild, applyStyle, collectText, createComment, createElement, createTextNode, getChalkBgColor, getChalkColor, getNextSibling, getParent, insertBefore, markNodeAsDirty, print, removeChild, render, renderBackground, renderBorder, renderTextElement, renderTextNode, replaceNode, resource, setProperty, setSignalProperty, setText, stream, when };
|
|
@@ -111,6 +111,8 @@ interface DocumentProps {
|
|
|
111
111
|
scripts?: RawHTML;
|
|
112
112
|
/** CSS stylesheet paths */
|
|
113
113
|
css?: string[];
|
|
114
|
+
/** Inline CSS collected from StyleTokens */
|
|
115
|
+
styles?: string[];
|
|
114
116
|
}
|
|
115
117
|
type DocumentTemplate = (props: DocumentProps) => VNode;
|
|
116
118
|
/**
|
|
@@ -217,4 +219,4 @@ interface SSGInstance<TRegistry extends Record<string, unknown> = Record<string,
|
|
|
217
219
|
}
|
|
218
220
|
//#endregion
|
|
219
221
|
export { Watcher as S, SSGPlugin as _, Collection as a, WatchCallback as b, CollectionSource as c, InferCollections as d, MDXConfig as f, SSGInstance as g, SSGConfig as h, ChangeSet as i, DocumentProps as l, RouteConfig as m, BuildResult as n, CollectionConfig as o, RawHTML as p, BuildState as r, CollectionEntry as s, BuildOptions as t, DocumentTemplate as u, SSGPluginConfig as v, WatchOptions as x, StaticPath as y };
|
|
220
|
-
//# sourceMappingURL=types-
|
|
222
|
+
//# sourceMappingURL=types-BaS-zTDX.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-BaS-zTDX.d.mts","names":[],"sources":["../../ssg/src/types.ts"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-
|
|
1
|
+
{"version":3,"file":"utils-BrGmTgfG.mjs","names":[],"sources":["../../signal/src/utils.ts"],"sourcesContent":["import type { ReadableSignal, MaybeSignal } from \"./types\";\n\n/**\n * Check if a value is a signal\n *\n * Uses duck typing to check for the minimal signal interface:\n * - has a `value` property\n * - has a `subscribe` method\n */\nexport function isSignal<T = unknown>(value: unknown): value is ReadableSignal<T> {\n return (\n value != null &&\n typeof value === \"object\" &&\n \"value\" in value &&\n \"subscribe\" in value &&\n typeof value.subscribe === \"function\"\n );\n}\n\n/**\n * Unwrap a signal or return the value as-is\n *\n * Useful for accepting both static values and signals:\n * @example\n * ```ts\n * function Component(props: { count: MaybeSignal<number> }) {\n * const value = unwrap(props.count); // Always get the current value\n * }\n * ```\n */\nexport function unwrap<T>(value: MaybeSignal<T>): T {\n return isSignal(value) ? value.value : value;\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,SAAsB,OAA4C;AAChF,QACE,SAAS,QACT,OAAO,UAAU,YACjB,WAAW,SACX,eAAe,SACf,OAAO,MAAM,cAAc;;;;;;;;;;;;;AAe/B,SAAgB,OAAU,OAA0B;AAClD,QAAO,SAAS,MAAM,GAAG,MAAM,QAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "semajsx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "A signal-based reactive JSX runtime for building modern web applications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
119
|
"scripts": {
|
|
120
|
-
"build": "tsdown",
|
|
120
|
+
"build": "tsdown && mkdir -p dist/ssg/plugins/fonts && cp ../ssg/src/plugins/docs-theme/fonts/* dist/ssg/plugins/fonts/",
|
|
121
121
|
"dev": "tsdown --watch",
|
|
122
122
|
"typecheck": "tsc --noEmit",
|
|
123
123
|
"test": "vitest",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime-D9ZNjMJ2.mjs","names":[],"sources":["../../dom/src/jsx-runtime.ts"],"sourcesContent":["/**\n * JSX automatic runtime for DOM (production)\n * Use with: @jsxImportSource @semajsx/dom\n */\n\nimport { Forward, Fragment, jsx, jsxs } from \"@semajsx/core\";\nimport type { ComponentAPI, JSXNode, Ref, VNode, WithKey, WithSignals } from \"@semajsx/core\";\nimport type { Signal } from \"@semajsx/signal\";\nimport type { StyleToken } from \"@semajsx/style\";\n\nexport { jsx, jsxs, Forward, Fragment };\n\n/**\n * Class value type - supports strings, StyleTokens, arrays, and conditionals\n */\nexport type ClassValue = string | StyleToken | ClassValue[] | false | null | undefined;\n\n/**\n * HTML attribute types (base definitions without Signal support)\n */\ninterface BaseHTMLAttributes<T = Element> {\n // Ref - special prop for element references\n ref?: Ref<T>;\n\n // Standard attributes\n id?: string;\n className?: ClassValue;\n class?: ClassValue;\n style?: string | Record<string, string | number>;\n title?: string;\n lang?: string;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n hidden?: boolean;\n tabIndex?: number;\n accessKey?: string;\n contentEditable?: boolean | \"true\" | \"false\";\n draggable?: boolean;\n spellcheck?: boolean;\n\n // Special React-style props\n dangerouslySetInnerHTML?: { __html: string };\n\n // ARIA attributes\n role?: string;\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n \"aria-describedby\"?: string;\n \"aria-hidden\"?: boolean | \"true\" | \"false\";\n \"aria-expanded\"?: boolean | \"true\" | \"false\";\n \"aria-selected\"?: boolean | \"true\" | \"false\";\n \"aria-checked\"?: boolean | \"true\" | \"false\" | \"mixed\";\n \"aria-disabled\"?: boolean | \"true\" | \"false\";\n \"aria-readonly\"?: boolean | \"true\" | \"false\";\n \"aria-required\"?: boolean | \"true\" | \"false\";\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\n \"aria-pressed\"?: boolean | \"true\" | \"false\" | \"mixed\";\n \"aria-current\"?: boolean | \"true\" | \"false\" | \"page\" | \"step\" | \"location\" | \"date\" | \"time\";\n\n // Event handlers (React-style camelCase)\n onClick?: (event: MouseEvent) => void;\n onDblClick?: (event: MouseEvent) => void;\n onMouseDown?: (event: MouseEvent) => void;\n onMouseUp?: (event: MouseEvent) => void;\n onMouseEnter?: (event: MouseEvent) => void;\n onMouseLeave?: (event: MouseEvent) => void;\n onMouseMove?: (event: MouseEvent) => void;\n onMouseOver?: (event: MouseEvent) => void;\n onMouseOut?: (event: MouseEvent) => void;\n onContextMenu?: (event: MouseEvent) => void;\n\n onKeyDown?: (event: KeyboardEvent) => void;\n onKeyUp?: (event: KeyboardEvent) => void;\n onKeyPress?: (event: KeyboardEvent) => void;\n\n onFocus?: (event: FocusEvent) => void;\n onBlur?: (event: FocusEvent) => void;\n\n onChange?: (event: Event) => void;\n onInput?: (event: Event) => void;\n onSubmit?: (event: Event) => void;\n\n onScroll?: (event: Event) => void;\n onWheel?: (event: WheelEvent) => void;\n\n onTouchStart?: (event: TouchEvent) => void;\n onTouchMove?: (event: TouchEvent) => void;\n onTouchEnd?: (event: TouchEvent) => void;\n onTouchCancel?: (event: TouchEvent) => void;\n\n onDragStart?: (event: DragEvent) => void;\n onDrag?: (event: DragEvent) => void;\n onDragEnd?: (event: DragEvent) => void;\n onDragEnter?: (event: DragEvent) => void;\n onDragLeave?: (event: DragEvent) => void;\n onDragOver?: (event: DragEvent) => void;\n onDrop?: (event: DragEvent) => void;\n\n // Event handlers (native DOM lowercase)\n onclick?: (event: MouseEvent) => void;\n ondblclick?: (event: MouseEvent) => void;\n onmousedown?: (event: MouseEvent) => void;\n onmouseup?: (event: MouseEvent) => void;\n onmouseenter?: (event: MouseEvent) => void;\n onmouseleave?: (event: MouseEvent) => void;\n onmousemove?: (event: MouseEvent) => void;\n onmouseover?: (event: MouseEvent) => void;\n onmouseout?: (event: MouseEvent) => void;\n oncontextmenu?: (event: MouseEvent) => void;\n\n onkeydown?: (event: KeyboardEvent) => void;\n onkeyup?: (event: KeyboardEvent) => void;\n onkeypress?: (event: KeyboardEvent) => void;\n\n onfocus?: (event: FocusEvent) => void;\n onblur?: (event: FocusEvent) => void;\n\n onchange?: (event: Event) => void;\n oninput?: (event: Event) => void;\n onsubmit?: (event: Event) => void;\n\n onscroll?: (event: Event) => void;\n onwheel?: (event: WheelEvent) => void;\n\n ontouchstart?: (event: TouchEvent) => void;\n ontouchmove?: (event: TouchEvent) => void;\n ontouchend?: (event: TouchEvent) => void;\n ontouchcancel?: (event: TouchEvent) => void;\n\n ondragstart?: (event: DragEvent) => void;\n ondrag?: (event: DragEvent) => void;\n ondragend?: (event: DragEvent) => void;\n ondragenter?: (event: DragEvent) => void;\n ondragleave?: (event: DragEvent) => void;\n ondragover?: (event: DragEvent) => void;\n ondrop?: (event: DragEvent) => void;\n\n // Children\n children?: JSXNode;\n}\n\n/**\n * HTML attributes with Signal support\n * All non-function properties can accept Signal values\n */\nexport type HTMLAttributes<T = Element> = WithKey<WithSignals<BaseHTMLAttributes<T>>> & {\n // Data attributes support both plain values and Signals\n [dataAttribute: `data-${string}`]:\n | string\n | number\n | boolean\n | Signal<string | number | boolean>\n | undefined;\n};\n\ninterface BaseAnchorHTMLAttributes extends BaseHTMLAttributes<HTMLAnchorElement> {\n href?: string;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n rel?: string;\n download?: string;\n ping?: string;\n referrerPolicy?:\n | \"no-referrer\"\n | \"no-referrer-when-downgrade\"\n | \"origin\"\n | \"origin-when-cross-origin\"\n | \"same-origin\"\n | \"strict-origin\"\n | \"strict-origin-when-cross-origin\"\n | \"unsafe-url\";\n}\n\nexport type AnchorHTMLAttributes = WithKey<WithSignals<BaseAnchorHTMLAttributes>>;\n\ninterface BaseButtonHTMLAttributes extends BaseHTMLAttributes<HTMLButtonElement> {\n disabled?: boolean;\n type?: \"button\" | \"submit\" | \"reset\";\n value?: string;\n name?: string;\n form?: string;\n formAction?: string;\n formEnctype?: string;\n formMethod?: string;\n formNoValidate?: boolean;\n formTarget?: string;\n}\n\nexport type ButtonHTMLAttributes = WithKey<WithSignals<BaseButtonHTMLAttributes>>;\n\ninterface BaseInputHTMLAttributes extends BaseHTMLAttributes<HTMLInputElement> {\n accept?: string;\n alt?: string;\n autoComplete?: string;\n autoFocus?: boolean;\n capture?: boolean | \"user\" | \"environment\";\n checked?: boolean;\n defaultChecked?: boolean;\n defaultValue?: string | number;\n disabled?: boolean;\n form?: string;\n formAction?: string;\n formEnctype?: string;\n formMethod?: string;\n formNoValidate?: boolean;\n formTarget?: string;\n max?: number | string;\n maxLength?: number;\n min?: number | string;\n minLength?: number;\n multiple?: boolean;\n name?: string;\n pattern?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n size?: number;\n src?: string;\n step?: number | string;\n type?: string;\n value?: string | number;\n}\n\nexport type InputHTMLAttributes = WithKey<WithSignals<BaseInputHTMLAttributes>>;\n\ninterface BaseTextareaHTMLAttributes extends BaseHTMLAttributes<HTMLTextAreaElement> {\n autoComplete?: string;\n autoFocus?: boolean;\n cols?: number;\n disabled?: boolean;\n form?: string;\n maxLength?: number;\n minLength?: number;\n name?: string;\n placeholder?: string;\n readOnly?: boolean;\n required?: boolean;\n rows?: number;\n value?: string;\n wrap?: \"hard\" | \"soft\" | \"off\";\n}\n\nexport type TextareaHTMLAttributes = WithKey<WithSignals<BaseTextareaHTMLAttributes>>;\n\ninterface BaseSelectHTMLAttributes extends BaseHTMLAttributes<HTMLSelectElement> {\n autoComplete?: string;\n autoFocus?: boolean;\n disabled?: boolean;\n form?: string;\n multiple?: boolean;\n name?: string;\n required?: boolean;\n size?: number;\n value?: string | string[];\n}\n\nexport type SelectHTMLAttributes = WithKey<WithSignals<BaseSelectHTMLAttributes>>;\n\ninterface BaseOptionHTMLAttributes extends BaseHTMLAttributes<HTMLOptionElement> {\n disabled?: boolean;\n label?: string;\n selected?: boolean;\n value?: string | number;\n}\n\nexport type OptionHTMLAttributes = WithKey<WithSignals<BaseOptionHTMLAttributes>>;\n\ninterface BaseLabelHTMLAttributes extends BaseHTMLAttributes<HTMLLabelElement> {\n for?: string;\n htmlFor?: string;\n form?: string;\n}\n\nexport type LabelHTMLAttributes = WithKey<WithSignals<BaseLabelHTMLAttributes>>;\n\ninterface BaseFormHTMLAttributes extends BaseHTMLAttributes<HTMLFormElement> {\n acceptCharset?: string;\n action?: string;\n autoComplete?: string;\n enctype?: string;\n method?: \"get\" | \"post\" | \"dialog\";\n name?: string;\n noValidate?: boolean;\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n}\n\nexport type FormHTMLAttributes = WithKey<WithSignals<BaseFormHTMLAttributes>>;\n\ninterface BaseImgHTMLAttributes extends BaseHTMLAttributes<HTMLImageElement> {\n alt?: string;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n decoding?: \"async\" | \"auto\" | \"sync\";\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n referrerPolicy?: string;\n sizes?: string;\n src?: string;\n srcSet?: string;\n useMap?: string;\n width?: number | string;\n}\n\nexport type ImgHTMLAttributes = WithKey<WithSignals<BaseImgHTMLAttributes>>;\n\ninterface BaseVideoHTMLAttributes extends BaseHTMLAttributes<HTMLVideoElement> {\n autoPlay?: boolean;\n controls?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n height?: number | string;\n loop?: boolean;\n muted?: boolean;\n playsInline?: boolean;\n poster?: string;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n width?: number | string;\n}\n\nexport type VideoHTMLAttributes = WithKey<WithSignals<BaseVideoHTMLAttributes>>;\n\ninterface BaseAudioHTMLAttributes extends BaseHTMLAttributes<HTMLAudioElement> {\n autoPlay?: boolean;\n controls?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n loop?: boolean;\n muted?: boolean;\n preload?: \"none\" | \"metadata\" | \"auto\" | \"\";\n src?: string;\n}\n\nexport type AudioHTMLAttributes = WithKey<WithSignals<BaseAudioHTMLAttributes>>;\n\ninterface BaseCanvasHTMLAttributes extends BaseHTMLAttributes<HTMLCanvasElement> {\n height?: number | string;\n width?: number | string;\n}\n\nexport type CanvasHTMLAttributes = WithKey<WithSignals<BaseCanvasHTMLAttributes>>;\n\ninterface BaseIframeHTMLAttributes extends BaseHTMLAttributes<HTMLIFrameElement> {\n allow?: string;\n allowFullScreen?: boolean;\n height?: number | string;\n loading?: \"eager\" | \"lazy\";\n name?: string;\n referrerPolicy?: string;\n sandbox?: string;\n src?: string;\n srcDoc?: string;\n width?: number | string;\n}\n\nexport type IframeHTMLAttributes = WithKey<WithSignals<BaseIframeHTMLAttributes>>;\n\ninterface BaseTableHTMLAttributes extends BaseHTMLAttributes<HTMLTableElement> {\n cellPadding?: number | string;\n cellSpacing?: number | string;\n}\n\nexport type TableHTMLAttributes = WithKey<WithSignals<BaseTableHTMLAttributes>>;\n\ninterface BaseTdHTMLAttributes extends BaseHTMLAttributes<HTMLTableCellElement> {\n colSpan?: number;\n headers?: string;\n rowSpan?: number;\n}\n\nexport type TdHTMLAttributes = WithKey<WithSignals<BaseTdHTMLAttributes>>;\n\ninterface BaseThHTMLAttributes extends BaseHTMLAttributes<HTMLTableCellElement> {\n abbr?: string;\n colSpan?: number;\n headers?: string;\n rowSpan?: number;\n scope?: \"col\" | \"row\" | \"colgroup\" | \"rowgroup\";\n}\n\nexport type ThHTMLAttributes = WithKey<WithSignals<BaseThHTMLAttributes>>;\n\ninterface BaseStyleHTMLAttributes extends BaseHTMLAttributes<HTMLStyleElement> {\n media?: string;\n scoped?: boolean;\n type?: string;\n}\n\nexport type StyleHTMLAttributes = WithKey<WithSignals<BaseStyleHTMLAttributes>>;\n\ninterface BaseScriptHTMLAttributes extends BaseHTMLAttributes<HTMLScriptElement> {\n async?: boolean;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n defer?: boolean;\n integrity?: string;\n noModule?: boolean;\n referrerPolicy?: string;\n src?: string;\n type?: string;\n}\n\nexport type ScriptHTMLAttributes = WithKey<WithSignals<BaseScriptHTMLAttributes>>;\n\ninterface BaseLinkHTMLAttributes extends BaseHTMLAttributes<HTMLLinkElement> {\n as?: string;\n crossOrigin?: \"anonymous\" | \"use-credentials\" | \"\";\n href?: string;\n hrefLang?: string;\n integrity?: string;\n media?: string;\n referrerPolicy?: string;\n rel?: string;\n sizes?: string;\n type?: string;\n}\n\nexport type LinkHTMLAttributes = WithKey<WithSignals<BaseLinkHTMLAttributes>>;\n\ninterface BaseMetaHTMLAttributes extends BaseHTMLAttributes<HTMLMetaElement> {\n charSet?: string;\n content?: string;\n httpEquiv?: string;\n name?: string;\n}\n\nexport type MetaHTMLAttributes = WithKey<WithSignals<BaseMetaHTMLAttributes>>;\n\n/**\n * SVG element attributes — permissive to cover SVG's large attribute set\n */\nexport type SVGAttributes = HTMLAttributes<SVGElement> & {\n [key: string]: unknown;\n};\n\n/**\n * JSX namespace for DOM elements\n */\nexport namespace JSX {\n // JSX factory returns sync VNodes\n export type Element = VNode;\n\n export type ElementType =\n | keyof IntrinsicElements\n | ((props: any) => JSXNode)\n | ((props: any, ctx: ComponentAPI) => JSXNode);\n\n export interface ElementChildrenAttribute {\n children: {};\n }\n\n export interface IntrinsicAttributes {\n key?: string | number;\n }\n\n export interface IntrinsicElements {\n // Document structure\n html: HTMLAttributes<HTMLHtmlElement>;\n head: HTMLAttributes<HTMLHeadElement>;\n body: HTMLAttributes<HTMLBodyElement>;\n title: HTMLAttributes<HTMLTitleElement>;\n meta: MetaHTMLAttributes;\n link: LinkHTMLAttributes;\n style: StyleHTMLAttributes;\n script: ScriptHTMLAttributes;\n\n // Content sectioning\n header: HTMLAttributes<HTMLElement>;\n footer: HTMLAttributes<HTMLElement>;\n main: HTMLAttributes<HTMLElement>;\n nav: HTMLAttributes<HTMLElement>;\n section: HTMLAttributes<HTMLElement>;\n article: HTMLAttributes<HTMLElement>;\n aside: HTMLAttributes<HTMLElement>;\n h1: HTMLAttributes<HTMLHeadingElement>;\n h2: HTMLAttributes<HTMLHeadingElement>;\n h3: HTMLAttributes<HTMLHeadingElement>;\n h4: HTMLAttributes<HTMLHeadingElement>;\n h5: HTMLAttributes<HTMLHeadingElement>;\n h6: HTMLAttributes<HTMLHeadingElement>;\n\n // Text content\n div: HTMLAttributes<HTMLDivElement>;\n p: HTMLAttributes<HTMLParagraphElement>;\n span: HTMLAttributes<HTMLSpanElement>;\n pre: HTMLAttributes<HTMLPreElement>;\n code: HTMLAttributes<HTMLElement>;\n blockquote: HTMLAttributes<HTMLQuoteElement>;\n hr: HTMLAttributes<HTMLHRElement>;\n br: HTMLAttributes<HTMLBRElement>;\n\n // Lists\n ul: HTMLAttributes<HTMLUListElement>;\n ol: HTMLAttributes<HTMLOListElement>;\n li: HTMLAttributes<HTMLLIElement>;\n dl: HTMLAttributes<HTMLDListElement>;\n dt: HTMLAttributes<HTMLElement>;\n dd: HTMLAttributes<HTMLElement>;\n\n // Inline text semantics\n a: AnchorHTMLAttributes;\n strong: HTMLAttributes<HTMLElement>;\n em: HTMLAttributes<HTMLElement>;\n b: HTMLAttributes<HTMLElement>;\n i: HTMLAttributes<HTMLElement>;\n u: HTMLAttributes<HTMLElement>;\n s: HTMLAttributes<HTMLElement>;\n small: HTMLAttributes<HTMLElement>;\n mark: HTMLAttributes<HTMLElement>;\n abbr: HTMLAttributes<HTMLElement>;\n cite: HTMLAttributes<HTMLElement>;\n q: HTMLAttributes<HTMLQuoteElement>;\n kbd: HTMLAttributes<HTMLElement>;\n sub: HTMLAttributes<HTMLElement>;\n sup: HTMLAttributes<HTMLElement>;\n time: HTMLAttributes<HTMLTimeElement>;\n\n // Forms\n form: FormHTMLAttributes;\n input: InputHTMLAttributes;\n textarea: TextareaHTMLAttributes;\n button: ButtonHTMLAttributes;\n select: SelectHTMLAttributes;\n option: OptionHTMLAttributes;\n optgroup: HTMLAttributes<HTMLOptGroupElement>;\n label: LabelHTMLAttributes;\n fieldset: HTMLAttributes<HTMLFieldSetElement>;\n legend: HTMLAttributes<HTMLLegendElement>;\n\n // Tables\n table: TableHTMLAttributes;\n thead: HTMLAttributes<HTMLTableSectionElement>;\n tbody: HTMLAttributes<HTMLTableSectionElement>;\n tfoot: HTMLAttributes<HTMLTableSectionElement>;\n tr: HTMLAttributes<HTMLTableRowElement>;\n th: ThHTMLAttributes;\n td: TdHTMLAttributes;\n caption: HTMLAttributes<HTMLTableCaptionElement>;\n colgroup: HTMLAttributes<HTMLTableColElement>;\n col: HTMLAttributes<HTMLTableColElement>;\n\n // Media\n img: ImgHTMLAttributes;\n video: VideoHTMLAttributes;\n audio: AudioHTMLAttributes;\n source: HTMLAttributes<HTMLSourceElement>;\n track: HTMLAttributes<HTMLTrackElement>;\n canvas: CanvasHTMLAttributes;\n svg: SVGAttributes;\n\n // SVG child elements\n circle: SVGAttributes;\n clipPath: SVGAttributes;\n defs: SVGAttributes;\n ellipse: SVGAttributes;\n g: SVGAttributes;\n line: SVGAttributes;\n linearGradient: SVGAttributes;\n mask: SVGAttributes;\n path: SVGAttributes;\n polygon: SVGAttributes;\n polyline: SVGAttributes;\n radialGradient: SVGAttributes;\n rect: SVGAttributes;\n stop: SVGAttributes;\n text: SVGAttributes;\n use: SVGAttributes;\n\n // Embedded content\n iframe: IframeHTMLAttributes;\n embed: HTMLAttributes<HTMLEmbedElement>;\n object: HTMLAttributes<HTMLObjectElement>;\n param: HTMLAttributes<HTMLParamElement>;\n picture: HTMLAttributes<HTMLPictureElement>;\n\n // Interactive elements\n details: HTMLAttributes<HTMLDetailsElement>;\n summary: HTMLAttributes<HTMLElement>;\n dialog: HTMLAttributes<HTMLDialogElement>;\n menu: HTMLAttributes<HTMLMenuElement>;\n\n // Web Components\n slot: HTMLAttributes<HTMLSlotElement>;\n template: HTMLAttributes<HTMLTemplateElement>;\n }\n}\n"],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime-tIuFmhTh.d.mts","names":[],"sources":["../../dom/src/jsx-runtime.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resource-CNwiNxJX.d.mts","names":[],"sources":["../../ssr/src/shared/types.ts","../../ssr/src/client/resource.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"src-75qcxwT_.mjs","names":["fsWatch"],"sources":["../../ssg/src/document.tsx","../../ssg/src/types.ts","../../ssg/src/mdx/processor.ts","../../ssg/src/mdx/vite-plugin.ts","../../ssg/src/ssg.ts","../../ssg/src/collection/index.ts","../../ssg/src/sources/base.ts","../../ssg/src/sources/file.ts","../../ssg/src/sources/git.ts","../../ssg/src/sources/remote.ts","../../ssg/src/sources/custom.ts"],"sourcesContent":["/** @jsxImportSource @semajsx/dom */\n\nimport type { DocumentTemplate } from \"./types\";\n\n/**\n * Default HTML document template for SSG\n */\nexport const DefaultDocument: DocumentTemplate = ({\n children,\n title = \"SSG Page\",\n scripts,\n css,\n}) => (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>{title}</title>\n {css?.map((href) => (\n <link rel=\"stylesheet\" href={href} />\n ))}\n </head>\n <body>\n {children}\n {scripts}\n </body>\n </html>\n);\n","import type { Component, VNode } from \"@semajsx/core\";\nimport type { z } from \"zod\";\n\n// =============================================================================\n// Collection Registry (for type inference)\n// =============================================================================\n\n/**\n * Infer a registry type from an array of collections\n * Maps collection names to their data types\n */\nexport type InferCollections<T extends readonly Collection[]> = {\n [K in T[number] as K[\"name\"]]: K extends Collection<infer D> ? D : unknown;\n};\n\n// =============================================================================\n// Collection Entry\n// =============================================================================\n\nexport interface CollectionEntry<T = unknown> {\n /** Unique identifier within the collection */\n id: string;\n /** URL-friendly slug */\n slug: string;\n /** Validated frontmatter data */\n data: T;\n /** Raw content body (markdown/mdx) */\n body: string;\n /** Render the content to JSX */\n render: () => Promise<{ Content: () => VNode }>;\n}\n\n// =============================================================================\n// Collection Source\n// =============================================================================\n\nexport interface ChangeSet<T = unknown> {\n /** Cursor for next incremental fetch */\n cursor: string;\n /** Newly added entries */\n added: CollectionEntry<T>[];\n /** Updated entries */\n updated: CollectionEntry<T>[];\n /** Deleted entry IDs */\n deleted: string[];\n}\n\nexport type WatchCallback<T = unknown> = (changes: ChangeSet<T>) => void;\n\nexport interface CollectionSource<T = unknown> {\n /** Unique identifier for this source */\n id: string;\n\n /** Get all entries from this source */\n getEntries(): Promise<CollectionEntry<T>[]>;\n\n /** Get a single entry by ID */\n getEntry(id: string): Promise<CollectionEntry<T> | null>;\n\n /** Watch for changes (optional) */\n watch?(callback: WatchCallback<T>): () => void;\n\n /** Get incremental changes since cursor (optional) */\n getChanges?(since: string): Promise<ChangeSet<T>>;\n}\n\n// =============================================================================\n// Collection Definition\n// =============================================================================\n\nexport interface CollectionConfig<T extends z.ZodType = z.ZodType> {\n /** Collection name */\n name: string;\n /** Data source (returns raw entries, validated against schema later) */\n source: CollectionSource<unknown>;\n /** Zod schema for validation */\n schema: T;\n}\n\nexport interface Collection<T = unknown> {\n name: string;\n source: CollectionSource<unknown>;\n schema: z.ZodType;\n /** Type-only field for inference */\n _outputType?: T;\n}\n\n// =============================================================================\n// Route Configuration\n// =============================================================================\n\nexport interface StaticPath<P = Record<string, string>> {\n params: P;\n props?: Record<string, unknown>;\n}\n\nexport interface RouteConfig<TRegistry extends Record<string, unknown> = Record<string, unknown>> {\n /** Route path pattern (e.g., '/blog/:slug') */\n path: string;\n /** Component to render. Props are provided dynamically by the route config. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Route props are dynamic, typed via `props`/`getStaticPaths`\n component: (props: any) => VNode;\n /** Static props for the route */\n props?:\n | Record<string, unknown>\n | ((ssg: SSGInstance<TRegistry>) => Promise<Record<string, unknown>>);\n /** Generate static paths for dynamic routes */\n getStaticPaths?: (ssg: SSGInstance<TRegistry>) => Promise<StaticPath[]>;\n}\n\n// =============================================================================\n// MDX Configuration\n// =============================================================================\n\nexport interface MDXConfig {\n /** Remark plugins */\n remarkPlugins?: unknown[];\n /** Rehype plugins */\n rehypePlugins?: unknown[];\n /** Component mapping for MDX */\n components?: Record<string, Component>;\n}\n\n// =============================================================================\n// Document Template\n// =============================================================================\n\n/**\n * Raw HTML VNode that can be used directly in JSX or converted to string\n */\nexport class RawHTML {\n public readonly type = \"div\";\n public readonly props: { dangerouslySetInnerHTML: { __html: string } };\n public readonly children: never[] = [];\n\n constructor(public readonly html: string) {\n this.props = { dangerouslySetInnerHTML: { __html: html } };\n }\n\n toString(): string {\n return this.html;\n }\n}\n\nexport interface DocumentProps {\n /** Rendered page content (VNode with toString) */\n children: RawHTML;\n /** Page title */\n title?: string;\n /** Base URL path */\n base: string;\n /** Route path */\n path: string;\n /** Route props */\n props: Record<string, unknown>;\n /** Script tags for islands (as RawHTML) */\n scripts?: RawHTML;\n /** CSS stylesheet paths */\n css?: string[];\n}\n\nexport type DocumentTemplate = (props: DocumentProps) => VNode;\n\n// =============================================================================\n// Plugin System\n// =============================================================================\n\n/**\n * Partial SSG config that a plugin's config() hook can return.\n * Each field has a defined merge strategy:\n * - mdx: merge (concat arrays, merge component objects)\n * - document: override (last writer wins)\n * - routes: concat\n * - collections: concat\n */\nexport interface SSGPluginConfig {\n mdx?: Partial<MDXConfig>;\n document?: DocumentTemplate;\n routes?: RouteConfig[];\n collections?: readonly Collection[];\n}\n\nexport interface SSGPlugin {\n /** Plugin name for identification and debugging */\n name: string;\n\n /** Plugin ordering: 'pre' runs before normal plugins, 'post' runs after */\n enforce?: \"pre\" | \"post\";\n\n /**\n * Modify SSG config before it is resolved.\n * Return partial config to merge.\n * Called in plugin order: enforce:'pre' → normal → enforce:'post' → user config.\n */\n config?(config: SSGConfig): SSGPluginConfig | void;\n\n /** Called after config is fully resolved. Read-only inspection. */\n configResolved?(config: SSGConfig): void;\n\n /** Called before build starts */\n buildStart?(): void | Promise<void>;\n\n /** Called after build completes. Receives the SSG instance for post-build operations. */\n buildEnd?(result: BuildResult, ssg: SSGInstance): void | Promise<void>;\n}\n\n// =============================================================================\n// SSG Configuration\n// =============================================================================\n\nexport interface SSGConfig<\n TCollections extends readonly Collection[] = Collection[],\n TRegistry extends Record<string, unknown> = InferCollections<TCollections>,\n> {\n /** Output directory for built files */\n outDir: string;\n /** Root directory for resolving relative paths (defaults to script location) */\n rootDir?: string;\n /** Base URL path */\n base?: string;\n /** Collections to include */\n collections?: TCollections;\n /** Route definitions */\n routes?: RouteConfig<TRegistry>[];\n /** Plugins that contribute remark/rehype plugins and components.\n * Plugin factories may return arrays (Vite-style); nested arrays are flattened. */\n plugins?: (SSGPlugin | SSGPlugin[])[];\n /** MDX configuration (merged after plugins, takes precedence) */\n mdx?: MDXConfig;\n /** Custom document template */\n document?: DocumentTemplate;\n}\n\n// =============================================================================\n// Build State & Result\n// =============================================================================\n\nexport interface BuildState {\n /** Cursor for each collection */\n cursors: Record<string, string>;\n /** Content hash for each page */\n pageHashes: Record<string, string>;\n /** Last build timestamp */\n timestamp: number;\n}\n\nexport interface BuildResult {\n /** New build state for incremental builds */\n state: BuildState;\n /** Paths that were built */\n paths: string[];\n /** Build statistics */\n stats: {\n added: number;\n updated: number;\n deleted: number;\n unchanged: number;\n };\n}\n\nexport interface BuildOptions {\n /** Enable incremental build */\n incremental?: boolean;\n /** Previous build state */\n state?: BuildState;\n /** Only build specific collections */\n collections?: string[];\n}\n\n// =============================================================================\n// Watcher\n// =============================================================================\n\nexport interface WatchOptions {\n /** Callback when rebuild completes */\n onRebuild?: (result: BuildResult) => void;\n /** Callback on error */\n onError?: (error: Error) => void;\n}\n\nexport interface Watcher {\n /** Stop watching */\n close(): void;\n}\n\n// =============================================================================\n// SSG Instance\n// =============================================================================\n\nexport interface SSGInstance<TRegistry extends Record<string, unknown> = Record<string, unknown>> {\n /** Get the root directory for resolving paths */\n getRootDir(): string;\n\n /** Get all entries from a collection */\n getCollection<K extends keyof TRegistry & string>(\n name: K,\n ): Promise<CollectionEntry<TRegistry[K]>[]>;\n\n /** Get a single entry from a collection */\n getEntry<K extends keyof TRegistry & string>(\n name: K,\n id: string,\n ): Promise<CollectionEntry<TRegistry[K]> | null>;\n\n /** Build the static site */\n build(options?: BuildOptions): Promise<BuildResult>;\n\n /** Watch for changes and rebuild */\n watch(options?: WatchOptions): Watcher;\n}\n","import { compile } from \"@mdx-js/mdx\";\nimport type { Pluggable } from \"unified\";\nimport type { VNode } from \"@semajsx/core\";\nimport type { MDXConfig, MDXCompileResult, Heading } from \"./types\";\n\n/**\n * MDX Processor for compiling MDX content to JSX components\n */\nexport class MDXProcessor {\n private config: MDXConfig;\n\n constructor(config: MDXConfig = {}) {\n this.config = config;\n }\n\n /**\n * Compile MDX content to a JSX component\n */\n async compile(\n content: string,\n frontmatter: Record<string, unknown> = {},\n ): Promise<MDXCompileResult> {\n // Extract headings for table of contents\n const headings = this.extractHeadings(content);\n\n // Compile MDX to JavaScript\n const compiled = await compile(content, {\n outputFormat: \"function-body\",\n development: false,\n remarkPlugins: (this.config.remarkPlugins ?? []) as Pluggable[],\n rehypePlugins: (this.config.rehypePlugins ?? []) as Pluggable[],\n // Use SemaJSX runtime\n jsxImportSource: \"semajsx/dom\",\n });\n\n // Dynamic import of JSX runtime\n const jsxRuntime = await import(\"semajsx/dom/jsx-runtime\");\n\n // Create the Content component\n const Content = this.createComponent(\n String(compiled),\n this.config.components ?? {},\n jsxRuntime,\n );\n\n return {\n Content,\n frontmatter,\n headings,\n };\n }\n\n /**\n * Create a component from compiled MDX code\n */\n private createComponent(\n code: string,\n components: Record<string, (props: Record<string, unknown>) => VNode>,\n jsxRuntime: unknown,\n ): (props?: Record<string, unknown>) => VNode {\n // Import JSX runtime\n // This will be resolved at runtime\n return (props: Record<string, unknown> = {}) => {\n try {\n // Create a function from the MDX compiled code\n // MDX compiled code expects jsx runtime in arguments[0]\n // By using new Function() with no parameters, we can pass\n // the runtime via call() and it becomes arguments[0]\n // eslint-disable-next-line @typescript-eslint/no-implied-eval\n const fn = new Function(code + \"\\nreturn MDXContent;\");\n\n // Call with jsxRuntime as arguments[0]\n // MDX returns an object with default export\n const result = fn.call(null, jsxRuntime) as {\n default: (props: Record<string, unknown>) => VNode;\n };\n return result.default({ ...props, components });\n } catch (e) {\n // Fallback for when runtime is not available\n throw new Error(`MDX rendering failed: ${(e as Error).message}`);\n }\n };\n }\n\n /**\n * Extract headings from markdown content\n */\n private extractHeadings(content: string): Heading[] {\n const headings: Heading[] = [];\n const headingRegex = /^(#{1,6})\\s+(.+)$/gm;\n\n let match;\n while ((match = headingRegex.exec(content)) !== null) {\n const hashes = match[1];\n const rawText = match[2];\n if (!hashes || !rawText) continue;\n\n const depth = hashes.length;\n const text = rawText.trim();\n const slug = this.slugify(text);\n\n headings.push({ depth, text, slug });\n }\n\n return headings;\n }\n\n /**\n * Convert text to URL-friendly slug\n */\n private slugify(text: string): string {\n return text\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/\\s+/g, \"-\")\n .replace(/-+/g, \"-\")\n .trim();\n }\n}\n\n/**\n * Create an MDX processor instance\n */\nexport function createMDXProcessor(config?: MDXConfig): MDXProcessor {\n return new MDXProcessor(config);\n}\n","import { compile } from \"@mdx-js/mdx\";\nimport type { Plugin, PluginOption } from \"vite\";\nimport type { Pluggable } from \"unified\";\n\n/**\n * MDX plugin options\n */\nexport interface MDXPluginOptions {\n /** Remark plugins */\n remarkPlugins?: unknown[];\n /** Rehype plugins */\n rehypePlugins?: unknown[];\n}\n\n/**\n * Vite plugin for MDX support\n * Transforms .mdx files to JSX modules\n */\nexport function viteMDXPlugin(options: MDXPluginOptions = {}): PluginOption {\n const plugin: Plugin = {\n name: \"semajsx-mdx\",\n\n async transform(code: string, id: string) {\n // Only transform .mdx files\n if (!id.endsWith(\".mdx\")) {\n return null;\n }\n\n try {\n // Compile MDX to JavaScript (not JSX)\n const compiled = await compile(code, {\n jsxImportSource: \"semajsx/dom\",\n outputFormat: \"program\",\n development: false,\n remarkPlugins: (options.remarkPlugins ?? []) as Pluggable[],\n rehypePlugins: (options.rehypePlugins ?? []) as Pluggable[],\n });\n\n return {\n code: String(compiled),\n map: null,\n };\n } catch (error) {\n const err = error as Error;\n throw new Error(`MDX compilation failed for ${id}: ${err.message}`);\n }\n },\n };\n\n return plugin;\n}\n","import { mkdir, writeFile, rm } from \"fs/promises\";\nimport { join, dirname, resolve } from \"path\";\nimport { createApp, renderDocument } from \"@semajsx/ssr\";\nimport type { App, RouteContext } from \"@semajsx/ssr\";\nimport { DefaultDocument } from \"./document\";\nimport type { VNode } from \"@semajsx/core\";\nimport {\n RawHTML,\n type SSGConfig,\n type SSGPlugin,\n type SSGInstance,\n type MDXConfig,\n type RouteConfig,\n type DocumentTemplate,\n type Collection,\n type CollectionEntry,\n type BuildOptions,\n type BuildResult,\n type BuildState,\n type WatchOptions,\n type Watcher,\n type DocumentProps,\n type InferCollections,\n} from \"./types\";\nimport { viteMDXPlugin } from \"./mdx\";\n\n/**\n * Sort plugins by enforce order: 'pre' → normal → 'post'\n */\nfunction sortPlugins(plugins: SSGPlugin[]): SSGPlugin[] {\n const pre: SSGPlugin[] = [];\n const normal: SSGPlugin[] = [];\n const post: SSGPlugin[] = [];\n\n for (const plugin of plugins) {\n if (plugin.enforce === \"pre\") pre.push(plugin);\n else if (plugin.enforce === \"post\") post.push(plugin);\n else normal.push(plugin);\n }\n\n return [...pre, ...normal, ...post];\n}\n\n/**\n * Merge a partial MDX config into an existing one.\n */\nfunction mergeMdxConfig(base: MDXConfig, partial: Partial<MDXConfig>): MDXConfig {\n return {\n remarkPlugins: [...(base.remarkPlugins ?? []), ...(partial.remarkPlugins ?? [])],\n rehypePlugins: [...(base.rehypePlugins ?? []), ...(partial.rehypePlugins ?? [])],\n components: { ...base.components, ...partial.components },\n };\n}\n\n/**\n * Resolved config produced by running all plugin config hooks.\n */\ninterface ResolvedPluginConfig {\n mdx: MDXConfig;\n document?: DocumentTemplate;\n routes: RouteConfig[];\n collections: Collection[];\n}\n\n/**\n * Result of plugin resolution: merged config + flat list of all plugins.\n */\ninterface PluginResolutionResult {\n config: ResolvedPluginConfig;\n allPlugins: SSGPlugin[];\n}\n\n/**\n * Run config hooks on all plugins, then merge with user config.\n *\n * Plugin arrays are flattened Vite-style: plugin factories may return\n * `SSGPlugin | SSGPlugin[]`, and the top-level array is `.flat()`-ed\n * before sorting and processing.\n *\n * Merge strategies:\n * - mdx: merge (concat arrays, merge component objects)\n * - document: override (last writer wins, user config last)\n * - routes: concat (plugin routes first, then user routes)\n * - collections: concat (plugin collections first, then user collections)\n */\nfunction resolvePlugins(\n plugins: (SSGPlugin | SSGPlugin[])[],\n config: SSGConfig,\n): PluginResolutionResult {\n // Vite-style: flatten nested arrays from plugin factories\n const flat = plugins.flat();\n const sorted = sortPlugins(flat);\n\n let mdx: MDXConfig = { remarkPlugins: [], rehypePlugins: [], components: {} };\n let document: DocumentTemplate | undefined;\n const routes: RouteConfig[] = [];\n const collections: Collection[] = [];\n\n // Call config hooks in order\n for (const plugin of sorted) {\n if (!plugin.config) continue;\n const partial = plugin.config(config);\n if (!partial) continue;\n\n if (partial.mdx) mdx = mergeMdxConfig(mdx, partial.mdx);\n if (partial.document) document = partial.document;\n if (partial.routes) routes.push(...partial.routes);\n if (partial.collections) collections.push(...partial.collections);\n }\n\n // User config takes precedence (applied last)\n if (config.mdx) mdx = mergeMdxConfig(mdx, config.mdx);\n if (config.document) document = config.document;\n if (config.routes) routes.push(...config.routes);\n if (config.collections) collections.push(...config.collections);\n\n return { config: { mdx, document, routes, collections }, allPlugins: sorted };\n}\n\n/**\n * SSG (Static Site Generator) core class\n * Built on top of server's createApp\n */\nexport class SSG<\n TRegistry extends Record<string, unknown> = Record<string, unknown>,\n> implements SSGInstance<TRegistry> {\n private config: SSGConfig;\n private plugins: SSGPlugin[];\n private rootDir: string;\n private collections: Map<string, Collection>;\n private entriesCache: Map<string, CollectionEntry[]>;\n private app: App;\n private mdxModules: Map<string, string> = new Map();\n\n constructor(config: SSGConfig) {\n // Resolve rootDir\n this.rootDir = config.rootDir ?? process.cwd();\n\n // Run config hooks — merges plugins + user config, collects all plugins (including nested)\n const { config: resolved, allPlugins } = resolvePlugins(config.plugins ?? [], config);\n\n // Store all plugins (including sub-plugins) for lifecycle hooks\n this.plugins = allPlugins;\n\n this.config = {\n base: \"/\",\n ...config,\n mdx: resolved.mdx,\n document: resolved.document,\n routes: resolved.routes,\n collections: resolved.collections,\n outDir: resolve(this.rootDir, config.outDir),\n };\n\n // Call configResolved on all plugins\n for (const plugin of this.plugins) {\n plugin.configResolved?.(this.config);\n }\n this.collections = new Map();\n this.entriesCache = new Map();\n\n // Create App with MDX plugins\n this.app = createApp({\n root: this.rootDir,\n vite: {\n plugins: [\n // Virtual MDX content modules\n {\n name: \"ssg-virtual-mdx\",\n resolveId: (id: string) => {\n if (id.startsWith(\"virtual:mdx:\")) {\n return \"\\0\" + id;\n }\n },\n load: (id: string) => {\n if (id.startsWith(\"\\0virtual:mdx:\")) {\n const mdxId = id.replace(\"\\0virtual:mdx:\", \"\");\n return this.mdxModules.get(mdxId);\n }\n },\n },\n // MDX compiler plugin\n viteMDXPlugin(resolved.mdx),\n ],\n },\n });\n\n // Register collections (from resolved config — plugins + user)\n for (const collection of this.config.collections ?? []) {\n this.collections.set(collection.name, collection);\n }\n }\n\n getRootDir(): string {\n return this.rootDir;\n }\n\n async getCollection<K extends keyof TRegistry & string>(\n name: K,\n ): Promise<CollectionEntry<TRegistry[K]>[]> {\n const collection = this.collections.get(name);\n if (!collection) {\n throw new Error(`Collection \"${name}\" not found`);\n }\n\n if (this.entriesCache.has(name)) {\n return this.entriesCache.get(name) as CollectionEntry<TRegistry[K]>[];\n }\n\n const entries = await collection.source.getEntries();\n\n const validatedEntries = entries.map((entry) => {\n const result = collection.schema.safeParse(entry.data);\n if (!result.success) {\n throw new Error(`Validation error in ${name}/${entry.id}: ${result.error.message}`);\n }\n\n return {\n ...entry,\n data: result.data,\n render: async () => {\n // Get Vite server from app\n const vite = this.app.getViteServer();\n if (!vite) {\n throw new Error(\"Vite server not initialized\");\n }\n\n // Store MDX content as virtual module\n const mdxId = `${name}/${entry.id}.mdx`;\n this.mdxModules.set(mdxId, entry.body);\n\n try {\n // Load module through Vite SSR\n const moduleExports = (await vite.ssrLoadModule(`virtual:mdx:${mdxId}`)) as {\n default: (props: Record<string, unknown>) => unknown;\n };\n\n const Content = (props: Record<string, unknown> = {}): VNode =>\n moduleExports.default({\n ...props,\n components: this.config.mdx?.components ?? {},\n }) as VNode;\n\n return {\n Content,\n headings: this.extractHeadings(entry.body),\n };\n } finally {\n this.mdxModules.delete(mdxId);\n }\n },\n };\n });\n\n this.entriesCache.set(name, validatedEntries);\n return validatedEntries as CollectionEntry<TRegistry[K]>[];\n }\n\n async getEntry<K extends keyof TRegistry & string>(\n name: K,\n id: string,\n ): Promise<CollectionEntry<TRegistry[K]> | null> {\n const entries = await this.getCollection(name);\n return entries.find((e) => e.id === id || e.slug === id) ?? null;\n }\n\n async build(options: BuildOptions = {}): Promise<BuildResult> {\n const { incremental = false, state: prevState } = options;\n const outDir = this.config.outDir;\n\n // Plugin hook: buildStart\n for (const plugin of this.plugins) {\n await plugin.buildStart?.();\n }\n\n // Initialize App (starts Vite)\n await this.app.prepare();\n\n try {\n // Register routes with App\n await this.registerRoutes();\n\n // Build all pages\n const result = await this.buildPages(incremental, prevState, outDir);\n\n // Build islands for client-side hydration\n // Pass renderHtml so the Vite build uses the SSG's Document template\n // instead of a hardcoded minimal HTML template\n const documentTemplate = this.config.document ?? DefaultDocument;\n await this.app.build({\n outDir,\n mode: \"full\",\n minify: true,\n renderHtml: ({ html, css, scripts, title, path: routePath }) => {\n const scriptsHtml = scripts\n .map((s) => `<script type=\"module\" src=\"${s.src}\"></script>`)\n .join(\"\\n\");\n const documentProps: DocumentProps = {\n children: new RawHTML(html),\n title,\n base: this.config.base ?? \"/\",\n path: routePath,\n props: {},\n scripts: scriptsHtml ? new RawHTML(scriptsHtml) : undefined,\n css: css ?? [],\n };\n const documentVNode = documentTemplate(documentProps);\n return renderDocument(documentVNode);\n },\n vite: {\n build: {\n rollupOptions: {\n // Don't externalize for SSG - bundle everything\n external: [],\n },\n },\n },\n });\n\n // Plugin hook: buildEnd\n for (const plugin of this.plugins) {\n await plugin.buildEnd?.(result, this);\n }\n\n return result;\n } finally {\n await this.app.close();\n }\n }\n\n private async registerRoutes(): Promise<void> {\n const routes = this.config.routes ?? [];\n\n for (const route of routes) {\n if (route.getStaticPaths) {\n // Dynamic route - register each path\n const staticPaths = await route.getStaticPaths(this);\n for (const sp of staticPaths) {\n const path = this.applyParams(route.path, sp.params);\n const props: Record<string, unknown> = { ...sp.props, params: sp.params };\n\n this.app.route(\n path,\n (_context: RouteContext) => {\n return route.component(props);\n },\n { title: props.title as string | undefined },\n );\n }\n } else {\n // Static route\n let props: Record<string, unknown> = {};\n if (typeof route.props === \"function\") {\n props = await route.props(this);\n } else if (route.props) {\n props = route.props;\n }\n\n this.app.route(\n route.path,\n (_context: RouteContext) => {\n return route.component(props);\n },\n { title: props.title as string | undefined },\n );\n }\n }\n }\n\n private async buildPages(\n incremental: boolean,\n prevState: BuildState | undefined,\n outDir: string,\n ): Promise<BuildResult> {\n const state: BuildState = {\n cursors: {},\n pageHashes: {},\n timestamp: Date.now(),\n };\n\n const stats = { added: 0, updated: 0, deleted: 0, unchanged: 0 };\n const builtPaths: string[] = [];\n\n if (!incremental) {\n await rm(outDir, { recursive: true, force: true });\n }\n await mkdir(outDir, { recursive: true });\n\n this.entriesCache.clear();\n\n // Get all paths to build\n const allPaths = await this.generateAllPaths();\n const currentPaths = new Set(allPaths.map((p) => p.path));\n\n // Delete removed pages\n if (incremental && prevState) {\n for (const oldPath of Object.keys(prevState.pageHashes)) {\n if (!currentPaths.has(oldPath)) {\n const filePath = this.pathToFilePath(oldPath);\n try {\n await rm(join(outDir, filePath));\n stats.deleted++;\n } catch {\n // ignore\n }\n }\n }\n }\n\n // Build each page\n for (const { path, props } of allPaths) {\n const html = await this.renderPage(path, props);\n const hash = this.hashContent(html);\n\n const prevHash = prevState?.pageHashes[path];\n const needsWrite = !incremental || !prevHash || prevHash !== hash;\n\n if (needsWrite) {\n const filePath = this.pathToFilePath(path);\n const fullPath = join(outDir, filePath);\n\n await mkdir(dirname(fullPath), { recursive: true });\n await writeFile(fullPath, html);\n\n builtPaths.push(path);\n if (!prevHash) {\n stats.added++;\n } else {\n stats.updated++;\n }\n } else {\n stats.unchanged++;\n }\n\n state.pageHashes[path] = hash;\n }\n\n for (const [name, collection] of this.collections) {\n if (collection.source.getChanges) {\n state.cursors[name] = Date.now().toString();\n }\n }\n\n return { state, paths: builtPaths, stats };\n }\n\n private async renderPage(path: string, props: Record<string, unknown>): Promise<string> {\n // Use App to render the page\n const result = await this.app.render(path);\n\n // Wrap with document template\n const documentProps: DocumentProps = {\n children: new RawHTML(result.html),\n title: props.title as string | undefined,\n base: this.config.base ?? \"/\",\n path,\n props,\n scripts: result.scripts ? new RawHTML(result.scripts) : undefined,\n css: result.css ?? [],\n };\n\n const template = this.config.document ?? DefaultDocument;\n const documentVNode = template(documentProps);\n\n return renderDocument(documentVNode);\n }\n\n private async generateAllPaths(): Promise<\n Array<{ path: string; props: Record<string, unknown> }>\n > {\n const paths: Array<{ path: string; props: Record<string, unknown> }> = [];\n const routes = this.config.routes ?? [];\n\n for (const route of routes) {\n if (route.getStaticPaths) {\n const staticPaths = await route.getStaticPaths(this);\n for (const sp of staticPaths) {\n const path = this.applyParams(route.path, sp.params);\n paths.push({ path, props: { ...sp.props, params: sp.params } });\n }\n } else {\n let props: Record<string, unknown> = {};\n if (typeof route.props === \"function\") {\n props = await route.props(this);\n } else if (route.props) {\n props = route.props;\n }\n paths.push({ path: route.path, props });\n }\n }\n\n return paths;\n }\n\n watch(options: WatchOptions = {}): Watcher {\n const unsubscribers: (() => void)[] = [];\n\n for (const [name, collection] of this.collections) {\n if (collection.source.watch) {\n const unsubscribe = collection.source.watch(async () => {\n try {\n this.entriesCache.delete(name);\n const result = await this.build({ incremental: true });\n options.onRebuild?.(result);\n } catch (error) {\n options.onError?.(error as Error);\n }\n });\n unsubscribers.push(unsubscribe);\n }\n }\n\n return {\n close: () => unsubscribers.forEach((fn) => fn()),\n };\n }\n\n private pathToFilePath(urlPath: string): string {\n if (urlPath === \"/\") return \"index.html\";\n return `${urlPath.slice(1)}/index.html`;\n }\n\n private applyParams(pattern: string, params: Record<string, string>): string {\n let path = pattern;\n for (const [key, value] of Object.entries(params)) {\n path = path.replace(`:${key}`, value);\n }\n return path;\n }\n\n private hashContent(content: string): string {\n let hash = 0;\n for (let i = 0; i < content.length; i++) {\n const char = content.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash = hash & hash;\n }\n return hash.toString(16);\n }\n\n private extractHeadings(content: string): Array<{ depth: number; text: string; slug: string }> {\n const headings: Array<{ depth: number; text: string; slug: string }> = [];\n const regex = /^(#{1,6})\\s+(.+)$/gm;\n\n let match;\n while ((match = regex.exec(content)) !== null) {\n if (!match[1] || !match[2]) continue;\n const depth = match[1].length;\n const text = match[2].trim();\n const slug = text\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, \"\")\n .replace(/\\s+/g, \"-\");\n headings.push({ depth, text, slug });\n }\n\n return headings;\n }\n}\n\nexport function createSSG<\n const TCollections extends readonly Collection[],\n TRegistry extends Record<string, unknown> = InferCollections<TCollections>,\n>(config: SSGConfig<TCollections, TRegistry>): SSGInstance<TRegistry> {\n return new SSG<TRegistry>(config as unknown as SSGConfig);\n}\n","import type { z } from \"zod\";\nimport type { Collection, CollectionConfig } from \"../types\";\n\n/**\n * Define a collection with schema validation\n */\nexport function defineCollection<T extends z.ZodType>(\n config: CollectionConfig<T>,\n): Collection<z.infer<T>> {\n return {\n name: config.name,\n source: config.source,\n schema: config.schema,\n };\n}\n\nexport type { Collection, CollectionConfig, CollectionEntry } from \"../types\";\n","import type { CollectionSource, CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\n\n/**\n * Base class for collection sources\n */\nexport abstract class BaseSource<T = unknown> implements CollectionSource<T> {\n abstract id: string;\n\n abstract getEntries(): Promise<CollectionEntry<T>[]>;\n\n async getEntry(id: string): Promise<CollectionEntry<T> | null> {\n const entries = await this.getEntries();\n return entries.find((e) => e.id === id) ?? null;\n }\n\n watch?(callback: WatchCallback<T>): () => void;\n\n getChanges?(since: string): Promise<ChangeSet<T>>;\n}\n","import { glob } from \"glob\";\nimport matter from \"gray-matter\";\nimport { readFile, watch as fsWatch } from \"fs/promises\";\nimport { join, relative } from \"path\";\nimport type { CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\nimport type { FileSourceOptions } from \"./types\";\nimport { BaseSource } from \"./base\";\n\n/**\n * File system source for collections\n */\nexport class FileSource<T = unknown> extends BaseSource<T> {\n id: string;\n private directory: string;\n private include: string;\n private shouldWatch: boolean;\n private contentRoot: string;\n\n constructor(options: FileSourceOptions, contentRoot: string = process.cwd()) {\n super();\n this.directory = options.directory;\n this.include = options.include ?? \"**/*.{md,mdx}\";\n this.shouldWatch = options.watch ?? false;\n this.contentRoot = contentRoot;\n this.id = `file:${this.directory}`;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n const dir = join(this.contentRoot, this.directory);\n const pattern = join(dir, this.include);\n const files = await glob(pattern);\n\n const entries = await Promise.all(\n files.map(async (filePath) => {\n const content = await readFile(filePath, \"utf-8\");\n const { data, content: body } = matter(content);\n\n const relativePath = relative(dir, filePath);\n const id = relativePath.replace(/\\.(md|mdx)$/, \"\");\n const slug = id.replace(/\\\\/g, \"/\");\n\n return {\n id,\n slug,\n data: data as T,\n body,\n render: async () => {\n // MDX compilation will be handled by the MDX processor\n return {\n Content: () => {\n throw new Error(\"MDX rendering not yet implemented\");\n },\n };\n },\n };\n }),\n );\n\n return entries;\n }\n\n override watch(callback: WatchCallback<T>): () => void {\n if (!this.shouldWatch) {\n return () => {};\n }\n\n const dir = join(this.contentRoot, this.directory);\n const abortController = new AbortController();\n\n const startWatching = async () => {\n try {\n const watcher = fsWatch(dir, {\n recursive: true,\n signal: abortController.signal,\n });\n\n for await (const _event of watcher) {\n // Debounce and collect changes\n const entries = await this.getEntries();\n callback({\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n });\n }\n } catch (err) {\n if ((err as Error).name !== \"AbortError\") {\n throw err;\n }\n }\n };\n\n startWatching();\n\n return () => {\n abortController.abort();\n };\n }\n\n override async getChanges(_since: string): Promise<ChangeSet<T>> {\n // For file source, we do a full reload\n // A more sophisticated implementation could track file mtimes\n const entries = await this.getEntries();\n return {\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n };\n }\n}\n\n/**\n * Create a file system source\n */\nexport function fileSource<T = unknown>(\n options: FileSourceOptions,\n contentRoot?: string,\n): FileSource<T> {\n return new FileSource<T>(options, contentRoot);\n}\n","import { exec } from \"child_process\";\nimport { promisify } from \"util\";\nimport type { CollectionEntry } from \"../types\";\nimport type { GitSourceOptions, GitCommitSourceOptions, GitTagSourceOptions } from \"./types\";\nimport { BaseSource } from \"./base\";\n\nconst execAsync = promisify(exec);\n\n/**\n * Git source for collections\n */\nexport class GitSource<T = unknown> extends BaseSource<T> {\n id: string;\n private options: GitSourceOptions;\n private cwd: string;\n\n constructor(options: GitSourceOptions, cwd: string = process.cwd()) {\n super();\n this.options = options;\n this.cwd = cwd;\n this.id = `git:${options.type}`;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n if (this.options.type === \"commits\") {\n return this.getCommits(this.options);\n } else {\n return this.getTags(this.options);\n }\n }\n\n private async getCommits(options: GitCommitSourceOptions): Promise<CollectionEntry<T>[]> {\n const args = [\"log\", \"--format=%H|%s|%an|%ae|%aI\"];\n\n if (options.filter?.since) {\n args.push(`--since=${options.filter.since}`);\n }\n if (options.filter?.until) {\n args.push(`--until=${options.filter.until}`);\n }\n if (options.filter?.author) {\n args.push(`--author=${options.filter.author}`);\n }\n if (options.limit) {\n args.push(`-n`, options.limit.toString());\n }\n if (options.filter?.paths?.length) {\n args.push(\"--\", ...options.filter.paths);\n }\n\n const { stdout } = await execAsync(`git ${args.join(\" \")}`, {\n cwd: this.cwd,\n });\n const lines = stdout.trim().split(\"\\n\").filter(Boolean);\n\n return lines.map((line) => {\n const parts = line.split(\"|\");\n const hash = parts[0] ?? \"\";\n const message = parts[1] ?? \"\";\n const author = parts[2] ?? \"\";\n const email = parts[3] ?? \"\";\n const dateStr = parts[4] ?? \"\";\n\n const data = {\n hash,\n message,\n author,\n email,\n date: new Date(dateStr),\n } as unknown as T;\n\n return {\n id: hash,\n slug: hash.slice(0, 7),\n data,\n body: message,\n render: async () => ({\n Content: () => {\n throw new Error(\"Git commits cannot be rendered as content\");\n },\n }),\n };\n });\n }\n\n private async getTags(options: GitTagSourceOptions): Promise<CollectionEntry<T>[]> {\n const pattern = options.pattern ?? \"*\";\n\n // Get tags with date and message\n const { stdout } = await execAsync(\n `git tag -l \"${pattern}\" --format=\"%(refname:short)|%(objectname:short)|%(creatordate:iso)|%(contents:subject)\"`,\n { cwd: this.cwd },\n );\n\n const lines = stdout.trim().split(\"\\n\").filter(Boolean);\n\n return lines.map((line) => {\n const parts = line.split(\"|\");\n const tag = parts[0] ?? \"\";\n const hash = parts[1] ?? \"\";\n const dateStr = parts[2] ?? \"\";\n const message = parts[3] ?? \"\";\n\n const data = {\n tag,\n hash,\n date: new Date(dateStr),\n message: message || undefined,\n } as unknown as T;\n\n return {\n id: tag,\n slug: tag,\n data,\n body: message,\n render: async () => ({\n Content: () => {\n throw new Error(\"Git tags cannot be rendered as content\");\n },\n }),\n };\n });\n }\n}\n\n/**\n * Create a Git source\n */\nexport function gitSource<T = unknown>(options: GitSourceOptions, cwd?: string): GitSource<T> {\n return new GitSource<T>(options, cwd);\n}\n","import type { CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\nimport type { RemoteSourceOptions, WebhookConfig } from \"./types\";\nimport { BaseSource } from \"./base\";\n\n/**\n * Remote API source for collections\n */\nexport class RemoteSource<T = unknown> extends BaseSource<T> {\n id: string;\n private options: RemoteSourceOptions<T>;\n private pollTimer?: ReturnType<typeof setInterval>;\n\n constructor(options: RemoteSourceOptions<T>, id: string = \"remote\") {\n super();\n this.options = options;\n this.id = `remote:${id}`;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n const items = await this.options.fetch();\n\n return items.map((item, index) => {\n const id = (item as Record<string, unknown>).id?.toString() ?? index.toString();\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).content?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Remote content rendering not yet implemented\");\n },\n }),\n };\n });\n }\n\n override async getEntry(id: string): Promise<CollectionEntry<T> | null> {\n if (this.options.fetchOne) {\n const item = await this.options.fetchOne(id);\n if (!item) return null;\n\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).content?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Remote content rendering not yet implemented\");\n },\n }),\n };\n }\n\n return super.getEntry(id);\n }\n\n override watch(callback: WatchCallback<T>): () => void {\n if (this.options.pollInterval) {\n this.pollTimer = setInterval(async () => {\n const entries = await this.getEntries();\n callback({\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n });\n }, this.options.pollInterval);\n\n return () => {\n if (this.pollTimer) {\n clearInterval(this.pollTimer);\n }\n };\n }\n\n return () => {};\n }\n\n override async getChanges(since: string): Promise<ChangeSet<T>> {\n if (this.options.fetchChanges) {\n return this.options.fetchChanges(since);\n }\n\n // Fallback to full reload\n const entries = await this.getEntries();\n return {\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n };\n }\n\n /**\n * Get webhook configuration for external integration\n */\n getWebhookConfig(): WebhookConfig | undefined {\n return this.options.webhook;\n }\n}\n\n/**\n * Create a remote API source\n */\nexport function remoteSource<T = unknown>(\n options: RemoteSourceOptions<T>,\n id?: string,\n): RemoteSource<T> {\n return new RemoteSource<T>(options, id);\n}\n","import type { CollectionEntry, ChangeSet, WatchCallback } from \"../types\";\nimport type { CustomSourceOptions } from \"./types\";\nimport { BaseSource } from \"./base\";\n\n/**\n * Custom source for collections\n */\nexport class CustomSource<T = unknown> extends BaseSource<T> {\n id: string;\n private options: CustomSourceOptions<T>;\n\n constructor(options: CustomSourceOptions<T>) {\n super();\n this.options = options;\n this.id = options.id;\n }\n\n async getEntries(): Promise<CollectionEntry<T>[]> {\n const items = await this.options.getEntries();\n\n return items.map((item, index) => {\n const id = (item as Record<string, unknown>).id?.toString() ?? index.toString();\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).body?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Custom content rendering not yet implemented\");\n },\n }),\n };\n });\n }\n\n override async getEntry(id: string): Promise<CollectionEntry<T> | null> {\n if (this.options.getEntry) {\n const item = await this.options.getEntry(id);\n if (!item) return null;\n\n const slug = (item as Record<string, unknown>).slug?.toString() ?? id;\n\n return {\n id,\n slug,\n data: item,\n body: (item as Record<string, unknown>).body?.toString() ?? \"\",\n render: async () => ({\n Content: () => {\n throw new Error(\"Custom content rendering not yet implemented\");\n },\n }),\n };\n }\n\n return super.getEntry(id);\n }\n\n override watch(callback: WatchCallback<T>): () => void {\n if (this.options.watch) {\n return this.options.watch(callback);\n }\n return () => {};\n }\n\n override async getChanges(since: string): Promise<ChangeSet<T>> {\n if (this.options.getChanges) {\n return this.options.getChanges(since);\n }\n\n const entries = await this.getEntries();\n return {\n cursor: Date.now().toString(),\n added: [],\n updated: entries,\n deleted: [],\n };\n }\n}\n\n/**\n * Create a custom source\n */\nexport function createSource<T = unknown>(options: CustomSourceOptions<T>): CustomSource<T> {\n return new CustomSource<T>(options);\n}\n"],"mappings":"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"}
|