🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@bintel/dimens-cli

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bintel/dimens-cli - npm Package Compare versions

Comparing version
1.0.10
to
1.0.11
dist/commands-kjeaheAg.mjs

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

+67
//#region src/core/logger.ts
var Logger = class {
context;
level = "info";
constructor(context) {
this.context = context;
}
setLevel(level) {
this.level = level;
}
shouldLog(level) {
const levels = [
"debug",
"info",
"warn",
"error"
];
return levels.indexOf(level) >= levels.indexOf(this.level);
}
formatMessage(entry) {
const timestamp = entry.timestamp.toISOString();
const context = this.context ? `[${this.context}]` : "";
return `${timestamp} ${entry.level.toUpperCase()} ${context} ${entry.message}`;
}
log(level, message, context) {
if (!this.shouldLog(level)) return;
const entry = {
level,
message,
timestamp: /* @__PURE__ */ new Date()
};
if (context !== void 0) entry.context = context;
const formatted = this.formatMessage(entry);
switch (level) {
case "error":
console.error(formatted);
break;
case "warn":
console.warn(formatted);
break;
case "debug":
console.debug(formatted);
break;
default: console.log(formatted);
}
}
debug(message, context) {
this.log("debug", message, context);
}
info(message, context) {
this.log("info", message, context);
}
warn(message, context) {
this.log("warn", message, context);
}
error(message, context) {
this.log("error", message, context);
}
};
function createLogger(context) {
return new Logger(context);
}
const logger = createLogger("dimens-cli");
//#endregion
export { logger as n, createLogger as t };
//# sourceMappingURL=logger-BWhUXvjc.mjs.map
{"version":3,"file":"logger-BWhUXvjc.mjs","names":[],"sources":["../src/core/logger.ts"],"sourcesContent":["/**\n * 日志工具\n */\n\nimport type { LogLevel, LogEntry } from '../types';\n\nclass Logger {\n private context: string;\n private level: LogLevel = 'info';\n\n constructor(context: string) {\n this.context = context;\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n private shouldLog(level: LogLevel): boolean {\n const levels: LogLevel[] = ['debug', 'info', 'warn', 'error'];\n return levels.indexOf(level) >= levels.indexOf(this.level);\n }\n\n private formatMessage(entry: LogEntry): string {\n const timestamp = entry.timestamp.toISOString();\n const context = this.context ? `[${this.context}]` : '';\n return `${timestamp} ${entry.level.toUpperCase()} ${context} ${entry.message}`;\n }\n\n private log(level: LogLevel, message: string, context?: Record<string, unknown>): void {\n if (!this.shouldLog(level)) return;\n\n const entry: LogEntry = {\n level,\n message,\n timestamp: new Date(),\n };\n if (context !== undefined) {\n entry.context = context;\n }\n\n const formatted = this.formatMessage(entry);\n \n switch (level) {\n case 'error':\n console.error(formatted);\n break;\n case 'warn':\n console.warn(formatted);\n break;\n case 'debug':\n console.debug(formatted);\n break;\n default:\n console.log(formatted);\n }\n }\n\n debug(message: string, context?: Record<string, unknown>): void {\n this.log('debug', message, context);\n }\n\n info(message: string, context?: Record<string, unknown>): void {\n this.log('info', message, context);\n }\n\n warn(message: string, context?: Record<string, unknown>): void {\n this.log('warn', message, context);\n }\n\n error(message: string, context?: Record<string, unknown>): void {\n this.log('error', message, context);\n }\n}\n\nexport function createLogger(context: string): Logger {\n return new Logger(context);\n}\n\nexport const logger = createLogger('dimens-cli');\n"],"mappings":";AAMA,IAAM,SAAN,MAAa;CACX,AAAQ;CACR,AAAQ,QAAkB;CAE1B,YAAY,SAAiB;AAC3B,OAAK,UAAU;;CAGjB,SAAS,OAAuB;AAC9B,OAAK,QAAQ;;CAGf,AAAQ,UAAU,OAA0B;EAC1C,MAAM,SAAqB;GAAC;GAAS;GAAQ;GAAQ;GAAQ;AAC7D,SAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,KAAK,MAAM;;CAG5D,AAAQ,cAAc,OAAyB;EAC7C,MAAM,YAAY,MAAM,UAAU,aAAa;EAC/C,MAAM,UAAU,KAAK,UAAU,IAAI,KAAK,QAAQ,KAAK;AACrD,SAAO,GAAG,UAAU,GAAG,MAAM,MAAM,aAAa,CAAC,GAAG,QAAQ,GAAG,MAAM;;CAGvE,AAAQ,IAAI,OAAiB,SAAiB,SAAyC;AACrF,MAAI,CAAC,KAAK,UAAU,MAAM,CAAE;EAE5B,MAAM,QAAkB;GACtB;GACA;GACA,2BAAW,IAAI,MAAM;GACtB;AACD,MAAI,YAAY,OACd,OAAM,UAAU;EAGlB,MAAM,YAAY,KAAK,cAAc,MAAM;AAE3C,UAAQ,OAAR;GACE,KAAK;AACH,YAAQ,MAAM,UAAU;AACxB;GACF,KAAK;AACH,YAAQ,KAAK,UAAU;AACvB;GACF,KAAK;AACH,YAAQ,MAAM,UAAU;AACxB;GACF,QACE,SAAQ,IAAI,UAAU;;;CAI5B,MAAM,SAAiB,SAAyC;AAC9D,OAAK,IAAI,SAAS,SAAS,QAAQ;;CAGrC,KAAK,SAAiB,SAAyC;AAC7D,OAAK,IAAI,QAAQ,SAAS,QAAQ;;CAGpC,KAAK,SAAiB,SAAyC;AAC7D,OAAK,IAAI,QAAQ,SAAS,QAAQ;;CAGpC,MAAM,SAAiB,SAAyC;AAC9D,OAAK,IAAI,SAAS,SAAS,QAAQ;;;AAIvC,SAAgB,aAAa,SAAyB;AACpD,QAAO,IAAI,OAAO,QAAQ;;AAG5B,MAAa,SAAS,aAAa,aAAa"}
import { t as __exportAll } from "./rolldown-runtime-95iHPtFO.mjs";
import { _ as DimensClient, a as RowAclSDK, c as ReportSDK, d as UploadSDK, f as DocumentSDK, g as AuthSDK, h as CanvasSDK, i as RowPolicySDK, l as PermissionSDK, m as ColumnSDK, n as UserSDK, o as RowSDK, p as SheetSDK, r as TeamSDK, s as RoleSDK, t as ViewSDK, u as ProjectSDK, v as FlowChatSDK } from "./view-DDl5fBp8.mjs";
//#region src/sdk/index.ts
var sdk_exports = /* @__PURE__ */ __exportAll({
DimensSDK: () => DimensSDK,
createSDK: () => createSDK
});
var DimensSDK = class {
client;
auth;
project;
report;
canvas;
role;
permission;
sheet;
team;
user;
column;
document;
view;
row;
rowPolicy;
rowAcl;
ai;
upload;
constructor(config) {
this.client = new DimensClient(config);
this.auth = new AuthSDK(this.client);
this.project = new ProjectSDK(this.client);
this.report = new ReportSDK(this.client);
this.canvas = new CanvasSDK(this.client);
this.role = new RoleSDK(this.client);
this.permission = new PermissionSDK(this.client);
this.sheet = new SheetSDK(this.client);
this.team = new TeamSDK(this.client);
this.user = new UserSDK(this.client);
this.column = new ColumnSDK(this.client);
this.document = new DocumentSDK(this.client);
this.view = new ViewSDK(this.client);
this.row = new RowSDK(this.client);
this.rowPolicy = new RowPolicySDK(this.client);
this.rowAcl = new RowAclSDK(this.client);
this.ai = new FlowChatSDK(this.client);
this.upload = new UploadSDK(this.client);
}
};
function createSDK(config) {
return new DimensSDK(config);
}
//#endregion
export { createSDK as n, sdk_exports as r, DimensSDK as t };
//# sourceMappingURL=sdk-DeDWwfGA.mjs.map
{"version":3,"file":"sdk-DeDWwfGA.mjs","names":[],"sources":["../src/sdk/index.ts"],"sourcesContent":["import { AuthSDK } from './auth';\nimport { CanvasSDK } from './canvas';\nimport { DimensClient, type APIResponse, type DimensClientOptions } from './client';\nimport { ColumnSDK } from './column';\nimport { DocumentSDK } from './document';\nimport { FlowChatSDK } from './flow-chat';\nimport { PermissionSDK } from './permission';\nimport { ProjectSDK } from './project';\nimport { ReportSDK } from './report';\nimport { RowSDK } from './row';\nimport { RowAclSDK } from './row-acl';\nimport { RowPolicySDK } from './row-policy';\nimport { RoleSDK } from './role';\nimport { SheetSDK } from './sheet';\nimport { TeamSDK } from './team';\nimport { UploadSDK } from './upload';\nimport { UserSDK } from './user';\nimport { ViewSDK } from './view';\n\nexport type { APIResponse, DimensClientOptions };\n\nexport interface SDKConfig extends DimensClientOptions {}\n\nexport class DimensSDK {\n readonly client: DimensClient;\n readonly auth: AuthSDK;\n readonly project: ProjectSDK;\n readonly report: ReportSDK;\n readonly canvas: CanvasSDK;\n readonly role: RoleSDK;\n readonly permission: PermissionSDK;\n readonly sheet: SheetSDK;\n readonly team: TeamSDK;\n readonly user: UserSDK;\n readonly column: ColumnSDK;\n readonly document: DocumentSDK;\n readonly view: ViewSDK;\n readonly row: RowSDK;\n readonly rowPolicy: RowPolicySDK;\n readonly rowAcl: RowAclSDK;\n readonly ai: FlowChatSDK;\n readonly upload: UploadSDK;\n\n constructor(config: SDKConfig) {\n this.client = new DimensClient(config);\n this.auth = new AuthSDK(this.client);\n this.project = new ProjectSDK(this.client);\n this.report = new ReportSDK(this.client);\n this.canvas = new CanvasSDK(this.client);\n this.role = new RoleSDK(this.client);\n this.permission = new PermissionSDK(this.client);\n this.sheet = new SheetSDK(this.client);\n this.team = new TeamSDK(this.client);\n this.user = new UserSDK(this.client);\n this.column = new ColumnSDK(this.client);\n this.document = new DocumentSDK(this.client);\n this.view = new ViewSDK(this.client);\n this.row = new RowSDK(this.client);\n this.rowPolicy = new RowPolicySDK(this.client);\n this.rowAcl = new RowAclSDK(this.client);\n this.ai = new FlowChatSDK(this.client);\n this.upload = new UploadSDK(this.client);\n }\n}\n\nexport function createSDK(config: SDKConfig): DimensSDK {\n return new DimensSDK(config);\n}\n\nexport { DimensClient } from './client';\nexport { AuthSDK } from './auth';\nexport { CanvasSDK } from './canvas';\nexport { ProjectSDK } from './project';\nexport { ReportSDK } from './report';\nexport { RoleSDK } from './role';\nexport { PermissionSDK } from './permission';\nexport { SheetSDK } from './sheet';\nexport { TeamSDK } from './team';\nexport { ColumnSDK } from './column';\nexport { DocumentSDK } from './document';\nexport { ViewSDK } from './view';\nexport { RowSDK } from './row';\nexport { RowPolicySDK } from './row-policy';\nexport { RowAclSDK } from './row-acl';\nexport { FlowChatSDK } from './flow-chat';\nexport { UploadSDK } from './upload';\nexport { UserSDK } from './user';\n"],"mappings":";;;;;;;;AAuBA,IAAa,YAAb,MAAuB;CACrB,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CAET,YAAY,QAAmB;AAC7B,OAAK,SAAS,IAAI,aAAa,OAAO;AACtC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,UAAU,IAAI,WAAW,KAAK,OAAO;AAC1C,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,aAAa,IAAI,cAAc,KAAK,OAAO;AAChD,OAAK,QAAQ,IAAI,SAAS,KAAK,OAAO;AACtC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,WAAW,IAAI,YAAY,KAAK,OAAO;AAC5C,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,MAAM,IAAI,OAAO,KAAK,OAAO;AAClC,OAAK,YAAY,IAAI,aAAa,KAAK,OAAO;AAC9C,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,KAAK,IAAI,YAAY,KAAK,OAAO;AACtC,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;;;AAI5C,SAAgB,UAAU,QAA8B;AACtD,QAAO,IAAI,UAAU,OAAO"}
import { t as __exportAll } from "./rolldown-runtime-95iHPtFO.mjs";
import { n as logger } from "./logger-BWhUXvjc.mjs";
//#region src/tools/registry.ts
const registeredTools = /* @__PURE__ */ new Map();
function registerTool(tool) {
if (registeredTools.has(tool.name)) logger.warn(`工具 ${tool.name} 已存在,将被覆盖`);
registeredTools.set(tool.name, tool);
logger.debug(`工具已注册: ${tool.name}`);
}
function getTool(name) {
return registeredTools.get(name);
}
function getAllTools() {
return Array.from(registeredTools.values());
}
//#endregion
//#region src/tools/project.ts
const projectListTool = {
name: "project_list",
description: "获取项目列表",
parameters: {
type: "object",
properties: {
status: {
type: "string",
description: "项目状态筛选",
enum: [
"active",
"archived",
"all"
],
default: "active"
},
limit: {
type: "number",
description: "返回数量限制",
default: 20
}
}
},
handler: async () => {
return {
success: true,
data: {
projects: [],
total: 0
},
message: "项目列表获取成功"
};
}
};
const projectCreateTool = {
name: "project_create",
description: "创建新项目",
parameters: {
type: "object",
properties: {
name: {
type: "string",
description: "项目名称"
},
description: {
type: "string",
description: "项目描述"
},
template: {
type: "string",
description: "项目模板",
enum: [
"web",
"mobile",
"api",
"cli"
]
}
},
required: ["name"]
},
handler: async (params) => {
const { name, description } = params;
return {
success: true,
data: {
id: "proj_" + Date.now(),
name,
description,
createdAt: (/* @__PURE__ */ new Date()).toISOString()
},
message: "项目创建成功"
};
}
};
const projectInfoTool = {
name: "project_info",
description: "获取项目详细信息",
parameters: {
type: "object",
properties: { projectId: {
type: "string",
description: "项目ID"
} },
required: ["projectId"]
},
handler: async (params) => {
const { projectId } = params;
return {
success: true,
data: {
id: projectId,
name: "示例项目",
description: "这是一个示例项目",
status: "active",
createdAt: (/* @__PURE__ */ new Date()).toISOString()
},
message: "项目信息获取成功"
};
}
};
function registerProjectTools() {
registerTool(projectListTool);
registerTool(projectCreateTool);
registerTool(projectInfoTool);
}
//#endregion
//#region src/tools/index.ts
var tools_exports = /* @__PURE__ */ __exportAll({ registerAllTools: () => registerAllTools });
function registerAllTools() {
logger.info("开始注册所有工具...");
registerProjectTools();
logger.info("所有工具注册完成");
}
//#endregion
export { registerTool as a, getTool as i, tools_exports as n, getAllTools as r, registerAllTools as t };
//# sourceMappingURL=tools-Z75qzlsw.mjs.map
{"version":3,"file":"tools-Z75qzlsw.mjs","names":[],"sources":["../src/tools/registry.ts","../src/tools/project.ts","../src/tools/index.ts"],"sourcesContent":["/**\n * 工具注册器\n */\n\nimport type { Tool, ToolHandler } from '../types';\nimport { logger } from '../core/logger';\n\nconst registeredTools = new Map<string, Tool>();\n\nexport function registerTool(tool: Tool): void {\n if (registeredTools.has(tool.name)) {\n logger.warn(`工具 ${tool.name} 已存在,将被覆盖`);\n }\n registeredTools.set(tool.name, tool);\n logger.debug(`工具已注册: ${tool.name}`);\n}\n\nexport function getTool(name: string): Tool | undefined {\n return registeredTools.get(name);\n}\n\nexport function getAllTools(): Tool[] {\n return Array.from(registeredTools.values());\n}\n\nexport function clearTools(): void {\n registeredTools.clear();\n logger.debug('所有工具已清除');\n}\n\nexport function createTool(\n name: string,\n description: string,\n parameters: Tool['parameters'],\n handler: ToolHandler\n): Tool {\n return {\n name,\n description,\n parameters,\n handler,\n };\n}\n","/**\n * 项目管理工具\n */\n\nimport type { Tool } from '../types';\nimport { registerTool } from './registry';\n\nconst projectListTool: Tool = {\n name: 'project_list',\n description: '获取项目列表',\n parameters: {\n type: 'object',\n properties: {\n status: {\n type: 'string',\n description: '项目状态筛选',\n enum: ['active', 'archived', 'all'],\n default: 'active',\n },\n limit: {\n type: 'number',\n description: '返回数量限制',\n default: 20,\n },\n },\n },\n handler: async () => {\n return {\n success: true,\n data: {\n projects: [],\n total: 0,\n },\n message: '项目列表获取成功',\n };\n },\n};\n\nconst projectCreateTool: Tool = {\n name: 'project_create',\n description: '创建新项目',\n parameters: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: '项目名称',\n },\n description: {\n type: 'string',\n description: '项目描述',\n },\n template: {\n type: 'string',\n description: '项目模板',\n enum: ['web', 'mobile', 'api', 'cli'],\n },\n },\n required: ['name'],\n },\n handler: async (params) => {\n const { name, description } = params as {\n name?: unknown;\n description?: unknown;\n };\n return {\n success: true,\n data: {\n id: 'proj_' + Date.now(),\n name,\n description,\n createdAt: new Date().toISOString(),\n },\n message: '项目创建成功',\n };\n },\n};\n\nconst projectInfoTool: Tool = {\n name: 'project_info',\n description: '获取项目详细信息',\n parameters: {\n type: 'object',\n properties: {\n projectId: {\n type: 'string',\n description: '项目ID',\n },\n },\n required: ['projectId'],\n },\n handler: async (params) => {\n const { projectId } = params as { projectId?: unknown };\n return {\n success: true,\n data: {\n id: projectId,\n name: '示例项目',\n description: '这是一个示例项目',\n status: 'active',\n createdAt: new Date().toISOString(),\n },\n message: '项目信息获取成功',\n };\n },\n};\n\nexport function registerProjectTools(): void {\n registerTool(projectListTool);\n registerTool(projectCreateTool);\n registerTool(projectInfoTool);\n}\n","/**\n * 工具层入口\n */\n\nexport { registerTool, getTool, getAllTools, clearTools, createTool } from './registry';\nexport { registerProjectTools } from './project';\n\nimport { logger } from '../core/logger';\nimport { registerProjectTools } from './project';\n\nexport function registerAllTools(): void {\n logger.info('开始注册所有工具...');\n \n registerProjectTools();\n \n logger.info('所有工具注册完成');\n}\n"],"mappings":";;;;AAOA,MAAM,kCAAkB,IAAI,KAAmB;AAE/C,SAAgB,aAAa,MAAkB;AAC7C,KAAI,gBAAgB,IAAI,KAAK,KAAK,CAChC,QAAO,KAAK,MAAM,KAAK,KAAK,WAAW;AAEzC,iBAAgB,IAAI,KAAK,MAAM,KAAK;AACpC,QAAO,MAAM,UAAU,KAAK,OAAO;;AAGrC,SAAgB,QAAQ,MAAgC;AACtD,QAAO,gBAAgB,IAAI,KAAK;;AAGlC,SAAgB,cAAsB;AACpC,QAAO,MAAM,KAAK,gBAAgB,QAAQ,CAAC;;;;;ACf7C,MAAM,kBAAwB;CAC5B,MAAM;CACN,aAAa;CACb,YAAY;EACV,MAAM;EACN,YAAY;GACV,QAAQ;IACN,MAAM;IACN,aAAa;IACb,MAAM;KAAC;KAAU;KAAY;KAAM;IACnC,SAAS;IACV;GACD,OAAO;IACL,MAAM;IACN,aAAa;IACb,SAAS;IACV;GACF;EACF;CACD,SAAS,YAAY;AACnB,SAAO;GACL,SAAS;GACT,MAAM;IACJ,UAAU,EAAE;IACZ,OAAO;IACR;GACD,SAAS;GACV;;CAEJ;AAED,MAAM,oBAA0B;CAC9B,MAAM;CACN,aAAa;CACb,YAAY;EACV,MAAM;EACN,YAAY;GACV,MAAM;IACJ,MAAM;IACN,aAAa;IACd;GACD,aAAa;IACX,MAAM;IACN,aAAa;IACd;GACD,UAAU;IACR,MAAM;IACN,aAAa;IACb,MAAM;KAAC;KAAO;KAAU;KAAO;KAAM;IACtC;GACF;EACD,UAAU,CAAC,OAAO;EACnB;CACD,SAAS,OAAO,WAAW;EACzB,MAAM,EAAE,MAAM,gBAAgB;AAI9B,SAAO;GACL,SAAS;GACT,MAAM;IACJ,IAAI,UAAU,KAAK,KAAK;IACxB;IACA;IACA,4BAAW,IAAI,MAAM,EAAC,aAAa;IACpC;GACD,SAAS;GACV;;CAEJ;AAED,MAAM,kBAAwB;CAC5B,MAAM;CACN,aAAa;CACb,YAAY;EACV,MAAM;EACN,YAAY,EACV,WAAW;GACT,MAAM;GACN,aAAa;GACd,EACF;EACD,UAAU,CAAC,YAAY;EACxB;CACD,SAAS,OAAO,WAAW;EACzB,MAAM,EAAE,cAAc;AACtB,SAAO;GACL,SAAS;GACT,MAAM;IACJ,IAAI;IACJ,MAAM;IACN,aAAa;IACb,QAAQ;IACR,4BAAW,IAAI,MAAM,EAAC,aAAa;IACpC;GACD,SAAS;GACV;;CAEJ;AAED,SAAgB,uBAA6B;AAC3C,cAAa,gBAAgB;AAC7B,cAAa,kBAAkB;AAC/B,cAAa,gBAAgB;;;;;;ACpG/B,SAAgB,mBAAyB;AACvC,QAAO,KAAK,cAAc;AAE1B,uBAAsB;AAEtB,QAAO,KAAK,WAAW"}
import { readFileSync } from "fs";
import { dirname, join } from "path";
import { fileURLToPath } from "url";
import { basename } from "node:path";
import { readFile } from "node:fs/promises";
//#region src/core/version.ts
/**
* 版本信息
*/
let _version;
function getVersion() {
if (_version) return _version;
try {
_version = readNearestPackageJson(dirname(fileURLToPath(import.meta.url))).version;
} catch {
_version = "1.0.0";
}
return _version ?? "1.0.0";
}
const version = getVersion();
function getUserAgent() {
return `DimensCLI/${version} (Node.js/${process.version})`;
}
function readNearestPackageJson(startDir) {
let currentDir = startDir;
for (let depth = 0; depth < 6; depth += 1) {
const packageJsonPath = join(currentDir, "package.json");
try {
return JSON.parse(readFileSync(packageJsonPath, "utf-8"));
} catch {
const parentDir = dirname(currentDir);
if (parentDir === currentDir) break;
currentDir = parentDir;
}
}
throw new Error("package.json not found");
}
//#endregion
//#region src/sdk/flow-chat.ts
var FlowChatSDK = class {
constructor(client) {
this.client = client;
}
completions(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/chat/completions`, payload);
}
responses(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/responses`, payload);
}
messages(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/messages`, payload);
}
models(teamId, query = {}) {
return this.client.get(`/app/new-api/${teamId}/models`, query);
}
v1BetaModels(teamId, query = {}) {
return this.client.get(`/app/flow/${teamId}/v1beta/models`, query);
}
generateImage(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/images/generations`, payload);
}
editImage(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/images/edits`, formData);
}
createImageVariation(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/images/variations`, formData);
}
createVideo(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/videos`, payload);
}
getVideo(teamId, taskId) {
return this.client.get(`/app/flow/${teamId}/v1/videos/${taskId}`);
}
getVideoContent(teamId, taskId) {
return this.client.get(`/app/flow/${teamId}/v1/videos/${taskId}/content`);
}
createSpeech(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/audio/speech`, payload);
}
transcribeAudio(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/audio/transcriptions`, formData);
}
translateAudio(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/audio/translations`, formData);
}
embeddings(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/embeddings`, payload);
}
rerank(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/rerank`, payload);
}
proxy(teamId, request) {
const path = normalizeProxyPath(teamId, request.path);
if (request.method === "GET") return this.client.get(path, request.query);
if (request.formData) return this.client.postFormData(path, request.formData);
return this.client.post(path, request.body);
}
};
function normalizeProxyPath(teamId, path) {
const trimmed = path.trim();
if (!trimmed) throw new Error("AI proxy path 不能为空");
if (trimmed.startsWith(`/app/flow/${teamId}/`)) return trimmed;
const withoutLeadingSlash = trimmed.replace(/^\/+/, "");
if (withoutLeadingSlash.startsWith("v1/") || withoutLeadingSlash === "v1") return `/app/flow/${teamId}/${withoutLeadingSlash}`;
if (withoutLeadingSlash.startsWith("v1beta/") || withoutLeadingSlash === "v1beta") return `/app/flow/${teamId}/${withoutLeadingSlash}`;
throw new Error("AI proxy path 只允许 v1 或 v1beta 维表代理路径");
}
//#endregion
//#region src/core/http.ts
async function requestJson(url, init = {}) {
const response = await fetch(url, init);
const payload = await response.json();
if (!response.ok) throw new Error(payload?.message || `HTTP ${response.status}`);
return payload;
}
//#endregion
//#region src/sdk/client.ts
var DimensClient = class {
options;
constructor(options) {
this.options = options;
}
getOptions() {
return { ...this.options };
}
async get(path, query, init = {}) {
return requestJson(this.buildUrl(path, query), {
...init,
method: "GET",
headers: this.buildHeaders(init.headers)
});
}
async post(path, body, init = {}) {
const requestInit = {
...init,
method: "POST",
headers: this.buildHeaders(init.headers, true)
};
if (body !== void 0) requestInit.body = JSON.stringify(body);
return requestJson(this.buildUrl(path), requestInit);
}
async postFormData(path, formData, init = {}) {
const requestInit = {
...init,
method: "POST",
headers: this.buildHeaders(init.headers, false, true),
body: formData
};
return requestJson(this.buildUrl(path), requestInit);
}
buildUrl(path, query) {
const base = this.options.baseUrl.replace(/\/+$/, "");
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
const url = new URL(`${base}${normalizedPath}`);
Object.entries(query || {}).forEach(([key, value]) => {
if (value === void 0 || value === null || value === "") return;
url.searchParams.set(key, String(value));
});
return url.toString();
}
buildHeaders(headers, hasJsonBody = false, hasFormDataBody = false) {
const merged = normalizeHeaders(headers);
merged.Accept = "application/json";
merged["User-Agent"] = getUserAgent();
if (hasJsonBody && !hasFormDataBody) merged["Content-Type"] = "application/json";
if (hasFormDataBody) delete merged["Content-Type"];
if (this.options.token) merged.Authorization = `Bearer ${this.options.token}`;
if (this.options.refreshToken) merged["X-Refresh-Token"] = this.options.refreshToken;
return merged;
}
};
function normalizeHeaders(headers) {
if (!headers) return {};
if (typeof Headers !== "undefined" && headers instanceof Headers) return Object.fromEntries(headers.entries());
if (Array.isArray(headers)) return Object.fromEntries(headers.map(([key, value]) => [String(key), String(value)]));
const normalized = {};
Object.entries(headers).forEach(([key, value]) => {
normalized[key] = typeof value === "string" ? value : value.join(", ");
});
return normalized;
}
//#endregion
//#region src/sdk/auth.ts
var AuthSDK = class {
constructor(client) {
this.client = client;
}
login(payload) {
return this.client.post("/login", payload);
}
loginByApiKey(payload) {
return this.client.post("/open/user/login/apiKey", payload);
}
exchangeTokenByApiKey(payload) {
return this.loginByApiKey(payload);
}
refreshToken() {
return this.client.get("/refreshToken");
}
me() {
return this.client.get("/app/user/info/person");
}
};
//#endregion
//#region src/sdk/canvas.ts
const EMPTY_GRAPH = {
nodes: [],
edges: [],
viewport: {
x: 0,
y: 0,
zoom: 1
}
};
var CanvasSDK = class {
constructor(client) {
this.client = client;
}
normalizeCreatedCanvas(data) {
const sheetId = typeof data.sheetId === "string" ? data.sheetId : typeof data.id === "string" ? data.id : "";
return {
...data,
sheetId,
canvasId: sheetId
};
}
async create(projectId, payload) {
const response = await this.client.post(`/app/mul/project/${projectId}/sheet/create`, {
name: payload.name,
type: "canvas",
...payload.folderId ? { folderId: payload.folderId } : {},
config: { data: payload.data ?? EMPTY_GRAPH }
});
return {
...response,
data: this.normalizeCreatedCanvas(response.data || {})
};
}
info(teamId, projectId, sheetId) {
return this.client.get(`/app/canvas/${teamId}/${projectId}/info`, { sheetId });
}
save(teamId, projectId, payload) {
return this.client.post(`/app/canvas/${teamId}/${projectId}/save`, payload);
}
versions(teamId, projectId, payload) {
return this.client.post(`/app/canvas/${teamId}/${projectId}/versions`, payload);
}
version(teamId, projectId, sheetId, version) {
return this.client.get(`/app/canvas/${teamId}/${projectId}/version`, {
sheetId,
version
});
}
restore(teamId, projectId, payload) {
return this.client.post(`/app/canvas/${teamId}/${projectId}/restore`, payload);
}
listMineResources(teamId, keyword) {
return this.client.get(`/app/canvas/${teamId}/resource/mine`, { keyword });
}
saveMineResource(teamId, payload) {
return this.client.post(`/app/canvas/${teamId}/resource/mine`, payload);
}
removeMineResource(teamId, id) {
return this.client.post(`/app/canvas/${teamId}/resource/mine/delete`, { id });
}
publishMineResource(teamId, id) {
return this.client.post(`/app/canvas/${teamId}/resource/mine/publish`, { id });
}
listMarketResources(teamId, keyword) {
return this.client.get(`/app/canvas/${teamId}/resource/market`, { keyword });
}
};
//#endregion
//#region src/sdk/column.ts
var ColumnSDK = class {
constructor(client) {
this.client = client;
}
list(teamId, projectId, sheetId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/column/list`);
}
create(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/column/create`, payload);
}
update(sheetId, fieldId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/column/${fieldId}/update`, payload);
}
delete(sheetId, fieldId) {
return this.client.post(`/app/mul/sheet/${sheetId}/column/${fieldId}/delete`);
}
};
//#endregion
//#region src/sdk/sheet.ts
var SheetSDK = class {
constructor(client) {
this.client = client;
}
list(projectId) {
return this.client.get(`/app/mul/project/${projectId}/sheet/list`);
}
tree(projectId) {
return this.client.get(`/app/mul/project/${projectId}/sheet/tree`);
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/sheet/create`, payload);
}
info(teamId, projectId, sheetId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/info`);
}
update(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/update`, payload);
}
delete(teamId, projectId, sheetId) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/delete`);
}
structure(sheetId) {
return this.client.get(`/app/mul/sheet/${sheetId}/structure`);
}
};
//#endregion
//#region src/sdk/document.ts
var DocumentSDK = class {
constructor(client) {
this.client = client;
}
createWithSheet(teamId, projectId, payload) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/createWithSheet`, payload);
}
info(teamId, projectId, documentId) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/${documentId}/info`);
}
getBySheetId(teamId, projectId, sheetId) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/getBySheetId`, { sheetId });
}
update(teamId, projectId, payload) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/update`, payload);
}
delete(teamId, projectId, documentId) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/delete`, { documentId });
}
versions(teamId, projectId, query) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/versions`, query);
}
version(teamId, projectId, query) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/version`, query);
}
restore(teamId, projectId, payload) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/restore`, payload);
}
};
//#endregion
//#region src/sdk/upload.ts
var UploadSDK = class {
constructor(client) {
this.client = client;
}
async uploadFile(filePath, keyOrOptions) {
const payload = await this.createLocalFilePayload(filePath);
const formData = new FormData();
formData.append("file", payload.file, payload.file.name);
const options = typeof keyOrOptions === "string" ? { key: keyOrOptions } : keyOrOptions ?? {};
if (!options.name) options.name = payload.file.name;
if (!options.size) options.size = String(payload.file.size);
if (!options.mimeType) options.mimeType = payload.file.type;
Object.entries(options).forEach(([field, value]) => {
if (!value) return;
formData.append(field, value);
});
return this.client.postFormData("/app/base/comm/upload", formData);
}
async uploadMaterialWithCdnFallback(filePath, options) {
if (!options.teamId) throw new Error("素材库上传必须携带 --team-id");
const mode = await this.getMode();
if (!(mode.data?.cdn?.enabled === true && mode.data?.cdn?.provider === "qiniu")) return this.uploadFile(filePath, options);
const payload = await this.createLocalFilePayload(filePath);
const normalizedOptions = this.normalizeMaterialOptions(options);
const tokenBody = {
teamId: options.teamId,
fileName: payload.fileName,
size: payload.size,
mimeType: payload.mimeType,
source: "material"
};
if (normalizedOptions.classifyId !== void 0) tokenBody.classifyId = normalizedOptions.classifyId;
if (normalizedOptions.type) tokenBody.type = normalizedOptions.type;
let tokenResponse;
try {
tokenResponse = await this.createCdnUploadToken(tokenBody);
} catch (error) {
if (canFallbackToLocalUpload(error)) return this.uploadFile(filePath, options);
throw error;
}
const token = tokenResponse.data;
const qiniuResult = await this.uploadToQiniu(payload.file, token);
const completeBody = {
teamId: options.teamId,
provider: "qiniu",
bucket: token.bucket,
key: token.key,
fileId: token.fileId,
name: normalizedOptions.name || payload.fileName,
size: normalizedOptions.size ?? payload.size,
mimeType: normalizedOptions.mimeType || payload.mimeType,
source: "material"
};
if (qiniuResult.hash) completeBody.hash = qiniuResult.hash;
if (token.url) completeBody.url = token.url;
if (normalizedOptions.classifyId !== void 0) completeBody.classifyId = normalizedOptions.classifyId;
if (normalizedOptions.type) completeBody.type = normalizedOptions.type;
return this.completeCdnUpload(completeBody);
}
async getMode() {
return this.client.get("/app/base/comm/uploadMode");
}
async createCdnUploadToken(body) {
return this.client.post("/app/base/comm/cdn/uploadToken", body);
}
async completeCdnUpload(body) {
return this.client.post("/app/space/info/cdn/complete", body);
}
async uploadToQiniu(file, token) {
const formData = new FormData();
formData.append("key", token.key);
formData.append("token", token.uploadToken);
formData.append("file", file, file.name);
formData.append("fname", file.name);
const response = await fetch(resolveQiniuUploadUrl(token.uploadConfig?.region), {
method: "POST",
body: formData
});
const payload = await response.json();
if (!response.ok) throw new Error(payload?.message || payload?.error || `HTTP ${response.status}`);
return payload;
}
async createLocalFilePayload(filePath) {
const fileBuffer = await readFile(filePath);
const fileName = basename(filePath);
const mimeType = resolveMimeType(fileName);
const file = new File([fileBuffer], fileName, {
type: mimeType,
lastModified: Date.now()
});
return {
file,
fileName,
size: file.size,
mimeType
};
}
normalizeMaterialOptions(options) {
return {
name: options.name,
size: options.size ? Number(options.size) : void 0,
mimeType: options.mimeType,
type: options.type,
classifyId: options.classifyId ? Number(options.classifyId) : void 0
};
}
};
function resolveQiniuUploadUrl(region) {
return {
z0: "https://upload.qiniup.com",
z1: "https://upload-z1.qiniup.com",
z2: "https://upload-z2.qiniup.com",
na0: "https://upload-na0.qiniup.com",
as0: "https://upload-as0.qiniup.com"
}[String(region || "z0")] || "https://upload.qiniup.com";
}
function canFallbackToLocalUpload(error) {
const message = error instanceof Error ? error.message : String(error || "");
return message.includes("CDN 未启用") || message.includes("七牛 CDN 未启用") || message.includes("七牛 CDN 配置不完整");
}
function resolveMimeType(fileName) {
const lowerFileName = fileName.toLowerCase();
if (lowerFileName.endsWith(".txt")) return "text/plain";
if (lowerFileName.endsWith(".json")) return "application/json";
if (lowerFileName.endsWith(".pdf")) return "application/pdf";
if (lowerFileName.endsWith(".png")) return "image/png";
if (lowerFileName.endsWith(".jpg") || lowerFileName.endsWith(".jpeg")) return "image/jpeg";
if (lowerFileName.endsWith(".gif")) return "image/gif";
if (lowerFileName.endsWith(".svg")) return "image/svg+xml";
if (lowerFileName.endsWith(".csv")) return "text/csv";
return "application/octet-stream";
}
//#endregion
//#region src/sdk/project.ts
var ProjectSDK = class {
constructor(client) {
this.client = client;
}
page(teamId, payload) {
return this.client.post(`/app/org/${teamId}/project/page`, payload);
}
info(teamId, id) {
return this.client.get(`/app/org/${teamId}/project/info`, { id });
}
create(teamId, payload) {
return this.client.post(`/app/org/${teamId}/project/add`, payload);
}
update(teamId, payload) {
return this.client.post(`/app/org/${teamId}/project/update`, payload);
}
trash(teamId, ids) {
return this.client.post(`/app/org/${teamId}/project/trash`, { ids });
}
restore(teamId, ids) {
return this.client.post(`/app/org/${teamId}/project/restore`, { ids });
}
};
//#endregion
//#region src/sdk/permission.ts
var PermissionSDK = class {
constructor(client) {
this.client = client;
}
list(projectId, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/permission/list`, { sheetId });
}
info(projectId, id, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/permission/info`, {
id,
sheetId
});
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/permission/add`, payload);
}
update(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/permission/update`, payload);
}
delete(projectId, ids, sheetId) {
return this.client.post(`/app/mul/project/${projectId}/permission/delete`, {
ids,
sheetId
});
}
check(projectId, payload) {
return this.client.get(`/app/mul/project/${projectId}/permission/check`, payload);
}
batch(projectId, sheetId, permissions) {
return this.client.post(`/app/mul/project/${projectId}/permission/batch`, {
sheetId,
permissions
});
}
updateResourcePermission(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/permission/updateResourcePermission`, payload);
}
};
//#endregion
//#region src/sdk/report.ts
var ReportSDK = class {
constructor(client) {
this.client = client;
}
normalizeProjectReport(data) {
const reportId = typeof data.reportId === "string" ? data.reportId : typeof data.sheetId === "string" ? data.sheetId : typeof data.id === "string" ? data.id : "";
return {
...data,
reportId,
sheetId: typeof data.sheetId === "string" ? data.sheetId : reportId
};
}
list(projectId, payload) {
return this.client.post(`/app/report/${projectId}/list`, payload);
}
info(projectId, reportId) {
return this.client.get(`/app/report/${projectId}/info`, { reportId });
}
create(projectId, payload) {
return this.client.post(`/app/report/${projectId}/add`, payload);
}
async createProjectReport(projectId, payload) {
const response = await this.client.post(`/app/mul/project/${projectId}/sheet/create`, {
name: payload.name,
type: "report",
config: { dashboardConfig: {
id: payload.dashboardId || `dashboard_${Date.now()}`,
title: payload.name,
...payload.description ? { description: payload.description } : {},
widgets: [],
parameters: [],
createdAt: payload.createdAt || Date.now()
} }
});
return {
...response,
data: this.normalizeProjectReport(response.data || {})
};
}
update(projectId, payload) {
return this.client.post(`/app/report/${projectId}/update`, payload);
}
copy(projectId, payload) {
return this.client.post(`/app/report/${projectId}/copy`, payload);
}
publish(projectId, payload) {
return this.client.post(`/app/report/${projectId}/publish`, payload);
}
delete(projectId, payload) {
return this.client.post(`/app/report/${projectId}/delete`, payload);
}
archive(projectId, payload) {
return this.client.post(`/app/report/${projectId}/archive`, payload);
}
sort(projectId, payload) {
return this.client.post(`/app/report/${projectId}/sort`, payload);
}
move(projectId, payload) {
return this.client.post(`/app/report/${projectId}/move`, payload);
}
query(projectId, payload) {
return this.client.post(`/app/report/query/${projectId}`, payload);
}
queryWidget(projectId, payload) {
return this.client.post(`/app/report/query/${projectId}/widget`, payload);
}
preview(projectId, payload) {
return this.client.post(`/app/report/query/${projectId}/preview`, payload);
}
validate(projectId, payload) {
return this.client.post(`/app/report/${projectId}/validate`, payload);
}
addWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/add`, payload);
}
updateWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/update`, payload);
}
deleteWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/delete`, payload);
}
batchWidgets(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/batch`, payload);
}
sortWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/sort`, payload);
}
};
//#endregion
//#region src/sdk/role.ts
var RoleSDK = class {
constructor(client) {
this.client = client;
}
list(projectId) {
return this.client.get(`/app/mul/project/${projectId}/role/list`);
}
info(projectId, roleId) {
return this.client.get(`/app/mul/project/${projectId}/role/info`, { roleId });
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/add`, payload);
}
update(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/update`, payload);
}
delete(projectId, roleIds) {
return this.client.post(`/app/mul/project/${projectId}/role/delete`, { roleIds });
}
assignUser(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/assignUser`, payload);
}
removeUser(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/removeUser`, payload);
}
userRoles(projectId, userId, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/role/userRoles`, {
userId,
sheetId
});
}
roleUsers(projectId, roleId) {
return this.client.get(`/app/mul/project/${projectId}/role/roleUsers`, { roleId });
}
projectUsers(projectId) {
return this.client.get(`/app/mul/project/${projectId}/role/projectUsers`);
}
};
//#endregion
//#region src/sdk/row.ts
var RowSDK = class {
constructor(client) {
this.client = client;
}
page(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/row/page`, payload);
}
info(teamId, projectId, sheetId, rowId, options = {}) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/row/${rowId}/info`, { include: options.include });
}
openInfo(teamId, projectId, sheetId, rowId, options = {}) {
return this.client.get(`/open/mul/${teamId}/${projectId}/sheet/${sheetId}/row/${rowId}/info`, { include: options.include });
}
create(sheetId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/create`, payload);
}
batchCreate(sheetId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/batch-create`, payload);
}
update(sheetId, rowId, data, version) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/${rowId}/update`, {
data,
version
});
}
delete(sheetId, rowId) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/${rowId}/delete`);
}
updateCell(sheetId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/cell`, payload);
}
};
//#endregion
//#region src/sdk/row-acl.ts
var RowAclSDK = class {
constructor(client) {
this.client = client;
}
grant(sheetId, payload) {
return this.client.post("/app/mul/rowAcl/grant", {
sheetId,
...payload
});
}
revoke(sheetId, rowId, target) {
return this.client.post("/app/mul/rowAcl/revoke", {
sheetId,
rowId,
target
});
}
revokeDept(sheetId, rowId, deptId) {
return this.client.post("/app/mul/rowAcl/revokeDeptAccess", {
sheetId,
rowId,
deptId
});
}
revokeRole(sheetId, rowId, roleId) {
return this.client.post("/app/mul/rowAcl/revokeRoleAccess", {
sheetId,
rowId,
roleId
});
}
list(sheetId, rowId) {
return this.client.get("/app/mul/rowAcl/list", {
sheetId,
rowId
});
}
roleAcls(sheetId, roleId) {
return this.client.get("/app/mul/rowAcl/roleAcls", {
sheetId,
roleId
});
}
};
//#endregion
//#region src/sdk/row-policy.ts
var RowPolicySDK = class {
constructor(client) {
this.client = client;
}
list(projectId, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/row_policy/list`, { sheetId });
}
info(projectId, id, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/row_policy/info`, {
id,
sheetId
});
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/add`, payload);
}
update(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/update`, payload);
}
delete(projectId, ids, sheetId) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/delete`, {
ids,
sheetId
});
}
toggle(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/toggle`, payload);
}
check(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/check`, payload);
}
};
//#endregion
//#region src/sdk/team.ts
var TeamSDK = class {
constructor(client) {
this.client = client;
}
info(teamId) {
return this.client.get(`/app/org/${teamId}/team/info`);
}
members(teamId, query = {}) {
return this.client.get(`/app/org/${teamId}/team_user/list`, query);
}
userList(teamId, query = {}) {
return this.members(teamId, query);
}
};
//#endregion
//#region src/sdk/user.ts
var UserSDK = class {
constructor(client) {
this.client = client;
}
me() {
return this.client.get("/app/user/info/person");
}
};
//#endregion
//#region src/sdk/view.ts
var ViewSDK = class {
constructor(client) {
this.client = client;
}
list(teamId, projectId, sheetId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/view/list`);
}
create(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/view/create`, payload);
}
};
//#endregion
export { DimensClient as _, RowAclSDK as a, getVersion as b, ReportSDK as c, UploadSDK as d, DocumentSDK as f, AuthSDK as g, CanvasSDK as h, RowPolicySDK as i, PermissionSDK as l, ColumnSDK as m, UserSDK as n, RowSDK as o, SheetSDK as p, TeamSDK as r, RoleSDK as s, ViewSDK as t, ProjectSDK as u, FlowChatSDK as v, version as x, getUserAgent as y };
//# sourceMappingURL=view-DDl5fBp8.mjs.map

Sorry, the diff of this file is too big to display

+13
-9

@@ -675,2 +675,5 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";

}
interface RowInfoOptions {
include?: string;
}
interface RowPagePayload {

@@ -709,3 +712,4 @@ page?: number;

page(teamId: string, projectId: string, sheetId: string, payload: RowPagePayload): Promise<APIResponse<RowPageResult>>;
info(teamId: string, projectId: string, sheetId: string, rowId: string): Promise<APIResponse<RowInfo>>;
info(teamId: string, projectId: string, sheetId: string, rowId: string, options?: RowInfoOptions): Promise<APIResponse<RowInfo>>;
openInfo(teamId: string, projectId: string, sheetId: string, rowId: string, options?: RowInfoOptions): Promise<APIResponse<RowInfo>>;
create(sheetId: string, payload: RowCreatePayload): Promise<APIResponse<RowInfo>>;

@@ -1158,2 +1162,10 @@ batchCreate(sheetId: string, payload: RowBatchCreatePayload): Promise<APIResponse<RowInfo[]>>;

//#endregion
//#region src/core/version.d.ts
/**
* 版本信息
*/
declare function getVersion(): string;
declare const version: string;
declare function getUserAgent(): string;
//#endregion
//#region src/core/logger.d.ts

@@ -1195,10 +1207,2 @@ declare class Logger {

//#endregion
//#region src/core/version.d.ts
/**
* 版本信息
*/
declare function getVersion(): string;
declare const version: string;
declare function getUserAgent(): string;
//#endregion
//#region src/tools/registry.d.ts

@@ -1205,0 +1209,0 @@ declare function registerTool(tool: Tool): void;

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.mts","names":[],"sources":["../src/sdk/client.ts","../src/sdk/auth.ts","../src/sdk/canvas.ts","../src/sdk/column.ts","../src/sdk/document.ts","../src/sdk/flow-chat.ts","../src/sdk/permission.ts","../src/sdk/project.ts","../src/sdk/report.ts","../src/sdk/row.ts","../src/sdk/row-acl.ts","../src/sdk/row-policy.ts","../src/sdk/role.ts","../src/sdk/sheet.ts","../src/sdk/team.ts","../src/sdk/upload.ts","../src/sdk/user.ts","../src/sdk/view.ts","../src/sdk/index.ts","../src/types.ts","../src/core/logger.ts","../src/core/config.ts","../src/core/version.ts","../src/tools/registry.ts","../src/tools/index.ts","../src/commands/registry.ts","../src/commands/index.ts","../src/cli.ts","../src/mcp/context.ts","../src/mcp/tools/types.ts","../src/mcp/tools/index.ts","../src/mcp/server.ts","../src/mcp/http.ts","../src/skills/index.ts","../index.ts"],"mappings":"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"}
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/sdk/client.ts","../src/sdk/auth.ts","../src/sdk/canvas.ts","../src/sdk/column.ts","../src/sdk/document.ts","../src/sdk/flow-chat.ts","../src/sdk/permission.ts","../src/sdk/project.ts","../src/sdk/report.ts","../src/sdk/row.ts","../src/sdk/row-acl.ts","../src/sdk/row-policy.ts","../src/sdk/role.ts","../src/sdk/sheet.ts","../src/sdk/team.ts","../src/sdk/upload.ts","../src/sdk/user.ts","../src/sdk/view.ts","../src/sdk/index.ts","../src/types.ts","../src/core/version.ts","../src/core/logger.ts","../src/core/config.ts","../src/tools/registry.ts","../src/tools/index.ts","../src/commands/registry.ts","../src/commands/index.ts","../src/cli.ts","../src/mcp/context.ts","../src/mcp/tools/types.ts","../src/mcp/tools/index.ts","../src/mcp/server.ts","../src/mcp/http.ts","../src/skills/index.ts","../index.ts"],"mappings":"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"}
{
"name": "@bintel/dimens-cli",
"version": "1.0.10",
"version": "1.0.11",
"description": "Dimens CLI 与 Node.js SDK,提供维表智联认证、项目、表格、行数据、文件上传与 AI 多能力模型代理调用能力",

@@ -5,0 +5,0 @@ "type": "module",

@@ -174,2 +174,10 @@ # Dimens CLI

系统命令:
```bash
node ./bin/dimens-cli.js help system
node ./bin/dimens-cli.js system print
node ./bin/dimens-cli.js system print --base-url https://dimens.bintelai.com/api --team-id TEAM1 --project-id PROJ1
```
说明:

@@ -357,7 +365,30 @@

- `row page` 是当前唯一保留的行读取命令
- 行读取保留 `row page`、`row info` 和公开读 `row open-info`
- 不再使用 `row list`
- 如果用户要基于行数据做分析,先执行 `column list` 获取真实字段 ID,再用 `row page` 组合 `keyword`、`search-field-ids`、`filters`、`filter-match-type`、`sort-rule` 查询数据
- 单行详情需要展开单向关联目标行或富文本原始 content 时,使用 `row info --include relations,richtext`;公开读取场景使用 `row open-info --include relations,richtext`
- `search-field-ids` 支持逗号分隔或 JSON 字符串数组;`filters` 和 `sort-rule` 必须传合法 JSON
读取单行详情:
```bash
node ./bin/dimens-cli.js row info \
--team-id TEAM1 \
--project-id PROJ1 \
--sheet-id SHEET1 \
--row-id ROW1 \
--include relations,richtext
```
公开读取单行详情:
```bash
node ./bin/dimens-cli.js row open-info \
--team-id TEAM1 \
--project-id PROJ1 \
--sheet-id SHEET1 \
--row-id ROW1 \
--include relations,richtext
```
批量写入行数据:

@@ -683,2 +714,3 @@

pnpm publish:check
npm publish --access public
```

@@ -685,0 +717,0 @@

@@ -324,2 +324,27 @@ # AI 需求文档提示语

如果用户携带或引用了维表页面 URL,必须在查询案例中先解析当前页面上下文,再给查询方式。
页面 URL 解析规则:
```text
http://localhost:3000/#/{teamId}/{projectId}/{sheetId}
```
示例:
```text
URL: http://localhost:3000/#/TTFFEN/PM394YD/sh_lTyerp8gwW8QSVD1
团队 ID: TTFFEN
项目 ID: PM394YD
表 ID: sh_lTyerp8gwW8QSVD1
```
当用户说“当前页面”“当前表”“这个表”“本页数据”“当前项目”等相对表达时,如果上下文中已有上述 URL,必须使用解析得到的 `teamId/projectId/sheetId` 作为维表连接参数,不要再次要求用户重复提供。
示例查询命令:
```bash
dimens-cli row page --team-id TTFFEN --project-id PM394YD --sheet-id sh_lTyerp8gwW8QSVD1 --page 1 --size 50
```
### 9. 文档资源设计

@@ -417,2 +442,3 @@

- `projectId`
- 如果用户提供页面 URL 或提到“当前页面/当前表”,必须从 URL 解析并确认 `teamId/projectId/sheetId`
- 团队与项目隔离

@@ -419,0 +445,0 @@ - 权限影响

@@ -101,3 +101,4 @@ ---

| `row page --sheet-id <id> --page 1 --size 20 [--keyword <kw>] [--filters <json>] [--sort-rule <json>]` | 分页查询行 |
| `row info --sheet-id <id> --row-id <rid>` | 行详情 |
| `row info --sheet-id <id> --row-id <rid> [--include relations,richtext]` | 行详情;显式 include 时附加单向关联目标行和富文本原始 content |
| `row open-info --team-id <teamId> --project-id <projectId> --sheet-id <id> --row-id <rid> [--include relations,richtext]` | 公开行详情;仍受公开角色、表级、行级、列级权限控制 |
| `row create --sheet-id <id> [--values <json>]` | 创建行 |

@@ -104,0 +105,0 @@ | `row batch-create --sheet-id <id> --file <path>` | **批量创建行**(JSON 文件,默认 200 行一批) |

@@ -49,2 +49,3 @@ ---

- ✅ 表格接口能读取不代表一定可写,行级、列级、协同权限可能继续收敛
- ✅ API Key 登录后如果 `row create / row batch-create / row delete` 返回“缺少权限校验上下文”,不要继续重试同一命令;先确认团队、项目、用户角色和写入权限,必要时切到带完整上下文的 HTTP/API 调试路径,并继续用 `row page` 验证结果。
- ✅ 如果后续要做报表,这一步就要提前考虑字段能否直接进入 `report preview / query-widget / dataMapping`,不要等到报表阶段再返工

@@ -113,2 +114,4 @@ - ✅ 字段 ID 是每张表独立生成的系统 ID;`column create` 后必须对目标表执行 `column list`,用真实 `fieldId` 写入行数据。即使字段名相同,也不能跨表复用 `fieldId`。

| `dimens-cli row page` | 分页查询行数据,也是后续数据分析的核心取数入口 | `teamId`, `projectId`, `sheetId` | `viewId`, `page`, `size`, `keyword`, `search-field-ids`, `filters`, `filter-match-type`, `sort-rule` | 使用前必须先 `column list` 获取真实字段 ID,再按字段设计搜索、筛选、排序;行读取链路会同时受字段筛选、视图配置和权限影响 |
| `dimens-cli row info` | 获取登录态单行详情 | `teamId`, `projectId`, `sheetId`, `rowId` | `include` | 默认只返回原行结构;`--include relations,richtext` 会在顶层 `included` 附加可见单向关联目标行和富文本原始 content,仍受权限与列级脱敏控制 |
| `dimens-cli row open-info` | 获取公开单行详情 | `teamId`, `projectId`, `sheetId`, `rowId` | `include` | 走公开读取链路;`--include relations,richtext` 同样只附加 `included`,公开角色无权查看的行或字段不会泄露 |
| `dimens-cli row create` | 新增单行数据 | `sheetId`, `values` | - | 仅用于少量交互式单行补录;不用于初始化、迁移、示例数据或 JSON 字符串批量写入 |

@@ -127,2 +130,3 @@ | `dimens-cli row batch-create` | 批量新增行数据 | `sheetId`, `file` | `batch-size` | 初始化、迁移、补数据、示例数据写入的标准命令;数据先写 JSON 文件,再用 `--file` 导入;CLI 默认按 200 行稳定分片 |

- 批量写入后立刻 `row page --size 5` 抽查,验收标准是有行、业务 `data` 非空、每个样例字段的值类型符合字段类型。`data:{}` 或只有系统字段时,必须重新获取该表 `fieldId` 并重建导入文件。
- 单行详情默认用 `row info` 回查;只有用户明确需要单向关联目标行或富文本原始 content 时才加 `--include relations,richtext`。公开页面、外部链接或匿名公开读取场景使用 `row open-info`,不能用登录态结果替代公开角色权限验证。
- 多表初始化时先生成“表清单验收表”:`表名 + 是否单向绑定 + 依赖目标 + 创建批次 + JSON文件 + 预计行数 + row page结果`。只有清单中所有需要样例数据的表都验收通过,才能进入报表或画布。

@@ -365,2 +369,24 @@ - 如果字段后续要进入报表,建模阶段就要把字段类型、选项、数值字段和维度字段设计清楚,不要拖到报表阶段返工。

CLI 和 HTTP API 的格式差异:
| 入口 | 传入格式 | 说明 |
| --- | --- | --- |
| `dimens-cli row batch-create --file` | JSON 顶层数组,例如 `[{ "fld_xxx": "值" }]` 或 `[{ "data": { "fld_xxx": "值" } }]` | CLI 会把每一行归一化为 `{ "data": ... }` 后再请求后端 |
| HTTP API `POST /app/mul/sheet/{sheetId}/row/batch-create` | `{ "rows": [{ "data": { "fld_xxx": "值" } }] }` | 直调接口时必须显式使用 `data`,不要写成 `values` |
HTTP API 直调示例:
```json
{
"rows": [
{
"data": {
"fld_customerName": "华东智造",
"fld_customerLevel": "A"
}
}
]
}
```
第三步,写后立刻验:

@@ -405,2 +431,9 @@

导入失败后的清理策略:
- `row batch-create` 返回成功但 `row page` 看到 `data: {}`,通常说明字段 ID 映射错误或直调接口用了错误请求体。
- 先停止继续导入,重新执行 `column list`,用当前目标表真实 `fieldId` 重建 JSON。
- 已产生的空行不会自动清理;确认 `rowId` 后用 `dimens-cli row delete --sheet-id SHEET1 --row-id ROW_ID` 逐行删除,再重新导入。
- 清理后必须再次 `row page --size 5`,确认空行已移除且新写入行的业务 `data` 非空。
### 场景 2.1:设计带颜色的单选/多选字段

@@ -407,0 +440,0 @@

@@ -16,3 +16,3 @@ ---

- 开发方:`方块智联工作室`
- 官网:[https://dimens.bintelai.com/](https://dimens.bintelai.com/)
- 官网:[https://www.bintelai.com/](https://www.bintelai.com/)

@@ -19,0 +19,0 @@ ## 执行前必读

@@ -32,2 +32,24 @@ # dimens-sdk

## 高频案例入口
如果你维护或使用这个技能时,想快速补“更像真实用户提问”的案例,优先看这些落点:
| 需求类型 | 首选文档 |
| --- | --- |
| Web/H5/React 页面读取资源 | `references/web-examples.md` |
| `dimens-web` 自定义页面 / Wujie / 微模块 | `references/dimens-web-scaffold.md`、`references/micro-module-wujie-context.md` |
| Node.js / Next.js / BFF 服务端集成 | `references/bff-examples.md` |
| App / 小程序 / 移动端代理接入 | `references/mobile-examples.md` |
| 上传后写回表格 / 文档 / 画布 | `references/upload-examples.md` |
| 表格、行、字段、视图 | `references/table-examples.md` |
| 文档详情、更新、版本、Mermaid | `references/document-examples.md` |
| 报表创建、组件查询、只读报表 | `references/report-examples.md` |
| 聊天、生图、生视频、Embedding、Rerank | `references/ai-examples.md` |
推荐做法:
- `SKILL.md` 里只保留技能入口、约束和路由表。
- 真实用户案例优先放到对应 `*-examples.md`。
- 当某个案例开始同时涉及“接入位置 + 资源域 + 验证命令”三部分时,优先补案例文件,不要把大段示例塞回 `SKILL.md`。
## 维护原则

@@ -34,0 +56,0 @@

@@ -187,1 +187,48 @@ # AI 调用案例

如果 CLI 调用失败,先排查 token、团队权限、模型配置和网络,再调整 Web / BFF 代码。
## 9. 真实场景:Node.js 服务端生成海报图,再写回表格附件字段
适用场景:
- 用户说“服务端调用 AI 生图,然后把结果存回多维表记录”
- 需要完整走 “AI 生成 -> 拿 URL -> 读取当前行 -> 更新字段”
```ts
const image = await sdk.ai.generateImage('TEAM1', {
model: 'default',
prompt: '客户经营分析海报',
size: '1024x1024',
projectId: 'PROJ1',
resourceId: 'poster_customer_1',
});
const first = image.data.data?.[0];
const imageUrl = first?.url || first?.image_url;
if (!imageUrl) {
throw new Error('生图结果缺少可写回的 URL');
}
const row = await sdk.row.info('TEAM1', 'PROJ1', 'SHEET1', 'ROW1');
await sdk.row.update(
'SHEET1',
'ROW1',
{
...(row.data as Record<string, unknown>),
field_attachment: [
{
name: 'customer-poster.png',
url: imageUrl,
},
],
},
Number((row.data as { version?: number }).version)
);
```
说明:
- 先读行数据再更新,避免直接覆盖其他字段
- 临时签名 URL 需要完整保留 query string
- 如果业务侧要求稳定资源 URL,先上传或落素材库,再回写表格

@@ -29,2 +29,3 @@ # 当前 SDK 能力状态

- 表格、字段、行数据基础调用
- 单行详情增强读取:`sdk.row.info(..., { include })` 与公开读取 `sdk.row.openInfo(..., { include })`
- 文档读写与版本恢复

@@ -64,2 +65,19 @@ - 报表创建、查询、组件管理

## 行数据能力
| 入口 | 方法 / 命令 | 接口 |
| --- | --- | --- |
| SDK | `sdk.row.page(teamId, projectId, sheetId, payload)` | `POST /app/mul/:teamId/:projectId/sheet/:sheetId/row/page` |
| SDK | `sdk.row.info(teamId, projectId, sheetId, rowId, { include? })` | `GET /app/mul/:teamId/:projectId/sheet/:sheetId/row/:rowId/info` |
| SDK | `sdk.row.openInfo(teamId, projectId, sheetId, rowId, { include? })` | `GET /open/mul/:teamId/:projectId/sheet/:sheetId/row/:rowId/info` |
| CLI | `dimens-cli row info --sheet-id SHEET1 --row-id ROW1 [--include relations,richtext]` | 登录态行详情 |
| CLI | `dimens-cli row open-info --sheet-id SHEET1 --row-id ROW1 [--include relations,richtext]` | 公开行详情 |
注意:
- `include` 支持 `relations`、`richtext` 或 `relations,richtext`。
- 不传 `include` 时保持基础行详情,不额外查询关联目标行或富文本原始 content。
- 增强数据附加在 `data.included`,原始 `data[fieldId]` 不会被改写。
- 公开行详情走公开角色权限,不能用登录态详情结果替代公开访问验证。
当前用户信息:

@@ -66,0 +84,0 @@

# 接入示例总览
本页不重复解释 SDK 原理,重点解决两个问题:
1. 用户一句话需求进来后,应该先看哪份案例。
2. 每份案例主要解决什么场景,避免读错文档。
如果只是判断“该走前端 / BFF / Node.js / HTTP / dimens-web 哪条路”,先回 `references/integration-paths.md`。如果已经确认接入位置,直接用本页跳到具体案例。
## 一句话找案例
| 用户提问方式 | 先读哪些文件 | 说明 |
| --- | --- | --- |
| “前端能不能直接调维表接口” | `frontend/overview.md`、`web-examples.md` | 适合普通 Web/H5/React/Vue 页面,说明 token、安全边界和最小 fetch 示例 |
| “我在维表自定义页面里怎么读数据” | `dimens-web-scaffold.md`、`micro-module-wujie-context.md` | 适合 `dimens-web` 脚手架、Wujie 微前端和三类微模块 |
| “Node.js / Next.js / BFF 怎么封装 SDK” | `node/overview.md`、`bff-examples.md` | 适合服务端统一封装 token、资源读取、上传和 AI 代理 |
| “移动端 / 小程序怎么安全接入” | `mobile/overview.md`、`mobile-examples.md` | 适合 App、小程序、移动 H5,经由自家服务端代理 |
| “上传图片后怎么写回表格 / 文档 / 画布” | `media/overview.md`、`upload-examples.md` | 适合 upload -> update/save 的两段式链路 |
| “怎么读写表格、字段、视图、行数据” | `resources/overview.md`、`table-examples.md` | 适合项目、表、字段、行的常规接入 |
| “怎么创建或更新在线文档” | `resources/overview.md`、`document-examples.md` | 适合文档详情、更新、版本、Mermaid 流程图 |
| “怎么创建报表、查组件结果” | `resources/overview.md`、`report-examples.md` | 适合 `reportId/sheetId`、preview、addWidget、queryWidget、query |
| “怎么接 AI 聊天、生图、生视频、Embedding” | `capability-status.md`、`ai-examples.md` | 适合 `sdk.ai` 和维表后端代理 new-api 的能力调用 |
| “不知道该 SDK / HTTP / BFF 哪个更合适” | `integration-paths.md` | 先选路径,再回来读案例 |
## 按端侧查看
### 前端 / Web / H5
- 前端接入总览:`references/frontend/overview.md`
- 前端快速开始:`references/frontend-quickstart.md`
- dimens-web 脚手架:`references/dimens-web-scaffold.md`
- 页面 / 视图 / 按钮三类微模块 Wujie 上下文:`references/micro-module-wujie-context.md`
- 浏览器直连与按业务域拆 API:`references/web-examples.md`
- 前端登录与 token 主链:`references/frontend-auth-flow.md`
- React/Vue 登录态示例:`references/react-auth-example.md`
- SDK 最佳实践:`references/sdk-best-practices.md`
- 请求重试与 refresh 示例:`references/request-retry-example.md`
- Web / H5 前端案例:`references/web-examples.md`
- BFF / 服务端接入总览:`references/bff/overview.md`
- Node.js SDK 接入总览:`references/node/overview.md`
适合的问题:
- “React 页面怎么拉项目列表”
- “浏览器里 401 / 403 / 404 怎么区分”
- “我已经有 token,怎么按 teamId/projectId 读资源”
### dimens-web / 自定义页面 / Wujie
- 脚手架说明:`references/dimens-web-scaffold.md`
- 页面 / 视图 / 按钮三类微模块上下文:`references/micro-module-wujie-context.md`
适合的问题:
- “我要新增一个维表自定义页面,但还没有目录”
- “我已经有脚手架目录,想加审批详情页”
- “Wujie props / sourceLocation / actionSnapshot 应该怎么传”
### BFF / Node.js / 服务端
- BFF 总览:`references/bff/overview.md`
- Node.js 总览:`references/node/overview.md`
- Node.js / Next.js / BFF 代码示例:`references/bff-examples.md`
适合的问题:
- “BFF 怎么代管 apiSecret 并给前端 token”
- “Node.js 服务端怎么读表格、文档、报表”
- “服务端怎么上传附件后写回业务资源”
### 移动端 / 小程序 / App
- 移动端接入总览:`references/mobile/overview.md`
- 移动端 / App / 小程序案例:`references/mobile-examples.md`
- Node.js / Next.js / BFF 案例:`references/bff-examples.md`
- 移动端案例:`references/mobile-examples.md`
适合的问题:
- “App 包里能不能放 apiSecret”
- “小程序怎么提交巡检记录”
- “移动端上传图片并写回业务数据怎么做”
## 按业务域查看
- 资源域接入总览:`references/resources/overview.md`
- 当前用户与团队上下文:`references/capability-status.md`
- 文件与媒体接入总览:`references/media/overview.md`
### 表格 / 行数据
- 资源域总览:`references/resources/overview.md`
- 多维表格案例:`references/table-examples.md`
适合的问题:
- “怎么创建第一张表”
- “怎么补字段、拉视图、分页查行”
- “怎么更新单元格并处理 version”
### 文档
- 在线文档案例:`references/document-examples.md`
适合的问题:
- “怎么更新富文本内容”
- “怎么追加图片”
- “怎么写 Mermaid 流程图并保留版本”
### 报表
- 报表案例:`references/report-examples.md`
适合的问题:
- “只读报表数据怎么接”
- “怎么创建报表并查询组件”
- “为什么返回里有时候是 sheetId 不是 reportId”
### 上传 / 媒体
- 文件与媒体接入总览:`references/media/overview.md`
- 上传案例:`references/upload-examples.md`
适合的问题:
- “上传文件后怎么写回文档或附件字段”
- “素材库上传为什么必须带 teamId”
- “CDN-first 和普通上传分别什么时候用”
### AI
- 当前能力边界:`references/capability-status.md`
- AI 调用案例:`references/ai-examples.md`
适合的问题:
- “怎么用 sdk.ai 做聊天、生图、生视频”
- “Embedding / Rerank 怎么调”
- “模型列表和默认模型怎么选”
## 推荐阅读顺序
如果你是第一次进入 `dimens-sdk`,优先按下面顺序看:
### 第一次接 SDK
1. 前端接入总览:`references/frontend/overview.md`
2. 前端首次接入:`references/frontend-quickstart.md`
3. 登录与 token 主链:`references/frontend-auth-flow.md`
4. React / Vue 落地示例:`references/react-auth-example.md`
5. 最佳实践:`references/sdk-best-practices.md`
6. refresh / retry:`references/request-retry-example.md`
1. `references/integration-paths.md`
2. 对应端侧的 `overview.md`
3. `references/capability-status.md`
4. 当前任务命中的 `*-examples.md`
如果你不是前端接入,而是按资源域排查或接入,直接进入对应文档:
### 第一次接 dimens-web
1. `references/dimens-web-scaffold.md`
2. `references/micro-module-wujie-context.md`
3. 再进入 `table/document/report/upload/ai` 中与页面目标对应的案例
### 已经知道要做什么,只想抄一个最近的案例
- Web/H5:`references/web-examples.md`
- BFF/Node.js:`references/bff-examples.md`
- 移动端:`references/mobile-examples.md`
- 表格:`references/table-examples.md`

@@ -49,11 +156,1 @@ - 文档:`references/document-examples.md`

- AI:`references/ai-examples.md`
- Web/H5:`references/web-examples.md`
- 移动端:`references/mobile-examples.md`
- BFF:`references/bff-examples.md`
如果你要开发或排查 `dimens-web` 微模块,按下面顺序看:
1. 脚手架基础:`references/dimens-web-scaffold.md`
2. 三类微模块上下文协议:`references/micro-module-wujie-context.md`
3. 需要读取表格数据时再看:`references/table-examples.md`
4. 涉及 BFF 或密钥托管时再看:`references/bff/overview.md`

@@ -123,5 +123,32 @@ # 多维表格接入案例

## 10. 表单提交时更新整行
## 10. 查询单行详情并展开关联与富文本原始 content
```ts
const rowInfo = await sdk.row.info('TEAM1', 'PROJ1', 'SHEET1', 'ROW1', {
include: 'relations,richtext',
});
console.log(rowInfo.data.included?.relations);
console.log(rowInfo.data.included?.richText);
```
公开读取场景使用公开接口,仍然按公开角色权限返回可见字段和可见目标行:
```ts
const publicRowInfo = await sdk.row.openInfo('TEAM1', 'PROJ1', 'SHEET1', 'ROW1', {
include: 'relations,richtext',
});
console.log(publicRowInfo.data);
```
说明:
- 不传 `include` 时不展开关联行或富文本原始 content,响应结构保持基础行详情。
- 增强数据只附加在顶层 `included`,不要改写 `data[fieldId]`。
- 关联目标行和富文本字段都受权限与列级脱敏控制;公开读取不能用登录态结果替代。
## 11. 表单提交时更新整行
```ts
await sdk.row.update(

@@ -138,3 +165,3 @@ 'SHEET1',

## 11. Web 前端读取表格行数据
## 12. Web 前端读取表格行数据

@@ -161,3 +188,3 @@ 适用前提:

## 12. 表格接入高风险误区
## 13. 表格接入高风险误区

@@ -170,3 +197,3 @@ - 不要把字段中文名直接当 `data` key

## 13. 最小验证命令
## 14. 最小验证命令

@@ -173,0 +200,0 @@ ```bash

@@ -112,1 +112,63 @@ # 上传接入案例

- 移动端上传建议走自家服务端,不要把维表高权限凭据下发到端上
## 6. 真实场景:上传到素材库,优先 CDN,失败时允许回退
适用场景:
- 用户说“这张图要进素材库,不只是拿一个 URL”
- 希望优先走 CDN,再入素材库记录
```ts
const material = await sdk.upload.uploadMaterialWithCdnFallback('/tmp/poster.png', {
teamId: 'TEAM1',
source: 'material',
uploadSource: 'material',
fileName: 'poster.png',
});
const materialUrl = material.data.url;
```
说明:
- 这条链路和普通 `uploadFile()` 不同,它会先看上传模式,再尝试 CDN token / 直传 / 完成入库
- `source=material` 时必须显式带 `teamId`
- 如果返回的是“CDN 未启用 / 配置不完整”这类可回退错误,SDK 会退回普通上传
CLI 对应验证:
```bash
dimens-cli upload mode
dimens-cli upload file ./poster.png --team-id TEAM1 --source material
```
## 7. 真实场景:上传图片后写回文档正文
适用场景:
- 用户说“先上传图片,再插进在线文档”
- 不是只返回 URL,而是要完整走“上传 -> 读文档 -> 更新文档”
```ts
const uploaded = await sdk.upload.uploadFile('/tmp/cover.png', {
teamId: 'TEAM1',
projectId: 'PROJ1',
bizType: 'document-image',
});
const current = await sdk.document.info('TEAM1', 'PROJ1', 'DOC1');
await sdk.document.update('TEAM1', 'PROJ1', {
documentId: 'DOC1',
content: `${current.data.content ?? ''}<p><img src="${uploaded.data.url}" alt="封面图" /></p>`,
version: Number(current.data.version),
createVersion: true,
changeSummary: '插入上传图片',
});
```
不要省略的步骤:
- 不要上传后就假设业务数据已更新
- 不要手填旧 `version`
- 不要把上传接口和文档更新接口混成同一步

@@ -218,1 +218,105 @@ # Web / H5 接入案例

- 如果要处理工作流挂载问题,回到 `dimens-manager/references/workflow/overview.md`
## 9. 真实场景:React 客户列表页先拉项目,再拉首张表的行数据
适用场景:
- 用户说“我已经拿到 token 了,React 页面要先展示项目,再展示客户表行数据”
- 不是 `dimens-web` 脚手架,而是普通 Web/H5/React 前端
```ts
export async function loadCustomerPage(
token: string,
teamId: string
) {
const projects = await fetchProjects(token, teamId);
const firstProject = projects.data?.list?.[0];
if (!firstProject?.id) {
throw new Error('当前团队下没有可用项目');
}
const sheets = await fetch(
`https://dimens.bintelai.com/api/app/mul/project/${firstProject.id}/sheet/list`,
{
headers: {
Authorization: `Bearer ${token}`,
},
}
).then((res) => res.json());
const firstSheet = sheets.data?.[0];
if (!firstSheet?.sheetId && !firstSheet?.id) {
throw new Error('当前项目下没有可用数据表');
}
const sheetId = firstSheet.sheetId || firstSheet.id;
const rows = await fetchSheetRows(
token,
teamId,
firstProject.id,
sheetId
);
return {
project: firstProject,
sheet: firstSheet,
rows: rows.data,
};
}
```
最小排查顺序:
- 401:先查 token 是否过期,是否需要 refresh / retry
- 403:先查当前用户是否属于目标团队/项目
- 404:先查 `teamId/projectId/sheetId` 是否串了上下文
CLI 预检:
```bash
dimens-cli project list --team-id TEAM1
dimens-cli sheet list --project-id PROJ1
dimens-cli row page --team-id TEAM1 --project-id PROJ1 --sheet-id SHEET1
```
## 10. 真实场景:浏览器端只读报表组件数据,不创建报表
适用场景:
- 用户说“前端页面只想读报表数据,不负责新建报表”
- 已知 `projectId / reportId / widgetId`
```ts
export async function fetchReportWidget(
token: string,
projectId: string,
reportId: string,
widgetId: string
) {
const response = await fetch(
`https://dimens.bintelai.com/api/app/report/query/${projectId}/widget`,
{
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
reportId,
widgetId,
}),
}
);
return response.json();
}
```
判断顺序:
- 401:token 失效,走 refresh / retry
- 403:当前用户没有项目或报表权限
- 404:`projectId/reportId/widgetId` 不匹配,或资源已被移动/删除

@@ -16,3 +16,3 @@ ---

- 开发方:`方块智联工作室`
- 官网:[https://dimens.bintelai.com/](https://dimens.bintelai.com/)
- 官网:[https://www.bintelai.com/](https://www.bintelai.com/)

@@ -66,2 +66,20 @@ ## 执行前必读

## 高频问题速查
用户提问里如果已经出现下面这些意图,不要只停留在 `overview.md`,应直接继续读取右侧案例文件:
| 用户常见说法 | 优先读取 | 预期输出 |
| --- | --- | --- |
| “前端能不能直接放 apiSecret” | `references/bff/overview.md`、`references/bff-examples.md` | 明确拒绝端侧存密钥,给 BFF 换 token 方案和最小验证命令 |
| “React 页面怎么读项目/表格/行数据” | `references/frontend/overview.md`、`references/web-examples.md` | 给前端读取代码、上下文来源、401/403/404 判断 |
| “单行详情怎么带关联子表或富文本原始 content” | `references/table-examples.md`、`references/capability-status.md` | 使用 `sdk.row.info(..., { include: 'relations,richtext' })`;公开读取用 `sdk.row.openInfo(...)`,增强数据只读 `included` |
| “维表自定义页面 / dimens-web 怎么开始” | `references/dimens-web-scaffold.md` | 先做 UI/UX,再说明目录、路由、`useDimens()`、`runtimeStore` 落点 |
| “Wujie props / 按钮弹窗 / 视图插件怎么传” | `references/micro-module-wujie-context.md` | 区分页/视图/按钮三类 props demo,不混成一个模板 |
| “上传图片后写回表格/文档/画布” | `references/media/overview.md`、`references/upload-examples.md` | 先 upload,再 info/read,再 update/save,带回写示例 |
| “Node.js/BFF 怎么读表格、文档、报表” | `references/node/overview.md`、`references/bff-examples.md` | 给 SDK 最小调用链和 CLI 回查命令 |
| “移动端/小程序怎么接,密钥放哪” | `references/mobile/overview.md`、`references/mobile-examples.md` | 强调服务端代理、短期 token、业务接口编排 |
| “报表只读、报表创建、组件查询怎么写” | `references/report-examples.md` | 说明 `reportId=sheetId` 兼容口径和 queryWidget/query 链路 |
| “AI 生图/生视频/Embedding/Rerank 怎么接” | `references/ai-examples.md`、`references/capability-status.md` | 默认走 `sdk.ai` 和维表后端代理,不直连 new-api |
| “上传素材库为什么要 teamId” | `references/upload-examples.md`、`references/media/overview.md` | 说明 `--source material --team-id`、CDN-first 和 fallback |
## 默认处理顺序

@@ -68,0 +86,0 @@

@@ -56,3 +56,23 @@ [

"expected": "应说明 displayRows/rowSnapshot 是轻量快照,不是权威数据;最新或完整数据必须通过 useDimens SDK/API 重新读取,写入必须走后端权限校验。"
},
{
"id": "sdk-012",
"prompt": "我有个 React 客户列表页,已经拿到 token 了,想先拉项目,再拉第一张客户表的数据,最好顺手告诉我 401、403、404 怎么判断。",
"expected": "应命中 Web/H5 前端案例,给项目 -> 表 -> 行数据的最小链路,说明 teamId/projectId/sheetId 的来源,并区分 401 refresh、403 权限不足、404 上下文错误。"
},
{
"id": "sdk-013",
"prompt": "Node.js 服务端想把 AI 生成的海报图写回客户表的一行记录里,怎么组织调用顺序?",
"expected": "应命中 ai-examples 和 table-examples,说明 sdk.ai.generateImage -> 取 url -> sdk.row.info -> sdk.row.update 的顺序,并强调临时签名 URL 和 version。"
},
{
"id": "sdk-014",
"prompt": "这张图不是普通上传,我要直接进素材库,优先 CDN,失败再回退,SDK 和 CLI 各怎么用?",
"expected": "应命中 upload-examples 和 media/overview,说明 uploadMaterialWithCdnFallback、source=material、必须带 teamId、CDN-first + fallback,以及对应的 upload mode / upload file CLI 验证命令。"
},
{
"id": "sdk-015",
"prompt": "我在维表自定义页面里已经有脚手架目录了,想加一个审批详情页,别给我重建项目,直接告诉我看哪些文件、路由怎么加、案例在哪。",
"expected": "应命中 dimens-web-scaffold 和 micro-module-wujie-context,先说明 UI/UX 前置,再说明复用已有目录、修改 src/pages 与 routes.tsx,且不要重复执行 create --dir。"
}
]

@@ -16,3 +16,3 @@ ---

- 开发方:`方块智联工作室`
- 官网:<https://dimens.bintelai.com/>
- 官网:<https://www.bintelai.com/>

@@ -19,0 +19,0 @@ ## 执行前必读

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

//#region src/core/logger.ts
var Logger = class {
context;
level = "info";
constructor(context) {
this.context = context;
}
setLevel(level) {
this.level = level;
}
shouldLog(level) {
const levels = [
"debug",
"info",
"warn",
"error"
];
return levels.indexOf(level) >= levels.indexOf(this.level);
}
formatMessage(entry) {
const timestamp = entry.timestamp.toISOString();
const context = this.context ? `[${this.context}]` : "";
return `${timestamp} ${entry.level.toUpperCase()} ${context} ${entry.message}`;
}
log(level, message, context) {
if (!this.shouldLog(level)) return;
const entry = {
level,
message,
timestamp: /* @__PURE__ */ new Date()
};
if (context !== void 0) entry.context = context;
const formatted = this.formatMessage(entry);
switch (level) {
case "error":
console.error(formatted);
break;
case "warn":
console.warn(formatted);
break;
case "debug":
console.debug(formatted);
break;
default: console.log(formatted);
}
}
debug(message, context) {
this.log("debug", message, context);
}
info(message, context) {
this.log("info", message, context);
}
warn(message, context) {
this.log("warn", message, context);
}
error(message, context) {
this.log("error", message, context);
}
};
function createLogger(context) {
return new Logger(context);
}
const logger = createLogger("dimens-cli");
//#endregion
export { logger as n, createLogger as t };
//# sourceMappingURL=logger-CEOtAYhF.mjs.map
{"version":3,"file":"logger-CEOtAYhF.mjs","names":[],"sources":["../src/core/logger.ts"],"sourcesContent":["/**\n * 日志工具\n */\n\nimport type { LogLevel, LogEntry } from '../types';\n\nclass Logger {\n private context: string;\n private level: LogLevel = 'info';\n\n constructor(context: string) {\n this.context = context;\n }\n\n setLevel(level: LogLevel): void {\n this.level = level;\n }\n\n private shouldLog(level: LogLevel): boolean {\n const levels: LogLevel[] = ['debug', 'info', 'warn', 'error'];\n return levels.indexOf(level) >= levels.indexOf(this.level);\n }\n\n private formatMessage(entry: LogEntry): string {\n const timestamp = entry.timestamp.toISOString();\n const context = this.context ? `[${this.context}]` : '';\n return `${timestamp} ${entry.level.toUpperCase()} ${context} ${entry.message}`;\n }\n\n private log(level: LogLevel, message: string, context?: Record<string, unknown>): void {\n if (!this.shouldLog(level)) return;\n\n const entry: LogEntry = {\n level,\n message,\n timestamp: new Date(),\n };\n if (context !== undefined) {\n entry.context = context;\n }\n\n const formatted = this.formatMessage(entry);\n \n switch (level) {\n case 'error':\n console.error(formatted);\n break;\n case 'warn':\n console.warn(formatted);\n break;\n case 'debug':\n console.debug(formatted);\n break;\n default:\n console.log(formatted);\n }\n }\n\n debug(message: string, context?: Record<string, unknown>): void {\n this.log('debug', message, context);\n }\n\n info(message: string, context?: Record<string, unknown>): void {\n this.log('info', message, context);\n }\n\n warn(message: string, context?: Record<string, unknown>): void {\n this.log('warn', message, context);\n }\n\n error(message: string, context?: Record<string, unknown>): void {\n this.log('error', message, context);\n }\n}\n\nexport function createLogger(context: string): Logger {\n return new Logger(context);\n}\n\nexport const logger = createLogger('dimens-cli');\n"],"mappings":";AAMA,IAAM,SAAN,MAAa;CACX,AAAQ;CACR,AAAQ,QAAkB;CAE1B,YAAY,SAAiB;AAC3B,OAAK,UAAU;;CAGjB,SAAS,OAAuB;AAC9B,OAAK,QAAQ;;CAGf,AAAQ,UAAU,OAA0B;EAC1C,MAAM,SAAqB;GAAC;GAAS;GAAQ;GAAQ;GAAQ;AAC7D,SAAO,OAAO,QAAQ,MAAM,IAAI,OAAO,QAAQ,KAAK,MAAM;;CAG5D,AAAQ,cAAc,OAAyB;EAC7C,MAAM,YAAY,MAAM,UAAU,aAAa;EAC/C,MAAM,UAAU,KAAK,UAAU,IAAI,KAAK,QAAQ,KAAK;AACrD,SAAO,GAAG,UAAU,GAAG,MAAM,MAAM,aAAa,CAAC,GAAG,QAAQ,GAAG,MAAM;;CAGvE,AAAQ,IAAI,OAAiB,SAAiB,SAAyC;AACrF,MAAI,CAAC,KAAK,UAAU,MAAM,CAAE;EAE5B,MAAM,QAAkB;GACtB;GACA;GACA,2BAAW,IAAI,MAAM;GACtB;AACD,MAAI,YAAY,OACd,OAAM,UAAU;EAGlB,MAAM,YAAY,KAAK,cAAc,MAAM;AAE3C,UAAQ,OAAR;GACE,KAAK;AACH,YAAQ,MAAM,UAAU;AACxB;GACF,KAAK;AACH,YAAQ,KAAK,UAAU;AACvB;GACF,KAAK;AACH,YAAQ,MAAM,UAAU;AACxB;GACF,QACE,SAAQ,IAAI,UAAU;;;CAI5B,MAAM,SAAiB,SAAyC;AAC9D,OAAK,IAAI,SAAS,SAAS,QAAQ;;CAGrC,KAAK,SAAiB,SAAyC;AAC7D,OAAK,IAAI,QAAQ,SAAS,QAAQ;;CAGpC,KAAK,SAAiB,SAAyC;AAC7D,OAAK,IAAI,QAAQ,SAAS,QAAQ;;CAGpC,MAAM,SAAiB,SAAyC;AAC9D,OAAK,IAAI,SAAS,SAAS,QAAQ;;;AAIvC,SAAgB,aAAa,SAAyB;AACpD,QAAO,IAAI,OAAO,QAAQ;;AAG5B,MAAa,SAAS,aAAa,aAAa"}
import { t as __exportAll } from "./rolldown-runtime-95iHPtFO.mjs";
import { _ as DimensClient, a as RowAclSDK, c as ReportSDK, d as UploadSDK, f as DocumentSDK, g as AuthSDK, h as CanvasSDK, i as RowPolicySDK, l as PermissionSDK, m as ColumnSDK, n as UserSDK, o as RowSDK, p as SheetSDK, r as TeamSDK, s as RoleSDK, t as ViewSDK, u as ProjectSDK, v as FlowChatSDK } from "./view-CmS7nsd_.mjs";
//#region src/sdk/index.ts
var sdk_exports = /* @__PURE__ */ __exportAll({
DimensSDK: () => DimensSDK,
createSDK: () => createSDK
});
var DimensSDK = class {
client;
auth;
project;
report;
canvas;
role;
permission;
sheet;
team;
user;
column;
document;
view;
row;
rowPolicy;
rowAcl;
ai;
upload;
constructor(config) {
this.client = new DimensClient(config);
this.auth = new AuthSDK(this.client);
this.project = new ProjectSDK(this.client);
this.report = new ReportSDK(this.client);
this.canvas = new CanvasSDK(this.client);
this.role = new RoleSDK(this.client);
this.permission = new PermissionSDK(this.client);
this.sheet = new SheetSDK(this.client);
this.team = new TeamSDK(this.client);
this.user = new UserSDK(this.client);
this.column = new ColumnSDK(this.client);
this.document = new DocumentSDK(this.client);
this.view = new ViewSDK(this.client);
this.row = new RowSDK(this.client);
this.rowPolicy = new RowPolicySDK(this.client);
this.rowAcl = new RowAclSDK(this.client);
this.ai = new FlowChatSDK(this.client);
this.upload = new UploadSDK(this.client);
}
};
function createSDK(config) {
return new DimensSDK(config);
}
//#endregion
export { createSDK as n, sdk_exports as r, DimensSDK as t };
//# sourceMappingURL=sdk-BdV1Rld9.mjs.map
{"version":3,"file":"sdk-BdV1Rld9.mjs","names":[],"sources":["../src/sdk/index.ts"],"sourcesContent":["import { AuthSDK } from './auth';\nimport { CanvasSDK } from './canvas';\nimport { DimensClient, type APIResponse, type DimensClientOptions } from './client';\nimport { ColumnSDK } from './column';\nimport { DocumentSDK } from './document';\nimport { FlowChatSDK } from './flow-chat';\nimport { PermissionSDK } from './permission';\nimport { ProjectSDK } from './project';\nimport { ReportSDK } from './report';\nimport { RowSDK } from './row';\nimport { RowAclSDK } from './row-acl';\nimport { RowPolicySDK } from './row-policy';\nimport { RoleSDK } from './role';\nimport { SheetSDK } from './sheet';\nimport { TeamSDK } from './team';\nimport { UploadSDK } from './upload';\nimport { UserSDK } from './user';\nimport { ViewSDK } from './view';\n\nexport type { APIResponse, DimensClientOptions };\n\nexport interface SDKConfig extends DimensClientOptions {}\n\nexport class DimensSDK {\n readonly client: DimensClient;\n readonly auth: AuthSDK;\n readonly project: ProjectSDK;\n readonly report: ReportSDK;\n readonly canvas: CanvasSDK;\n readonly role: RoleSDK;\n readonly permission: PermissionSDK;\n readonly sheet: SheetSDK;\n readonly team: TeamSDK;\n readonly user: UserSDK;\n readonly column: ColumnSDK;\n readonly document: DocumentSDK;\n readonly view: ViewSDK;\n readonly row: RowSDK;\n readonly rowPolicy: RowPolicySDK;\n readonly rowAcl: RowAclSDK;\n readonly ai: FlowChatSDK;\n readonly upload: UploadSDK;\n\n constructor(config: SDKConfig) {\n this.client = new DimensClient(config);\n this.auth = new AuthSDK(this.client);\n this.project = new ProjectSDK(this.client);\n this.report = new ReportSDK(this.client);\n this.canvas = new CanvasSDK(this.client);\n this.role = new RoleSDK(this.client);\n this.permission = new PermissionSDK(this.client);\n this.sheet = new SheetSDK(this.client);\n this.team = new TeamSDK(this.client);\n this.user = new UserSDK(this.client);\n this.column = new ColumnSDK(this.client);\n this.document = new DocumentSDK(this.client);\n this.view = new ViewSDK(this.client);\n this.row = new RowSDK(this.client);\n this.rowPolicy = new RowPolicySDK(this.client);\n this.rowAcl = new RowAclSDK(this.client);\n this.ai = new FlowChatSDK(this.client);\n this.upload = new UploadSDK(this.client);\n }\n}\n\nexport function createSDK(config: SDKConfig): DimensSDK {\n return new DimensSDK(config);\n}\n\nexport { DimensClient } from './client';\nexport { AuthSDK } from './auth';\nexport { CanvasSDK } from './canvas';\nexport { ProjectSDK } from './project';\nexport { ReportSDK } from './report';\nexport { RoleSDK } from './role';\nexport { PermissionSDK } from './permission';\nexport { SheetSDK } from './sheet';\nexport { TeamSDK } from './team';\nexport { ColumnSDK } from './column';\nexport { DocumentSDK } from './document';\nexport { ViewSDK } from './view';\nexport { RowSDK } from './row';\nexport { RowPolicySDK } from './row-policy';\nexport { RowAclSDK } from './row-acl';\nexport { FlowChatSDK } from './flow-chat';\nexport { UploadSDK } from './upload';\nexport { UserSDK } from './user';\n"],"mappings":";;;;;;;;AAuBA,IAAa,YAAb,MAAuB;CACrB,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CACT,AAAS;CAET,YAAY,QAAmB;AAC7B,OAAK,SAAS,IAAI,aAAa,OAAO;AACtC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,UAAU,IAAI,WAAW,KAAK,OAAO;AAC1C,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,aAAa,IAAI,cAAc,KAAK,OAAO;AAChD,OAAK,QAAQ,IAAI,SAAS,KAAK,OAAO;AACtC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,WAAW,IAAI,YAAY,KAAK,OAAO;AAC5C,OAAK,OAAO,IAAI,QAAQ,KAAK,OAAO;AACpC,OAAK,MAAM,IAAI,OAAO,KAAK,OAAO;AAClC,OAAK,YAAY,IAAI,aAAa,KAAK,OAAO;AAC9C,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;AACxC,OAAK,KAAK,IAAI,YAAY,KAAK,OAAO;AACtC,OAAK,SAAS,IAAI,UAAU,KAAK,OAAO;;;AAI5C,SAAgB,UAAU,QAA8B;AACtD,QAAO,IAAI,UAAU,OAAO"}
import { t as __exportAll } from "./rolldown-runtime-95iHPtFO.mjs";
import { n as logger } from "./logger-CEOtAYhF.mjs";
//#region src/tools/registry.ts
const registeredTools = /* @__PURE__ */ new Map();
function registerTool(tool) {
if (registeredTools.has(tool.name)) logger.warn(`工具 ${tool.name} 已存在,将被覆盖`);
registeredTools.set(tool.name, tool);
logger.debug(`工具已注册: ${tool.name}`);
}
function getTool(name) {
return registeredTools.get(name);
}
function getAllTools() {
return Array.from(registeredTools.values());
}
//#endregion
//#region src/tools/project.ts
const projectListTool = {
name: "project_list",
description: "获取项目列表",
parameters: {
type: "object",
properties: {
status: {
type: "string",
description: "项目状态筛选",
enum: [
"active",
"archived",
"all"
],
default: "active"
},
limit: {
type: "number",
description: "返回数量限制",
default: 20
}
}
},
handler: async () => {
return {
success: true,
data: {
projects: [],
total: 0
},
message: "项目列表获取成功"
};
}
};
const projectCreateTool = {
name: "project_create",
description: "创建新项目",
parameters: {
type: "object",
properties: {
name: {
type: "string",
description: "项目名称"
},
description: {
type: "string",
description: "项目描述"
},
template: {
type: "string",
description: "项目模板",
enum: [
"web",
"mobile",
"api",
"cli"
]
}
},
required: ["name"]
},
handler: async (params) => {
const { name, description } = params;
return {
success: true,
data: {
id: "proj_" + Date.now(),
name,
description,
createdAt: (/* @__PURE__ */ new Date()).toISOString()
},
message: "项目创建成功"
};
}
};
const projectInfoTool = {
name: "project_info",
description: "获取项目详细信息",
parameters: {
type: "object",
properties: { projectId: {
type: "string",
description: "项目ID"
} },
required: ["projectId"]
},
handler: async (params) => {
const { projectId } = params;
return {
success: true,
data: {
id: projectId,
name: "示例项目",
description: "这是一个示例项目",
status: "active",
createdAt: (/* @__PURE__ */ new Date()).toISOString()
},
message: "项目信息获取成功"
};
}
};
function registerProjectTools() {
registerTool(projectListTool);
registerTool(projectCreateTool);
registerTool(projectInfoTool);
}
//#endregion
//#region src/tools/index.ts
var tools_exports = /* @__PURE__ */ __exportAll({ registerAllTools: () => registerAllTools });
function registerAllTools() {
logger.info("开始注册所有工具...");
registerProjectTools();
logger.info("所有工具注册完成");
}
//#endregion
export { registerTool as a, getTool as i, tools_exports as n, getAllTools as r, registerAllTools as t };
//# sourceMappingURL=tools-C66Gl8k6.mjs.map
{"version":3,"file":"tools-C66Gl8k6.mjs","names":[],"sources":["../src/tools/registry.ts","../src/tools/project.ts","../src/tools/index.ts"],"sourcesContent":["/**\n * 工具注册器\n */\n\nimport type { Tool, ToolHandler } from '../types';\nimport { logger } from '../core/logger';\n\nconst registeredTools = new Map<string, Tool>();\n\nexport function registerTool(tool: Tool): void {\n if (registeredTools.has(tool.name)) {\n logger.warn(`工具 ${tool.name} 已存在,将被覆盖`);\n }\n registeredTools.set(tool.name, tool);\n logger.debug(`工具已注册: ${tool.name}`);\n}\n\nexport function getTool(name: string): Tool | undefined {\n return registeredTools.get(name);\n}\n\nexport function getAllTools(): Tool[] {\n return Array.from(registeredTools.values());\n}\n\nexport function clearTools(): void {\n registeredTools.clear();\n logger.debug('所有工具已清除');\n}\n\nexport function createTool(\n name: string,\n description: string,\n parameters: Tool['parameters'],\n handler: ToolHandler\n): Tool {\n return {\n name,\n description,\n parameters,\n handler,\n };\n}\n","/**\n * 项目管理工具\n */\n\nimport type { Tool } from '../types';\nimport { registerTool } from './registry';\n\nconst projectListTool: Tool = {\n name: 'project_list',\n description: '获取项目列表',\n parameters: {\n type: 'object',\n properties: {\n status: {\n type: 'string',\n description: '项目状态筛选',\n enum: ['active', 'archived', 'all'],\n default: 'active',\n },\n limit: {\n type: 'number',\n description: '返回数量限制',\n default: 20,\n },\n },\n },\n handler: async () => {\n return {\n success: true,\n data: {\n projects: [],\n total: 0,\n },\n message: '项目列表获取成功',\n };\n },\n};\n\nconst projectCreateTool: Tool = {\n name: 'project_create',\n description: '创建新项目',\n parameters: {\n type: 'object',\n properties: {\n name: {\n type: 'string',\n description: '项目名称',\n },\n description: {\n type: 'string',\n description: '项目描述',\n },\n template: {\n type: 'string',\n description: '项目模板',\n enum: ['web', 'mobile', 'api', 'cli'],\n },\n },\n required: ['name'],\n },\n handler: async (params) => {\n const { name, description } = params as {\n name?: unknown;\n description?: unknown;\n };\n return {\n success: true,\n data: {\n id: 'proj_' + Date.now(),\n name,\n description,\n createdAt: new Date().toISOString(),\n },\n message: '项目创建成功',\n };\n },\n};\n\nconst projectInfoTool: Tool = {\n name: 'project_info',\n description: '获取项目详细信息',\n parameters: {\n type: 'object',\n properties: {\n projectId: {\n type: 'string',\n description: '项目ID',\n },\n },\n required: ['projectId'],\n },\n handler: async (params) => {\n const { projectId } = params as { projectId?: unknown };\n return {\n success: true,\n data: {\n id: projectId,\n name: '示例项目',\n description: '这是一个示例项目',\n status: 'active',\n createdAt: new Date().toISOString(),\n },\n message: '项目信息获取成功',\n };\n },\n};\n\nexport function registerProjectTools(): void {\n registerTool(projectListTool);\n registerTool(projectCreateTool);\n registerTool(projectInfoTool);\n}\n","/**\n * 工具层入口\n */\n\nexport { registerTool, getTool, getAllTools, clearTools, createTool } from './registry';\nexport { registerProjectTools } from './project';\n\nimport { logger } from '../core/logger';\nimport { registerProjectTools } from './project';\n\nexport function registerAllTools(): void {\n logger.info('开始注册所有工具...');\n \n registerProjectTools();\n \n logger.info('所有工具注册完成');\n}\n"],"mappings":";;;;AAOA,MAAM,kCAAkB,IAAI,KAAmB;AAE/C,SAAgB,aAAa,MAAkB;AAC7C,KAAI,gBAAgB,IAAI,KAAK,KAAK,CAChC,QAAO,KAAK,MAAM,KAAK,KAAK,WAAW;AAEzC,iBAAgB,IAAI,KAAK,MAAM,KAAK;AACpC,QAAO,MAAM,UAAU,KAAK,OAAO;;AAGrC,SAAgB,QAAQ,MAAgC;AACtD,QAAO,gBAAgB,IAAI,KAAK;;AAGlC,SAAgB,cAAsB;AACpC,QAAO,MAAM,KAAK,gBAAgB,QAAQ,CAAC;;;;;ACf7C,MAAM,kBAAwB;CAC5B,MAAM;CACN,aAAa;CACb,YAAY;EACV,MAAM;EACN,YAAY;GACV,QAAQ;IACN,MAAM;IACN,aAAa;IACb,MAAM;KAAC;KAAU;KAAY;KAAM;IACnC,SAAS;IACV;GACD,OAAO;IACL,MAAM;IACN,aAAa;IACb,SAAS;IACV;GACF;EACF;CACD,SAAS,YAAY;AACnB,SAAO;GACL,SAAS;GACT,MAAM;IACJ,UAAU,EAAE;IACZ,OAAO;IACR;GACD,SAAS;GACV;;CAEJ;AAED,MAAM,oBAA0B;CAC9B,MAAM;CACN,aAAa;CACb,YAAY;EACV,MAAM;EACN,YAAY;GACV,MAAM;IACJ,MAAM;IACN,aAAa;IACd;GACD,aAAa;IACX,MAAM;IACN,aAAa;IACd;GACD,UAAU;IACR,MAAM;IACN,aAAa;IACb,MAAM;KAAC;KAAO;KAAU;KAAO;KAAM;IACtC;GACF;EACD,UAAU,CAAC,OAAO;EACnB;CACD,SAAS,OAAO,WAAW;EACzB,MAAM,EAAE,MAAM,gBAAgB;AAI9B,SAAO;GACL,SAAS;GACT,MAAM;IACJ,IAAI,UAAU,KAAK,KAAK;IACxB;IACA;IACA,4BAAW,IAAI,MAAM,EAAC,aAAa;IACpC;GACD,SAAS;GACV;;CAEJ;AAED,MAAM,kBAAwB;CAC5B,MAAM;CACN,aAAa;CACb,YAAY;EACV,MAAM;EACN,YAAY,EACV,WAAW;GACT,MAAM;GACN,aAAa;GACd,EACF;EACD,UAAU,CAAC,YAAY;EACxB;CACD,SAAS,OAAO,WAAW;EACzB,MAAM,EAAE,cAAc;AACtB,SAAO;GACL,SAAS;GACT,MAAM;IACJ,IAAI;IACJ,MAAM;IACN,aAAa;IACb,QAAQ;IACR,4BAAW,IAAI,MAAM,EAAC,aAAa;IACpC;GACD,SAAS;GACV;;CAEJ;AAED,SAAgB,uBAA6B;AAC3C,cAAa,gBAAgB;AAC7B,cAAa,kBAAkB;AAC/B,cAAa,gBAAgB;;;;;;ACpG/B,SAAgB,mBAAyB;AACvC,QAAO,KAAK,cAAc;AAE1B,uBAAsB;AAEtB,QAAO,KAAK,WAAW"}
import { dirname, join } from "path";
import { readFileSync } from "fs";
import { fileURLToPath } from "url";
import { basename } from "node:path";
import { readFile } from "node:fs/promises";
//#region src/core/version.ts
/**
* 版本信息
*/
let _version;
function getVersion() {
if (_version) return _version;
try {
_version = readNearestPackageJson(dirname(fileURLToPath(import.meta.url))).version;
} catch {
_version = "1.0.0";
}
return _version ?? "1.0.0";
}
const version = getVersion();
function getUserAgent() {
return `DimensCLI/${version} (Node.js/${process.version})`;
}
function readNearestPackageJson(startDir) {
let currentDir = startDir;
for (let depth = 0; depth < 6; depth += 1) {
const packageJsonPath = join(currentDir, "package.json");
try {
return JSON.parse(readFileSync(packageJsonPath, "utf-8"));
} catch {
const parentDir = dirname(currentDir);
if (parentDir === currentDir) break;
currentDir = parentDir;
}
}
throw new Error("package.json not found");
}
//#endregion
//#region src/sdk/flow-chat.ts
var FlowChatSDK = class {
constructor(client) {
this.client = client;
}
completions(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/chat/completions`, payload);
}
responses(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/responses`, payload);
}
messages(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/messages`, payload);
}
models(teamId, query = {}) {
return this.client.get(`/app/new-api/${teamId}/models`, query);
}
v1BetaModels(teamId, query = {}) {
return this.client.get(`/app/flow/${teamId}/v1beta/models`, query);
}
generateImage(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/images/generations`, payload);
}
editImage(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/images/edits`, formData);
}
createImageVariation(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/images/variations`, formData);
}
createVideo(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/videos`, payload);
}
getVideo(teamId, taskId) {
return this.client.get(`/app/flow/${teamId}/v1/videos/${taskId}`);
}
getVideoContent(teamId, taskId) {
return this.client.get(`/app/flow/${teamId}/v1/videos/${taskId}/content`);
}
createSpeech(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/audio/speech`, payload);
}
transcribeAudio(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/audio/transcriptions`, formData);
}
translateAudio(teamId, formData) {
return this.client.postFormData(`/app/flow/${teamId}/v1/audio/translations`, formData);
}
embeddings(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/embeddings`, payload);
}
rerank(teamId, payload) {
return this.client.post(`/app/flow/${teamId}/v1/rerank`, payload);
}
proxy(teamId, request) {
const path = normalizeProxyPath(teamId, request.path);
if (request.method === "GET") return this.client.get(path, request.query);
if (request.formData) return this.client.postFormData(path, request.formData);
return this.client.post(path, request.body);
}
};
function normalizeProxyPath(teamId, path) {
const trimmed = path.trim();
if (!trimmed) throw new Error("AI proxy path 不能为空");
if (trimmed.startsWith(`/app/flow/${teamId}/`)) return trimmed;
const withoutLeadingSlash = trimmed.replace(/^\/+/, "");
if (withoutLeadingSlash.startsWith("v1/") || withoutLeadingSlash === "v1") return `/app/flow/${teamId}/${withoutLeadingSlash}`;
if (withoutLeadingSlash.startsWith("v1beta/") || withoutLeadingSlash === "v1beta") return `/app/flow/${teamId}/${withoutLeadingSlash}`;
throw new Error("AI proxy path 只允许 v1 或 v1beta 维表代理路径");
}
//#endregion
//#region src/core/http.ts
async function requestJson(url, init = {}) {
const response = await fetch(url, init);
const payload = await response.json();
if (!response.ok) throw new Error(payload?.message || `HTTP ${response.status}`);
return payload;
}
//#endregion
//#region src/sdk/client.ts
var DimensClient = class {
options;
constructor(options) {
this.options = options;
}
getOptions() {
return { ...this.options };
}
async get(path, query, init = {}) {
return requestJson(this.buildUrl(path, query), {
...init,
method: "GET",
headers: this.buildHeaders(init.headers)
});
}
async post(path, body, init = {}) {
const requestInit = {
...init,
method: "POST",
headers: this.buildHeaders(init.headers, true)
};
if (body !== void 0) requestInit.body = JSON.stringify(body);
return requestJson(this.buildUrl(path), requestInit);
}
async postFormData(path, formData, init = {}) {
const requestInit = {
...init,
method: "POST",
headers: this.buildHeaders(init.headers, false, true),
body: formData
};
return requestJson(this.buildUrl(path), requestInit);
}
buildUrl(path, query) {
const base = this.options.baseUrl.replace(/\/+$/, "");
const normalizedPath = path.startsWith("/") ? path : `/${path}`;
const url = new URL(`${base}${normalizedPath}`);
Object.entries(query || {}).forEach(([key, value]) => {
if (value === void 0 || value === null || value === "") return;
url.searchParams.set(key, String(value));
});
return url.toString();
}
buildHeaders(headers, hasJsonBody = false, hasFormDataBody = false) {
const merged = normalizeHeaders(headers);
merged.Accept = "application/json";
merged["User-Agent"] = getUserAgent();
if (hasJsonBody && !hasFormDataBody) merged["Content-Type"] = "application/json";
if (hasFormDataBody) delete merged["Content-Type"];
if (this.options.token) merged.Authorization = `Bearer ${this.options.token}`;
if (this.options.refreshToken) merged["X-Refresh-Token"] = this.options.refreshToken;
return merged;
}
};
function normalizeHeaders(headers) {
if (!headers) return {};
if (typeof Headers !== "undefined" && headers instanceof Headers) return Object.fromEntries(headers.entries());
if (Array.isArray(headers)) return Object.fromEntries(headers.map(([key, value]) => [String(key), String(value)]));
const normalized = {};
Object.entries(headers).forEach(([key, value]) => {
normalized[key] = typeof value === "string" ? value : value.join(", ");
});
return normalized;
}
//#endregion
//#region src/sdk/auth.ts
var AuthSDK = class {
constructor(client) {
this.client = client;
}
login(payload) {
return this.client.post("/login", payload);
}
loginByApiKey(payload) {
return this.client.post("/open/user/login/apiKey", payload);
}
exchangeTokenByApiKey(payload) {
return this.loginByApiKey(payload);
}
refreshToken() {
return this.client.get("/refreshToken");
}
me() {
return this.client.get("/app/user/info/person");
}
};
//#endregion
//#region src/sdk/canvas.ts
const EMPTY_GRAPH = {
nodes: [],
edges: [],
viewport: {
x: 0,
y: 0,
zoom: 1
}
};
var CanvasSDK = class {
constructor(client) {
this.client = client;
}
normalizeCreatedCanvas(data) {
const sheetId = typeof data.sheetId === "string" ? data.sheetId : typeof data.id === "string" ? data.id : "";
return {
...data,
sheetId,
canvasId: sheetId
};
}
async create(projectId, payload) {
const response = await this.client.post(`/app/mul/project/${projectId}/sheet/create`, {
name: payload.name,
type: "canvas",
...payload.folderId ? { folderId: payload.folderId } : {},
config: { data: payload.data ?? EMPTY_GRAPH }
});
return {
...response,
data: this.normalizeCreatedCanvas(response.data || {})
};
}
info(teamId, projectId, sheetId) {
return this.client.get(`/app/canvas/${teamId}/${projectId}/info`, { sheetId });
}
save(teamId, projectId, payload) {
return this.client.post(`/app/canvas/${teamId}/${projectId}/save`, payload);
}
versions(teamId, projectId, payload) {
return this.client.post(`/app/canvas/${teamId}/${projectId}/versions`, payload);
}
version(teamId, projectId, sheetId, version) {
return this.client.get(`/app/canvas/${teamId}/${projectId}/version`, {
sheetId,
version
});
}
restore(teamId, projectId, payload) {
return this.client.post(`/app/canvas/${teamId}/${projectId}/restore`, payload);
}
listMineResources(teamId, keyword) {
return this.client.get(`/app/canvas/${teamId}/resource/mine`, { keyword });
}
saveMineResource(teamId, payload) {
return this.client.post(`/app/canvas/${teamId}/resource/mine`, payload);
}
removeMineResource(teamId, id) {
return this.client.post(`/app/canvas/${teamId}/resource/mine/delete`, { id });
}
publishMineResource(teamId, id) {
return this.client.post(`/app/canvas/${teamId}/resource/mine/publish`, { id });
}
listMarketResources(teamId, keyword) {
return this.client.get(`/app/canvas/${teamId}/resource/market`, { keyword });
}
};
//#endregion
//#region src/sdk/column.ts
var ColumnSDK = class {
constructor(client) {
this.client = client;
}
list(teamId, projectId, sheetId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/column/list`);
}
create(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/column/create`, payload);
}
update(sheetId, fieldId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/column/${fieldId}/update`, payload);
}
delete(sheetId, fieldId) {
return this.client.post(`/app/mul/sheet/${sheetId}/column/${fieldId}/delete`);
}
};
//#endregion
//#region src/sdk/sheet.ts
var SheetSDK = class {
constructor(client) {
this.client = client;
}
list(projectId) {
return this.client.get(`/app/mul/project/${projectId}/sheet/list`);
}
tree(projectId) {
return this.client.get(`/app/mul/project/${projectId}/sheet/tree`);
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/sheet/create`, payload);
}
info(teamId, projectId, sheetId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/info`);
}
update(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/update`, payload);
}
delete(teamId, projectId, sheetId) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/delete`);
}
structure(sheetId) {
return this.client.get(`/app/mul/sheet/${sheetId}/structure`);
}
};
//#endregion
//#region src/sdk/document.ts
var DocumentSDK = class {
constructor(client) {
this.client = client;
}
createWithSheet(teamId, projectId, payload) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/createWithSheet`, payload);
}
info(teamId, projectId, documentId) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/${documentId}/info`);
}
getBySheetId(teamId, projectId, sheetId) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/getBySheetId`, { sheetId });
}
update(teamId, projectId, payload) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/update`, payload);
}
delete(teamId, projectId, documentId) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/delete`, { documentId });
}
versions(teamId, projectId, query) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/versions`, query);
}
version(teamId, projectId, query) {
return this.client.get(`/app/documents/${teamId}/${projectId}/document/version`, query);
}
restore(teamId, projectId, payload) {
return this.client.post(`/app/documents/${teamId}/${projectId}/document/restore`, payload);
}
};
//#endregion
//#region src/sdk/upload.ts
var UploadSDK = class {
constructor(client) {
this.client = client;
}
async uploadFile(filePath, keyOrOptions) {
const payload = await this.createLocalFilePayload(filePath);
const formData = new FormData();
formData.append("file", payload.file, payload.file.name);
const options = typeof keyOrOptions === "string" ? { key: keyOrOptions } : keyOrOptions ?? {};
if (!options.name) options.name = payload.file.name;
if (!options.size) options.size = String(payload.file.size);
if (!options.mimeType) options.mimeType = payload.file.type;
Object.entries(options).forEach(([field, value]) => {
if (!value) return;
formData.append(field, value);
});
return this.client.postFormData("/app/base/comm/upload", formData);
}
async uploadMaterialWithCdnFallback(filePath, options) {
if (!options.teamId) throw new Error("素材库上传必须携带 --team-id");
const mode = await this.getMode();
if (!(mode.data?.cdn?.enabled === true && mode.data?.cdn?.provider === "qiniu")) return this.uploadFile(filePath, options);
const payload = await this.createLocalFilePayload(filePath);
const normalizedOptions = this.normalizeMaterialOptions(options);
const tokenBody = {
teamId: options.teamId,
fileName: payload.fileName,
size: payload.size,
mimeType: payload.mimeType,
source: "material"
};
if (normalizedOptions.classifyId !== void 0) tokenBody.classifyId = normalizedOptions.classifyId;
if (normalizedOptions.type) tokenBody.type = normalizedOptions.type;
let tokenResponse;
try {
tokenResponse = await this.createCdnUploadToken(tokenBody);
} catch (error) {
if (canFallbackToLocalUpload(error)) return this.uploadFile(filePath, options);
throw error;
}
const token = tokenResponse.data;
const qiniuResult = await this.uploadToQiniu(payload.file, token);
const completeBody = {
teamId: options.teamId,
provider: "qiniu",
bucket: token.bucket,
key: token.key,
fileId: token.fileId,
name: normalizedOptions.name || payload.fileName,
size: normalizedOptions.size ?? payload.size,
mimeType: normalizedOptions.mimeType || payload.mimeType,
source: "material"
};
if (qiniuResult.hash) completeBody.hash = qiniuResult.hash;
if (token.url) completeBody.url = token.url;
if (normalizedOptions.classifyId !== void 0) completeBody.classifyId = normalizedOptions.classifyId;
if (normalizedOptions.type) completeBody.type = normalizedOptions.type;
return this.completeCdnUpload(completeBody);
}
async getMode() {
return this.client.get("/app/base/comm/uploadMode");
}
async createCdnUploadToken(body) {
return this.client.post("/app/base/comm/cdn/uploadToken", body);
}
async completeCdnUpload(body) {
return this.client.post("/app/space/info/cdn/complete", body);
}
async uploadToQiniu(file, token) {
const formData = new FormData();
formData.append("key", token.key);
formData.append("token", token.uploadToken);
formData.append("file", file, file.name);
formData.append("fname", file.name);
const response = await fetch(resolveQiniuUploadUrl(token.uploadConfig?.region), {
method: "POST",
body: formData
});
const payload = await response.json();
if (!response.ok) throw new Error(payload?.message || payload?.error || `HTTP ${response.status}`);
return payload;
}
async createLocalFilePayload(filePath) {
const fileBuffer = await readFile(filePath);
const fileName = basename(filePath);
const mimeType = resolveMimeType(fileName);
const file = new File([fileBuffer], fileName, {
type: mimeType,
lastModified: Date.now()
});
return {
file,
fileName,
size: file.size,
mimeType
};
}
normalizeMaterialOptions(options) {
return {
name: options.name,
size: options.size ? Number(options.size) : void 0,
mimeType: options.mimeType,
type: options.type,
classifyId: options.classifyId ? Number(options.classifyId) : void 0
};
}
};
function resolveQiniuUploadUrl(region) {
return {
z0: "https://upload.qiniup.com",
z1: "https://upload-z1.qiniup.com",
z2: "https://upload-z2.qiniup.com",
na0: "https://upload-na0.qiniup.com",
as0: "https://upload-as0.qiniup.com"
}[String(region || "z0")] || "https://upload.qiniup.com";
}
function canFallbackToLocalUpload(error) {
const message = error instanceof Error ? error.message : String(error || "");
return message.includes("CDN 未启用") || message.includes("七牛 CDN 未启用") || message.includes("七牛 CDN 配置不完整");
}
function resolveMimeType(fileName) {
const lowerFileName = fileName.toLowerCase();
if (lowerFileName.endsWith(".txt")) return "text/plain";
if (lowerFileName.endsWith(".json")) return "application/json";
if (lowerFileName.endsWith(".pdf")) return "application/pdf";
if (lowerFileName.endsWith(".png")) return "image/png";
if (lowerFileName.endsWith(".jpg") || lowerFileName.endsWith(".jpeg")) return "image/jpeg";
if (lowerFileName.endsWith(".gif")) return "image/gif";
if (lowerFileName.endsWith(".svg")) return "image/svg+xml";
if (lowerFileName.endsWith(".csv")) return "text/csv";
return "application/octet-stream";
}
//#endregion
//#region src/sdk/project.ts
var ProjectSDK = class {
constructor(client) {
this.client = client;
}
page(teamId, payload) {
return this.client.post(`/app/org/${teamId}/project/page`, payload);
}
info(teamId, id) {
return this.client.get(`/app/org/${teamId}/project/info`, { id });
}
create(teamId, payload) {
return this.client.post(`/app/org/${teamId}/project/add`, payload);
}
update(teamId, payload) {
return this.client.post(`/app/org/${teamId}/project/update`, payload);
}
trash(teamId, ids) {
return this.client.post(`/app/org/${teamId}/project/trash`, { ids });
}
restore(teamId, ids) {
return this.client.post(`/app/org/${teamId}/project/restore`, { ids });
}
};
//#endregion
//#region src/sdk/permission.ts
var PermissionSDK = class {
constructor(client) {
this.client = client;
}
list(projectId, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/permission/list`, { sheetId });
}
info(projectId, id, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/permission/info`, {
id,
sheetId
});
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/permission/add`, payload);
}
update(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/permission/update`, payload);
}
delete(projectId, ids, sheetId) {
return this.client.post(`/app/mul/project/${projectId}/permission/delete`, {
ids,
sheetId
});
}
check(projectId, payload) {
return this.client.get(`/app/mul/project/${projectId}/permission/check`, payload);
}
batch(projectId, sheetId, permissions) {
return this.client.post(`/app/mul/project/${projectId}/permission/batch`, {
sheetId,
permissions
});
}
updateResourcePermission(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/permission/updateResourcePermission`, payload);
}
};
//#endregion
//#region src/sdk/report.ts
var ReportSDK = class {
constructor(client) {
this.client = client;
}
normalizeProjectReport(data) {
const reportId = typeof data.reportId === "string" ? data.reportId : typeof data.sheetId === "string" ? data.sheetId : typeof data.id === "string" ? data.id : "";
return {
...data,
reportId,
sheetId: typeof data.sheetId === "string" ? data.sheetId : reportId
};
}
list(projectId, payload) {
return this.client.post(`/app/report/${projectId}/list`, payload);
}
info(projectId, reportId) {
return this.client.get(`/app/report/${projectId}/info`, { reportId });
}
create(projectId, payload) {
return this.client.post(`/app/report/${projectId}/add`, payload);
}
async createProjectReport(projectId, payload) {
const response = await this.client.post(`/app/mul/project/${projectId}/sheet/create`, {
name: payload.name,
type: "report",
config: { dashboardConfig: {
id: payload.dashboardId || `dashboard_${Date.now()}`,
title: payload.name,
...payload.description ? { description: payload.description } : {},
widgets: [],
parameters: [],
createdAt: payload.createdAt || Date.now()
} }
});
return {
...response,
data: this.normalizeProjectReport(response.data || {})
};
}
update(projectId, payload) {
return this.client.post(`/app/report/${projectId}/update`, payload);
}
copy(projectId, payload) {
return this.client.post(`/app/report/${projectId}/copy`, payload);
}
publish(projectId, payload) {
return this.client.post(`/app/report/${projectId}/publish`, payload);
}
delete(projectId, payload) {
return this.client.post(`/app/report/${projectId}/delete`, payload);
}
archive(projectId, payload) {
return this.client.post(`/app/report/${projectId}/archive`, payload);
}
sort(projectId, payload) {
return this.client.post(`/app/report/${projectId}/sort`, payload);
}
move(projectId, payload) {
return this.client.post(`/app/report/${projectId}/move`, payload);
}
query(projectId, payload) {
return this.client.post(`/app/report/query/${projectId}`, payload);
}
queryWidget(projectId, payload) {
return this.client.post(`/app/report/query/${projectId}/widget`, payload);
}
preview(projectId, payload) {
return this.client.post(`/app/report/query/${projectId}/preview`, payload);
}
validate(projectId, payload) {
return this.client.post(`/app/report/${projectId}/validate`, payload);
}
addWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/add`, payload);
}
updateWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/update`, payload);
}
deleteWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/delete`, payload);
}
batchWidgets(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/batch`, payload);
}
sortWidget(projectId, payload) {
return this.client.post(`/app/report/widget/${projectId}/sort`, payload);
}
};
//#endregion
//#region src/sdk/role.ts
var RoleSDK = class {
constructor(client) {
this.client = client;
}
list(projectId) {
return this.client.get(`/app/mul/project/${projectId}/role/list`);
}
info(projectId, roleId) {
return this.client.get(`/app/mul/project/${projectId}/role/info`, { roleId });
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/add`, payload);
}
update(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/update`, payload);
}
delete(projectId, roleIds) {
return this.client.post(`/app/mul/project/${projectId}/role/delete`, { roleIds });
}
assignUser(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/assignUser`, payload);
}
removeUser(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/role/removeUser`, payload);
}
userRoles(projectId, userId, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/role/userRoles`, {
userId,
sheetId
});
}
roleUsers(projectId, roleId) {
return this.client.get(`/app/mul/project/${projectId}/role/roleUsers`, { roleId });
}
projectUsers(projectId) {
return this.client.get(`/app/mul/project/${projectId}/role/projectUsers`);
}
};
//#endregion
//#region src/sdk/row.ts
var RowSDK = class {
constructor(client) {
this.client = client;
}
page(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/row/page`, payload);
}
info(teamId, projectId, sheetId, rowId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/row/${rowId}/info`);
}
create(sheetId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/create`, payload);
}
batchCreate(sheetId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/batch-create`, payload);
}
update(sheetId, rowId, data, version) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/${rowId}/update`, {
data,
version
});
}
delete(sheetId, rowId) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/${rowId}/delete`);
}
updateCell(sheetId, payload) {
return this.client.post(`/app/mul/sheet/${sheetId}/row/cell`, payload);
}
};
//#endregion
//#region src/sdk/row-acl.ts
var RowAclSDK = class {
constructor(client) {
this.client = client;
}
grant(sheetId, payload) {
return this.client.post("/app/mul/rowAcl/grant", {
sheetId,
...payload
});
}
revoke(sheetId, rowId, target) {
return this.client.post("/app/mul/rowAcl/revoke", {
sheetId,
rowId,
target
});
}
revokeDept(sheetId, rowId, deptId) {
return this.client.post("/app/mul/rowAcl/revokeDeptAccess", {
sheetId,
rowId,
deptId
});
}
revokeRole(sheetId, rowId, roleId) {
return this.client.post("/app/mul/rowAcl/revokeRoleAccess", {
sheetId,
rowId,
roleId
});
}
list(sheetId, rowId) {
return this.client.get("/app/mul/rowAcl/list", {
sheetId,
rowId
});
}
roleAcls(sheetId, roleId) {
return this.client.get("/app/mul/rowAcl/roleAcls", {
sheetId,
roleId
});
}
};
//#endregion
//#region src/sdk/row-policy.ts
var RowPolicySDK = class {
constructor(client) {
this.client = client;
}
list(projectId, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/row_policy/list`, { sheetId });
}
info(projectId, id, sheetId) {
return this.client.get(`/app/mul/project/${projectId}/row_policy/info`, {
id,
sheetId
});
}
create(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/add`, payload);
}
update(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/update`, payload);
}
delete(projectId, ids, sheetId) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/delete`, {
ids,
sheetId
});
}
toggle(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/toggle`, payload);
}
check(projectId, payload) {
return this.client.post(`/app/mul/project/${projectId}/row_policy/check`, payload);
}
};
//#endregion
//#region src/sdk/team.ts
var TeamSDK = class {
constructor(client) {
this.client = client;
}
info(teamId) {
return this.client.get(`/app/org/${teamId}/team/info`);
}
members(teamId, query = {}) {
return this.client.get(`/app/org/${teamId}/team_user/list`, query);
}
userList(teamId, query = {}) {
return this.members(teamId, query);
}
};
//#endregion
//#region src/sdk/user.ts
var UserSDK = class {
constructor(client) {
this.client = client;
}
me() {
return this.client.get("/app/user/info/person");
}
};
//#endregion
//#region src/sdk/view.ts
var ViewSDK = class {
constructor(client) {
this.client = client;
}
list(teamId, projectId, sheetId) {
return this.client.get(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/view/list`);
}
create(teamId, projectId, sheetId, payload) {
return this.client.post(`/app/mul/${teamId}/${projectId}/sheet/${sheetId}/view/create`, payload);
}
};
//#endregion
export { DimensClient as _, RowAclSDK as a, getVersion as b, ReportSDK as c, UploadSDK as d, DocumentSDK as f, AuthSDK as g, CanvasSDK as h, RowPolicySDK as i, PermissionSDK as l, ColumnSDK as m, UserSDK as n, RowSDK as o, SheetSDK as p, TeamSDK as r, RoleSDK as s, ViewSDK as t, ProjectSDK as u, FlowChatSDK as v, version as x, getUserAgent as y };
//# sourceMappingURL=view-CmS7nsd_.mjs.map

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display