@lark-apaas/nestjs-capability 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +118 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +118 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -582,6 +582,100 @@ async function migrationAdaptor(promise) {
|
|
|
582
582
|
}
|
|
583
583
|
__name(migrationAdaptor, "migrationAdaptor");
|
|
584
584
|
|
|
585
|
+
// src/utils/plugin-error-format.ts
|
|
586
|
+
var PLUGIN_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
587
|
+
"INVALID_INPUT",
|
|
588
|
+
"EXECUTION_ERROR",
|
|
589
|
+
"INVALID_OUTPUT",
|
|
590
|
+
"INVALID_CONFIG",
|
|
591
|
+
"ACTION_NOT_FOUND"
|
|
592
|
+
]);
|
|
593
|
+
function isPluginError(error) {
|
|
594
|
+
if (!error || typeof error !== "object") return false;
|
|
595
|
+
const code = error.code;
|
|
596
|
+
return typeof code === "string" && PLUGIN_ERROR_CODES.has(code);
|
|
597
|
+
}
|
|
598
|
+
__name(isPluginError, "isPluginError");
|
|
599
|
+
function formatPluginError(error, displayName) {
|
|
600
|
+
if (!isPluginError(error)) return null;
|
|
601
|
+
const err = error;
|
|
602
|
+
const label = displayName ? `\u300C${displayName}\u300D` : "";
|
|
603
|
+
switch (err.code) {
|
|
604
|
+
case "INVALID_INPUT":
|
|
605
|
+
return `${label}\u63D2\u4EF6\u8F93\u5165\u6821\u9A8C\u5931\u8D25: ${formatZodIssuesChinese(err.details)}`;
|
|
606
|
+
case "INVALID_OUTPUT":
|
|
607
|
+
return `${label}\u63D2\u4EF6\u8F93\u51FA\u6821\u9A8C\u5931\u8D25: ${formatZodIssuesChinese(err.details)}`;
|
|
608
|
+
case "INVALID_CONFIG":
|
|
609
|
+
return `${label}\u63D2\u4EF6\u914D\u7F6E\u6821\u9A8C\u5931\u8D25: ${formatZodIssuesChinese(err.details)}`;
|
|
610
|
+
case "ACTION_NOT_FOUND":
|
|
611
|
+
return `${label}\u63D2\u4EF6\u64CD\u4F5C\u4E0D\u5B58\u5728`;
|
|
612
|
+
case "EXECUTION_ERROR": {
|
|
613
|
+
const inner = err.originalError instanceof Error ? err.originalError.message : "";
|
|
614
|
+
return inner ? `${label}\u63D2\u4EF6\u6267\u884C\u5931\u8D25: ${inner}` : `${label}\u63D2\u4EF6\u6267\u884C\u5931\u8D25`;
|
|
615
|
+
}
|
|
616
|
+
default:
|
|
617
|
+
return `${label}\u63D2\u4EF6\u6267\u884C\u5931\u8D25`;
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
__name(formatPluginError, "formatPluginError");
|
|
621
|
+
function formatZodIssuesChinese(details) {
|
|
622
|
+
if (!Array.isArray(details) || details.length === 0) return "\u53C2\u6570\u683C\u5F0F\u6821\u9A8C\u51FA\u9519";
|
|
623
|
+
return details.map(translateZodIssue).join("\uFF1B");
|
|
624
|
+
}
|
|
625
|
+
__name(formatZodIssuesChinese, "formatZodIssuesChinese");
|
|
626
|
+
function translateZodIssue(issue) {
|
|
627
|
+
const field = issue.path?.length > 0 ? `\u300C${issue.path.join(".")}\u300D` : "";
|
|
628
|
+
switch (issue.code) {
|
|
629
|
+
case "invalid_type": {
|
|
630
|
+
const received = issue.received;
|
|
631
|
+
if (received === "undefined" || received === "null") {
|
|
632
|
+
return `${field}\u5B57\u6BB5\u662F\u5FC5\u586B\u7684`;
|
|
633
|
+
}
|
|
634
|
+
return `${field}\u5B57\u6BB5\u7C7B\u578B\u9519\u8BEF\uFF0C\u671F\u671B${translateType(issue.expected)}`;
|
|
635
|
+
}
|
|
636
|
+
case "too_small": {
|
|
637
|
+
if (issue.type === "string") {
|
|
638
|
+
if (issue.minimum === 1) return `${field}\u5B57\u6BB5\u4E0D\u80FD\u4E3A\u7A7A`;
|
|
639
|
+
return `${field}\u5B57\u6BB5\u957F\u5EA6\u4E0D\u80FD\u5C11\u4E8E ${issue.minimum} \u4E2A\u5B57\u7B26`;
|
|
640
|
+
}
|
|
641
|
+
if (issue.type === "number") return `${field}\u5B57\u6BB5\u4E0D\u80FD\u5C0F\u4E8E ${issue.minimum}`;
|
|
642
|
+
if (issue.type === "array") return `${field}\u5B57\u6BB5\u81F3\u5C11\u9700\u8981 ${issue.minimum} \u9879`;
|
|
643
|
+
return `${field}\u5B57\u6BB5\u503C\u8FC7\u5C0F`;
|
|
644
|
+
}
|
|
645
|
+
case "too_big": {
|
|
646
|
+
if (issue.type === "string") return `${field}\u5B57\u6BB5\u957F\u5EA6\u4E0D\u80FD\u8D85\u8FC7 ${issue.maximum} \u4E2A\u5B57\u7B26`;
|
|
647
|
+
if (issue.type === "number") return `${field}\u5B57\u6BB5\u4E0D\u80FD\u5927\u4E8E ${issue.maximum}`;
|
|
648
|
+
if (issue.type === "array") return `${field}\u5B57\u6BB5\u6700\u591A ${issue.maximum} \u9879`;
|
|
649
|
+
return `${field}\u5B57\u6BB5\u503C\u8FC7\u5927`;
|
|
650
|
+
}
|
|
651
|
+
case "invalid_string": {
|
|
652
|
+
if (issue.validation === "email") return `${field}\u5B57\u6BB5\u4E0D\u662F\u6709\u6548\u7684\u90AE\u7BB1\u5730\u5740`;
|
|
653
|
+
if (issue.validation === "url") return `${field}\u5B57\u6BB5\u4E0D\u662F\u6709\u6548\u7684 URL`;
|
|
654
|
+
if (issue.validation === "regex") return `${field}\u5B57\u6BB5\u683C\u5F0F\u4E0D\u6B63\u786E`;
|
|
655
|
+
return `${field}\u5B57\u6BB5\u683C\u5F0F\u6821\u9A8C\u51FA\u9519`;
|
|
656
|
+
}
|
|
657
|
+
case "invalid_enum_value":
|
|
658
|
+
return `${field}\u5B57\u6BB5\u503C\u4E0D\u5728\u5141\u8BB8\u7684\u8303\u56F4\u5185`;
|
|
659
|
+
case "unrecognized_keys":
|
|
660
|
+
return `\u5305\u542B\u672A\u77E5\u5B57\u6BB5: ${issue.keys?.join(", ")}`;
|
|
661
|
+
default:
|
|
662
|
+
return field ? `${field}\u5B57\u6BB5\u683C\u5F0F\u6821\u9A8C\u51FA\u9519` : "\u8F93\u5165\u683C\u5F0F\u6821\u9A8C\u51FA\u9519";
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
__name(translateZodIssue, "translateZodIssue");
|
|
666
|
+
function translateType(type) {
|
|
667
|
+
const map = {
|
|
668
|
+
string: "\u6587\u672C",
|
|
669
|
+
number: "\u6570\u5B57",
|
|
670
|
+
boolean: "\u5E03\u5C14\u503C",
|
|
671
|
+
array: "\u6570\u7EC4",
|
|
672
|
+
object: "\u5BF9\u8C61",
|
|
673
|
+
integer: "\u6574\u6570"
|
|
674
|
+
};
|
|
675
|
+
return map[type] || type;
|
|
676
|
+
}
|
|
677
|
+
__name(translateType, "translateType");
|
|
678
|
+
|
|
585
679
|
// src/services/capability.service.ts
|
|
586
680
|
function _ts_decorate4(decorators, target, key, desc) {
|
|
587
681
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -917,6 +1011,11 @@ var CapabilityService = class _CapabilityService {
|
|
|
917
1011
|
});
|
|
918
1012
|
const errorCode = String(error?.code ?? "EXECUTION_ERROR");
|
|
919
1013
|
this.reportCallEvent(config.pluginKey, false, durationMs, isStream, contextOverride, errorCode);
|
|
1014
|
+
const displayName = this.pluginLoaderService.getManifest(config.pluginKey)?.displayName;
|
|
1015
|
+
const formattedMessage = formatPluginError(error, displayName);
|
|
1016
|
+
if (formattedMessage && error instanceof Error) {
|
|
1017
|
+
error.message = formattedMessage;
|
|
1018
|
+
}
|
|
920
1019
|
throw error;
|
|
921
1020
|
}
|
|
922
1021
|
}
|
|
@@ -972,6 +1071,11 @@ var CapabilityService = class _CapabilityService {
|
|
|
972
1071
|
});
|
|
973
1072
|
const errorCode = String(error?.code ?? "EXECUTION_ERROR");
|
|
974
1073
|
this.reportCallEvent(config.pluginKey, false, durationMs, true, contextOverride, errorCode);
|
|
1074
|
+
const displayName = this.pluginLoaderService.getManifest(config.pluginKey)?.displayName;
|
|
1075
|
+
const formattedMessage = formatPluginError(error, displayName);
|
|
1076
|
+
if (formattedMessage && error instanceof Error) {
|
|
1077
|
+
error.message = formattedMessage;
|
|
1078
|
+
}
|
|
975
1079
|
throw error;
|
|
976
1080
|
}
|
|
977
1081
|
}
|
|
@@ -1066,7 +1170,7 @@ var CapabilityService = class _CapabilityService {
|
|
|
1066
1170
|
this.reportCallEvent(config.pluginKey, false, durationMs, true, contextOverride, errorCode);
|
|
1067
1171
|
yield {
|
|
1068
1172
|
type: "error",
|
|
1069
|
-
error: this.extractErrorInfo(error)
|
|
1173
|
+
error: this.extractErrorInfo(error, config.pluginKey)
|
|
1070
1174
|
};
|
|
1071
1175
|
}
|
|
1072
1176
|
}
|
|
@@ -1089,8 +1193,10 @@ var CapabilityService = class _CapabilityService {
|
|
|
1089
1193
|
/**
|
|
1090
1194
|
* 从错误对象提取错误信息
|
|
1091
1195
|
* 支持 PluginError 和 RateLimitError
|
|
1196
|
+
* @param error - 捕获到的错误
|
|
1197
|
+
* @param pluginKey - 插件 key,用于获取 displayName 格式化 PluginError 消息
|
|
1092
1198
|
*/
|
|
1093
|
-
extractErrorInfo(error) {
|
|
1199
|
+
extractErrorInfo(error, pluginKey) {
|
|
1094
1200
|
const err = error;
|
|
1095
1201
|
const code = err?.code ?? "EXECUTION_ERROR";
|
|
1096
1202
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -1102,6 +1208,16 @@ var CapabilityService = class _CapabilityService {
|
|
|
1102
1208
|
rateLimitMessage: err.rateLimitMessage
|
|
1103
1209
|
};
|
|
1104
1210
|
}
|
|
1211
|
+
if (pluginKey) {
|
|
1212
|
+
const displayName = this.pluginLoaderService.getManifest(pluginKey)?.displayName;
|
|
1213
|
+
const formattedMessage = formatPluginError(error, displayName);
|
|
1214
|
+
if (formattedMessage) {
|
|
1215
|
+
return {
|
|
1216
|
+
code,
|
|
1217
|
+
message: formattedMessage
|
|
1218
|
+
};
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1105
1221
|
return {
|
|
1106
1222
|
code,
|
|
1107
1223
|
message
|