@windrun-huaiin/third-ui 6.2.2 → 6.3.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/chunk-52YUUCKV.js +3190 -0
- package/dist/chunk-52YUUCKV.js.map +1 -0
- package/dist/chunk-6MM7HLNX.js +226 -0
- package/dist/chunk-6MM7HLNX.js.map +1 -0
- package/dist/chunk-6PW67OXW.js +967 -0
- package/dist/chunk-6PW67OXW.js.map +1 -0
- package/dist/chunk-BZLOMDT7.mjs +90 -0
- package/dist/chunk-BZLOMDT7.mjs.map +1 -0
- package/dist/chunk-C3MW5ZUN.mjs +967 -0
- package/dist/chunk-C3MW5ZUN.mjs.map +1 -0
- package/dist/chunk-FOMCGWDM.mjs +17 -0
- package/dist/chunk-FOMCGWDM.mjs.map +1 -0
- package/dist/chunk-ICXWQI2S.mjs +126 -0
- package/dist/chunk-ICXWQI2S.mjs.map +1 -0
- package/dist/chunk-IOUCFIRG.mjs +3190 -0
- package/dist/chunk-IOUCFIRG.mjs.map +1 -0
- package/dist/chunk-J26XFRUS.js +17 -0
- package/dist/chunk-J26XFRUS.js.map +1 -0
- package/dist/chunk-LZLW5WCC.js +90 -0
- package/dist/chunk-LZLW5WCC.js.map +1 -0
- package/dist/chunk-NV3UQTCW.mjs +226 -0
- package/dist/chunk-NV3UQTCW.mjs.map +1 -0
- package/dist/chunk-TBXDOQXP.js +126 -0
- package/dist/chunk-TBXDOQXP.js.map +1 -0
- package/dist/chunk-TKLIIDBR.mjs +2804 -0
- package/dist/chunk-TKLIIDBR.mjs.map +1 -0
- package/dist/chunk-W7K5Y2WR.js +2804 -0
- package/dist/chunk-W7K5Y2WR.js.map +1 -0
- package/dist/clerk/index.js +13 -57
- package/dist/clerk/index.js.map +1 -1
- package/dist/clerk/index.mjs +7 -27
- package/dist/clerk/index.mjs.map +1 -1
- package/dist/clerk/server.js +60 -2907
- package/dist/clerk/server.js.map +1 -1
- package/dist/clerk/server.mjs +33 -2846
- package/dist/clerk/server.mjs.map +1 -1
- package/dist/fuma/mdx/index.js +7 -4084
- package/dist/fuma/mdx/index.js.map +1 -1
- package/dist/fuma/mdx/index.mjs +20 -4058
- package/dist/fuma/mdx/index.mjs.map +1 -1
- package/dist/fuma/server.js +442 -3695
- package/dist/fuma/server.js.map +1 -1
- package/dist/fuma/server.mjs +232 -3476
- package/dist/fuma/server.mjs.map +1 -1
- package/dist/lib/server.js +39 -105
- package/dist/lib/server.js.map +1 -1
- package/dist/lib/server.mjs +4 -24
- package/dist/lib/server.mjs.map +1 -1
- package/dist/main/index.js +6 -6214
- package/dist/main/index.js.map +1 -1
- package/dist/main/index.mjs +16 -6184
- package/dist/main/index.mjs.map +1 -1
- package/dist/main/server.js +184 -6032
- package/dist/main/server.js.map +1 -1
- package/dist/main/server.mjs +147 -5957
- package/dist/main/server.mjs.map +1 -1
- package/package.json +2 -2
package/dist/lib/server.js
CHANGED
|
@@ -1,65 +1,8 @@
|
|
|
1
|
-
/* eslint-disable */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var
|
|
5
|
-
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __export = (target, all) => {
|
|
24
|
-
for (var name in all)
|
|
25
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
26
|
-
};
|
|
27
|
-
var __copyProps = (to, from, except, desc) => {
|
|
28
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
29
|
-
for (let key of __getOwnPropNames(from))
|
|
30
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
31
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
32
|
-
}
|
|
33
|
-
return to;
|
|
34
|
-
};
|
|
35
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
36
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
37
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
38
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
39
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
40
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
41
|
-
mod
|
|
42
|
-
));
|
|
43
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
44
|
-
|
|
45
|
-
// src/lib/server.ts
|
|
46
|
-
var server_exports = {};
|
|
47
|
-
__export(server_exports, {
|
|
48
|
-
clerkIntl: () => clerkIntl,
|
|
49
|
-
createCommonDocsSchema: () => createCommonDocsSchema,
|
|
50
|
-
createCommonMetaSchema: () => createCommonMetaSchema,
|
|
51
|
-
createDateSchema: () => createDateSchema,
|
|
52
|
-
createDescriptionSchema: () => createDescriptionSchema,
|
|
53
|
-
createIconSchema: () => createIconSchema,
|
|
54
|
-
createRobotsHandler: () => createRobotsHandler,
|
|
55
|
-
createSitemapHandler: () => createSitemapHandler,
|
|
56
|
-
createTitleSchema: () => createTitleSchema,
|
|
57
|
-
fumaI18nCn: () => fumaI18nCn,
|
|
58
|
-
generateRobots: () => generateRobots,
|
|
59
|
-
generateSitemap: () => generateSitemap,
|
|
60
|
-
remarkInstallOptions: () => remarkInstallOptions
|
|
61
|
-
});
|
|
62
|
-
module.exports = __toCommonJS(server_exports);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }/* eslint-disable */
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkJ26XFRUSjs = require('../chunk-J26XFRUS.js');
|
|
5
|
+
require('../chunk-LZLW5WCC.js');
|
|
63
6
|
|
|
64
7
|
// src/lib/fuma-search-util.ts
|
|
65
8
|
var fumaI18nCn = {
|
|
@@ -67,35 +10,27 @@ var fumaI18nCn = {
|
|
|
67
10
|
// other translations
|
|
68
11
|
};
|
|
69
12
|
|
|
70
|
-
// src/lib/clerk-intl.ts
|
|
71
|
-
var import_localizations = require("@clerk/localizations");
|
|
72
|
-
var customZH = __spreadValues({}, import_localizations.zhCN);
|
|
73
|
-
var clerkIntl = {
|
|
74
|
-
en: import_localizations.enUS,
|
|
75
|
-
zh: customZH
|
|
76
|
-
};
|
|
77
|
-
|
|
78
13
|
// src/lib/fuma-schema-check-util.ts
|
|
79
|
-
var
|
|
80
|
-
var
|
|
81
|
-
var createTitleSchema = () =>
|
|
14
|
+
var _zod = require('zod');
|
|
15
|
+
var _config = require('fumadocs-mdx/config');
|
|
16
|
+
var createTitleSchema = () => _zod.z.string({
|
|
82
17
|
required_error: "Title is required",
|
|
83
18
|
invalid_type_error: "Title must be a string and cannot be null"
|
|
84
19
|
}).trim().min(1, { message: "Title cannot be empty or consist only of whitespace" });
|
|
85
|
-
var createDescriptionSchema = () =>
|
|
20
|
+
var createDescriptionSchema = () => _zod.z.preprocess(
|
|
86
21
|
(val) => {
|
|
87
22
|
if (typeof val === "string") {
|
|
88
23
|
return val.trim() === "" || val === null ? void 0 : val.trim();
|
|
89
24
|
}
|
|
90
25
|
return val === null ? void 0 : val;
|
|
91
26
|
},
|
|
92
|
-
|
|
27
|
+
_zod.z.string().optional()
|
|
93
28
|
);
|
|
94
|
-
var createIconSchema = () =>
|
|
29
|
+
var createIconSchema = () => _zod.z.preprocess(
|
|
95
30
|
(val) => val === "" || val === null ? void 0 : val,
|
|
96
|
-
|
|
31
|
+
_zod.z.string().optional()
|
|
97
32
|
);
|
|
98
|
-
var createDateSchema = () =>
|
|
33
|
+
var createDateSchema = () => _zod.z.preprocess(
|
|
99
34
|
(arg) => {
|
|
100
35
|
if (arg instanceof Date) {
|
|
101
36
|
const year = arg.getFullYear();
|
|
@@ -108,18 +43,18 @@ var createDateSchema = () => import_zod.z.preprocess(
|
|
|
108
43
|
}
|
|
109
44
|
return arg;
|
|
110
45
|
},
|
|
111
|
-
|
|
46
|
+
_zod.z.string().regex(/^\d{4}-\d{2}-\d{2}$/, "Date must be in YYYY-MM-DD format or a valid Date object").refine((val) => !isNaN(new Date(val).getTime()), "Invalid date!")
|
|
112
47
|
);
|
|
113
|
-
var createCommonDocsSchema = () =>
|
|
48
|
+
var createCommonDocsSchema = () => _config.frontmatterSchema.extend({
|
|
114
49
|
title: createTitleSchema(),
|
|
115
50
|
description: createDescriptionSchema(),
|
|
116
51
|
icon: createIconSchema(),
|
|
117
52
|
date: createDateSchema(),
|
|
118
|
-
author:
|
|
119
|
-
keywords:
|
|
53
|
+
author: _zod.z.string().optional(),
|
|
54
|
+
keywords: _zod.z.array(_zod.z.string()).optional()
|
|
120
55
|
});
|
|
121
|
-
var createCommonMetaSchema = () =>
|
|
122
|
-
description:
|
|
56
|
+
var createCommonMetaSchema = () => _config.metaSchema.extend({
|
|
57
|
+
description: _zod.z.string().optional()
|
|
123
58
|
});
|
|
124
59
|
var remarkInstallOptions = {
|
|
125
60
|
persist: {
|
|
@@ -128,8 +63,8 @@ var remarkInstallOptions = {
|
|
|
128
63
|
};
|
|
129
64
|
|
|
130
65
|
// src/lib/seo-util.ts
|
|
131
|
-
var
|
|
132
|
-
var
|
|
66
|
+
var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
|
|
67
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
133
68
|
function generateRobots(baseUrl) {
|
|
134
69
|
return {
|
|
135
70
|
rules: {
|
|
@@ -142,10 +77,10 @@ function generateRobots(baseUrl) {
|
|
|
142
77
|
function generateSitemap(baseUrl, locales, mdxSourceDir, openMdxSEOSiteMap = true) {
|
|
143
78
|
const blogRoutes = [];
|
|
144
79
|
if (mdxSourceDir && mdxSourceDir.trim() !== "") {
|
|
145
|
-
const blogDir =
|
|
80
|
+
const blogDir = _path2.default.join(process.cwd(), mdxSourceDir);
|
|
146
81
|
try {
|
|
147
|
-
if (
|
|
148
|
-
const blogFiles =
|
|
82
|
+
if (_fs2.default.existsSync(blogDir) && _fs2.default.statSync(blogDir).isDirectory()) {
|
|
83
|
+
const blogFiles = _fs2.default.readdirSync(blogDir).filter((f) => f.endsWith(".mdx"));
|
|
149
84
|
for (const locale of locales) {
|
|
150
85
|
for (const f of blogFiles) {
|
|
151
86
|
if (f === "index.mdx") {
|
|
@@ -191,20 +126,19 @@ function createSitemapHandler(baseUrl, locales, mdxSourceDir = "", openMdxSEOSit
|
|
|
191
126
|
sitemapHandler.dynamic = "force-static";
|
|
192
127
|
return sitemapHandler;
|
|
193
128
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
});
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
exports.clerkIntl = _chunkJ26XFRUSjs.clerkIntl; exports.createCommonDocsSchema = createCommonDocsSchema; exports.createCommonMetaSchema = createCommonMetaSchema; exports.createDateSchema = createDateSchema; exports.createDescriptionSchema = createDescriptionSchema; exports.createIconSchema = createIconSchema; exports.createRobotsHandler = createRobotsHandler; exports.createSitemapHandler = createSitemapHandler; exports.createTitleSchema = createTitleSchema; exports.fumaI18nCn = fumaI18nCn; exports.generateRobots = generateRobots; exports.generateSitemap = generateSitemap; exports.remarkInstallOptions = remarkInstallOptions;
|
|
210
144
|
//# sourceMappingURL=server.js.map
|
package/dist/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["/Users/funeye/IdeaProjects/next-ai-build/packages/third-ui/dist/lib/server.js","../../src/lib/fuma-search-util.ts","../../src/lib/fuma-schema-check-util.ts","../../src/lib/seo-util.ts"],"names":[],"mappings":"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","file":"/Users/funeye/IdeaProjects/next-ai-build/packages/third-ui/dist/lib/server.js","sourcesContent":[null,"import { Translations } from 'fumadocs-ui/i18n';\n\nexport const fumaI18nCn: Partial<Translations> = {\n search: 'Translated Content',\n // other translations\n};\n","import { z } from 'zod';\nimport { frontmatterSchema, metaSchema } from 'fumadocs-mdx/config';\n\n\n// Reusable schema for title\nexport const createTitleSchema = () =>\n z.string({\n required_error: \"Title is required\",\n invalid_type_error: \"Title must be a string and cannot be null\",\n })\n .trim()\n .min(1, { message: \"Title cannot be empty or consist only of whitespace\" });\n\n// Reusable schema for description\nexport const createDescriptionSchema = () =>\n z.preprocess(\n (val: any) => {\n if (typeof val === 'string') {\n return val.trim() === \"\" || val === null ? undefined : val.trim();\n }\n return val === null ? undefined : val;\n },\n z.string().optional()\n );\n\n// Reusable schema for icon\nexport const createIconSchema = () =>\n z.preprocess(\n (val: any) => (val === \"\" || val === null ? undefined : val),\n z.string().optional()\n );\n\n// Reusable schema for date\nexport const createDateSchema = () =>\n z.preprocess((arg: any) => {\n if (arg instanceof Date) {\n // Format Date object to YYYY-MM-DD string\n const year = arg.getFullYear();\n const month = (arg.getMonth() + 1).toString().padStart(2, '0');\n const day = arg.getDate().toString().padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n if (typeof arg === 'string') {\n return arg.trim();\n }\n // For other types or null/undefined, let the subsequent string validation handle it\n return arg; \n },\n z.string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Date must be in YYYY-MM-DD format or a valid Date object\")\n .refine((val: any) => !isNaN(new Date(val).getTime()), 'Invalid date!')\n );\n\n// common docs frontmatter schema\nexport const createCommonDocsSchema = () => frontmatterSchema.extend({\n title: createTitleSchema(),\n description: createDescriptionSchema(),\n icon: createIconSchema(),\n date: createDateSchema(),\n author: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n});\n\n// common meta schema\nexport const createCommonMetaSchema = () => metaSchema.extend({\n description: z.string().optional(),\n});\n\nexport const remarkInstallOptions = {\n persist: {\n id: 'package-manager',\n },\n};","import type { MetadataRoute } from 'next';\nimport fs from 'fs';\nimport path from 'path';\n\n/**\n * Generate robots.txt content\n * @param baseUrl - The base URL of the website\n * @returns Robots configuration\n */\nexport function generateRobots(baseUrl: string): MetadataRoute.Robots {\n return {\n rules: {\n userAgent: \"*\",\n allow: \"/\",\n },\n sitemap: `${baseUrl}/sitemap.xml`,\n };\n}\n\n/**\n * Generate sitemap.xml content\n * @param baseUrl - The base URL of the website\n * @param locales - Supported locales array\n * @param mdxSourceDir - MDX source directory path\n * @param openMdxSEOSiteMap - Whether to include MDX content in sitemap, default is true\n * @returns Sitemap entries\n */\nexport function generateSitemap(\n baseUrl: string,\n locales: string[],\n mdxSourceDir: string,\n openMdxSEOSiteMap: boolean = true\n): MetadataRoute.Sitemap {\n // 2. handle index.mdx (blog start page) and other slugs\n const blogRoutes: MetadataRoute.Sitemap = [];\n\n // 1. read all blog mdx file names with error handling\n if (mdxSourceDir && mdxSourceDir.trim() !== '') {\n const blogDir = path.join(process.cwd(), mdxSourceDir);\n \n // Check if directory exists and is readable\n try {\n if (fs.existsSync(blogDir) && fs.statSync(blogDir).isDirectory()) {\n const blogFiles = fs.readdirSync(blogDir).filter(f => f.endsWith('.mdx'));\n\n for (const locale of locales) {\n for (const f of blogFiles) {\n if (f === 'index.mdx') {\n blogRoutes.push({\n url: `${baseUrl}/${locale}/blog`,\n lastModified: new Date(),\n changeFrequency: 'daily',\n priority: 1.0\n });\n } else {\n const slug = f.replace(/\\.mdx$/, '');\n blogRoutes.push({\n url: `${baseUrl}/${locale}/blog/${slug}`,\n lastModified: new Date(),\n changeFrequency: f === 'ioc.mdx' ? 'daily' : 'monthly',\n priority: 0.8\n });\n }\n }\n }\n }\n } catch (error) {\n // Handle edge cases like race conditions, permission changes, or filesystem errors\n console.warn(`Warning: Could not read MDX directory \"${mdxSourceDir}\":`, error);\n }\n }\n\n // 3. main page (all language versions)\n const mainRoutes = locales.map(locale => ({\n url: `${baseUrl}/${locale}`,\n lastModified: new Date(),\n changeFrequency: 'weekly' as const,\n priority: 1.0\n }));\n\n return openMdxSEOSiteMap ? [...mainRoutes, ...blogRoutes] : [...mainRoutes];\n}\n\n/**\n * Create robots.txt handler function\n * @param baseUrl - The base URL of the website\n * @returns Robots handler function\n */\nexport function createRobotsHandler(baseUrl: string) {\n return function robots(): MetadataRoute.Robots {\n return generateRobots(baseUrl);\n };\n}\n\n/**\n * Create sitemap.xml handler function\n * @param baseUrl - The base URL of the website\n * @param locales - Supported locales array\n * @param mdxSourceDir - MDX source directory path, default is empty\n * @param openMdxSEOSiteMap - Whether to include MDX content in sitemap, default is true\n * @returns Sitemap handler function\n */\nexport function createSitemapHandler(\n baseUrl: string,\n locales: string[],\n mdxSourceDir: string = '',\n openMdxSEOSiteMap: boolean = true\n) {\n // force static generation\n const sitemapHandler = function sitemap(): MetadataRoute.Sitemap {\n return generateSitemap(baseUrl, locales, mdxSourceDir, openMdxSEOSiteMap);\n };\n \n // Add static generation directive\n (sitemapHandler as any).dynamic = 'force-static';\n \n return sitemapHandler;\n}"]}
|
package/dist/lib/server.mjs
CHANGED
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
-
var __spreadValues = (a, b) => {
|
|
8
|
-
for (var prop in b || (b = {}))
|
|
9
|
-
if (__hasOwnProp.call(b, prop))
|
|
10
|
-
__defNormalProp(a, prop, b[prop]);
|
|
11
|
-
if (__getOwnPropSymbols)
|
|
12
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
-
if (__propIsEnum.call(b, prop))
|
|
14
|
-
__defNormalProp(a, prop, b[prop]);
|
|
15
|
-
}
|
|
16
|
-
return a;
|
|
17
|
-
};
|
|
2
|
+
import {
|
|
3
|
+
clerkIntl
|
|
4
|
+
} from "../chunk-FOMCGWDM.mjs";
|
|
5
|
+
import "../chunk-BZLOMDT7.mjs";
|
|
18
6
|
|
|
19
7
|
// src/lib/fuma-search-util.ts
|
|
20
8
|
var fumaI18nCn = {
|
|
@@ -22,14 +10,6 @@ var fumaI18nCn = {
|
|
|
22
10
|
// other translations
|
|
23
11
|
};
|
|
24
12
|
|
|
25
|
-
// src/lib/clerk-intl.ts
|
|
26
|
-
import { enUS, zhCN } from "@clerk/localizations";
|
|
27
|
-
var customZH = __spreadValues({}, zhCN);
|
|
28
|
-
var clerkIntl = {
|
|
29
|
-
en: enUS,
|
|
30
|
-
zh: customZH
|
|
31
|
-
};
|
|
32
|
-
|
|
33
13
|
// src/lib/fuma-schema-check-util.ts
|
|
34
14
|
import { z } from "zod";
|
|
35
15
|
import { frontmatterSchema, metaSchema } from "fumadocs-mdx/config";
|
package/dist/lib/server.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/fuma-search-util.ts","../../src/lib/
|
|
1
|
+
{"version":3,"sources":["../../src/lib/fuma-search-util.ts","../../src/lib/fuma-schema-check-util.ts","../../src/lib/seo-util.ts"],"sourcesContent":["import { Translations } from 'fumadocs-ui/i18n';\n\nexport const fumaI18nCn: Partial<Translations> = {\n search: 'Translated Content',\n // other translations\n};\n","import { z } from 'zod';\nimport { frontmatterSchema, metaSchema } from 'fumadocs-mdx/config';\n\n\n// Reusable schema for title\nexport const createTitleSchema = () =>\n z.string({\n required_error: \"Title is required\",\n invalid_type_error: \"Title must be a string and cannot be null\",\n })\n .trim()\n .min(1, { message: \"Title cannot be empty or consist only of whitespace\" });\n\n// Reusable schema for description\nexport const createDescriptionSchema = () =>\n z.preprocess(\n (val: any) => {\n if (typeof val === 'string') {\n return val.trim() === \"\" || val === null ? undefined : val.trim();\n }\n return val === null ? undefined : val;\n },\n z.string().optional()\n );\n\n// Reusable schema for icon\nexport const createIconSchema = () =>\n z.preprocess(\n (val: any) => (val === \"\" || val === null ? undefined : val),\n z.string().optional()\n );\n\n// Reusable schema for date\nexport const createDateSchema = () =>\n z.preprocess((arg: any) => {\n if (arg instanceof Date) {\n // Format Date object to YYYY-MM-DD string\n const year = arg.getFullYear();\n const month = (arg.getMonth() + 1).toString().padStart(2, '0');\n const day = arg.getDate().toString().padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n if (typeof arg === 'string') {\n return arg.trim();\n }\n // For other types or null/undefined, let the subsequent string validation handle it\n return arg; \n },\n z.string()\n .regex(/^\\d{4}-\\d{2}-\\d{2}$/, \"Date must be in YYYY-MM-DD format or a valid Date object\")\n .refine((val: any) => !isNaN(new Date(val).getTime()), 'Invalid date!')\n );\n\n// common docs frontmatter schema\nexport const createCommonDocsSchema = () => frontmatterSchema.extend({\n title: createTitleSchema(),\n description: createDescriptionSchema(),\n icon: createIconSchema(),\n date: createDateSchema(),\n author: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n});\n\n// common meta schema\nexport const createCommonMetaSchema = () => metaSchema.extend({\n description: z.string().optional(),\n});\n\nexport const remarkInstallOptions = {\n persist: {\n id: 'package-manager',\n },\n};","import type { MetadataRoute } from 'next';\nimport fs from 'fs';\nimport path from 'path';\n\n/**\n * Generate robots.txt content\n * @param baseUrl - The base URL of the website\n * @returns Robots configuration\n */\nexport function generateRobots(baseUrl: string): MetadataRoute.Robots {\n return {\n rules: {\n userAgent: \"*\",\n allow: \"/\",\n },\n sitemap: `${baseUrl}/sitemap.xml`,\n };\n}\n\n/**\n * Generate sitemap.xml content\n * @param baseUrl - The base URL of the website\n * @param locales - Supported locales array\n * @param mdxSourceDir - MDX source directory path\n * @param openMdxSEOSiteMap - Whether to include MDX content in sitemap, default is true\n * @returns Sitemap entries\n */\nexport function generateSitemap(\n baseUrl: string,\n locales: string[],\n mdxSourceDir: string,\n openMdxSEOSiteMap: boolean = true\n): MetadataRoute.Sitemap {\n // 2. handle index.mdx (blog start page) and other slugs\n const blogRoutes: MetadataRoute.Sitemap = [];\n\n // 1. read all blog mdx file names with error handling\n if (mdxSourceDir && mdxSourceDir.trim() !== '') {\n const blogDir = path.join(process.cwd(), mdxSourceDir);\n \n // Check if directory exists and is readable\n try {\n if (fs.existsSync(blogDir) && fs.statSync(blogDir).isDirectory()) {\n const blogFiles = fs.readdirSync(blogDir).filter(f => f.endsWith('.mdx'));\n\n for (const locale of locales) {\n for (const f of blogFiles) {\n if (f === 'index.mdx') {\n blogRoutes.push({\n url: `${baseUrl}/${locale}/blog`,\n lastModified: new Date(),\n changeFrequency: 'daily',\n priority: 1.0\n });\n } else {\n const slug = f.replace(/\\.mdx$/, '');\n blogRoutes.push({\n url: `${baseUrl}/${locale}/blog/${slug}`,\n lastModified: new Date(),\n changeFrequency: f === 'ioc.mdx' ? 'daily' : 'monthly',\n priority: 0.8\n });\n }\n }\n }\n }\n } catch (error) {\n // Handle edge cases like race conditions, permission changes, or filesystem errors\n console.warn(`Warning: Could not read MDX directory \"${mdxSourceDir}\":`, error);\n }\n }\n\n // 3. main page (all language versions)\n const mainRoutes = locales.map(locale => ({\n url: `${baseUrl}/${locale}`,\n lastModified: new Date(),\n changeFrequency: 'weekly' as const,\n priority: 1.0\n }));\n\n return openMdxSEOSiteMap ? [...mainRoutes, ...blogRoutes] : [...mainRoutes];\n}\n\n/**\n * Create robots.txt handler function\n * @param baseUrl - The base URL of the website\n * @returns Robots handler function\n */\nexport function createRobotsHandler(baseUrl: string) {\n return function robots(): MetadataRoute.Robots {\n return generateRobots(baseUrl);\n };\n}\n\n/**\n * Create sitemap.xml handler function\n * @param baseUrl - The base URL of the website\n * @param locales - Supported locales array\n * @param mdxSourceDir - MDX source directory path, default is empty\n * @param openMdxSEOSiteMap - Whether to include MDX content in sitemap, default is true\n * @returns Sitemap handler function\n */\nexport function createSitemapHandler(\n baseUrl: string,\n locales: string[],\n mdxSourceDir: string = '',\n openMdxSEOSiteMap: boolean = true\n) {\n // force static generation\n const sitemapHandler = function sitemap(): MetadataRoute.Sitemap {\n return generateSitemap(baseUrl, locales, mdxSourceDir, openMdxSEOSiteMap);\n };\n \n // Add static generation directive\n (sitemapHandler as any).dynamic = 'force-static';\n \n return sitemapHandler;\n}"],"mappings":"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","names":[]}
|