迭代 ONE-OS 多原型:提车应收款收款/合同页增强,租赁明细标注同步,导航注册表更新;新增 Git 协作技能并忽略 .local 临时目录。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
王冕
2026-07-13 09:31:28 +08:00
parent 9a4a4a4f6a
commit 962e83597f
33 changed files with 5328 additions and 5863 deletions

View File

@@ -54,6 +54,7 @@ function readS3Config() {
}
return {
...s3,
pathAliases: s3.pathAliases && typeof s3.pathAliases === 'object' ? s3.pathAliases : {},
includeSource: raw?.cloudPublishing?.publishSettings?.includeSource !== false,
};
}
@@ -63,7 +64,10 @@ function toPublishPath(resource) {
return String(raw).replace(/\\/gu, '/').replace(/\/index\.tsx?$/iu, '');
}
function resolveObjectPrefix(entry) {
function resolveObjectPrefix(entry, pathAliases = {}) {
const alias = pathAliases[entry.id];
if (alias) return String(alias).replace(/^\/+|\/+$/gu, '');
const normalized = entry.path.replace(/^\/+|\/+$/gu, '');
const prototypeMatch = normalized.match(/^(?:src\/)?prototypes\/(.+)$/u);
if (prototypeMatch?.[1]) return `prototypes/${prototypeMatch[1]}`;
@@ -97,7 +101,7 @@ function guessContentType(filePath) {
return map[ext] || 'application/octet-stream';
}
async function collectPublishEntries(adminOrigin, projectId, groupFilter) {
async function collectPublishEntries(adminOrigin, projectId, groupFilter, pathAliases = {}) {
const res = await fetch(`${adminOrigin}/api/projects/${encodeURIComponent(projectId)}/resources`);
if (!res.ok) {
throw new Error(`GET /api/projects/${projectId}/resources failed: ${res.status}`);
@@ -114,7 +118,7 @@ async function collectPublishEntries(adminOrigin, projectId, groupFilter) {
id: item.id,
title: item.title || item.id,
path: publishPath,
prefix: resolveObjectPrefix({ path: publishPath, id: item.id }),
prefix: resolveObjectPrefix({ path: publishPath, id: item.id }, pathAliases),
});
}
}
@@ -223,7 +227,7 @@ async function main() {
const adminOrigin = resolveAdminOrigin(args.adminOrigin);
const s3Config = readS3Config();
const includeSource = args.includeSource && s3Config.includeSource;
const entries = await collectPublishEntries(adminOrigin, args.projectId, args.group);
const entries = await collectPublishEntries(adminOrigin, args.projectId, args.group, s3Config.pathAliases);
console.log(`Admin: ${adminOrigin}`);
console.log(`Bucket: ${s3Config.bucket}`);