fumadocs-core 16.4.1 → 16.4.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.
Files changed (278) hide show
  1. package/dist/advanced-BRT5Ij43.js +80 -0
  2. package/dist/advanced-BRT5Ij43.js.map +1 -0
  3. package/dist/algolia-CBBN8R6-.d.ts +68 -0
  4. package/dist/algolia-CBBN8R6-.d.ts.map +1 -0
  5. package/dist/algolia-CQPXCnjV.js +49 -0
  6. package/dist/algolia-CQPXCnjV.js.map +1 -0
  7. package/dist/breadcrumb.d.ts +29 -27
  8. package/dist/breadcrumb.d.ts.map +1 -0
  9. package/dist/breadcrumb.js +55 -72
  10. package/dist/breadcrumb.js.map +1 -0
  11. package/dist/chunk-B-ezknvj.js +42 -0
  12. package/dist/codeblock-utils-lld8UiQo.d.ts +37 -0
  13. package/dist/codeblock-utils-lld8UiQo.d.ts.map +1 -0
  14. package/dist/content/github.d.ts +43 -32
  15. package/dist/content/github.d.ts.map +1 -0
  16. package/dist/content/github.js +29 -43
  17. package/dist/content/github.js.map +1 -0
  18. package/dist/content/index.d.ts +20 -13
  19. package/dist/content/index.d.ts.map +1 -0
  20. package/dist/content/index.js +17 -23
  21. package/dist/content/index.js.map +1 -0
  22. package/dist/content/mdx/preset-bundler.d.ts +22 -24
  23. package/dist/content/mdx/preset-bundler.d.ts.map +1 -0
  24. package/dist/content/mdx/preset-bundler.js +38 -69
  25. package/dist/content/mdx/preset-bundler.js.map +1 -0
  26. package/dist/content/mdx/preset-runtime.d.ts +22 -24
  27. package/dist/content/mdx/preset-runtime.d.ts.map +1 -0
  28. package/dist/content/mdx/preset-runtime.js +36 -68
  29. package/dist/content/mdx/preset-runtime.js.map +1 -0
  30. package/dist/content/toc.d.ts +7 -6
  31. package/dist/content/toc.d.ts.map +1 -0
  32. package/dist/content/toc.js +15 -19
  33. package/dist/content/toc.js.map +1 -0
  34. package/dist/definitions-DuxDer_c.d.ts +62 -0
  35. package/dist/definitions-DuxDer_c.d.ts.map +1 -0
  36. package/dist/dynamic-link.d.ts +7 -5
  37. package/dist/dynamic-link.d.ts.map +1 -0
  38. package/dist/dynamic-link.js +29 -27
  39. package/dist/dynamic-link.js.map +1 -0
  40. package/dist/fetch-B5e9CFfN.js +20 -0
  41. package/dist/fetch-B5e9CFfN.js.map +1 -0
  42. package/dist/framework/index.d.ts +38 -29
  43. package/dist/framework/index.d.ts.map +1 -0
  44. package/dist/framework/index.js +68 -17
  45. package/dist/framework/index.js.map +1 -0
  46. package/dist/framework/next.d.ts +15 -10
  47. package/dist/framework/next.d.ts.map +1 -0
  48. package/dist/framework/next.js +18 -26
  49. package/dist/framework/next.js.map +1 -0
  50. package/dist/framework/react-router.d.ts +15 -10
  51. package/dist/framework/react-router.d.ts.map +1 -0
  52. package/dist/framework/react-router.js +42 -55
  53. package/dist/framework/react-router.js.map +1 -0
  54. package/dist/framework/tanstack.d.ts +15 -10
  55. package/dist/framework/tanstack.d.ts.map +1 -0
  56. package/dist/framework/tanstack.js +54 -69
  57. package/dist/framework/tanstack.js.map +1 -0
  58. package/dist/framework/waku.d.ts +15 -10
  59. package/dist/framework/waku.d.ts.map +1 -0
  60. package/dist/framework/waku.js +47 -58
  61. package/dist/framework/waku.js.map +1 -0
  62. package/dist/highlight/client.d.ts +6 -7
  63. package/dist/highlight/client.d.ts.map +1 -0
  64. package/dist/highlight/client.js +22 -14
  65. package/dist/highlight/client.js.map +1 -0
  66. package/dist/highlight/index.d.ts +2 -30
  67. package/dist/highlight/index.js +3 -13
  68. package/dist/i18n/index.d.ts +2 -39
  69. package/dist/i18n/index.js +6 -7
  70. package/dist/i18n/index.js.map +1 -0
  71. package/dist/i18n/middleware.d.ts +36 -28
  72. package/dist/i18n/middleware.d.ts.map +1 -0
  73. package/dist/i18n/middleware.js +55 -73
  74. package/dist/i18n/middleware.js.map +1 -0
  75. package/dist/icon-Dt7IObrc.js +19 -0
  76. package/dist/icon-Dt7IObrc.js.map +1 -0
  77. package/dist/index-2U6Tl4--.d.ts +379 -0
  78. package/dist/index-2U6Tl4--.d.ts.map +1 -0
  79. package/dist/index-Bw-DCOra.d.ts +41 -0
  80. package/dist/index-Bw-DCOra.d.ts.map +1 -0
  81. package/dist/link.d.ts +17 -15
  82. package/dist/link.d.ts.map +1 -0
  83. package/dist/link.js +29 -9
  84. package/dist/link.js.map +1 -0
  85. package/dist/mdast-utils-mc9-X-PK.js +40 -0
  86. package/dist/mdast-utils-mc9-X-PK.js.map +1 -0
  87. package/dist/mdx-plugins/codeblock-utils.d.ts +2 -29
  88. package/dist/mdx-plugins/codeblock-utils.js +71 -9
  89. package/dist/mdx-plugins/codeblock-utils.js.map +1 -0
  90. package/dist/mdx-plugins/index.d.ts +15 -20
  91. package/dist/mdx-plugins/index.js +18 -73
  92. package/dist/mdx-plugins/rehype-code.d.ts +2 -55
  93. package/dist/mdx-plugins/rehype-code.js +5 -15
  94. package/dist/mdx-plugins/rehype-toc.d.ts +2 -14
  95. package/dist/mdx-plugins/rehype-toc.js +3 -7
  96. package/dist/mdx-plugins/remark-admonition.d.ts +2 -20
  97. package/dist/mdx-plugins/remark-admonition.js +74 -8
  98. package/dist/mdx-plugins/remark-admonition.js.map +1 -0
  99. package/dist/mdx-plugins/remark-code-tab.d.ts +2 -30
  100. package/dist/mdx-plugins/remark-code-tab.js +183 -7
  101. package/dist/mdx-plugins/remark-code-tab.js.map +1 -0
  102. package/dist/mdx-plugins/remark-directive-admonition.d.ts +2 -27
  103. package/dist/mdx-plugins/remark-directive-admonition.js +60 -7
  104. package/dist/mdx-plugins/remark-directive-admonition.js.map +1 -0
  105. package/dist/mdx-plugins/remark-gfm.d.ts +2 -1
  106. package/dist/mdx-plugins/remark-gfm.js +3 -7
  107. package/dist/mdx-plugins/remark-heading.d.ts +2 -31
  108. package/dist/mdx-plugins/remark-heading.js +45 -8
  109. package/dist/mdx-plugins/remark-heading.js.map +1 -0
  110. package/dist/mdx-plugins/remark-image.d.ts +2 -57
  111. package/dist/mdx-plugins/remark-image.js +192 -7
  112. package/dist/mdx-plugins/remark-image.js.map +1 -0
  113. package/dist/mdx-plugins/remark-mdx-files.d.ts +2 -40
  114. package/dist/mdx-plugins/remark-mdx-files.js +187 -7
  115. package/dist/mdx-plugins/remark-mdx-files.js.map +1 -0
  116. package/dist/mdx-plugins/remark-mdx-mermaid.d.ts +2 -15
  117. package/dist/mdx-plugins/remark-mdx-mermaid.js +31 -7
  118. package/dist/mdx-plugins/remark-mdx-mermaid.js.map +1 -0
  119. package/dist/mdx-plugins/remark-npm.d.ts +2 -31
  120. package/dist/mdx-plugins/remark-npm.js +68 -8
  121. package/dist/mdx-plugins/remark-npm.js.map +1 -0
  122. package/dist/mdx-plugins/remark-steps.d.ts +2 -23
  123. package/dist/mdx-plugins/remark-steps.js +77 -7
  124. package/dist/mdx-plugins/remark-steps.js.map +1 -0
  125. package/dist/mdx-plugins/remark-structure.d.ts +2 -71
  126. package/dist/mdx-plugins/remark-structure.js +105 -11
  127. package/dist/mdx-plugins/remark-structure.js.map +1 -0
  128. package/dist/mixedbread-DlByNYSd.js +88 -0
  129. package/dist/mixedbread-DlByNYSd.js.map +1 -0
  130. package/dist/negotiation/index.d.ts +6 -4
  131. package/dist/negotiation/index.d.ts.map +1 -0
  132. package/dist/negotiation/index.js +41 -11
  133. package/dist/negotiation/index.js.map +1 -0
  134. package/dist/normalize-url-DP9-1I-S.js +16 -0
  135. package/dist/normalize-url-DP9-1I-S.js.map +1 -0
  136. package/dist/orama-cloud-DH3g37zc.js +84 -0
  137. package/dist/orama-cloud-DH3g37zc.js.map +1 -0
  138. package/dist/page-tree/index.d.ts +23 -11
  139. package/dist/page-tree/index.d.ts.map +1 -0
  140. package/dist/page-tree/index.js +3 -17
  141. package/dist/path-DHIjrDBP.js +60 -0
  142. package/dist/path-DHIjrDBP.js.map +1 -0
  143. package/dist/rehype-code-CdiZ1Y6P.js +241 -0
  144. package/dist/rehype-code-CdiZ1Y6P.js.map +1 -0
  145. package/dist/rehype-code-vVWG4-ej.d.ts +58 -0
  146. package/dist/rehype-code-vVWG4-ej.d.ts.map +1 -0
  147. package/dist/rehype-toc-DJvSyE0o.d.ts +18 -0
  148. package/dist/rehype-toc-DJvSyE0o.d.ts.map +1 -0
  149. package/dist/rehype-toc-DVwJcwvA.js +143 -0
  150. package/dist/rehype-toc-DVwJcwvA.js.map +1 -0
  151. package/dist/remark-admonition-DOwBWzsH.d.ts +22 -0
  152. package/dist/remark-admonition-DOwBWzsH.d.ts.map +1 -0
  153. package/dist/remark-code-tab-CXsYlims.d.ts +32 -0
  154. package/dist/remark-code-tab-CXsYlims.d.ts.map +1 -0
  155. package/dist/remark-directive-admonition-BCm_yiU9.d.ts +36 -0
  156. package/dist/remark-directive-admonition-BCm_yiU9.d.ts.map +1 -0
  157. package/dist/remark-gfm-CeWpMwyk.d.ts +2 -0
  158. package/dist/remark-heading-CXvCY0go.d.ts +37 -0
  159. package/dist/remark-heading-CXvCY0go.d.ts.map +1 -0
  160. package/dist/remark-image-CvUis4R1.d.ts +65 -0
  161. package/dist/remark-image-CvUis4R1.d.ts.map +1 -0
  162. package/dist/remark-mdx-files-B31xFFG4.d.ts +56 -0
  163. package/dist/remark-mdx-files-B31xFFG4.d.ts.map +1 -0
  164. package/dist/remark-mdx-mermaid-BdSUUiCG.d.ts +17 -0
  165. package/dist/remark-mdx-mermaid-BdSUUiCG.d.ts.map +1 -0
  166. package/dist/remark-npm-BIvIEKT2.d.ts +36 -0
  167. package/dist/remark-npm-BIvIEKT2.d.ts.map +1 -0
  168. package/dist/remark-steps-CHJN-rtm.d.ts +28 -0
  169. package/dist/remark-steps-CHJN-rtm.d.ts.map +1 -0
  170. package/dist/remark-structure-RZD2gGKp.d.ts +77 -0
  171. package/dist/remark-structure-RZD2gGKp.d.ts.map +1 -0
  172. package/dist/remove-undefined-Cfs4o_mM.js +19 -0
  173. package/dist/remove-undefined-Cfs4o_mM.js.map +1 -0
  174. package/dist/search/algolia.d.ts +3 -69
  175. package/dist/search/algolia.js +69 -63
  176. package/dist/search/algolia.js.map +1 -0
  177. package/dist/search/client.d.ts +120 -114
  178. package/dist/search/client.d.ts.map +1 -0
  179. package/dist/search/client.js +92 -91
  180. package/dist/search/client.js.map +1 -0
  181. package/dist/search/index.d.ts +20 -18
  182. package/dist/search/index.d.ts.map +1 -0
  183. package/dist/search/index.js +3 -7
  184. package/dist/search/orama-cloud.d.ts +70 -68
  185. package/dist/search/orama-cloud.d.ts.map +1 -0
  186. package/dist/search/orama-cloud.js +46 -54
  187. package/dist/search/orama-cloud.js.map +1 -0
  188. package/dist/search/server.d.ts +6 -136
  189. package/dist/search/server.js +292 -369
  190. package/dist/search/server.js.map +1 -0
  191. package/dist/search-D6ChCLhY.js +44 -0
  192. package/dist/search-D6ChCLhY.js.map +1 -0
  193. package/dist/server-CPR_fgkH.d.ts +133 -0
  194. package/dist/server-CPR_fgkH.d.ts.map +1 -0
  195. package/dist/shiki-4oMYwHED.js +80 -0
  196. package/dist/shiki-4oMYwHED.js.map +1 -0
  197. package/dist/shiki-CIBQys54.d.ts +33 -0
  198. package/dist/shiki-CIBQys54.d.ts.map +1 -0
  199. package/dist/source/client/index.d.ts +7 -5
  200. package/dist/source/client/index.d.ts.map +1 -0
  201. package/dist/source/client/index.js +24 -35
  202. package/dist/source/client/index.js.map +1 -0
  203. package/dist/source/index.d.ts +3 -42
  204. package/dist/source/index.js +599 -752
  205. package/dist/source/index.js.map +1 -0
  206. package/dist/source/plugins/lucide-icons.d.ts +7 -7
  207. package/dist/source/plugins/lucide-icons.d.ts.map +1 -0
  208. package/dist/source/plugins/lucide-icons.js +21 -20
  209. package/dist/source/plugins/lucide-icons.js.map +1 -0
  210. package/dist/source/plugins/slugs.d.ts +3 -0
  211. package/dist/source/plugins/slugs.js +65 -0
  212. package/dist/source/plugins/slugs.js.map +1 -0
  213. package/dist/source/schema.d.ts +17 -14
  214. package/dist/source/schema.d.ts.map +1 -0
  215. package/dist/source/schema.js +26 -22
  216. package/dist/source/schema.js.map +1 -0
  217. package/dist/static-Dq8pA8Ay.js +51 -0
  218. package/dist/static-Dq8pA8Ay.js.map +1 -0
  219. package/dist/toc.d.ts +38 -25
  220. package/dist/toc.d.ts.map +1 -0
  221. package/dist/toc.js +123 -136
  222. package/dist/toc.js.map +1 -0
  223. package/dist/util-CK2ykiif.d.ts +8 -0
  224. package/dist/util-CK2ykiif.d.ts.map +1 -0
  225. package/dist/util-s9piKHsk.js +10 -0
  226. package/dist/util-s9piKHsk.js.map +1 -0
  227. package/dist/utils/use-effect-event.d.ts +3 -1
  228. package/dist/utils/use-effect-event.d.ts.map +1 -0
  229. package/dist/utils/use-effect-event.js +16 -13
  230. package/dist/utils/use-effect-event.js.map +1 -0
  231. package/dist/utils/use-media-query.d.ts +3 -1
  232. package/dist/utils/use-media-query.d.ts.map +1 -0
  233. package/dist/utils/use-media-query.js +20 -20
  234. package/dist/utils/use-media-query.js.map +1 -0
  235. package/dist/utils/use-on-change.d.ts +3 -1
  236. package/dist/utils/use-on-change.d.ts.map +1 -0
  237. package/dist/utils/use-on-change.js +23 -7
  238. package/dist/utils/use-on-change.js.map +1 -0
  239. package/dist/utils-DUvi2WkD.js +134 -0
  240. package/dist/utils-DUvi2WkD.js.map +1 -0
  241. package/package.json +60 -58
  242. package/dist/algolia-IZEDLPHE.js +0 -58
  243. package/dist/chunk-5PMI7QDD.js +0 -220
  244. package/dist/chunk-ADBHPKXG.js +0 -78
  245. package/dist/chunk-APKPSBSB.js +0 -74
  246. package/dist/chunk-CH7YHH7V.js +0 -222
  247. package/dist/chunk-EFVXL2PP.js +0 -144
  248. package/dist/chunk-EMWGTXSW.js +0 -19
  249. package/dist/chunk-FAEPKD7U.js +0 -20
  250. package/dist/chunk-FUUVPEA5.js +0 -29
  251. package/dist/chunk-GINBKBVQ.js +0 -12
  252. package/dist/chunk-GLRQBLGN.js +0 -59
  253. package/dist/chunk-JUF4WZ6G.js +0 -117
  254. package/dist/chunk-K4WNLOVQ.js +0 -75
  255. package/dist/chunk-L4JKQWCM.js +0 -131
  256. package/dist/chunk-MA6O2UUE.js +0 -50
  257. package/dist/chunk-ONG4RVCR.js +0 -8
  258. package/dist/chunk-OTD7MV33.js +0 -53
  259. package/dist/chunk-PFNP6PEB.js +0 -11
  260. package/dist/chunk-SH7BNTG7.js +0 -38
  261. package/dist/chunk-TWIDBWFG.js +0 -84
  262. package/dist/chunk-U67V476Y.js +0 -35
  263. package/dist/chunk-VLSDGCJE.js +0 -47
  264. package/dist/chunk-W6WTLKRA.js +0 -73
  265. package/dist/chunk-X2HFD5QJ.js +0 -275
  266. package/dist/chunk-XJ6ZQNEX.js +0 -91
  267. package/dist/chunk-XN2LKXFZ.js +0 -101
  268. package/dist/chunk-XOFXGHS4.js +0 -93
  269. package/dist/chunk-XZSI7AHE.js +0 -67
  270. package/dist/chunk-YVVDKJ2H.js +0 -34
  271. package/dist/chunk-ZMWYLUDP.js +0 -21
  272. package/dist/definitions-pJ7PybYY.d.ts +0 -60
  273. package/dist/fetch-IBTWQCJR.js +0 -22
  274. package/dist/loader-_E2HOdV0.d.ts +0 -333
  275. package/dist/mixedbread-A3WLENES.js +0 -117
  276. package/dist/orama-cloud-UZAPMPFV.js +0 -93
  277. package/dist/static-A2YJ5TXV.js +0 -62
  278. package/dist/util-bZU2QeJ2.d.ts +0 -6
@@ -1,400 +1,323 @@
1
- import {
2
- searchAdvanced,
3
- searchSimple
4
- } from "../chunk-XOFXGHS4.js";
5
- import "../chunk-ZMWYLUDP.js";
6
- import {
7
- createContentHighlighter
8
- } from "../chunk-OTD7MV33.js";
9
- import {
10
- basename,
11
- extname
12
- } from "../chunk-XZSI7AHE.js";
13
- import {
14
- findPath
15
- } from "../chunk-L4JKQWCM.js";
16
- import "../chunk-U67V476Y.js";
1
+ import { r as findPath } from "../utils-DUvi2WkD.js";
2
+ import { t as createContentHighlighter } from "../search-D6ChCLhY.js";
3
+ import { n as searchSimple, t as searchAdvanced } from "../advanced-BRT5Ij43.js";
4
+ import { r as extname, t as basename } from "../path-DHIjrDBP.js";
5
+ import { create, insertMultiple, save } from "@orama/orama";
17
6
 
18
- // src/search/server.ts
19
- import {
20
- save
21
- } from "@orama/orama";
22
-
23
- // src/search/orama/create-endpoint.ts
7
+ //#region src/search/orama/create-endpoint.ts
24
8
  function createEndpoint(server) {
25
- const { search } = server;
26
- return {
27
- ...server,
28
- async staticGET() {
29
- return Response.json(await server.export());
30
- },
31
- async GET(request) {
32
- const url = new URL(request.url);
33
- const query = url.searchParams.get("query");
34
- if (!query) return Response.json([]);
35
- return Response.json(
36
- await search(query, {
37
- tag: url.searchParams.get("tag")?.split(",") ?? void 0,
38
- locale: url.searchParams.get("locale") ?? void 0,
39
- mode: url.searchParams.get("mode") === "vector" ? "vector" : "full"
40
- })
41
- );
42
- }
43
- };
9
+ const { search: search$1 } = server;
10
+ return {
11
+ ...server,
12
+ async staticGET() {
13
+ return Response.json(await server.export());
14
+ },
15
+ async GET(request) {
16
+ const url = new URL(request.url);
17
+ const query = url.searchParams.get("query");
18
+ if (!query) return Response.json([]);
19
+ return Response.json(await search$1(query, {
20
+ tag: url.searchParams.get("tag")?.split(",") ?? void 0,
21
+ locale: url.searchParams.get("locale") ?? void 0,
22
+ mode: url.searchParams.get("mode") === "vector" ? "vector" : "full"
23
+ }));
24
+ }
25
+ };
44
26
  }
45
27
 
46
- // src/search/orama/create-db.ts
47
- import {
48
- create,
49
- insertMultiple
50
- } from "@orama/orama";
51
- var simpleSchema = {
52
- url: "string",
53
- title: "string",
54
- breadcrumbs: "string[]",
55
- description: "string",
56
- content: "string",
57
- keywords: "string"
28
+ //#endregion
29
+ //#region src/search/orama/create-db.ts
30
+ const simpleSchema = {
31
+ url: "string",
32
+ title: "string",
33
+ breadcrumbs: "string[]",
34
+ description: "string",
35
+ content: "string",
36
+ keywords: "string"
58
37
  };
59
- var advancedSchema = {
60
- content: "string",
61
- page_id: "string",
62
- type: "string",
63
- breadcrumbs: "string[]",
64
- tags: "enum[]",
65
- url: "string",
66
- embeddings: "vector[512]"
38
+ const advancedSchema = {
39
+ content: "string",
40
+ page_id: "string",
41
+ type: "string",
42
+ breadcrumbs: "string[]",
43
+ tags: "enum[]",
44
+ url: "string",
45
+ embeddings: "vector[512]"
67
46
  };
68
- async function createDB({
69
- indexes,
70
- tokenizer,
71
- search: _,
72
- ...rest
73
- }) {
74
- const items = typeof indexes === "function" ? await indexes() : indexes;
75
- const db = create({
76
- schema: advancedSchema,
77
- ...rest,
78
- components: {
79
- ...rest.components,
80
- tokenizer: tokenizer ?? rest.components?.tokenizer
81
- }
82
- });
83
- const mapTo = [];
84
- items.forEach((page) => {
85
- const pageTag = page.tag ?? [];
86
- const tags = Array.isArray(pageTag) ? pageTag : [pageTag];
87
- const data = page.structuredData;
88
- let id = 0;
89
- mapTo.push({
90
- id: page.id,
91
- page_id: page.id,
92
- type: "page",
93
- content: page.title,
94
- breadcrumbs: page.breadcrumbs,
95
- tags,
96
- url: page.url
97
- });
98
- const nextId = () => `${page.id}-${id++}`;
99
- if (page.description) {
100
- mapTo.push({
101
- id: nextId(),
102
- page_id: page.id,
103
- tags,
104
- type: "text",
105
- url: page.url,
106
- content: page.description
107
- });
108
- }
109
- for (const heading of data.headings) {
110
- mapTo.push({
111
- id: nextId(),
112
- page_id: page.id,
113
- type: "heading",
114
- tags,
115
- url: `${page.url}#${heading.id}`,
116
- content: heading.content
117
- });
118
- }
119
- for (const content of data.contents) {
120
- mapTo.push({
121
- id: nextId(),
122
- page_id: page.id,
123
- tags,
124
- type: "text",
125
- url: content.heading ? `${page.url}#${content.heading}` : page.url,
126
- content: content.content
127
- });
128
- }
129
- });
130
- await insertMultiple(db, mapTo);
131
- return db;
47
+ async function createDB({ indexes, tokenizer, search: _, ...rest }) {
48
+ const items = typeof indexes === "function" ? await indexes() : indexes;
49
+ const db = create({
50
+ schema: advancedSchema,
51
+ ...rest,
52
+ components: {
53
+ ...rest.components,
54
+ tokenizer: tokenizer ?? rest.components?.tokenizer
55
+ }
56
+ });
57
+ const mapTo = [];
58
+ items.forEach((page) => {
59
+ const pageTag = page.tag ?? [];
60
+ const tags = Array.isArray(pageTag) ? pageTag : [pageTag];
61
+ const data = page.structuredData;
62
+ let id = 0;
63
+ mapTo.push({
64
+ id: page.id,
65
+ page_id: page.id,
66
+ type: "page",
67
+ content: page.title,
68
+ breadcrumbs: page.breadcrumbs,
69
+ tags,
70
+ url: page.url
71
+ });
72
+ const nextId = () => `${page.id}-${id++}`;
73
+ if (page.description) mapTo.push({
74
+ id: nextId(),
75
+ page_id: page.id,
76
+ tags,
77
+ type: "text",
78
+ url: page.url,
79
+ content: page.description
80
+ });
81
+ for (const heading of data.headings) mapTo.push({
82
+ id: nextId(),
83
+ page_id: page.id,
84
+ type: "heading",
85
+ tags,
86
+ url: `${page.url}#${heading.id}`,
87
+ content: heading.content
88
+ });
89
+ for (const content of data.contents) mapTo.push({
90
+ id: nextId(),
91
+ page_id: page.id,
92
+ tags,
93
+ type: "text",
94
+ url: content.heading ? `${page.url}#${content.heading}` : page.url,
95
+ content: content.content
96
+ });
97
+ });
98
+ await insertMultiple(db, mapTo);
99
+ return db;
132
100
  }
133
- async function createDBSimple({
134
- indexes,
135
- tokenizer,
136
- ...rest
137
- }) {
138
- const items = typeof indexes === "function" ? await indexes() : indexes;
139
- const db = create({
140
- schema: simpleSchema,
141
- ...rest,
142
- components: {
143
- ...rest.components,
144
- tokenizer: tokenizer ?? rest.components?.tokenizer
145
- }
146
- });
147
- await insertMultiple(
148
- db,
149
- items.map((page) => ({
150
- title: page.title,
151
- description: page.description,
152
- breadcrumbs: page.breadcrumbs,
153
- url: page.url,
154
- content: page.content,
155
- keywords: page.keywords
156
- }))
157
- );
158
- return db;
101
+ async function createDBSimple({ indexes, tokenizer, ...rest }) {
102
+ const items = typeof indexes === "function" ? await indexes() : indexes;
103
+ const db = create({
104
+ schema: simpleSchema,
105
+ ...rest,
106
+ components: {
107
+ ...rest.components,
108
+ tokenizer: tokenizer ?? rest.components?.tokenizer
109
+ }
110
+ });
111
+ await insertMultiple(db, items.map((page) => ({
112
+ title: page.title,
113
+ description: page.description,
114
+ breadcrumbs: page.breadcrumbs,
115
+ url: page.url,
116
+ content: page.content,
117
+ keywords: page.keywords
118
+ })));
119
+ return db;
159
120
  }
160
121
 
161
- // src/search/orama/create-from-source.ts
122
+ //#endregion
123
+ //#region src/search/orama/create-from-source.ts
162
124
  function defaultBuildIndex(source) {
163
- function isBreadcrumbItem(item) {
164
- return typeof item === "string" && item.length > 0;
165
- }
166
- return async (page) => {
167
- let breadcrumbs;
168
- let structuredData;
169
- if ("structuredData" in page.data) {
170
- structuredData = page.data.structuredData;
171
- } else if ("load" in page.data && typeof page.data.load === "function") {
172
- structuredData = (await page.data.load()).structuredData;
173
- }
174
- if (!structuredData)
175
- throw new Error(
176
- "Cannot find structured data from page, please define the page to index function."
177
- );
178
- const pageTree = source.getPageTree(page.locale);
179
- const path = findPath(
180
- pageTree.children,
181
- (node) => node.type === "page" && node.url === page.url
182
- );
183
- if (path) {
184
- breadcrumbs = [];
185
- path.pop();
186
- if (isBreadcrumbItem(pageTree.name)) {
187
- breadcrumbs.push(pageTree.name);
188
- }
189
- for (const segment of path) {
190
- if (!isBreadcrumbItem(segment.name)) continue;
191
- breadcrumbs.push(segment.name);
192
- }
193
- }
194
- return {
195
- title: page.data.title ?? basename(page.path, extname(page.path)),
196
- breadcrumbs,
197
- description: page.data.description,
198
- url: page.url,
199
- id: page.url,
200
- structuredData
201
- };
202
- };
125
+ function isBreadcrumbItem(item) {
126
+ return typeof item === "string" && item.length > 0;
127
+ }
128
+ return async (page) => {
129
+ let breadcrumbs;
130
+ let structuredData;
131
+ if ("structuredData" in page.data) structuredData = page.data.structuredData;
132
+ else if ("load" in page.data && typeof page.data.load === "function") structuredData = (await page.data.load()).structuredData;
133
+ if (!structuredData) throw new Error("Cannot find structured data from page, please define the page to index function.");
134
+ const pageTree = source.getPageTree(page.locale);
135
+ const path = findPath(pageTree.children, (node) => node.type === "page" && node.url === page.url);
136
+ if (path) {
137
+ breadcrumbs = [];
138
+ path.pop();
139
+ if (isBreadcrumbItem(pageTree.name)) breadcrumbs.push(pageTree.name);
140
+ for (const segment of path) {
141
+ if (!isBreadcrumbItem(segment.name)) continue;
142
+ breadcrumbs.push(segment.name);
143
+ }
144
+ }
145
+ return {
146
+ title: page.data.title ?? basename(page.path, extname(page.path)),
147
+ breadcrumbs,
148
+ description: page.data.description,
149
+ url: page.url,
150
+ id: page.url,
151
+ structuredData
152
+ };
153
+ };
203
154
  }
204
155
  function createFromSource(source, options = {}) {
205
- const { buildIndex = defaultBuildIndex(source) } = options;
206
- if (source._i18n) {
207
- return createI18nSearchAPI("advanced", {
208
- ...options,
209
- i18n: source._i18n,
210
- indexes: async () => {
211
- const indexes = source.getLanguages().flatMap((entry) => {
212
- return entry.pages.map(async (page) => ({
213
- ...await buildIndex(page),
214
- locale: entry.language
215
- }));
216
- });
217
- return Promise.all(indexes);
218
- }
219
- });
220
- }
221
- return createSearchAPI("advanced", {
222
- ...options,
223
- indexes: async () => {
224
- const indexes = source.getPages().map((page) => buildIndex(page));
225
- return Promise.all(indexes);
226
- }
227
- });
156
+ const { buildIndex = defaultBuildIndex(source) } = options;
157
+ if (source._i18n) return createI18nSearchAPI("advanced", {
158
+ ...options,
159
+ i18n: source._i18n,
160
+ indexes: async () => {
161
+ const indexes = source.getLanguages().flatMap((entry) => {
162
+ return entry.pages.map(async (page) => ({
163
+ ...await buildIndex(page),
164
+ locale: entry.language
165
+ }));
166
+ });
167
+ return Promise.all(indexes);
168
+ }
169
+ });
170
+ return createSearchAPI("advanced", {
171
+ ...options,
172
+ indexes: async () => {
173
+ const indexes = source.getPages().map((page) => buildIndex(page));
174
+ return Promise.all(indexes);
175
+ }
176
+ });
228
177
  }
229
178
 
230
- // src/search/orama/_stemmers.ts
231
- var STEMMERS = {
232
- arabic: "ar",
233
- armenian: "am",
234
- bulgarian: "bg",
235
- czech: "cz",
236
- danish: "dk",
237
- dutch: "nl",
238
- english: "en",
239
- finnish: "fi",
240
- french: "fr",
241
- german: "de",
242
- greek: "gr",
243
- hungarian: "hu",
244
- indian: "in",
245
- indonesian: "id",
246
- irish: "ie",
247
- italian: "it",
248
- lithuanian: "lt",
249
- nepali: "np",
250
- norwegian: "no",
251
- portuguese: "pt",
252
- romanian: "ro",
253
- russian: "ru",
254
- serbian: "rs",
255
- slovenian: "ru",
256
- spanish: "es",
257
- swedish: "se",
258
- tamil: "ta",
259
- turkish: "tr",
260
- ukrainian: "uk",
261
- sanskrit: "sk"
179
+ //#endregion
180
+ //#region src/search/orama/_stemmers.ts
181
+ const STEMMERS = {
182
+ arabic: "ar",
183
+ armenian: "am",
184
+ bulgarian: "bg",
185
+ czech: "cz",
186
+ danish: "dk",
187
+ dutch: "nl",
188
+ english: "en",
189
+ finnish: "fi",
190
+ french: "fr",
191
+ german: "de",
192
+ greek: "gr",
193
+ hungarian: "hu",
194
+ indian: "in",
195
+ indonesian: "id",
196
+ irish: "ie",
197
+ italian: "it",
198
+ lithuanian: "lt",
199
+ nepali: "np",
200
+ norwegian: "no",
201
+ portuguese: "pt",
202
+ romanian: "ro",
203
+ russian: "ru",
204
+ serbian: "rs",
205
+ slovenian: "ru",
206
+ spanish: "es",
207
+ swedish: "se",
208
+ tamil: "ta",
209
+ turkish: "tr",
210
+ ukrainian: "uk",
211
+ sanskrit: "sk"
262
212
  };
263
213
 
264
- // src/search/orama/create-i18n.ts
214
+ //#endregion
215
+ //#region src/search/orama/create-i18n.ts
265
216
  async function getTokenizer(locale) {
266
- return {
267
- language: Object.keys(STEMMERS).find((lang) => STEMMERS[lang] === locale) ?? locale
268
- };
217
+ return { language: Object.keys(STEMMERS).find((lang) => STEMMERS[lang] === locale) ?? locale };
269
218
  }
270
219
  async function initSimple(options) {
271
- const map = /* @__PURE__ */ new Map();
272
- if (options.i18n.languages.length === 0) {
273
- return map;
274
- }
275
- const indexes = typeof options.indexes === "function" ? await options.indexes() : options.indexes;
276
- for (const locale of options.i18n.languages) {
277
- const localeIndexes = indexes.filter((index) => index.locale === locale);
278
- const mapped = options.localeMap?.[locale] ?? await getTokenizer(locale);
279
- map.set(
280
- locale,
281
- typeof mapped === "object" ? initSimpleSearch({
282
- ...options,
283
- ...mapped,
284
- indexes: localeIndexes
285
- }) : initSimpleSearch({
286
- ...options,
287
- language: mapped,
288
- indexes: localeIndexes
289
- })
290
- );
291
- }
292
- return map;
220
+ const map = /* @__PURE__ */ new Map();
221
+ if (options.i18n.languages.length === 0) return map;
222
+ const indexes = typeof options.indexes === "function" ? await options.indexes() : options.indexes;
223
+ for (const locale of options.i18n.languages) {
224
+ const localeIndexes = indexes.filter((index) => index.locale === locale);
225
+ const mapped = options.localeMap?.[locale] ?? await getTokenizer(locale);
226
+ map.set(locale, typeof mapped === "object" ? initSimpleSearch({
227
+ ...options,
228
+ ...mapped,
229
+ indexes: localeIndexes
230
+ }) : initSimpleSearch({
231
+ ...options,
232
+ language: mapped,
233
+ indexes: localeIndexes
234
+ }));
235
+ }
236
+ return map;
293
237
  }
294
238
  async function initAdvanced(options) {
295
- const map = /* @__PURE__ */ new Map();
296
- if (options.i18n.languages.length === 0) {
297
- return map;
298
- }
299
- const indexes = typeof options.indexes === "function" ? await options.indexes() : options.indexes;
300
- for (const locale of options.i18n.languages) {
301
- const localeIndexes = indexes.filter((index) => index.locale === locale);
302
- const mapped = options.localeMap?.[locale] ?? await getTokenizer(locale);
303
- map.set(
304
- locale,
305
- typeof mapped === "object" ? initAdvancedSearch({
306
- ...options,
307
- indexes: localeIndexes,
308
- ...mapped
309
- }) : initAdvancedSearch({
310
- ...options,
311
- language: mapped,
312
- indexes: localeIndexes
313
- })
314
- );
315
- }
316
- return map;
239
+ const map = /* @__PURE__ */ new Map();
240
+ if (options.i18n.languages.length === 0) return map;
241
+ const indexes = typeof options.indexes === "function" ? await options.indexes() : options.indexes;
242
+ for (const locale of options.i18n.languages) {
243
+ const localeIndexes = indexes.filter((index) => index.locale === locale);
244
+ const mapped = options.localeMap?.[locale] ?? await getTokenizer(locale);
245
+ map.set(locale, typeof mapped === "object" ? initAdvancedSearch({
246
+ ...options,
247
+ indexes: localeIndexes,
248
+ ...mapped
249
+ }) : initAdvancedSearch({
250
+ ...options,
251
+ language: mapped,
252
+ indexes: localeIndexes
253
+ }));
254
+ }
255
+ return map;
317
256
  }
318
257
  function createI18nSearchAPI(type, options) {
319
- const get = type === "simple" ? initSimple(options) : initAdvanced(options);
320
- return createEndpoint({
321
- async export() {
322
- const map = await get;
323
- const entries = Array.from(map.entries()).map(async ([k, v]) => [
324
- k,
325
- await v.export()
326
- ]);
327
- return {
328
- type: "i18n",
329
- data: Object.fromEntries(await Promise.all(entries))
330
- };
331
- },
332
- async search(query, searchOptions) {
333
- const map = await get;
334
- const locale = searchOptions?.locale ?? options.i18n.defaultLanguage;
335
- const handler = map.get(locale);
336
- if (handler) return handler.search(query, searchOptions);
337
- return [];
338
- }
339
- });
258
+ const get = type === "simple" ? initSimple(options) : initAdvanced(options);
259
+ return createEndpoint({
260
+ async export() {
261
+ const map = await get;
262
+ const entries = Array.from(map.entries()).map(async ([k, v]) => [k, await v.export()]);
263
+ return {
264
+ type: "i18n",
265
+ data: Object.fromEntries(await Promise.all(entries))
266
+ };
267
+ },
268
+ async search(query, searchOptions) {
269
+ const map = await get;
270
+ const locale = searchOptions?.locale ?? options.i18n.defaultLanguage;
271
+ const handler = map.get(locale);
272
+ if (handler) return handler.search(query, searchOptions);
273
+ return [];
274
+ }
275
+ });
340
276
  }
341
277
 
342
- // src/search/server.ts
278
+ //#endregion
279
+ //#region src/search/server.ts
343
280
  function createSearchAPI(type, options) {
344
- if (type === "simple") {
345
- return createEndpoint(initSimpleSearch(options));
346
- }
347
- return createEndpoint(initAdvancedSearch(options));
281
+ if (type === "simple") return createEndpoint(initSimpleSearch(options));
282
+ return createEndpoint(initAdvancedSearch(options));
348
283
  }
349
284
  function initSimpleSearch(options) {
350
- const doc = createDBSimple(options);
351
- return {
352
- async export() {
353
- return {
354
- type: "simple",
355
- ...save(await doc)
356
- };
357
- },
358
- async search(query) {
359
- const db = await doc;
360
- return searchSimple(db, query, options.search);
361
- }
362
- };
285
+ const doc = createDBSimple(options);
286
+ return {
287
+ async export() {
288
+ return {
289
+ type: "simple",
290
+ ...save(await doc)
291
+ };
292
+ },
293
+ async search(query) {
294
+ return searchSimple(await doc, query, options.search);
295
+ }
296
+ };
363
297
  }
364
298
  function initAdvancedSearch(options) {
365
- const get = createDB(options);
366
- return {
367
- async export() {
368
- return {
369
- type: "advanced",
370
- ...save(await get)
371
- };
372
- },
373
- async search(query, searchOptions) {
374
- const db = await get;
375
- const mode = searchOptions?.mode;
376
- return searchAdvanced(db, query, searchOptions?.tag, {
377
- ...options.search,
378
- mode: mode === "vector" ? "vector" : "fulltext"
379
- }).catch((err) => {
380
- if (mode === "vector") {
381
- throw new Error(
382
- "failed to search, make sure you have installed `@orama/plugin-embeddings` according to their docs.",
383
- {
384
- cause: err
385
- }
386
- );
387
- }
388
- throw err;
389
- });
390
- }
391
- };
299
+ const get = createDB(options);
300
+ return {
301
+ async export() {
302
+ return {
303
+ type: "advanced",
304
+ ...save(await get)
305
+ };
306
+ },
307
+ async search(query, searchOptions) {
308
+ const db = await get;
309
+ const mode = searchOptions?.mode;
310
+ return searchAdvanced(db, query, searchOptions?.tag, {
311
+ ...options.search,
312
+ mode: mode === "vector" ? "vector" : "fulltext"
313
+ }).catch((err) => {
314
+ if (mode === "vector") throw new Error("failed to search, make sure you have installed `@orama/plugin-embeddings` according to their docs.", { cause: err });
315
+ throw err;
316
+ });
317
+ }
318
+ };
392
319
  }
393
- export {
394
- createContentHighlighter,
395
- createFromSource,
396
- createI18nSearchAPI,
397
- createSearchAPI,
398
- initAdvancedSearch,
399
- initSimpleSearch
400
- };
320
+
321
+ //#endregion
322
+ export { createContentHighlighter, createFromSource, createI18nSearchAPI, createSearchAPI, initAdvancedSearch, initSimpleSearch };
323
+ //# sourceMappingURL=server.js.map