boltdocs 3.1.0 → 3.2.2
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/{adapters-DEXNIv3x.mjs → adapters-ByYY44Zy.mjs} +1 -1
- package/dist/{adapters-uGz-UKQa.cjs → adapters-DvmtpdSF.cjs} +1 -1
- package/dist/{banner-DjujkctF.d.ts → banner-BMop1KLF.d.ts} +2 -2
- package/dist/{banner-DdSgCs4G.d.cts → banner-CVD0GugR.d.cts} +2 -2
- package/dist/{cache-CfRTUzWC.cjs → cache-CO4Dy2uQ.cjs} +1 -1
- package/dist/{cache-B0C2i0yP.mjs → cache-Dk53iOo6.mjs} +1 -1
- package/dist/chunk-BFSpntXv.mjs +6 -0
- package/dist/{chunk-Ds5LZdWN.cjs → chunk-D1Md3oWO.cjs} +1 -1
- package/dist/client/index.cjs +219 -172
- package/dist/client/index.d.cts +75 -9
- package/dist/client/index.d.ts +75 -9
- package/dist/client/index.js +119 -73
- package/dist/client/mdx.cjs +1 -1
- package/dist/client/mdx.d.cts +1 -1
- package/dist/client/mdx.d.ts +1 -1
- package/dist/client/mdx.js +1 -1
- package/dist/client/primitives.cjs +7 -7
- package/dist/client/primitives.d.cts +5 -22
- package/dist/client/primitives.d.ts +5 -22
- package/dist/client/primitives.js +4 -4
- package/dist/client/theme/reset.css +31 -4
- package/dist/{shiki-adapter-fS94vy-z.d.mts → config-BpzaPsJj.d.cts} +325 -78
- package/dist/config-CCXp3aXO.mjs +7 -0
- package/dist/{config-BxsogK5A.cjs → config-CMd4XoFq.cjs} +1 -1
- package/dist/config-DlGoEM9D.cjs +7 -0
- package/dist/{shiki-adapter-l2kEP5rn.d.cts → config-xtS0ZkMm.d.mts} +325 -78
- package/dist/{csp-BX06rvdg.cjs → csp-CRp_3U7a.cjs} +1 -1
- package/dist/csp-oTC2ygvF.mjs +6 -0
- package/dist/{docs-layout-DyLDBwS6.js → docs-layout-BdtZ9z6s.js} +9 -28
- package/dist/{docs-layout-D1buSdua.cjs → docs-layout-CFWI15Id.cjs} +69 -88
- package/dist/{doctor-DPDcRKM1.cjs → doctor-BBtmNJE0.cjs} +1 -1
- package/dist/doctor-Bv16QSrI.cjs +7 -0
- package/dist/doctor-DOAbSaiL.mjs +7 -0
- package/dist/{generator-BN75lJOv.cjs → generator-COepVWGi.cjs} +1 -1
- package/dist/{handler-Btd4t_67.mjs → handler-DzQae4eA.mjs} +1 -1
- package/dist/{handler-1LRMYeI4.cjs → handler-XX7cLTqe.cjs} +1 -1
- package/dist/headers-Ddwek8K7.mjs +6 -0
- package/dist/{headers-YpD10rDb.cjs → headers-dg4SDrjY.cjs} +1 -1
- package/dist/{image-5WsgWYTh.js → image-Bz87fCla.js} +1 -1
- package/dist/{image-Hb105Gu6.cjs → image-C4TlpMHn.cjs} +18 -18
- package/dist/link-2PzgTnaP.js +673 -0
- package/dist/{icons-dev-YtDoLUsb.cjs → link-D1Gjkb-2.cjs} +0 -350
- package/dist/{mdx-Bv-pS6-O.js → mdx-BuO6a1f7.js} +195 -40
- package/dist/{mdx-CDUcJmye.cjs → mdx-CD-tSjRG.cjs} +234 -73
- package/dist/{meta-loader-CTB62-Mo.cjs → meta-loader-Dq1zcFnh.cjs} +1 -1
- package/dist/node/cache.cjs +1 -1
- package/dist/node/cache.d.cts +2 -1
- package/dist/node/cache.d.mts +2 -1
- package/dist/node/cache.mjs +1 -1
- package/dist/node/cli-entry.cjs +6 -6
- package/dist/node/cli-entry.mjs +9 -9
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.cts +20 -174
- package/dist/node/index.d.mts +18 -175
- package/dist/node/index.mjs +1 -1
- package/dist/node/mdx/shiki-adapter.cjs +1 -1
- package/dist/node/mdx/shiki-adapter.d.cts +49 -1
- package/dist/node/mdx/shiki-adapter.d.mts +49 -1
- package/dist/node/mdx/shiki-adapter.mjs +1 -1
- package/dist/node-B5hu_6qj.cjs +104 -0
- package/dist/node-BXtqM1uH.mjs +6 -0
- package/dist/node-C8725aw7.mjs +104 -0
- package/dist/node-aD1eisrR.cjs +6 -0
- package/dist/{package-_-Oa8-qN.cjs → package-CH2ChQqw.cjs} +1 -1
- package/dist/{package-CoHWTf0N.mjs → package-DSSB8B5L.mjs} +1 -1
- package/dist/{pages-external-CX2uyW95.cjs → pages-external-XkYIs-d5.cjs} +1 -1
- package/dist/parser-DCiEWkSk.cjs +8 -0
- package/dist/parser-qk9FIHJ7.mjs +8 -0
- package/dist/plugin-CX1OZ6jB.cjs +73 -0
- package/dist/plugin-CgfiWaFZ.mjs +73 -0
- package/dist/routes-BW6zsk7Z.mjs +6 -0
- package/dist/routes-BgoIB5wb.cjs +6 -0
- package/dist/{routes-D_S9kjkS.cjs → routes-CORVxc02.cjs} +1 -1
- package/dist/{search-dialog-BpNULmrl.cjs → search-dialog-B1NERUNx.cjs} +101 -55
- package/dist/{search-dialog-BbtxA1uT.cjs → search-dialog-BRFno7HD.cjs} +8 -8
- package/dist/{search-dialog-DC7oXU-5.js → search-dialog-BmxHiKwt.js} +2 -2
- package/dist/{search-dialog-gp9lrJXm.js → search-dialog-D6TvjcuV.js} +1 -1
- package/dist/{search-dialog-PJrFRU5G.js → search-dialog-DFnlx8LO.js} +44 -4
- package/dist/{search-dialog-BIuxGQsg.cjs → search-dialog-DHqwjJuG.cjs} +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.mts +1 -1
- package/dist/server/index.mjs +1 -1
- package/dist/shiki-adapter-CoQ6jyJ4.cjs +6 -0
- package/dist/shiki-adapter-D-aKw7PP.mjs +6 -0
- package/dist/{sidebar-DknLUI1R.d.ts → sidebar-COTaMHR-.d.ts} +349 -41
- package/dist/{sidebar-DH2iPKXM.d.cts → sidebar-CrEdJuHX.d.cts} +349 -41
- package/dist/{types-generator-CYcHkDzZ.cjs → types-generator-BXhv7Ill.cjs} +1 -1
- package/dist/types-generator-bDPvUztF.mjs +26 -0
- package/dist/utils-Crm9oPcV.mjs +7 -0
- package/dist/utils-D6Xtj0FZ.cjs +7 -0
- package/package.json +13 -10
- package/src/shared/types.ts +361 -19
- package/dist/chunk-hT5z_Zn9-DsJawvsz.mjs +0 -6
- package/dist/chunk-hT5z_Zn9-SKz6VFXu.cjs +0 -6
- package/dist/config-DAgpZyh6.mjs +0 -7
- package/dist/config-DrRQYDCI.cjs +0 -7
- package/dist/csp-z2D0FuRW.mjs +0 -6
- package/dist/doctor-BadGEhXv.cjs +0 -7
- package/dist/doctor-vDsUDgqp.mjs +0 -7
- package/dist/escape-string-regexp-AG8q1e25-9Un9V90q.mjs +0 -6
- package/dist/escape-string-regexp-AG8q1e25-bJ9Ixe7c.cjs +0 -6
- package/dist/esm-shims-DSep1HcR.mjs +0 -6
- package/dist/headers-CL0pMcwm.mjs +0 -6
- package/dist/icons-dev-CHZOwhQA.js +0 -921
- package/dist/lib-BR0SoanK-CLswltLI.cjs +0 -6
- package/dist/lib-BR0SoanK-DcYeDrE6.mjs +0 -6
- package/dist/lib-DPoCz1YB-CLYXwKST.cjs +0 -6
- package/dist/lib-DPoCz1YB-CyGOqgSO.mjs +0 -6
- package/dist/micromark-util-character-5KqJafVT-C6gnc770.cjs +0 -6
- package/dist/micromark-util-character-5KqJafVT-DkPKsbgn.mjs +0 -6
- package/dist/node-BDBv8CT6.mjs +0 -104
- package/dist/node-DFV_FV0y.mjs +0 -6
- package/dist/node-DqsP7kXz.cjs +0 -6
- package/dist/node-yFmAavND.cjs +0 -104
- package/dist/parser-BZJgAa9E.mjs +0 -8
- package/dist/parser-DlanzESE.cjs +0 -8
- package/dist/plugin-BVuwx5D9.cjs +0 -73
- package/dist/plugin-BoxD91Yh.mjs +0 -73
- package/dist/rehype-slug--ZOxZ-_K-BNeYC4aT.cjs +0 -6
- package/dist/rehype-slug--ZOxZ-_K-CjIQEJCs.mjs +0 -6
- package/dist/remark-frontmatter-wFYRLcCt-CutW0gA3.mjs +0 -8
- package/dist/remark-frontmatter-wFYRLcCt-ENB5qG3y.cjs +0 -8
- package/dist/remark-gfm-B8TMkQbX-CjUJo8Rd.cjs +0 -21
- package/dist/remark-gfm-B8TMkQbX-Ctu0VV1_.mjs +0 -21
- package/dist/rolldown-runtime-fkIsjY3S.mjs +0 -6
- package/dist/rollup-DMqoG11U-CKcJ37u_.mjs +0 -59
- package/dist/rollup-DMqoG11U-DKdxvZIj.cjs +0 -59
- package/dist/routes-BN2XbGcT.mjs +0 -6
- package/dist/routes-Cnq8xTCv.cjs +0 -6
- package/dist/shiki-adapter-CGTmrR6S.cjs +0 -6
- package/dist/shiki-adapter-CK3llqw2.mjs +0 -6
- package/dist/types-generator-DVOnRVKU.mjs +0 -26
- package/dist/utils-B3xYMrpK.mjs +0 -7
- package/dist/utils-Bz1tG9Dg.cjs +0 -7
- /package/dist/{errors-C0Hx15Ag.mjs → errors-0zGHRLue.mjs} +0 -0
- /package/dist/{errors-Dx6JHoKE.cjs → errors-vKw8CkiX.cjs} +0 -0
- /package/dist/{index-DJYJzs-Z.d.mts → index-1KsTDq4o.d.mts} +0 -0
- /package/dist/{meta-loader-Bq-MjTXB.mjs → meta-loader-C4Hu9RN9.mjs} +0 -0
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
const
|
|
7
|
-
const require_image = require('./image-
|
|
6
|
+
const require_link = require('./link-D1Gjkb-2.cjs');
|
|
7
|
+
const require_image = require('./image-C4TlpMHn.cjs');
|
|
8
8
|
let react = require("react");
|
|
9
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
10
|
let react_aria_components = require("react-aria-components");
|
|
@@ -44,9 +44,9 @@ const Field = ({ children, name, type, description, required }) => /* @__PURE__
|
|
|
44
44
|
//#endregion
|
|
45
45
|
//#region src/client/components/mdx/typographics.tsx
|
|
46
46
|
const Anchor = ({ href, children, className, ...props }) => {
|
|
47
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
47
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Link, {
|
|
48
48
|
href: href || "",
|
|
49
|
-
className:
|
|
49
|
+
className: require_link.cn("text-primary-500 hover:text-primary-400 dark:text-primary-500 hover:underline font-medium transition-colors duration-200", className),
|
|
50
50
|
...props,
|
|
51
51
|
children
|
|
52
52
|
});
|
|
@@ -62,7 +62,7 @@ const HEADING_CLASSES = {
|
|
|
62
62
|
const Heading = ({ level, className, ...props }) => {
|
|
63
63
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.Heading, {
|
|
64
64
|
level,
|
|
65
|
-
className:
|
|
65
|
+
className: require_link.cn(HEADING_CLASSES[level] || "", className),
|
|
66
66
|
...props
|
|
67
67
|
});
|
|
68
68
|
};
|
|
@@ -93,39 +93,39 @@ const Typographics = {
|
|
|
93
93
|
...props
|
|
94
94
|
}),
|
|
95
95
|
p: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
96
|
-
className:
|
|
96
|
+
className: require_link.cn("text-paragraph leading-relaxed my-5", className),
|
|
97
97
|
...props
|
|
98
98
|
}),
|
|
99
99
|
strong: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
|
|
100
|
-
className:
|
|
100
|
+
className: require_link.cn("font-semibold text-body", className),
|
|
101
101
|
...props
|
|
102
102
|
}),
|
|
103
103
|
mark: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("mark", {
|
|
104
|
-
className:
|
|
104
|
+
className: require_link.cn("bg-primary-500/10 text-primary-500 font-semibold px-1.5 py-0.5 rounded-md", className),
|
|
105
105
|
...props
|
|
106
106
|
}),
|
|
107
107
|
code: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
|
|
108
|
-
className:
|
|
108
|
+
className: require_link.cn("bg-code-bg text-code-text rounded-md px-1.5 py-0.5 text-[0.875em] font-mono font-medium", className),
|
|
109
109
|
...props
|
|
110
110
|
}),
|
|
111
111
|
blockquote: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("blockquote", {
|
|
112
|
-
className:
|
|
112
|
+
className: require_link.cn("border-l-4 border-primary-500 bg-soft/30 pl-4 py-2 my-6 italic text-muted rounded-r-lg", className),
|
|
113
113
|
...props
|
|
114
114
|
}),
|
|
115
115
|
hr: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", {
|
|
116
|
-
className:
|
|
116
|
+
className: require_link.cn("my-8 border-t border-subtle", className),
|
|
117
117
|
...props
|
|
118
118
|
}),
|
|
119
119
|
ul: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
120
|
-
className:
|
|
120
|
+
className: require_link.cn("list-disc pl-6 my-5 space-y-2 text-paragraph", className),
|
|
121
121
|
...props
|
|
122
122
|
}),
|
|
123
123
|
ol: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ol", {
|
|
124
|
-
className:
|
|
124
|
+
className: require_link.cn("list-decimal pl-6 my-5 space-y-2 text-paragraph", className),
|
|
125
125
|
...props
|
|
126
126
|
}),
|
|
127
127
|
li: ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
128
|
-
className:
|
|
128
|
+
className: require_link.cn("pl-1", className),
|
|
129
129
|
...props
|
|
130
130
|
})
|
|
131
131
|
};
|
|
@@ -140,20 +140,20 @@ const Table = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
|
140
140
|
})
|
|
141
141
|
});
|
|
142
142
|
const TableHead = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("thead", {
|
|
143
|
-
className:
|
|
143
|
+
className: require_link.cn("border-b border-subtle bg-soft/50", props.className),
|
|
144
144
|
...props
|
|
145
145
|
});
|
|
146
146
|
const TableBody = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tbody", { ...props });
|
|
147
147
|
const TableRow = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", {
|
|
148
|
-
className:
|
|
148
|
+
className: require_link.cn("border-b border-subtle last:border-0 even:bg-soft/10 hover:bg-soft/20 transition-colors", props.className),
|
|
149
149
|
...props
|
|
150
150
|
});
|
|
151
151
|
const TableHeader = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("th", {
|
|
152
|
-
className:
|
|
152
|
+
className: require_link.cn("px-4 py-3 font-semibold text-body text-xs font-mono", props.className),
|
|
153
153
|
...props
|
|
154
154
|
});
|
|
155
155
|
const TableCell = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("td", {
|
|
156
|
-
className:
|
|
156
|
+
className: require_link.cn("px-4 py-3 text-paragraph leading-relaxed", props.className),
|
|
157
157
|
...props
|
|
158
158
|
});
|
|
159
159
|
const TableComponents = {
|
|
@@ -172,35 +172,35 @@ const variantStyles = {
|
|
|
172
172
|
container: "bg-slate-500/5 dark:bg-slate-500/10 border-slate-500/40 text-slate-800 dark:text-slate-200",
|
|
173
173
|
titleText: "text-slate-900 dark:text-slate-100",
|
|
174
174
|
iconColor: "text-slate-500",
|
|
175
|
-
icon:
|
|
175
|
+
icon: require_link.Info,
|
|
176
176
|
defaultTitle: "Note"
|
|
177
177
|
},
|
|
178
178
|
info: {
|
|
179
179
|
container: "bg-indigo-500/5 dark:bg-indigo-500/10 border-indigo-500/40 text-indigo-800 dark:text-indigo-200",
|
|
180
180
|
titleText: "text-indigo-900 dark:text-indigo-100",
|
|
181
181
|
iconColor: "text-indigo-500",
|
|
182
|
-
icon:
|
|
182
|
+
icon: require_link.Info,
|
|
183
183
|
defaultTitle: "Info"
|
|
184
184
|
},
|
|
185
185
|
tip: {
|
|
186
186
|
container: "bg-green-500/5 dark:bg-green-500/10 border-green-500/40 text-green-800 dark:text-green-200",
|
|
187
187
|
titleText: "text-green-900 dark:text-green-100",
|
|
188
188
|
iconColor: "text-green-500",
|
|
189
|
-
icon:
|
|
189
|
+
icon: require_link.Lightbulb,
|
|
190
190
|
defaultTitle: "Tip"
|
|
191
191
|
},
|
|
192
192
|
warning: {
|
|
193
193
|
container: "bg-amber-500/5 dark:bg-amber-500/10 border-amber-500/40 text-amber-800 dark:text-amber-200",
|
|
194
194
|
titleText: "text-amber-900 dark:text-amber-100",
|
|
195
195
|
iconColor: "text-amber-500",
|
|
196
|
-
icon:
|
|
196
|
+
icon: require_link.AlertTriangle,
|
|
197
197
|
defaultTitle: "Warning"
|
|
198
198
|
},
|
|
199
199
|
danger: {
|
|
200
200
|
container: "bg-rose-500/5 dark:bg-rose-500/10 border-rose-500/40 text-rose-800 dark:text-rose-200",
|
|
201
201
|
titleText: "text-rose-900 dark:text-rose-100",
|
|
202
202
|
iconColor: "text-rose-500",
|
|
203
|
-
icon:
|
|
203
|
+
icon: require_link.AlertCircle,
|
|
204
204
|
defaultTitle: "Danger"
|
|
205
205
|
}
|
|
206
206
|
};
|
|
@@ -208,15 +208,15 @@ function Callout({ children, className = "", variant = "note", title, ...props }
|
|
|
208
208
|
const styles = variantStyles[variant] || variantStyles.note;
|
|
209
209
|
const Icon = styles.icon;
|
|
210
210
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
211
|
-
className:
|
|
211
|
+
className: require_link.cn("my-6 flex gap-4 p-4 rounded-xl border-2", styles.container, className),
|
|
212
212
|
...props,
|
|
213
213
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
214
|
-
className:
|
|
215
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "w-5 h-5 stroke-
|
|
214
|
+
className: require_link.cn("shrink-0 pt-0.5", styles.iconColor),
|
|
215
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, { className: "w-5 h-5 stroke-2" })
|
|
216
216
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
217
217
|
className: "flex-1 text-[0.875rem] leading-[1.6]",
|
|
218
218
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
219
|
-
className:
|
|
219
|
+
className: require_link.cn("font-bold text-sm mb-1", styles.titleText),
|
|
220
220
|
children: title || styles.defaultTitle
|
|
221
221
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
222
222
|
className: "prose prose-neutral dark:prose-invert max-w-none [&>p]:m-0 [&>p+p]:mt-2",
|
|
@@ -252,33 +252,14 @@ const copyToClipboard = async (text) => {
|
|
|
252
252
|
|
|
253
253
|
//#endregion
|
|
254
254
|
//#region src/client/components/mdx/use-code-block.ts
|
|
255
|
-
const langIconMap = {
|
|
256
|
-
ts: require_icons_dev.TypeScript,
|
|
257
|
-
tsx: require_icons_dev.React,
|
|
258
|
-
js: require_icons_dev.JavaScript,
|
|
259
|
-
jsx: require_icons_dev.React,
|
|
260
|
-
json: require_icons_dev.Json,
|
|
261
|
-
css: require_icons_dev.Css,
|
|
262
|
-
html: require_icons_dev.BracketsOrange,
|
|
263
|
-
md: require_icons_dev.Markdown,
|
|
264
|
-
mdx: require_icons_dev.Markdown,
|
|
265
|
-
bash: require_icons_dev.Shell,
|
|
266
|
-
sh: require_icons_dev.Shell,
|
|
267
|
-
yaml: require_icons_dev.Yaml,
|
|
268
|
-
yml: require_icons_dev.Yaml,
|
|
269
|
-
rs: require_icons_dev.Rust,
|
|
270
|
-
rust: require_icons_dev.Rust,
|
|
271
|
-
toml: require_icons_dev.BracketsRed,
|
|
272
|
-
csv: require_icons_dev.Csv
|
|
273
|
-
};
|
|
274
255
|
function useCodeBlock(props) {
|
|
275
256
|
const [copied, setCopied] = (0, react.useState)(false);
|
|
276
257
|
const [isExpanded, setIsExpanded] = (0, react.useState)(false);
|
|
277
258
|
const [isExpandable, setIsExpandable] = (0, react.useState)(false);
|
|
259
|
+
const [rated, setRated] = (0, react.useState)(null);
|
|
278
260
|
const preRef = (0, react.useRef)(null);
|
|
279
261
|
const timerRef = (0, react.useRef)(null);
|
|
280
|
-
const
|
|
281
|
-
const customConfig = require_icons_dev.useConfig().integrations?.feedback?.custom;
|
|
262
|
+
const customConfig = require_link.useConfig().integrations?.feedback?.custom;
|
|
282
263
|
const showCodeBlockFeedback = !!(customConfig?.enabled && !props.plain);
|
|
283
264
|
const lang = props.lang || props["data-lang"] || "";
|
|
284
265
|
const isHighlighted = props["data-highlighted"] === "true" || typeof props.className === "string" && props.className.includes("shiki");
|
|
@@ -330,7 +311,6 @@ function useCodeBlock(props) {
|
|
|
330
311
|
const lines = (preRef.current?.textContent ?? "").trim().split("\n").length;
|
|
331
312
|
setIsExpandable(lines > 6);
|
|
332
313
|
}, [props.children, props.highlightedHtml]);
|
|
333
|
-
const LangIcon = langIconMap[lang] || require_icons_dev.File;
|
|
334
314
|
return {
|
|
335
315
|
copied,
|
|
336
316
|
isExpanded,
|
|
@@ -345,8 +325,7 @@ function useCodeBlock(props) {
|
|
|
345
325
|
lang,
|
|
346
326
|
showCodeBlockFeedback,
|
|
347
327
|
rated,
|
|
348
|
-
handleRate
|
|
349
|
-
LangIcon
|
|
328
|
+
handleRate
|
|
350
329
|
};
|
|
351
330
|
}
|
|
352
331
|
|
|
@@ -357,9 +336,9 @@ const CopyButton = ({ copied, handleCopy }) => {
|
|
|
357
336
|
content: copied ? "Copied!" : "Copy code",
|
|
358
337
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
|
|
359
338
|
onPress: handleCopy,
|
|
360
|
-
className:
|
|
339
|
+
className: require_link.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", copied ? "text-emerald-400" : "text-muted hover:text-body"),
|
|
361
340
|
"aria-label": "Copy code",
|
|
362
|
-
children: copied ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
341
|
+
children: copied ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Check, { size: 20 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_link.Copy, { size: 20 })
|
|
363
342
|
})
|
|
364
343
|
});
|
|
365
344
|
};
|
|
@@ -369,9 +348,9 @@ const CodeBlockFeedback = ({ rated, onRate }) => {
|
|
|
369
348
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.Tooltip, {
|
|
370
349
|
content: rated === "up" ? "Helpful!" : "This code is helpful",
|
|
371
350
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
|
|
372
|
-
onPress: () => onRate("up"),
|
|
373
|
-
|
|
374
|
-
className:
|
|
351
|
+
onPress: (() => onRate("up")),
|
|
352
|
+
isDisabled: rated !== null,
|
|
353
|
+
className: require_link.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", rated === "up" ? "text-emerald-500 dark:text-emerald-400" : rated === "down" ? "opacity-30 cursor-not-allowed text-muted" : "text-muted hover:text-body"),
|
|
375
354
|
"aria-label": "Mark as helpful",
|
|
376
355
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
377
356
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -387,9 +366,9 @@ const CodeBlockFeedback = ({ rated, onRate }) => {
|
|
|
387
366
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.Tooltip, {
|
|
388
367
|
content: rated === "down" ? "Unhelpful" : "This code is unhelpful",
|
|
389
368
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_aria_components.Button, {
|
|
390
|
-
onPress: () => onRate("down"),
|
|
391
|
-
|
|
392
|
-
className:
|
|
369
|
+
onPress: (() => onRate("down")),
|
|
370
|
+
isDisabled: rated !== null,
|
|
371
|
+
className: require_link.cn("grid place-items-center size-8 bg-transparent outline-none cursor-pointer transition-all duration-200 hover:scale-110 active:scale-95 [&>svg]:size-4 [&>svg]:stroke-2 z-10", rated === "down" ? "text-rose-500 dark:text-rose-400" : rated === "up" ? "opacity-30 cursor-not-allowed text-muted" : "text-muted hover:text-body"),
|
|
393
372
|
"aria-label": "Mark as unhelpful",
|
|
394
373
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
395
374
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -408,17 +387,14 @@ const CodeBlockFeedback = ({ rated, onRate }) => {
|
|
|
408
387
|
function CodeBlock(props) {
|
|
409
388
|
const { children, hideCopy = false, highlightedHtml, "data-highlighted-html": dataHighlightedHtml, title, "data-title": dataTitle, "data-lang": dataLang, plain = false, lineNumbers, showLineNumbers, wordWrap, "word-wrap": wordWrapHyphen, metastring, ...rest } = props;
|
|
410
389
|
const { className: shikiClassName, ...cleanRest } = rest;
|
|
411
|
-
const { copied, isExpanded, setIsExpanded, isExpandable, preRef, handleCopy, shouldTruncate, isHighlighted, effectiveHighlightedHtml, effectiveTitle, showCodeBlockFeedback, rated, handleRate
|
|
390
|
+
const { copied, isExpanded, setIsExpanded, isExpandable, preRef, handleCopy, shouldTruncate, isHighlighted, effectiveHighlightedHtml, effectiveTitle, showCodeBlockFeedback, rated, handleRate } = useCodeBlock(props);
|
|
412
391
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_image.CodeBlock, {
|
|
413
392
|
plain,
|
|
414
393
|
className: props.className,
|
|
415
394
|
children: [(effectiveTitle || !hideCopy) && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_image.CodeBlockHeader, {
|
|
416
|
-
className:
|
|
417
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.CodeBlockGroup, { children: effectiveTitle && /* @__PURE__ */ (0, react_jsx_runtime.
|
|
418
|
-
|
|
419
|
-
className: "opacity-60"
|
|
420
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: effectiveTitle })] }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
421
|
-
className: "flex items-center gap-1",
|
|
395
|
+
className: require_link.cn({ "absolute top-2 left-0 w-full": !effectiveTitle }),
|
|
396
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_image.CodeBlockGroup, { children: effectiveTitle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: effectiveTitle }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
397
|
+
className: "flex items-center gap-1 bg-(--color-code-bg) pl-2 z-10",
|
|
422
398
|
children: [showCodeBlockFeedback && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CodeBlockFeedback, {
|
|
423
399
|
rated,
|
|
424
400
|
onRate: handleRate
|
|
@@ -435,14 +411,14 @@ function CodeBlock(props) {
|
|
|
435
411
|
dangerouslySetInnerHTML: { __html: effectiveHighlightedHtml }
|
|
436
412
|
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("pre", {
|
|
437
413
|
ref: preRef,
|
|
438
|
-
className:
|
|
414
|
+
className: require_link.cn("m-0! rounded-none! border-none! bg-transparent!", "text-[0.875rem] leading-[1.6] overflow-x-auto", shikiClassName, {
|
|
439
415
|
"p-0! [&>code]:grid! [&>code]:p-5! [&>code]:bg-transparent!": isHighlighted,
|
|
440
416
|
"p-5!": !isHighlighted
|
|
441
417
|
}),
|
|
442
418
|
...cleanRest,
|
|
443
419
|
children
|
|
444
420
|
}), isExpandable && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
445
|
-
className:
|
|
421
|
+
className: require_link.cn({
|
|
446
422
|
"absolute bottom-0 inset-x-0 h-32 flex items-end justify-center pb-4 z-10": shouldTruncate,
|
|
447
423
|
"relative flex justify-center pb-4 pt-1 -mt-4": !shouldTruncate
|
|
448
424
|
}),
|
|
@@ -474,7 +450,7 @@ const Image = ({ src, alt, title, theme, className, ...props }) => {
|
|
|
474
450
|
theme,
|
|
475
451
|
loading: "lazy",
|
|
476
452
|
decoding: "async",
|
|
477
|
-
className:
|
|
453
|
+
className: require_link.cn("w-full h-auto object-contain transition-transform duration-500 group-hover:scale-[1.01] my-0 rounded-md sm:rounded-xl block", className),
|
|
478
454
|
...props
|
|
479
455
|
})
|
|
480
456
|
}), caption && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("figcaption", {
|
|
@@ -506,7 +482,7 @@ function Card({ className, title, icon, href, children, ...props }) {
|
|
|
506
482
|
ref: cardRef,
|
|
507
483
|
href,
|
|
508
484
|
onMouseMove: handleMouseMove,
|
|
509
|
-
className:
|
|
485
|
+
className: require_link.cn("group relative flex flex-col gap-3 rounded-2xl border p-6 overflow-hidden", "transition-[box-shadow,transform] duration-300", "hover:shadow-lg dark:hover:shadow-none hover:-translate-y-0.5", "bg-surface border-subtle text-paragraph", href && "cursor-pointer", className),
|
|
510
486
|
...props,
|
|
511
487
|
children: [
|
|
512
488
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -526,7 +502,7 @@ function Card({ className, title, icon, href, children, ...props }) {
|
|
|
526
502
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
527
503
|
className: "relative z-10 flex items-center gap-3",
|
|
528
504
|
children: [icon && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
529
|
-
className:
|
|
505
|
+
className: require_link.cn("shrink-0 transition-transform duration-500 group-hover:rotate-15 group-hover:scale-110 flex items-center justify-center text-muted group-hover:text-primary-500", "[&>svg]:w-6 [&>svg]:h-6 [&>svg]:stroke-[1.5]"),
|
|
530
506
|
children: icon
|
|
531
507
|
}), title && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
532
508
|
className: "font-semibold text-base m-0 leading-none text-body",
|
|
@@ -545,7 +521,7 @@ function Card({ className, title, icon, href, children, ...props }) {
|
|
|
545
521
|
//#region src/client/components/mdx/cards.tsx
|
|
546
522
|
function Cards({ children, className, cols = 2, ...props }) {
|
|
547
523
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
548
|
-
className:
|
|
524
|
+
className: require_link.cn("grid gap-4 my-6", {
|
|
549
525
|
"grid-cols-1": cols === 1,
|
|
550
526
|
"grid-cols-1 sm:grid-cols-2": cols === 2,
|
|
551
527
|
"grid-cols-1 sm:grid-cols-2 md:grid-cols-3": cols === 3,
|
|
@@ -580,6 +556,184 @@ function LastUpdated({ date }) {
|
|
|
580
556
|
});
|
|
581
557
|
}
|
|
582
558
|
|
|
559
|
+
//#endregion
|
|
560
|
+
//#region src/client/components/mdx/timeline.tsx
|
|
561
|
+
const VARIANT_PALETTE = {
|
|
562
|
+
primary: {
|
|
563
|
+
ring: "border-primary-500/70",
|
|
564
|
+
fill: "bg-primary-500",
|
|
565
|
+
badgeBg: "bg-primary-500/10",
|
|
566
|
+
badgeText: "text-primary-600 dark:text-primary-400",
|
|
567
|
+
badgeBorder: "border-primary-500/30"
|
|
568
|
+
},
|
|
569
|
+
success: {
|
|
570
|
+
ring: "border-success-500/70",
|
|
571
|
+
fill: "bg-success-500",
|
|
572
|
+
badgeBg: "bg-success-500/10",
|
|
573
|
+
badgeText: "text-success-500",
|
|
574
|
+
badgeBorder: "border-success-500/30"
|
|
575
|
+
},
|
|
576
|
+
info: {
|
|
577
|
+
ring: "border-info-500/70",
|
|
578
|
+
fill: "bg-info-500",
|
|
579
|
+
badgeBg: "bg-info-500/10",
|
|
580
|
+
badgeText: "text-info-500",
|
|
581
|
+
badgeBorder: "border-info-500/30"
|
|
582
|
+
},
|
|
583
|
+
warning: {
|
|
584
|
+
ring: "border-warning-500/70",
|
|
585
|
+
fill: "bg-warning-500",
|
|
586
|
+
badgeBg: "bg-warning-500/10",
|
|
587
|
+
badgeText: "text-warning-500",
|
|
588
|
+
badgeBorder: "border-warning-500/30"
|
|
589
|
+
},
|
|
590
|
+
danger: {
|
|
591
|
+
ring: "border-danger-500/70",
|
|
592
|
+
fill: "bg-danger-500",
|
|
593
|
+
badgeBg: "bg-danger-500/10",
|
|
594
|
+
badgeText: "text-danger-500",
|
|
595
|
+
badgeBorder: "border-danger-500/30"
|
|
596
|
+
},
|
|
597
|
+
major: {
|
|
598
|
+
ring: "",
|
|
599
|
+
fill: "",
|
|
600
|
+
badgeBg: "",
|
|
601
|
+
badgeText: "",
|
|
602
|
+
badgeBorder: ""
|
|
603
|
+
},
|
|
604
|
+
minor: {
|
|
605
|
+
ring: "",
|
|
606
|
+
fill: "",
|
|
607
|
+
badgeBg: "",
|
|
608
|
+
badgeText: "",
|
|
609
|
+
badgeBorder: ""
|
|
610
|
+
},
|
|
611
|
+
patch: {
|
|
612
|
+
ring: "",
|
|
613
|
+
fill: "",
|
|
614
|
+
badgeBg: "",
|
|
615
|
+
badgeText: "",
|
|
616
|
+
badgeBorder: ""
|
|
617
|
+
},
|
|
618
|
+
new: {
|
|
619
|
+
ring: "",
|
|
620
|
+
fill: "",
|
|
621
|
+
badgeBg: "",
|
|
622
|
+
badgeText: "",
|
|
623
|
+
badgeBorder: ""
|
|
624
|
+
},
|
|
625
|
+
deprecated: {
|
|
626
|
+
ring: "",
|
|
627
|
+
fill: "",
|
|
628
|
+
badgeBg: "",
|
|
629
|
+
badgeText: "",
|
|
630
|
+
badgeBorder: ""
|
|
631
|
+
},
|
|
632
|
+
breaking: {
|
|
633
|
+
ring: "",
|
|
634
|
+
fill: "",
|
|
635
|
+
badgeBg: "",
|
|
636
|
+
badgeText: "",
|
|
637
|
+
badgeBorder: ""
|
|
638
|
+
}
|
|
639
|
+
};
|
|
640
|
+
Object.assign(VARIANT_PALETTE, {
|
|
641
|
+
major: VARIANT_PALETTE.primary,
|
|
642
|
+
minor: VARIANT_PALETTE.success,
|
|
643
|
+
patch: VARIANT_PALETTE.info,
|
|
644
|
+
new: VARIANT_PALETTE.primary,
|
|
645
|
+
deprecated: VARIANT_PALETTE.warning,
|
|
646
|
+
breaking: VARIANT_PALETTE.danger
|
|
647
|
+
});
|
|
648
|
+
function normalizeBadge(badge) {
|
|
649
|
+
if (!badge) return null;
|
|
650
|
+
if (typeof badge === "string") return {
|
|
651
|
+
text: badge,
|
|
652
|
+
variant: "primary"
|
|
653
|
+
};
|
|
654
|
+
return {
|
|
655
|
+
text: badge.text,
|
|
656
|
+
variant: badge.variant ?? "primary"
|
|
657
|
+
};
|
|
658
|
+
}
|
|
659
|
+
function formatDate(date, locale) {
|
|
660
|
+
if (date === void 0 || date === null || date === "") return null;
|
|
661
|
+
const d = date instanceof Date ? date : new Date(date);
|
|
662
|
+
if (Number.isNaN(d.getTime())) return null;
|
|
663
|
+
return d.toLocaleDateString(locale ?? "en-US", {
|
|
664
|
+
year: "numeric",
|
|
665
|
+
month: "short",
|
|
666
|
+
day: "numeric"
|
|
667
|
+
});
|
|
668
|
+
}
|
|
669
|
+
const VARIANT_DEFAULT_ICON = {
|
|
670
|
+
success: require_link.Check,
|
|
671
|
+
info: require_link.Info,
|
|
672
|
+
warning: require_link.AlertTriangle,
|
|
673
|
+
danger: require_link.AlertCircle
|
|
674
|
+
};
|
|
675
|
+
function TimelineRoot({ children, className, compact = false, ...props }) {
|
|
676
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("ol", {
|
|
677
|
+
role: "list",
|
|
678
|
+
className: require_link.cn("relative my-8 ms-3", compact ? "space-y-3" : "space-y-7", className),
|
|
679
|
+
...props,
|
|
680
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
681
|
+
"aria-hidden": "true",
|
|
682
|
+
className: "pointer-events-none absolute top-3 bottom-3 start-[5.5px] w-px bg-subtle"
|
|
683
|
+
}), children]
|
|
684
|
+
});
|
|
685
|
+
}
|
|
686
|
+
function TimelineItem({ date, title, badge, icon, variant = "primary", locale, className, children, ...props }) {
|
|
687
|
+
const palette = VARIANT_PALETTE[variant] ?? VARIANT_PALETTE.primary;
|
|
688
|
+
const formatted = formatDate(date, locale);
|
|
689
|
+
const badgeCfg = normalizeBadge(badge);
|
|
690
|
+
const FallbackIcon = VARIANT_DEFAULT_ICON[variant];
|
|
691
|
+
const dot = icon ?? (FallbackIcon ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FallbackIcon, {
|
|
692
|
+
size: 12,
|
|
693
|
+
className: "text-white",
|
|
694
|
+
"aria-hidden": "true"
|
|
695
|
+
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
696
|
+
"aria-hidden": "true",
|
|
697
|
+
className: require_link.cn("w-2 h-2 rounded-full", palette.fill)
|
|
698
|
+
}));
|
|
699
|
+
const ariaLabel = [formatted, typeof title === "string" ? title : null].filter(Boolean).join(" - ") || void 0;
|
|
700
|
+
const a11yProps = ariaLabel ? {
|
|
701
|
+
role: "img",
|
|
702
|
+
"aria-label": ariaLabel
|
|
703
|
+
} : { "aria-hidden": "true" };
|
|
704
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
|
|
705
|
+
className: require_link.cn("relative ps-8", className),
|
|
706
|
+
...props,
|
|
707
|
+
children: [
|
|
708
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
709
|
+
...a11yProps,
|
|
710
|
+
className: require_link.cn("absolute start-0 top-1 flex items-center justify-center w-3 h-3 rounded-full", "bg-surface border-2 shadow-sm", palette.ring),
|
|
711
|
+
children: dot
|
|
712
|
+
}),
|
|
713
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
714
|
+
className: "flex items-center gap-2 flex-wrap mb-1",
|
|
715
|
+
children: [formatted && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("time", {
|
|
716
|
+
dateTime: date instanceof Date ? date.toISOString() : new Date(date).toISOString(),
|
|
717
|
+
className: "text-[11px] uppercase tracking-wider font-mono tabular-nums text-muted select-none",
|
|
718
|
+
children: formatted
|
|
719
|
+
}), badgeCfg && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
720
|
+
className: require_link.cn("inline-flex items-center px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wide border", palette.badgeBg, palette.badgeText, palette.badgeBorder),
|
|
721
|
+
children: badgeCfg.text
|
|
722
|
+
})]
|
|
723
|
+
}),
|
|
724
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", {
|
|
725
|
+
className: "text-base font-semibold text-body m-0 leading-snug",
|
|
726
|
+
children: title
|
|
727
|
+
}),
|
|
728
|
+
children && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
729
|
+
className: "mt-2 text-[0.9rem] leading-[1.6] text-paragraph prose prose-neutral dark:prose-invert max-w-none [&>p]:m-0 [&>p+p]:mt-2 [&_a]:text-primary-500 [&_a]:no-underline hover:[&_a]:underline",
|
|
730
|
+
children
|
|
731
|
+
})
|
|
732
|
+
]
|
|
733
|
+
});
|
|
734
|
+
}
|
|
735
|
+
const Timeline = Object.assign(TimelineRoot, { Item: TimelineItem });
|
|
736
|
+
|
|
583
737
|
//#endregion
|
|
584
738
|
//#region src/client/components/mdx/index.ts
|
|
585
739
|
const mdx_components_default = {
|
|
@@ -591,10 +745,17 @@ const mdx_components_default = {
|
|
|
591
745
|
Field,
|
|
592
746
|
Callout,
|
|
593
747
|
Card,
|
|
594
|
-
Cards
|
|
748
|
+
Cards,
|
|
749
|
+
Timeline
|
|
595
750
|
};
|
|
596
751
|
|
|
597
752
|
//#endregion
|
|
753
|
+
Object.defineProperty(exports, 'Timeline', {
|
|
754
|
+
enumerable: true,
|
|
755
|
+
get: function () {
|
|
756
|
+
return Timeline;
|
|
757
|
+
}
|
|
758
|
+
});
|
|
598
759
|
Object.defineProperty(exports, 'copyToClipboard', {
|
|
599
760
|
enumerable: true,
|
|
600
761
|
get: function () {
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
const e=require(`./chunk-
|
|
6
|
+
const e=require(`./chunk-D1Md3oWO.cjs`);let t=require(`node:path`);t=e.r(t);let n=require(`@bdocs/dui`),r=require(`fdir`),i=require(`node:fs/promises`);i=e.r(i);async function a(e){let a={};try{let o=(await new r.fdir().withFullPaths().filter(e=>e.endsWith(`meta.json`)).crawl(e).withPromise()).filter(e=>{let n=t.default.basename(e);return n===`meta.json`||n===`_meta.json`}),s=await Promise.allSettled(o.map(async n=>{let r=await i.default.readFile(n,`utf-8`),a=t.default.relative(e,t.default.dirname(n)).replace(/\\/g,`/`);return{key:a===``?`.`:a,content:JSON.parse(r)}}));for(let e of s)e.status===`fulfilled`?a[e.value.key]=e.value.content:(0,n.warn)(`Failed to read meta.json:`,e.reason)}catch(e){(0,n.error)(`Error loading directory metadata:`,e)}return a}exports.loadDirectoryMeta=a;
|
package/dist/node/cache.cjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-
|
|
6
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../chunk-D1Md3oWO.cjs`),t=require(`../utils-D6Xtj0FZ.cjs`);let n=require(`node:path`);n=e.r(n);let r=require(`node:fs/promises`);r=e.r(r);let i=require(`node:crypto`);i=e.r(i);let a=require(`node:zlib`);a=e.r(a);let o=require(`node:util`),s=require(`lru-cache`);const c=r.default.writeFile,l=r.default.readFile,u=r.default.mkdir,d=r.default.rename,f=(0,o.promisify)(a.default.gzip),p=(0,o.promisify)(a.default.gunzip),m=new class{activeTasks=new Set;add(e){let t=Promise.resolve().then(e).catch(()=>{}).finally(()=>{this.activeTasks.delete(t)});this.activeTasks.add(t)}async flush(){await Promise.all(Array.from(this.activeTasks))}get pending(){return this.activeTasks.size}};var h=class{entries=new Map;cachePath=null;compress;loaded=!1;constructor(e={}){let r=t.o();if(this.compress=e.compress===void 0?r.compress:e.compress,e.name){let t=e.root||process.cwd(),i=this.compress?`json.gz`:`json`;this.cachePath=n.default.resolve(t,r.dir,`${e.name}.${i}`)}}async load(){if(!this.loaded&&!t.o().noCache&&this.cachePath)try{let e=await l(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=await p(new Uint8Array(e)));let t=JSON.parse(e.toString(`utf-8`));this.entries=new Map(Object.entries(t)),this.loaded=!0}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(t.o().noCache||!this.cachePath)return;let e=Object.fromEntries(this.entries),r=JSON.stringify(e),a=this.cachePath,o=this.compress;m.add(async()=>{try{await u(n.default.dirname(a),{recursive:!0});let e=Buffer.from(r);o&&(e=await f(e));let t=`${a}.${i.default.randomBytes(4).toString(`hex`)}.tmp`;await c(t,e),await d(t,a)}catch{}})}get(e){let n=this.entries.get(e);return!n||t.s(e)!==n.mtime?null:n.data}getStale(e){let t=this.entries.get(e);return t?t.data:null}set(e,n){this.entries.set(e,{data:n,mtime:t.s(e)})}isValid(e){let n=this.entries.get(e);return n?t.s(e)===n.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear(),this.loaded=!1}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await m.flush()}},g=class{index=new Map;memoryCache;baseDir;shardsDir;indexPath;saveTimeout=null;constructor(e,r=process.cwd()){let i=t.o();this.baseDir=n.default.resolve(r,i.dir,`transform-${e}`),this.shardsDir=n.default.resolve(this.baseDir,`shards`),this.indexPath=n.default.resolve(this.baseDir,`index.json`),this.memoryCache=new s.LRUCache({max:i.lruLimit,ttl:i.lruTTL,updateAgeOnGet:!0})}async load(){if(!t.o().noCache)try{let e=await l(this.indexPath,`utf-8`);this.index=new Map(Object.entries(JSON.parse(e)))}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(t.o().noCache)return;let e=JSON.stringify(Object.fromEntries(this.index)),r=this.indexPath;m.add(async()=>{try{await u(n.default.dirname(r),{recursive:!0}),await c(r,e)}catch{}})}async getMany(e){let t=new Map,r=[];for(let n of e){let e=this.memoryCache.get(n);e?t.set(n,e):this.index.has(n)&&r.push(n)}if(r.length>0){let e=await Promise.all(r.map(async e=>{let t=this.index.get(e),r=n.default.resolve(this.shardsDir,`${t}.gz`);try{let t=await l(r),n=(await p(new Uint8Array(t))).toString(`utf-8`);return this.memoryCache.set(e,n),{key:e,val:n}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}async getAsync(e){let t=this.memoryCache.get(e);if(t)return t;let r=this.index.get(e);if(!r)return null;let i=n.default.resolve(this.shardsDir,`${r}.gz`);try{let t=(await p(await l(i))).toString(`utf-8`);return this.memoryCache.set(e,t),t}catch(e){return e instanceof Error&&e.code,null}}set(e,t){let a=i.default.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,a),this.memoryCache.set(e,t);let o=n.default.resolve(this.shardsDir,`${a}.gz`);m.add(async()=>{try{try{await r.default.access(o);return}catch{}await u(this.shardsDir,{recursive:!0});let e=await f(new Uint8Array(Buffer.from(t))),n=`${o}.${i.default.randomBytes(4).toString(`hex`)}.tmp`;await c(n,new Uint8Array(e)),await d(n,o)}catch{}}),this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.save()},500),typeof this.saveTimeout.unref==`function`&&this.saveTimeout.unref()}get size(){return this.index.size}async flush(){await m.flush()}};async function _(){await m.flush()}exports.FileCache=h,exports.TransformCache=g,exports.flushCache=_,exports.globalBackgroundQueue=m;
|
package/dist/node/cache.d.cts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
declare class BackgroundQueue {
|
|
7
7
|
private activeTasks;
|
|
8
|
-
add(task: () => Promise<
|
|
8
|
+
add(task: () => Promise<void>): void;
|
|
9
9
|
flush(): Promise<void>;
|
|
10
10
|
get pending(): number;
|
|
11
11
|
}
|
|
@@ -17,6 +17,7 @@ declare class FileCache<T> {
|
|
|
17
17
|
private entries;
|
|
18
18
|
private readonly cachePath;
|
|
19
19
|
private readonly compress;
|
|
20
|
+
private loaded;
|
|
20
21
|
constructor(options?: {
|
|
21
22
|
name?: string;
|
|
22
23
|
root?: string;
|
package/dist/node/cache.d.mts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
declare class BackgroundQueue {
|
|
7
7
|
private activeTasks;
|
|
8
|
-
add(task: () => Promise<
|
|
8
|
+
add(task: () => Promise<void>): void;
|
|
9
9
|
flush(): Promise<void>;
|
|
10
10
|
get pending(): number;
|
|
11
11
|
}
|
|
@@ -17,6 +17,7 @@ declare class FileCache<T> {
|
|
|
17
17
|
private entries;
|
|
18
18
|
private readonly cachePath;
|
|
19
19
|
private readonly compress;
|
|
20
|
+
private loaded;
|
|
20
21
|
constructor(options?: {
|
|
21
22
|
name?: string;
|
|
22
23
|
root?: string;
|
package/dist/node/cache.mjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Copyright (c) 2026 Jesus Alcala
|
|
4
4
|
* Licensed under the MIT License.
|
|
5
5
|
*/
|
|
6
|
-
import{o as e,s as t}from"../utils-
|
|
6
|
+
import{o as e,s as t}from"../utils-Crm9oPcV.mjs";import n from"node:path";import r from"node:fs/promises";import i from"node:crypto";import a from"node:zlib";import{promisify as o}from"node:util";import{LRUCache as s}from"lru-cache";const c=r.writeFile,l=r.readFile,u=r.mkdir,d=r.rename,f=o(a.gzip),p=o(a.gunzip),m=new class{activeTasks=new Set;add(e){let t=Promise.resolve().then(e).catch(()=>{}).finally(()=>{this.activeTasks.delete(t)});this.activeTasks.add(t)}async flush(){await Promise.all(Array.from(this.activeTasks))}get pending(){return this.activeTasks.size}};var h=class{entries=new Map;cachePath=null;compress;loaded=!1;constructor(t={}){let r=e();if(this.compress=t.compress===void 0?r.compress:t.compress,t.name){let e=t.root||process.cwd(),i=this.compress?`json.gz`:`json`;this.cachePath=n.resolve(e,r.dir,`${t.name}.${i}`)}}async load(){if(!this.loaded&&!e().noCache&&this.cachePath)try{let e=await l(this.cachePath);this.cachePath.endsWith(`.gz`)&&(e=await p(new Uint8Array(e)));let t=JSON.parse(e.toString(`utf-8`));this.entries=new Map(Object.entries(t)),this.loaded=!0}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(e().noCache||!this.cachePath)return;let t=Object.fromEntries(this.entries),r=JSON.stringify(t),a=this.cachePath,o=this.compress;m.add(async()=>{try{await u(n.dirname(a),{recursive:!0});let e=Buffer.from(r);o&&(e=await f(e));let t=`${a}.${i.randomBytes(4).toString(`hex`)}.tmp`;await c(t,e),await d(t,a)}catch{}})}get(e){let n=this.entries.get(e);return!n||t(e)!==n.mtime?null:n.data}getStale(e){let t=this.entries.get(e);return t?t.data:null}set(e,n){this.entries.set(e,{data:n,mtime:t(e)})}isValid(e){let n=this.entries.get(e);return n?t(e)===n.mtime:!1}invalidate(e){this.entries.delete(e)}invalidateAll(){this.entries.clear(),this.loaded=!1}pruneStale(e){for(let t of this.entries.keys())e.has(t)||this.entries.delete(t)}get size(){return this.entries.size}async flush(){await m.flush()}},g=class{index=new Map;memoryCache;baseDir;shardsDir;indexPath;saveTimeout=null;constructor(t,r=process.cwd()){let i=e();this.baseDir=n.resolve(r,i.dir,`transform-${t}`),this.shardsDir=n.resolve(this.baseDir,`shards`),this.indexPath=n.resolve(this.baseDir,`index.json`),this.memoryCache=new s({max:i.lruLimit,ttl:i.lruTTL,updateAgeOnGet:!0})}async load(){if(!e().noCache)try{let e=await l(this.indexPath,`utf-8`);this.index=new Map(Object.entries(JSON.parse(e)))}catch(e){if(e instanceof Error&&e.code===`ENOENT`)return}}save(){if(e().noCache)return;let t=JSON.stringify(Object.fromEntries(this.index)),r=this.indexPath;m.add(async()=>{try{await u(n.dirname(r),{recursive:!0}),await c(r,t)}catch{}})}async getMany(e){let t=new Map,r=[];for(let n of e){let e=this.memoryCache.get(n);e?t.set(n,e):this.index.has(n)&&r.push(n)}if(r.length>0){let e=await Promise.all(r.map(async e=>{let t=this.index.get(e),r=n.resolve(this.shardsDir,`${t}.gz`);try{let t=await l(r),n=(await p(new Uint8Array(t))).toString(`utf-8`);return this.memoryCache.set(e,n),{key:e,val:n}}catch{return null}}));for(let n of e)n&&t.set(n.key,n.val)}return t}async getAsync(e){let t=this.memoryCache.get(e);if(t)return t;let r=this.index.get(e);if(!r)return null;let i=n.resolve(this.shardsDir,`${r}.gz`);try{let t=(await p(await l(i))).toString(`utf-8`);return this.memoryCache.set(e,t),t}catch(e){return e instanceof Error&&e.code,null}}set(e,t){let a=i.createHash(`md5`).update(t).digest(`hex`);this.index.set(e,a),this.memoryCache.set(e,t);let o=n.resolve(this.shardsDir,`${a}.gz`);m.add(async()=>{try{try{await r.access(o);return}catch{}await u(this.shardsDir,{recursive:!0});let e=await f(new Uint8Array(Buffer.from(t))),n=`${o}.${i.randomBytes(4).toString(`hex`)}.tmp`;await c(n,new Uint8Array(e)),await d(n,o)}catch{}}),this.saveTimeout&&clearTimeout(this.saveTimeout),this.saveTimeout=setTimeout(()=>{this.save()},500),typeof this.saveTimeout.unref==`function`&&this.saveTimeout.unref()}get size(){return this.index.size}async flush(){await m.flush()}};async function _(){await m.flush()}export{h as FileCache,g as TransformCache,_ as flushCache,m as globalBackgroundQueue};
|