@funhub/platform 0.1.53 → 0.1.56
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/README.md +13 -0
- package/bin/index.mjs +323 -0
- package/dist/assets/images/user/default_avatar.mjs +2 -0
- package/dist/components/biz/business/banner/variants/basic-banner/material.d.mts +1 -1
- package/dist/components/biz/business/banner-carousel/material.d.mts +1 -1
- package/dist/components/biz/business/channel-list/material.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/registry.d.mts +7 -7
- package/dist/components/biz/business/detail/materials/video-detail-actions/material.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info/material.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title/material.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-info-title-tags-episodes/material.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-player/material.d.mts +1 -1
- package/dist/components/biz/business/detail/materials/video-detail-recommend/material.d.mts +1 -1
- package/dist/components/biz/business/floating-ball/material.d.mts +1 -1
- package/dist/components/biz/business/header-search/header-avatar-icon/material.d.mts +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search/material.d.mts +1 -1
- package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.d.mts +1 -1
- package/dist/components/biz/business/header-search/header-logo-search/material.d.mts +1 -1
- package/dist/components/biz/business/header-search/header-search/material.d.mts +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.d.mts +1 -1
- package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.d.mts +1 -1
- package/dist/components/biz/business/large-feature-grid/card-item.mjs +1 -1
- package/dist/components/biz/business/large-feature-grid/material.d.mts +2 -2
- package/dist/components/biz/business/marquee/client.mjs +1 -1
- package/dist/components/biz/business/marquee/material.d.mts +2 -2
- package/dist/components/biz/business/marquee/schema.d.mts +1 -1
- package/dist/components/biz/business/profile/profile-header/material.d.mts +2 -2
- package/dist/components/biz/business/profile/profile-header/user-profile-avatar.mjs +1 -1
- package/dist/components/biz/business/profile/profile-header/user-profile-cover-background.mjs +1 -1
- package/dist/components/biz/business/profile/profile-main/material.d.mts +1 -1
- package/dist/components/biz/business/search-history/client.mjs +1 -1
- package/dist/components/biz/business/search-history/material.d.mts +1 -1
- package/dist/components/biz/business/search-history/schema.d.mts +1 -1
- package/dist/components/biz/business/search-history/server.mjs +1 -1
- package/dist/components/biz/business/search-input/client.d.mts +2 -0
- package/dist/components/biz/business/search-input/client.mjs +1 -1
- package/dist/components/biz/business/search-input/material.d.mts +1 -4
- package/dist/components/biz/business/search-input/schema.d.mts +1 -3
- package/dist/components/biz/business/search-input/schema.mjs +1 -1
- package/dist/components/biz/business/shortcut-grid/material.d.mts +1 -1
- package/dist/components/biz/business/tab-bar/material.d.mts +2 -2
- package/dist/components/biz/business/tab-bar/schema.d.mts +2 -2
- package/dist/components/biz/business/text-recommend/client.mjs +1 -1
- package/dist/components/biz/business/text-recommend/material.d.mts +1 -1
- package/dist/components/biz/business/text-recommend/schema.d.mts +1 -1
- package/dist/components/biz/business/video-horizontal-list/client.d.mts +2 -1
- package/dist/components/biz/business/video-horizontal-list/client.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/material.d.mts +7 -7
- package/dist/components/biz/business/video-horizontal-list/material.mjs +1 -1
- package/dist/components/biz/business/video-horizontal-list/schema.d.mts +7 -7
- package/dist/components/biz/business/video-horizontal-list/schema.mjs +1 -1
- package/dist/components/biz/example/button/material.d.mts +1 -1
- package/dist/components/biz/example/button/material.mjs +1 -1
- package/dist/components/common/list/post-list/post-list.mjs +1 -1
- package/dist/components/common/list/user-activity-list/user-activity-list.d.mts +1 -1
- package/dist/components/common/list/user-activity-list/user-activity-list.mjs +1 -1
- package/dist/components/common/list/video-list/video-list.mjs +1 -1
- package/dist/components/pages/(follow)/_components/follow-button/index.mjs +1 -1
- package/dist/components/pages/login/password.mjs +1 -1
- package/dist/components/pages/login/register.mjs +1 -1
- package/dist/components/pages/login/reset-password.mjs +1 -1
- package/dist/components/pages/login/verify.mjs +1 -1
- package/dist/components/pages/search-result/page-client.mjs +1 -1
- package/dist/components/pages/search-result/search-all.mjs +1 -1
- package/dist/components/pages/search-result/search-tab.mjs +1 -1
- package/dist/components/pages/search-result/search-user.mjs +1 -1
- package/dist/components/pages/search-result/search-video.mjs +1 -1
- package/dist/components/pages/settings/_components/reset-password-drawer.mjs +1 -1
- package/dist/components/pages/settings/_components/settings.mjs +1 -1
- package/dist/components/ui/button.d.mts +1 -1
- package/dist/i18n/locales/en.mjs +2 -2
- package/dist/i18n/locales/zh-CN.mjs +2 -2
- package/dist/service/batch-get-video-detail.d.mts +21 -0
- package/dist/service/batch-get-video-detail.mjs +2 -0
- package/dist/service/get-popular-video-list-post.d.mts +8 -0
- package/dist/service/get-popular-video-list-post.mjs +2 -0
- package/dist/service.d.mts +3 -1
- package/dist/service.mjs +1 -1
- package/dist/utils/password-validator.d.mts +28 -0
- package/dist/utils/password-validator.mjs +2 -0
- package/dist/utils/schema/index.d.mts +1 -1
- package/dist/utils/schema/material.d.mts +7 -9
- package/dist/utils/schema/utils.d.mts +13 -3
- package/dist/utils/schema/utils.mjs +1 -1
- package/dist/utils.d.mts +3 -2
- package/dist/utils.mjs +1 -1
- package/package.json +7 -2
- package/templates/base/_meta.json +4 -0
- package/templates/base/template/README.md.template +32 -0
- package/templates/base/template/__dot__gitignore +6 -0
- package/templates/base/template/app/[locale]/layout.tsx.template +36 -0
- package/templates/base/template/app/[locale]/page.tsx.template +24 -0
- package/templates/base/template/app/globals.css +26 -0
- package/templates/base/template/app/layout.tsx.template +38 -0
- package/templates/base/template/eslint.config.mjs.template +68 -0
- package/templates/base/template/i18n/request.ts.template +3 -0
- package/templates/base/template/next-env.d.ts.template +4 -0
- package/templates/base/template/next.config.ts.template +21 -0
- package/templates/base/template/package.json.template +37 -0
- package/templates/base/template/postcss.config.js.template +18 -0
- package/templates/base/template/proxy.ts.template +18 -0
- package/templates/base/template/tailwind.config.cjs.template +13 -0
- package/templates/base/template/tsconfig.json.template +43 -0
package/README.md
CHANGED
|
@@ -16,6 +16,19 @@
|
|
|
16
16
|
pnpm add @funhub/platform
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
+
## 初始化应用
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx @funhub/platform init my-funhub-app
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
可选参数:
|
|
26
|
+
|
|
27
|
+
- `--template base`:使用内置最小 starter 模板
|
|
28
|
+
- `--pm pnpm`:指定包管理器
|
|
29
|
+
- `--no-install`:只生成文件,不安装依赖
|
|
30
|
+
- `--no-git`:跳过 Git 仓库初始化
|
|
31
|
+
|
|
19
32
|
## 导出模块
|
|
20
33
|
|
|
21
34
|
| 模块 | 路径 | 说明 |
|
package/bin/index.mjs
ADDED
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/* eslint-disable no-console */
|
|
4
|
+
import { spawn } from 'node:child_process';
|
|
5
|
+
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from 'node:fs';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import process from 'node:process';
|
|
8
|
+
import { fileURLToPath } from 'node:url';
|
|
9
|
+
import { cac } from 'cac';
|
|
10
|
+
|
|
11
|
+
const currentFilePath = fileURLToPath(import.meta.url);
|
|
12
|
+
const packageRoot = path.resolve(path.dirname(currentFilePath), '..');
|
|
13
|
+
const templatesRoot = path.join(packageRoot, 'templates');
|
|
14
|
+
const platformPackageJson = JSON.parse(readFileSync(path.join(packageRoot, 'package.json'), 'utf8'));
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 获取可用模板列表。
|
|
18
|
+
* @returns {Array<{ name: string, title: string, description: string, directory: string }>}
|
|
19
|
+
*/
|
|
20
|
+
function getAvailableTemplates() {
|
|
21
|
+
if (!existsSync(templatesRoot)) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return readdirSync(templatesRoot)
|
|
26
|
+
.map((entryName) => {
|
|
27
|
+
const templateDir = path.join(templatesRoot, entryName);
|
|
28
|
+
if (!statSync(templateDir).isDirectory()) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const metaFilePath = path.join(templateDir, '_meta.json');
|
|
33
|
+
if (!existsSync(metaFilePath)) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const meta = JSON.parse(readFileSync(metaFilePath, 'utf8'));
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
name: entryName,
|
|
41
|
+
title: meta.title || entryName,
|
|
42
|
+
description: meta.description || '',
|
|
43
|
+
directory: templateDir,
|
|
44
|
+
};
|
|
45
|
+
})
|
|
46
|
+
.filter(Boolean);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 解析默认包管理器。
|
|
51
|
+
* @returns {'pnpm' | 'npm' | 'yarn' | 'bun'}
|
|
52
|
+
*/
|
|
53
|
+
function detectPackageManager() {
|
|
54
|
+
const userAgent = process.env.npm_config_user_agent || '';
|
|
55
|
+
|
|
56
|
+
if (userAgent.startsWith('yarn/')) {
|
|
57
|
+
return 'yarn';
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (userAgent.startsWith('bun/')) {
|
|
61
|
+
return 'bun';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (userAgent.startsWith('npm/')) {
|
|
65
|
+
return 'npm';
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return 'pnpm';
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* 根据当前平台返回命令名。
|
|
73
|
+
* @param {'pnpm' | 'npm' | 'yarn' | 'bun' | 'git'} command
|
|
74
|
+
* @returns {string}
|
|
75
|
+
*/
|
|
76
|
+
function resolveCommand(command) {
|
|
77
|
+
return process.platform === 'win32' ? `${command}.cmd` : command;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* 将目录名转换为 npm 包名。
|
|
82
|
+
* @param {string} projectName
|
|
83
|
+
* @returns {string}
|
|
84
|
+
*/
|
|
85
|
+
function toPackageName(projectName) {
|
|
86
|
+
return projectName
|
|
87
|
+
.trim()
|
|
88
|
+
.toLowerCase()
|
|
89
|
+
.replace(/\s+/g, '-')
|
|
90
|
+
.replace(/[^a-z0-9-_.~/@]/g, '-')
|
|
91
|
+
.replace(/-+/g, '-');
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 校验项目名是否合法。
|
|
96
|
+
* @param {string} projectName
|
|
97
|
+
*/
|
|
98
|
+
function validateProjectName(projectName) {
|
|
99
|
+
if (!projectName) {
|
|
100
|
+
throw new Error('项目名不能为空。');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (projectName === '.' || projectName === '..') {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (!/^[\w.-]+$/.test(projectName)) {
|
|
108
|
+
throw new Error('项目目录名仅支持字母、数字、点、中划线和下划线。');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* 递归遍历目录文件。
|
|
114
|
+
* @param {string} targetDir
|
|
115
|
+
* @returns {string[]}
|
|
116
|
+
*/
|
|
117
|
+
function collectFiles(targetDir) {
|
|
118
|
+
const entries = readdirSync(targetDir, { withFileTypes: true });
|
|
119
|
+
const filePaths = [];
|
|
120
|
+
|
|
121
|
+
for (const entry of entries) {
|
|
122
|
+
const entryPath = path.join(targetDir, entry.name);
|
|
123
|
+
if (entry.isDirectory()) {
|
|
124
|
+
filePaths.push(...collectFiles(entryPath));
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
filePaths.push(entryPath);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return filePaths;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 判断文件是否可按文本方式渲染。
|
|
135
|
+
* @param {string} filePath
|
|
136
|
+
* @returns {boolean}
|
|
137
|
+
*/
|
|
138
|
+
function isRenderableTextFile(filePath) {
|
|
139
|
+
return /\.(?:json|md|tsx?|jsx?|mjs|cjs|css|txt|ya?ml|gitignore)$/i.test(filePath);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* 渲染模板目录中的占位符文件。
|
|
144
|
+
* @param {string} targetDir
|
|
145
|
+
* @param {Record<string, string>} variables
|
|
146
|
+
*/
|
|
147
|
+
function renderTemplateFiles(targetDir, variables) {
|
|
148
|
+
const filePaths = collectFiles(targetDir);
|
|
149
|
+
|
|
150
|
+
for (const filePath of filePaths) {
|
|
151
|
+
const dirName = path.dirname(filePath);
|
|
152
|
+
const baseName = path.basename(filePath);
|
|
153
|
+
|
|
154
|
+
if (baseName === '__dot__gitignore') {
|
|
155
|
+
renameSync(filePath, path.join(dirName, '.gitignore'));
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (baseName.endsWith('.template')) {
|
|
160
|
+
const nextFilePath = path.join(dirName, baseName.replace(/\.template$/, ''));
|
|
161
|
+
renameSync(filePath, nextFilePath);
|
|
162
|
+
renderSingleFile(nextFilePath, variables);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
renderSingleFile(filePath, variables);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* 渲染单个文本文件。
|
|
172
|
+
* @param {string} filePath
|
|
173
|
+
* @param {Record<string, string>} variables
|
|
174
|
+
*/
|
|
175
|
+
function renderSingleFile(filePath, variables) {
|
|
176
|
+
if (!isRenderableTextFile(filePath)) {
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
let content = readFileSync(filePath, 'utf8');
|
|
181
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
182
|
+
content = content.replaceAll(`{{${key}}}`, value);
|
|
183
|
+
}
|
|
184
|
+
writeFileSync(filePath, content);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* 执行子进程命令。
|
|
189
|
+
* @param {string} command
|
|
190
|
+
* @param {string[]} args
|
|
191
|
+
* @param {string} cwd
|
|
192
|
+
* @returns {Promise<void>}
|
|
193
|
+
*/
|
|
194
|
+
function runCommand(command, args, cwd) {
|
|
195
|
+
return new Promise((resolve, reject) => {
|
|
196
|
+
const child = spawn(resolveCommand(command), args, {
|
|
197
|
+
cwd,
|
|
198
|
+
stdio: 'inherit',
|
|
199
|
+
shell: false,
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
child.on('close', (code) => {
|
|
203
|
+
if (code === 0) {
|
|
204
|
+
resolve();
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
reject(new Error(`${command} ${args.join(' ')} 执行失败,退出码 ${code}`));
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* 获取安装命令。
|
|
215
|
+
* @param {'pnpm' | 'npm' | 'yarn' | 'bun'} packageManager
|
|
216
|
+
* @returns {{ command: string, args: string[] }}
|
|
217
|
+
*/
|
|
218
|
+
function getInstallCommand(packageManager) {
|
|
219
|
+
switch (packageManager) {
|
|
220
|
+
case 'npm':
|
|
221
|
+
return { command: 'npm', args: ['install'] };
|
|
222
|
+
case 'yarn':
|
|
223
|
+
return { command: 'yarn', args: [] };
|
|
224
|
+
case 'bun':
|
|
225
|
+
return { command: 'bun', args: ['install'] };
|
|
226
|
+
default:
|
|
227
|
+
return { command: 'pnpm', args: ['install'] };
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* 初始化项目。
|
|
233
|
+
* @param {string | undefined} inputName
|
|
234
|
+
* @param {{ template?: string, pm?: 'pnpm' | 'npm' | 'yarn' | 'bun', install?: boolean, git?: boolean, force?: boolean }} options
|
|
235
|
+
*/
|
|
236
|
+
async function initProject(inputName, options) {
|
|
237
|
+
const templateName = options.template || 'base';
|
|
238
|
+
const packageManager = options.pm || detectPackageManager();
|
|
239
|
+
const availableTemplates = getAvailableTemplates();
|
|
240
|
+
const matchedTemplate = availableTemplates.find(item => item.name === templateName);
|
|
241
|
+
|
|
242
|
+
if (!matchedTemplate) {
|
|
243
|
+
throw new Error(`未找到模板 ${templateName},可用模板:${availableTemplates.map(item => item.name).join(', ')}`);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
const workingDir = process.cwd();
|
|
247
|
+
const projectName = inputName || 'funhub-app';
|
|
248
|
+
validateProjectName(projectName);
|
|
249
|
+
|
|
250
|
+
const targetDir = path.resolve(workingDir, projectName);
|
|
251
|
+
const targetExists = existsSync(targetDir);
|
|
252
|
+
const targetBaseName = projectName === '.' ? path.basename(workingDir) : path.basename(targetDir);
|
|
253
|
+
const packageName = toPackageName(targetBaseName);
|
|
254
|
+
|
|
255
|
+
if (targetExists) {
|
|
256
|
+
const targetEntries = readdirSync(targetDir);
|
|
257
|
+
if (targetEntries.length > 0) {
|
|
258
|
+
if (!options.force) {
|
|
259
|
+
throw new Error(`目标目录 ${targetDir} 非空,请改用空目录或显式传入 --force。`);
|
|
260
|
+
}
|
|
261
|
+
rmSync(targetDir, { recursive: true, force: true });
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
mkdirSync(targetDir, { recursive: true });
|
|
266
|
+
|
|
267
|
+
const sourceTemplateDir = path.join(matchedTemplate.directory, 'template');
|
|
268
|
+
cpSync(sourceTemplateDir, targetDir, { recursive: true });
|
|
269
|
+
|
|
270
|
+
renderTemplateFiles(targetDir, {
|
|
271
|
+
PROJECT_NAME: targetBaseName,
|
|
272
|
+
PACKAGE_NAME: packageName,
|
|
273
|
+
PLATFORM_VERSION: platformPackageJson.version,
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
console.log(`\n已创建 Funhub 项目:${targetBaseName}`);
|
|
277
|
+
console.log(`模板:${matchedTemplate.title}`);
|
|
278
|
+
console.log(`目录:${targetDir}`);
|
|
279
|
+
|
|
280
|
+
if (options.install !== false) {
|
|
281
|
+
const installCommand = getInstallCommand(packageManager);
|
|
282
|
+
console.log(`\n正在安装依赖(${packageManager})...`);
|
|
283
|
+
await runCommand(installCommand.command, installCommand.args, targetDir);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (options.git !== false) {
|
|
287
|
+
console.log('\n正在初始化 Git 仓库...');
|
|
288
|
+
await runCommand('git', ['init'], targetDir);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
const relativeTargetDir = path.relative(workingDir, targetDir) || '.';
|
|
292
|
+
console.log('\n下一步:');
|
|
293
|
+
if (relativeTargetDir !== '.') {
|
|
294
|
+
console.log(` cd ${relativeTargetDir}`);
|
|
295
|
+
}
|
|
296
|
+
if (options.install === false) {
|
|
297
|
+
const installCommand = getInstallCommand(packageManager);
|
|
298
|
+
console.log(` ${installCommand.command} ${installCommand.args.join(' ')}`.trimEnd());
|
|
299
|
+
}
|
|
300
|
+
console.log(` ${packageManager} dev`);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
const cli = cac('@funhub/platform');
|
|
304
|
+
|
|
305
|
+
cli
|
|
306
|
+
.command('init [project-name]', '初始化一个 Funhub 应用')
|
|
307
|
+
.option('--template <template>', '模板名称,默认 base')
|
|
308
|
+
.option('--pm <packageManager>', '包管理器,可选 pnpm/npm/yarn/bun')
|
|
309
|
+
.option('--no-install', '跳过依赖安装')
|
|
310
|
+
.option('--no-git', '跳过 git init')
|
|
311
|
+
.option('--force', '强制覆盖非空目录')
|
|
312
|
+
.action(async (projectName, options) => {
|
|
313
|
+
try {
|
|
314
|
+
await initProject(projectName, options);
|
|
315
|
+
}
|
|
316
|
+
catch (error) {
|
|
317
|
+
console.error(`\n❌ ${(error && error.message) || '初始化失败'}`);
|
|
318
|
+
process.exit(1);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
cli.help();
|
|
323
|
+
cli.parse();
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
var e=`data:image/png;base64,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`;export{e as default};
|
|
@@ -19,6 +19,6 @@ declare const basicBannerMaterial: DefineMaterialOption<typeof BasicBanner, type
|
|
|
19
19
|
renderer: "renderer";
|
|
20
20
|
editor: "editor";
|
|
21
21
|
}>>;
|
|
22
|
-
}, zod_v4_core0.$strip>, "basic-banner">;
|
|
22
|
+
}, zod_v4_core0.$strip>, "basic-banner", "内容组件">;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { basicBannerMaterial };
|
|
@@ -22,6 +22,6 @@ declare const BannerCarouselMaterial: DefineMaterialOption<typeof BannerCarousel
|
|
|
22
22
|
renderer: "renderer";
|
|
23
23
|
editor: "editor";
|
|
24
24
|
}>>;
|
|
25
|
-
}, zod_v4_core0.$strip>, "banner-carousel">;
|
|
25
|
+
}, zod_v4_core0.$strip>, "banner-carousel", "内容组件">;
|
|
26
26
|
//#endregion
|
|
27
27
|
export { BannerCarouselMaterial };
|
|
@@ -18,6 +18,6 @@ declare const channelListMaterial: DefineMaterialOption<typeof BasicChannelListC
|
|
|
18
18
|
renderer: "renderer";
|
|
19
19
|
editor: "editor";
|
|
20
20
|
}>>;
|
|
21
|
-
}, zod_v4_core0.$strip>, "channel-list">;
|
|
21
|
+
}, zod_v4_core0.$strip>, "channel-list", "内容组件">;
|
|
22
22
|
//#endregion
|
|
23
23
|
export { channelListMaterial };
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { SchemaHasDefaultValue } from "../../../../../utils/schema/schema.mjs";
|
|
3
3
|
import { DefineMaterialOption } from "../../../../../utils/schema/material.mjs";
|
|
4
4
|
import { MaterialMap } from "../../../../../utils/schema/utils.mjs";
|
|
5
|
+
import "../../../../../utils/schema/index.mjs";
|
|
5
6
|
import { VideoDetailPlayerClient } from "./video-detail-player/client.mjs";
|
|
6
7
|
import { VideoDetailPlayer } from "./video-detail-player/server.mjs";
|
|
7
8
|
import "./video-detail-player/index.mjs";
|
|
@@ -20,7 +21,6 @@ import "./video-detail-actions/index.mjs";
|
|
|
20
21
|
import { VideoDetailRecommendClient } from "./video-detail-recommend/client.mjs";
|
|
21
22
|
import { VideoDetailRecommend } from "./video-detail-recommend/server.mjs";
|
|
22
23
|
import "./video-detail-recommend/index.mjs";
|
|
23
|
-
import "../../../../../utils.mjs";
|
|
24
24
|
import z$1 from "zod";
|
|
25
25
|
|
|
26
26
|
//#region components/biz/business/detail/materials/registry.d.ts
|
|
@@ -29,31 +29,31 @@ declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<t
|
|
|
29
29
|
renderer: "renderer";
|
|
30
30
|
editor: "editor";
|
|
31
31
|
}>>;
|
|
32
|
-
}, z$1.core.$strip>, "video-detail-player">, DefineMaterialOption<typeof VideoDetailInfo, typeof VideoDetailInfoClient, z$1.ZodObject<{
|
|
32
|
+
}, z$1.core.$strip>, "video-detail-player", "视频模块">, DefineMaterialOption<typeof VideoDetailInfo, typeof VideoDetailInfoClient, z$1.ZodObject<{
|
|
33
33
|
showTags: z$1.ZodBoolean & SchemaHasDefaultValue;
|
|
34
34
|
showEpisodes: z$1.ZodBoolean & SchemaHasDefaultValue;
|
|
35
35
|
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
36
36
|
renderer: "renderer";
|
|
37
37
|
editor: "editor";
|
|
38
38
|
}>>;
|
|
39
|
-
}, z$1.core.$strip>, "video-detail-info">, DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, z$1.ZodObject<{
|
|
39
|
+
}, z$1.core.$strip>, "video-detail-info", "内容组件">, DefineMaterialOption<typeof VideoDetailInfoTitle, typeof VideoDetailInfoTitleClient, z$1.ZodObject<{
|
|
40
40
|
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
41
41
|
renderer: "renderer";
|
|
42
42
|
editor: "editor";
|
|
43
43
|
}>>;
|
|
44
|
-
}, z$1.core.$strip>, "video-detail-info-title">, DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, z$1.ZodObject<{
|
|
44
|
+
}, z$1.core.$strip>, "video-detail-info-title", "内容组件">, DefineMaterialOption<typeof VideoDetailInfoTitleTagsEpisodes, typeof VideoDetailInfoTitleTagsEpisodesClient, z$1.ZodObject<{
|
|
45
45
|
showTags: z$1.ZodBoolean & SchemaHasDefaultValue;
|
|
46
46
|
showEpisodes: z$1.ZodBoolean & SchemaHasDefaultValue;
|
|
47
47
|
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
48
48
|
renderer: "renderer";
|
|
49
49
|
editor: "editor";
|
|
50
50
|
}>>;
|
|
51
|
-
}, z$1.core.$strip>, "video-detail-info-title-tags-episodes">, DefineMaterialOption<typeof VideoDetailActions, typeof VideoDetailActionsClient, z$1.ZodObject<{
|
|
51
|
+
}, z$1.core.$strip>, "video-detail-info-title-tags-episodes", "内容组件">, DefineMaterialOption<typeof VideoDetailActions, typeof VideoDetailActionsClient, z$1.ZodObject<{
|
|
52
52
|
mode: z$1.ZodOptional<z$1.ZodEnum<{
|
|
53
53
|
renderer: "renderer";
|
|
54
54
|
editor: "editor";
|
|
55
55
|
}>>;
|
|
56
|
-
}, z$1.core.$strip>, "video-detail-actions">, DefineMaterialOption<typeof VideoDetailRecommend, typeof VideoDetailRecommendClient, z$1.ZodObject<{
|
|
56
|
+
}, z$1.core.$strip>, "video-detail-actions", "行为组件">, DefineMaterialOption<typeof VideoDetailRecommend, typeof VideoDetailRecommendClient, z$1.ZodObject<{
|
|
57
57
|
rows: z$1.ZodNumber & SchemaHasDefaultValue;
|
|
58
58
|
columns: z$1.ZodNumber & SchemaHasDefaultValue;
|
|
59
59
|
smartTagEnabled: z$1.ZodBoolean & SchemaHasDefaultValue;
|
|
@@ -84,6 +84,6 @@ declare const videoDetailMaterials: MaterialMap<readonly [DefineMaterialOption<t
|
|
|
84
84
|
renderer: "renderer";
|
|
85
85
|
editor: "editor";
|
|
86
86
|
}>>;
|
|
87
|
-
}, z$1.core.$strip>, "video-detail-recommend">]>;
|
|
87
|
+
}, z$1.core.$strip>, "video-detail-recommend", "详情页">]>;
|
|
88
88
|
//#endregion
|
|
89
89
|
export { videoDetailMaterials };
|
|
@@ -11,6 +11,6 @@ declare const videoDetailActionsMaterial: DefineMaterialOption<typeof VideoDetai
|
|
|
11
11
|
renderer: "renderer";
|
|
12
12
|
editor: "editor";
|
|
13
13
|
}>>;
|
|
14
|
-
}, zod_v4_core0.$strip>, "video-detail-actions">;
|
|
14
|
+
}, zod_v4_core0.$strip>, "video-detail-actions", "行为组件">;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { videoDetailActionsMaterial };
|
|
@@ -15,6 +15,6 @@ declare const videoDetailInfoMaterial: DefineMaterialOption<typeof VideoDetailIn
|
|
|
15
15
|
renderer: "renderer";
|
|
16
16
|
editor: "editor";
|
|
17
17
|
}>>;
|
|
18
|
-
}, zod_v4_core0.$strip>, "video-detail-info">;
|
|
18
|
+
}, zod_v4_core0.$strip>, "video-detail-info", "内容组件">;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { videoDetailInfoMaterial };
|
package/dist/components/biz/business/detail/materials/video-detail-info-title/material.d.mts
CHANGED
|
@@ -11,6 +11,6 @@ declare const videoDetailInfoTitleMaterial: DefineMaterialOption<typeof VideoDet
|
|
|
11
11
|
renderer: "renderer";
|
|
12
12
|
editor: "editor";
|
|
13
13
|
}>>;
|
|
14
|
-
}, zod_v4_core0.$strip>, "video-detail-info-title">;
|
|
14
|
+
}, zod_v4_core0.$strip>, "video-detail-info-title", "内容组件">;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { videoDetailInfoTitleMaterial };
|
|
@@ -15,6 +15,6 @@ declare const videoDetailInfoTitleTagsEpisodesMaterial: DefineMaterialOption<typ
|
|
|
15
15
|
renderer: "renderer";
|
|
16
16
|
editor: "editor";
|
|
17
17
|
}>>;
|
|
18
|
-
}, zod_v4_core0.$strip>, "video-detail-info-title-tags-episodes">;
|
|
18
|
+
}, zod_v4_core0.$strip>, "video-detail-info-title-tags-episodes", "内容组件">;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { videoDetailInfoTitleTagsEpisodesMaterial };
|
|
@@ -11,6 +11,6 @@ declare const videoDetailPlayerMaterial: DefineMaterialOption<typeof VideoDetail
|
|
|
11
11
|
renderer: "renderer";
|
|
12
12
|
editor: "editor";
|
|
13
13
|
}>>;
|
|
14
|
-
}, zod_v4_core0.$strip>, "video-detail-player">;
|
|
14
|
+
}, zod_v4_core0.$strip>, "video-detail-player", "视频模块">;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { videoDetailPlayerMaterial };
|
|
@@ -39,6 +39,6 @@ declare const videoDetailRecommendMaterial: DefineMaterialOption<typeof VideoDet
|
|
|
39
39
|
renderer: "renderer";
|
|
40
40
|
editor: "editor";
|
|
41
41
|
}>>;
|
|
42
|
-
}, zod_v4_core0.$strip>, "video-detail-recommend">;
|
|
42
|
+
}, zod_v4_core0.$strip>, "video-detail-recommend", "详情页">;
|
|
43
43
|
//#endregion
|
|
44
44
|
export { videoDetailRecommendMaterial };
|
|
@@ -15,6 +15,6 @@ declare const floatingBallMaterial: DefineMaterialOption<typeof FloatingBall, ty
|
|
|
15
15
|
renderer: "renderer";
|
|
16
16
|
editor: "editor";
|
|
17
17
|
}>>;
|
|
18
|
-
}, zod_v4_core0.$strip>, "floating-ball">;
|
|
18
|
+
}, zod_v4_core0.$strip>, "floating-ball", "内容组件">;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { floatingBallMaterial };
|
|
@@ -11,6 +11,6 @@ declare const headerAvatarIconMaterial: DefineMaterialOption<typeof HeaderAvatar
|
|
|
11
11
|
renderer: "renderer";
|
|
12
12
|
editor: "editor";
|
|
13
13
|
}>>;
|
|
14
|
-
}, zod_v4_core0.$strip>, "header-avatar-icon">;
|
|
14
|
+
}, zod_v4_core0.$strip>, "header-avatar-icon", "顶部功能">;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { headerAvatarIconMaterial };
|
|
@@ -15,6 +15,6 @@ declare const headerAvatarLogoSearchMaterial: DefineMaterialOption<typeof Header
|
|
|
15
15
|
renderer: "renderer";
|
|
16
16
|
editor: "editor";
|
|
17
17
|
}>>;
|
|
18
|
-
}, zod_v4_core0.$strip>, "header-avatar-logo-search">;
|
|
18
|
+
}, zod_v4_core0.$strip>, "header-avatar-logo-search", "顶部功能">;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { headerAvatarLogoSearchMaterial };
|
package/dist/components/biz/business/header-search/header-avatar-logo-search-icon/material.d.mts
CHANGED
|
@@ -15,6 +15,6 @@ declare const headerAvatarLogoSearchIconMaterial: DefineMaterialOption<typeof He
|
|
|
15
15
|
renderer: "renderer";
|
|
16
16
|
editor: "editor";
|
|
17
17
|
}>>;
|
|
18
|
-
}, zod_v4_core0.$strip>, "header-avatar-logo-search-icon">;
|
|
18
|
+
}, zod_v4_core0.$strip>, "header-avatar-logo-search-icon", "顶部功能">;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { headerAvatarLogoSearchIconMaterial };
|
|
@@ -15,6 +15,6 @@ declare const headerLogoSearchMaterial: DefineMaterialOption<typeof HeaderLogoSe
|
|
|
15
15
|
renderer: "renderer";
|
|
16
16
|
editor: "editor";
|
|
17
17
|
}>>;
|
|
18
|
-
}, zod_v4_core0.$strip>, "header-logo-search">;
|
|
18
|
+
}, zod_v4_core0.$strip>, "header-logo-search", "顶部功能">;
|
|
19
19
|
//#endregion
|
|
20
20
|
export { headerLogoSearchMaterial };
|
|
@@ -11,6 +11,6 @@ declare const headerSearchMaterial: DefineMaterialOption<typeof HeaderSearch, ty
|
|
|
11
11
|
renderer: "renderer";
|
|
12
12
|
editor: "editor";
|
|
13
13
|
}>>;
|
|
14
|
-
}, zod_v4_core0.$strip>, "header-search">;
|
|
14
|
+
}, zod_v4_core0.$strip>, "header-search", "顶部功能">;
|
|
15
15
|
//#endregion
|
|
16
16
|
export { headerSearchMaterial };
|
package/dist/components/biz/business/home-recommend/variants/home-recommend-grid/material.d.mts
CHANGED
|
@@ -41,6 +41,6 @@ declare const homeRecommendGridMaterial: DefineMaterialOption<typeof HomeRecomme
|
|
|
41
41
|
renderer: "renderer";
|
|
42
42
|
editor: "editor";
|
|
43
43
|
}>>;
|
|
44
|
-
}, zod_v4_core0.$strip>, "home-recommend-grid">;
|
|
44
|
+
}, zod_v4_core0.$strip>, "home-recommend-grid", "内容组件">;
|
|
45
45
|
//#endregion
|
|
46
46
|
export { homeRecommendGridMaterial };
|
package/dist/components/biz/business/home-recommend/variants/home-recommend-waterfall/material.d.mts
CHANGED
|
@@ -36,6 +36,6 @@ declare const homeRecommendWaterfallMaterial: DefineMaterialOption<typeof HomeRe
|
|
|
36
36
|
renderer: "renderer";
|
|
37
37
|
editor: "editor";
|
|
38
38
|
}>>;
|
|
39
|
-
}, zod_v4_core0.$strip>, "home-recommend-waterfall">;
|
|
39
|
+
}, zod_v4_core0.$strip>, "home-recommend-waterfall", "内容组件">;
|
|
40
40
|
//#endregion
|
|
41
41
|
export { homeRecommendWaterfallMaterial };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import i from"../../../../assets/icons/view.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s(
|
|
2
|
+
import{Image as e}from"../../../ui/image.mjs";import{Box as t}from"../../../ui/box.mjs";import{Text as n}from"../../../ui/text.mjs";import r from"../../../ui/link.mjs";import i from"../../../../assets/icons/view.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";function s({data:s}){return s?a(t,{children:(Array.isArray(s)?s:[s]).map((s,c)=>{if(!s||typeof s!=`object`)return null;let{id:l,title:u,desc:d,cover:f,tagImageUrl:p,showEpisode:m,episodeText:h,showPlayCount:g,playCount:_}=s,v=u||``,y=l?`/video/${l}/${v?encodeURIComponent(v):``}`:`#`,b=p?String(p):null,x=h==null?``:String(h).trim(),S=_==null?``:String(_).trim(),C=(m??!0)&&x?x:null,w=(g??!0)&&S?S:null;return a(t,{children:o(r,{href:y,children:[o(t,{className:`relative w-full overflow-hidden rounded-[12px] bg-neutral-800`,style:{aspectRatio:`16/9`},children:[f&&a(e,{src:f,alt:v||`封面`,fill:!0,objectFit:`cover`}),b&&a(t,{className:`absolute top-0 right-0 z-10 w-[37px] h-[20px]`,children:a(e,{src:b,alt:v||`角标`,fill:!0,sizes:`37px`,className:`object-contain`})}),a(t,{className:`absolute inset-x-0 bottom-0 h-[40px] bg-gradient-to-t from-black/80 to-transparent z-0 pointer-events-none`}),w&&o(t,{className:`absolute bottom-0 left-[8px] mb-[6px] z-10 flex items-center gap-[4px]`,children:[a(i,{className:`h-[14px] w-[14px] text-white`}),a(n,{as:`span`,className:`text-[12px] font-medium text-white drop-shadow-md`,children:w})]}),C&&a(t,{className:`absolute bottom-0 right-[8px] mb-[6px] z-10 flex items-center`,children:a(n,{as:`span`,className:`text-[12px] font-medium text-white drop-shadow-md`,children:C})})]}),o(t,{className:`flex items-center justify-between gap-[12px] pt-[10px] px-2`,children:[o(t,{className:`flex-1 min-w-0`,children:[a(n,{as:`h3`,className:`text-[16px] font-semibold leading-[24px] text-text1 line-clamp-1`,children:v}),d&&a(n,{as:`p`,className:`mt-[4px] text-[13px] leading-[20px] text-text2 line-clamp-1`,children:d})]}),a(n,{className:`shrink-0 rounded-[20px] border border-[#FD4C5E] px-[24px] py-[8px] text-[14px] font-normal text-[#FD4C5E]`,children:`观看`})]})]})},l||v||`large-grid-item-${c}`)})}):null}export{s as LargeGridItemClient};
|