knight-agent 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/Host.d.ts +23 -0
  2. package/Host.d.ts.map +1 -0
  3. package/Host.js +23 -0
  4. package/Host.js.map +1 -0
  5. package/base/AbstractAgent.d.ts +100 -0
  6. package/base/AbstractAgent.d.ts.map +1 -0
  7. package/base/AbstractAgent.js +23 -0
  8. package/base/AbstractAgent.js.map +1 -0
  9. package/base/AbstractDialog.d.ts +54 -0
  10. package/base/AbstractDialog.d.ts.map +1 -0
  11. package/base/AbstractDialog.js +86 -0
  12. package/base/AbstractDialog.js.map +1 -0
  13. package/base/AbstractModule.d.ts +7 -0
  14. package/base/AbstractModule.d.ts.map +1 -0
  15. package/base/AbstractModule.js +13 -0
  16. package/base/AbstractModule.js.map +1 -0
  17. package/base/AbstractObject.d.ts +18 -0
  18. package/base/AbstractObject.d.ts.map +1 -0
  19. package/base/AbstractObject.js +25 -0
  20. package/base/AbstractObject.js.map +1 -0
  21. package/base/AbstractReason.d.ts +44 -0
  22. package/base/AbstractReason.d.ts.map +1 -0
  23. package/base/AbstractReason.js +23 -0
  24. package/base/AbstractReason.js.map +1 -0
  25. package/base/AbstractSkill.d.ts +25 -0
  26. package/base/AbstractSkill.d.ts.map +1 -0
  27. package/base/AbstractSkill.js +3 -0
  28. package/base/AbstractSkill.js.map +1 -0
  29. package/base/AbstractTool.d.ts +34 -0
  30. package/base/AbstractTool.d.ts.map +1 -0
  31. package/base/AbstractTool.js +3 -0
  32. package/base/AbstractTool.js.map +1 -0
  33. package/base/index.d.ts +8 -0
  34. package/base/index.d.ts.map +1 -0
  35. package/base/index.js +24 -0
  36. package/base/index.js.map +1 -0
  37. package/docs/ARCHITECTURE.md +601 -0
  38. package/docs/README.md +562 -0
  39. package/index.d.ts +4 -0
  40. package/index.d.ts.map +1 -0
  41. package/index.js +25 -0
  42. package/index.js.map +1 -0
  43. package/module/AgentModule/Agent.d.ts +55 -0
  44. package/module/AgentModule/Agent.d.ts.map +1 -0
  45. package/module/AgentModule/Agent.js +210 -0
  46. package/module/AgentModule/Agent.js.map +1 -0
  47. package/module/AgentModule/AgentModule.d.ts +26 -0
  48. package/module/AgentModule/AgentModule.d.ts.map +1 -0
  49. package/module/AgentModule/AgentModule.js +66 -0
  50. package/module/AgentModule/AgentModule.js.map +1 -0
  51. package/module/AgentModule/Memory.d.ts +55 -0
  52. package/module/AgentModule/Memory.d.ts.map +1 -0
  53. package/module/AgentModule/Memory.js +288 -0
  54. package/module/AgentModule/Memory.js.map +1 -0
  55. package/module/AgentModule/index.d.ts +2 -0
  56. package/module/AgentModule/index.d.ts.map +1 -0
  57. package/module/AgentModule/index.js +18 -0
  58. package/module/AgentModule/index.js.map +1 -0
  59. package/module/DialogModule/Dialog.d.ts +14 -0
  60. package/module/DialogModule/Dialog.d.ts.map +1 -0
  61. package/module/DialogModule/Dialog.js +27 -0
  62. package/module/DialogModule/Dialog.js.map +1 -0
  63. package/module/DialogModule/DialogModule.d.ts +39 -0
  64. package/module/DialogModule/DialogModule.d.ts.map +1 -0
  65. package/module/DialogModule/DialogModule.js +118 -0
  66. package/module/DialogModule/DialogModule.js.map +1 -0
  67. package/module/DialogModule/index.d.ts +3 -0
  68. package/module/DialogModule/index.d.ts.map +1 -0
  69. package/module/DialogModule/index.js +19 -0
  70. package/module/DialogModule/index.js.map +1 -0
  71. package/module/ReasonModule/ChainReason.d.ts +11 -0
  72. package/module/ReasonModule/ChainReason.d.ts.map +1 -0
  73. package/module/ReasonModule/ChainReason.js +34 -0
  74. package/module/ReasonModule/ChainReason.js.map +1 -0
  75. package/module/ReasonModule/CommanderReason.d.ts +15 -0
  76. package/module/ReasonModule/CommanderReason.d.ts.map +1 -0
  77. package/module/ReasonModule/CommanderReason.js +151 -0
  78. package/module/ReasonModule/CommanderReason.js.map +1 -0
  79. package/module/ReasonModule/CompetitiveReason.d.ts +13 -0
  80. package/module/ReasonModule/CompetitiveReason.d.ts.map +1 -0
  81. package/module/ReasonModule/CompetitiveReason.js +133 -0
  82. package/module/ReasonModule/CompetitiveReason.js.map +1 -0
  83. package/module/ReasonModule/PlanReason.d.ts +25 -0
  84. package/module/ReasonModule/PlanReason.d.ts.map +1 -0
  85. package/module/ReasonModule/PlanReason.js +133 -0
  86. package/module/ReasonModule/PlanReason.js.map +1 -0
  87. package/module/ReasonModule/ReasonModule.d.ts +41 -0
  88. package/module/ReasonModule/ReasonModule.d.ts.map +1 -0
  89. package/module/ReasonModule/ReasonModule.js +83 -0
  90. package/module/ReasonModule/ReasonModule.js.map +1 -0
  91. package/module/ReasonModule/ReflectReason.d.ts +15 -0
  92. package/module/ReasonModule/ReflectReason.d.ts.map +1 -0
  93. package/module/ReasonModule/ReflectReason.js +86 -0
  94. package/module/ReasonModule/ReflectReason.js.map +1 -0
  95. package/module/ReasonModule/TreeReason.d.ts +16 -0
  96. package/module/ReasonModule/TreeReason.d.ts.map +1 -0
  97. package/module/ReasonModule/TreeReason.js +139 -0
  98. package/module/ReasonModule/TreeReason.js.map +1 -0
  99. package/module/ReasonModule/index.d.ts +8 -0
  100. package/module/ReasonModule/index.d.ts.map +1 -0
  101. package/module/ReasonModule/index.js +24 -0
  102. package/module/ReasonModule/index.js.map +1 -0
  103. package/module/SkillModule/SkillModule.d.ts +42 -0
  104. package/module/SkillModule/SkillModule.d.ts.map +1 -0
  105. package/module/SkillModule/SkillModule.js +134 -0
  106. package/module/SkillModule/SkillModule.js.map +1 -0
  107. package/module/SkillModule/index.d.ts +2 -0
  108. package/module/SkillModule/index.d.ts.map +1 -0
  109. package/module/SkillModule/index.js +18 -0
  110. package/module/SkillModule/index.js.map +1 -0
  111. package/module/ToolModule/ToolModule.d.ts +57 -0
  112. package/module/ToolModule/ToolModule.d.ts.map +1 -0
  113. package/module/ToolModule/ToolModule.js +220 -0
  114. package/module/ToolModule/ToolModule.js.map +1 -0
  115. package/module/ToolModule/ToolRAG.d.ts +38 -0
  116. package/module/ToolModule/ToolRAG.d.ts.map +1 -0
  117. package/module/ToolModule/ToolRAG.js +124 -0
  118. package/module/ToolModule/ToolRAG.js.map +1 -0
  119. package/module/ToolModule/index.d.ts +3 -0
  120. package/module/ToolModule/index.d.ts.map +1 -0
  121. package/module/ToolModule/index.js +19 -0
  122. package/module/ToolModule/index.js.map +1 -0
  123. package/module/index.d.ts +6 -0
  124. package/module/index.d.ts.map +1 -0
  125. package/module/index.js +22 -0
  126. package/module/index.js.map +1 -0
  127. package/package.json +19 -0
  128. package/utility/InterfaceUtility.d.ts +14 -0
  129. package/utility/InterfaceUtility.d.ts.map +1 -0
  130. package/utility/InterfaceUtility.js +3 -0
  131. package/utility/InterfaceUtility.js.map +1 -0
  132. package/utility/LogUtility.d.ts +41 -0
  133. package/utility/LogUtility.d.ts.map +1 -0
  134. package/utility/LogUtility.js +70 -0
  135. package/utility/LogUtility.js.map +1 -0
  136. package/utility/NetworkUtility.d.ts +91 -0
  137. package/utility/NetworkUtility.d.ts.map +1 -0
  138. package/utility/NetworkUtility.js +104 -0
  139. package/utility/NetworkUtility.js.map +1 -0
  140. package/utility/ObjectUtility.d.ts +134 -0
  141. package/utility/ObjectUtility.d.ts.map +1 -0
  142. package/utility/ObjectUtility.js +313 -0
  143. package/utility/ObjectUtility.js.map +1 -0
  144. package/utility/OpenAIUtility.d.ts +333 -0
  145. package/utility/OpenAIUtility.d.ts.map +1 -0
  146. package/utility/OpenAIUtility.js +95 -0
  147. package/utility/OpenAIUtility.js.map +1 -0
  148. package/utility/PromiseUtility.d.ts +9 -0
  149. package/utility/PromiseUtility.d.ts.map +1 -0
  150. package/utility/PromiseUtility.js +16 -0
  151. package/utility/PromiseUtility.js.map +1 -0
  152. package/utility/StringUtility.d.ts +10 -0
  153. package/utility/StringUtility.d.ts.map +1 -0
  154. package/utility/StringUtility.js +42 -0
  155. package/utility/StringUtility.js.map +1 -0
  156. package/utility/TimeUtility.d.ts +10 -0
  157. package/utility/TimeUtility.d.ts.map +1 -0
  158. package/utility/TimeUtility.js +24 -0
  159. package/utility/TimeUtility.js.map +1 -0
  160. package/utility/index.d.ts +9 -0
  161. package/utility/index.d.ts.map +1 -0
  162. package/utility/index.js +25 -0
  163. package/utility/index.js.map +1 -0
@@ -0,0 +1,91 @@
1
+ import { AxiosRequestConfig, AxiosResponse } from 'axios';
2
+ /** 网络工具 */
3
+ export declare namespace NetworkUtility {
4
+ /** HTTP网络协议 */
5
+ namespace HTTP {
6
+ /** 请求配置 */
7
+ type Request = AxiosRequestConfig;
8
+ /** 响应配置 */
9
+ type Response<T = any, D = any, H = {}> = AxiosResponse<T, D, H>;
10
+ /**
11
+ * 网络请求
12
+ * @param url 请求地址
13
+ * @param options 请求配置(axios原生类型)
14
+ * @returns 响应数据
15
+ */
16
+ function OnRequest<T = any>(url: string, options?: Request): Promise<Response<T>>;
17
+ }
18
+ /** 协议类型 */
19
+ enum E_ProtocalType {
20
+ Get = "get",
21
+ Post = "post",
22
+ Put = "put",
23
+ Delete = "delete",
24
+ Options = "options",
25
+ Head = "head",
26
+ Patch = "patch",
27
+ Trace = "trace"
28
+ }
29
+ /** 响应码 */
30
+ enum ResponseCode {
31
+ /** 请求成功 */
32
+ SUCCESS = 200,
33
+ /** 创建成功 */
34
+ CREATED = 201,
35
+ /** 请求已接受(异步处理) */
36
+ ACCEPTED = 202,
37
+ /** 无内容(删除成功等) */
38
+ NO_CONTENT = 204,
39
+ /** 请求参数错误 */
40
+ BAD_REQUEST = 400,
41
+ /** 未认证(需登录) */
42
+ UNAUTHORIZED = 401,
43
+ /** 无权限访问 */
44
+ FORBIDDEN = 403,
45
+ /** 资源不存在 */
46
+ NOT_FOUND = 404,
47
+ /** 请求方法不允许 */
48
+ METHOD_NOT_ALLOWED = 405,
49
+ /** 请求超时 */
50
+ REQUEST_TIMEOUT = 408,
51
+ /** 资源冲突(重复创建等) */
52
+ CONFLICT = 409,
53
+ /** 请求体过大 */
54
+ PAYLOAD_TOO_LARGE = 413,
55
+ /** 不支持的媒体类型 */
56
+ UNSUPPORTED_MEDIA_TYPE = 415,
57
+ /** 范围请求不满足 */
58
+ REQUESTED_RANGE_NOT_SATISFIABLE = 416,
59
+ /** 请求频率过高 */
60
+ TOO_MANY_REQUESTS = 429,
61
+ /** 服务器内部错误 */
62
+ INTERNAL_SERVER_ERROR = 500,
63
+ /** 功能未实现 */
64
+ NOT_IMPLEMENTED = 501,
65
+ /** 网关错误 */
66
+ BAD_GATEWAY = 502,
67
+ /** 服务不可用 */
68
+ SERVICE_UNAVAILABLE = 503,
69
+ /** 网关超时 */
70
+ GATEWAY_TIMEOUT = 504,
71
+ /** 业务逻辑错误 */
72
+ BUSINESS_ERROR = 1000,
73
+ /** 令牌已过期 */
74
+ TOKEN_EXPIRED = 1001,
75
+ /** 账号已禁用 */
76
+ ACCOUNT_DISABLED = 1002,
77
+ /** 验证码错误 */
78
+ CAPTCHA_ERROR = 1003,
79
+ /** 操作过于频繁 */
80
+ OPERATION_TOO_FREQUENT = 1004,
81
+ /** 资源被占用 */
82
+ RESOURCE_LOCKED = 1005,
83
+ /** 文件上传失败 */
84
+ UPLOAD_FAILED = 1006,
85
+ /** 文件大小超限 */
86
+ FILE_SIZE_EXCEEDED = 1007,
87
+ /** 文件类型不允许 */
88
+ FILE_TYPE_NOT_ALLOWED = 1008
89
+ }
90
+ }
91
+ //# sourceMappingURL=NetworkUtility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkUtility.d.ts","sourceRoot":"","sources":["../../src/utility/NetworkUtility.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEjE,WAAW;AACX,yBAAiB,cAAc,CAC/B;IACI,eAAe;IACf,UAAiB,IAAI,CACrB;QACI,WAAW;QACX,KAAY,OAAO,GAAG,kBAAkB,CAAC;QACzC,WAAW;QACX,KAAY,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAExE;;;;;WAKG;QACH,SAAsB,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAG7F;KACJ;IACD,WAAW;IACX,KAAY,cAAc;QAEtB,GAAG,QAAQ;QACX,IAAI,SAAS;QACb,GAAG,QAAQ;QACX,MAAM,WAAW;QACjB,OAAO,YAAY;QACnB,IAAI,SAAS;QACb,KAAK,UAAU;QACf,KAAK,UAAU;KAClB;IACD,UAAU;IACV,KAAY,YAAY;QAGpB,WAAW;QACX,OAAO,MAAM;QACb,WAAW;QACX,OAAO,MAAM;QACb,kBAAkB;QAClB,QAAQ,MAAM;QACd,iBAAiB;QACjB,UAAU,MAAM;QAGhB,aAAa;QACb,WAAW,MAAM;QACjB,eAAe;QACf,YAAY,MAAM;QAClB,YAAY;QACZ,SAAS,MAAM;QACf,YAAY;QACZ,SAAS,MAAM;QACf,cAAc;QACd,kBAAkB,MAAM;QACxB,WAAW;QACX,eAAe,MAAM;QACrB,kBAAkB;QAClB,QAAQ,MAAM;QACd,YAAY;QACZ,iBAAiB,MAAM;QACvB,eAAe;QACf,sBAAsB,MAAM;QAC5B,cAAc;QACd,+BAA+B,MAAM;QACrC,aAAa;QACb,iBAAiB,MAAM;QAGvB,cAAc;QACd,qBAAqB,MAAM;QAC3B,YAAY;QACZ,eAAe,MAAM;QACrB,WAAW;QACX,WAAW,MAAM;QACjB,YAAY;QACZ,mBAAmB,MAAM;QACzB,WAAW;QACX,eAAe,MAAM;QAGrB,aAAa;QACb,cAAc,OAAO;QACrB,YAAY;QACZ,aAAa,OAAO;QACpB,YAAY;QACZ,gBAAgB,OAAO;QACvB,YAAY;QACZ,aAAa,OAAO;QACpB,aAAa;QACb,sBAAsB,OAAO;QAC7B,YAAY;QACZ,eAAe,OAAO;QACtB,aAAa;QACb,aAAa,OAAO;QACpB,aAAa;QACb,kBAAkB,OAAO;QACzB,cAAc;QACd,qBAAqB,OAAO;KAC/B;CACJ"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NetworkUtility = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ /** 网络工具 */
9
+ var NetworkUtility;
10
+ (function (NetworkUtility) {
11
+ /** HTTP网络协议 */
12
+ let HTTP;
13
+ (function (HTTP) {
14
+ /**
15
+ * 网络请求
16
+ * @param url 请求地址
17
+ * @param options 请求配置(axios原生类型)
18
+ * @returns 响应数据
19
+ */
20
+ async function OnRequest(url, options) {
21
+ return (0, axios_1.default)({ url, method: 'get', timeout: 10000, ...options });
22
+ }
23
+ HTTP.OnRequest = OnRequest;
24
+ })(HTTP = NetworkUtility.HTTP || (NetworkUtility.HTTP = {}));
25
+ /** 协议类型 */
26
+ let E_ProtocalType;
27
+ (function (E_ProtocalType) {
28
+ E_ProtocalType["Get"] = "get";
29
+ E_ProtocalType["Post"] = "post";
30
+ E_ProtocalType["Put"] = "put";
31
+ E_ProtocalType["Delete"] = "delete";
32
+ E_ProtocalType["Options"] = "options";
33
+ E_ProtocalType["Head"] = "head";
34
+ E_ProtocalType["Patch"] = "patch";
35
+ E_ProtocalType["Trace"] = "trace";
36
+ })(E_ProtocalType = NetworkUtility.E_ProtocalType || (NetworkUtility.E_ProtocalType = {}));
37
+ /** 响应码 */
38
+ let ResponseCode;
39
+ (function (ResponseCode) {
40
+ // ==================== 2xx 成功 ====================
41
+ /** 请求成功 */
42
+ ResponseCode[ResponseCode["SUCCESS"] = 200] = "SUCCESS";
43
+ /** 创建成功 */
44
+ ResponseCode[ResponseCode["CREATED"] = 201] = "CREATED";
45
+ /** 请求已接受(异步处理) */
46
+ ResponseCode[ResponseCode["ACCEPTED"] = 202] = "ACCEPTED";
47
+ /** 无内容(删除成功等) */
48
+ ResponseCode[ResponseCode["NO_CONTENT"] = 204] = "NO_CONTENT";
49
+ // ==================== 4xx 客户端错误 ====================
50
+ /** 请求参数错误 */
51
+ ResponseCode[ResponseCode["BAD_REQUEST"] = 400] = "BAD_REQUEST";
52
+ /** 未认证(需登录) */
53
+ ResponseCode[ResponseCode["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
54
+ /** 无权限访问 */
55
+ ResponseCode[ResponseCode["FORBIDDEN"] = 403] = "FORBIDDEN";
56
+ /** 资源不存在 */
57
+ ResponseCode[ResponseCode["NOT_FOUND"] = 404] = "NOT_FOUND";
58
+ /** 请求方法不允许 */
59
+ ResponseCode[ResponseCode["METHOD_NOT_ALLOWED"] = 405] = "METHOD_NOT_ALLOWED";
60
+ /** 请求超时 */
61
+ ResponseCode[ResponseCode["REQUEST_TIMEOUT"] = 408] = "REQUEST_TIMEOUT";
62
+ /** 资源冲突(重复创建等) */
63
+ ResponseCode[ResponseCode["CONFLICT"] = 409] = "CONFLICT";
64
+ /** 请求体过大 */
65
+ ResponseCode[ResponseCode["PAYLOAD_TOO_LARGE"] = 413] = "PAYLOAD_TOO_LARGE";
66
+ /** 不支持的媒体类型 */
67
+ ResponseCode[ResponseCode["UNSUPPORTED_MEDIA_TYPE"] = 415] = "UNSUPPORTED_MEDIA_TYPE";
68
+ /** 范围请求不满足 */
69
+ ResponseCode[ResponseCode["REQUESTED_RANGE_NOT_SATISFIABLE"] = 416] = "REQUESTED_RANGE_NOT_SATISFIABLE";
70
+ /** 请求频率过高 */
71
+ ResponseCode[ResponseCode["TOO_MANY_REQUESTS"] = 429] = "TOO_MANY_REQUESTS";
72
+ // ==================== 5xx 服务端错误 ====================
73
+ /** 服务器内部错误 */
74
+ ResponseCode[ResponseCode["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
75
+ /** 功能未实现 */
76
+ ResponseCode[ResponseCode["NOT_IMPLEMENTED"] = 501] = "NOT_IMPLEMENTED";
77
+ /** 网关错误 */
78
+ ResponseCode[ResponseCode["BAD_GATEWAY"] = 502] = "BAD_GATEWAY";
79
+ /** 服务不可用 */
80
+ ResponseCode[ResponseCode["SERVICE_UNAVAILABLE"] = 503] = "SERVICE_UNAVAILABLE";
81
+ /** 网关超时 */
82
+ ResponseCode[ResponseCode["GATEWAY_TIMEOUT"] = 504] = "GATEWAY_TIMEOUT";
83
+ // ==================== 10xx 业务错误 ====================
84
+ /** 业务逻辑错误 */
85
+ ResponseCode[ResponseCode["BUSINESS_ERROR"] = 1000] = "BUSINESS_ERROR";
86
+ /** 令牌已过期 */
87
+ ResponseCode[ResponseCode["TOKEN_EXPIRED"] = 1001] = "TOKEN_EXPIRED";
88
+ /** 账号已禁用 */
89
+ ResponseCode[ResponseCode["ACCOUNT_DISABLED"] = 1002] = "ACCOUNT_DISABLED";
90
+ /** 验证码错误 */
91
+ ResponseCode[ResponseCode["CAPTCHA_ERROR"] = 1003] = "CAPTCHA_ERROR";
92
+ /** 操作过于频繁 */
93
+ ResponseCode[ResponseCode["OPERATION_TOO_FREQUENT"] = 1004] = "OPERATION_TOO_FREQUENT";
94
+ /** 资源被占用 */
95
+ ResponseCode[ResponseCode["RESOURCE_LOCKED"] = 1005] = "RESOURCE_LOCKED";
96
+ /** 文件上传失败 */
97
+ ResponseCode[ResponseCode["UPLOAD_FAILED"] = 1006] = "UPLOAD_FAILED";
98
+ /** 文件大小超限 */
99
+ ResponseCode[ResponseCode["FILE_SIZE_EXCEEDED"] = 1007] = "FILE_SIZE_EXCEEDED";
100
+ /** 文件类型不允许 */
101
+ ResponseCode[ResponseCode["FILE_TYPE_NOT_ALLOWED"] = 1008] = "FILE_TYPE_NOT_ALLOWED";
102
+ })(ResponseCode = NetworkUtility.ResponseCode || (NetworkUtility.ResponseCode = {}));
103
+ })(NetworkUtility || (exports.NetworkUtility = NetworkUtility = {}));
104
+ //# sourceMappingURL=NetworkUtility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkUtility.js","sourceRoot":"","sources":["../../src/utility/NetworkUtility.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiE;AAEjE,WAAW;AACX,IAAiB,cAAc,CAsG9B;AAtGD,WAAiB,cAAc;IAE3B,eAAe;IACf,IAAiB,IAAI,CAiBpB;IAjBD,WAAiB,IAAI;QAOjB;;;;;WAKG;QACI,KAAK,UAAU,SAAS,CAAU,GAAW,EAAE,OAAiB;YAEnE,OAAO,IAAA,eAAK,EAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QAHqB,cAAS,YAG9B,CAAA;IACL,CAAC,EAjBgB,IAAI,GAAJ,mBAAI,KAAJ,mBAAI,QAiBpB;IACD,WAAW;IACX,IAAY,cAUX;IAVD,WAAY,cAAc;QAEtB,6BAAW,CAAA;QACX,+BAAa,CAAA;QACb,6BAAW,CAAA;QACX,mCAAiB,CAAA;QACjB,qCAAmB,CAAA;QACnB,+BAAa,CAAA;QACb,iCAAe,CAAA;QACf,iCAAe,CAAA;IACnB,CAAC,EAVW,cAAc,GAAd,6BAAc,KAAd,6BAAc,QAUzB;IACD,UAAU;IACV,IAAY,YAmEX;IAnED,WAAY,YAAY;QAEpB,mDAAmD;QACnD,WAAW;QACX,uDAAa,CAAA;QACb,WAAW;QACX,uDAAa,CAAA;QACb,kBAAkB;QAClB,yDAAc,CAAA;QACd,iBAAiB;QACjB,6DAAgB,CAAA;QAEhB,sDAAsD;QACtD,aAAa;QACb,+DAAiB,CAAA;QACjB,eAAe;QACf,iEAAkB,CAAA;QAClB,YAAY;QACZ,2DAAe,CAAA;QACf,YAAY;QACZ,2DAAe,CAAA;QACf,cAAc;QACd,6EAAwB,CAAA;QACxB,WAAW;QACX,uEAAqB,CAAA;QACrB,kBAAkB;QAClB,yDAAc,CAAA;QACd,YAAY;QACZ,2EAAuB,CAAA;QACvB,eAAe;QACf,qFAA4B,CAAA;QAC5B,cAAc;QACd,uGAAqC,CAAA;QACrC,aAAa;QACb,2EAAuB,CAAA;QAEvB,sDAAsD;QACtD,cAAc;QACd,mFAA2B,CAAA;QAC3B,YAAY;QACZ,uEAAqB,CAAA;QACrB,WAAW;QACX,+DAAiB,CAAA;QACjB,YAAY;QACZ,+EAAyB,CAAA;QACzB,WAAW;QACX,uEAAqB,CAAA;QAErB,sDAAsD;QACtD,aAAa;QACb,sEAAqB,CAAA;QACrB,YAAY;QACZ,oEAAoB,CAAA;QACpB,YAAY;QACZ,0EAAuB,CAAA;QACvB,YAAY;QACZ,oEAAoB,CAAA;QACpB,aAAa;QACb,sFAA6B,CAAA;QAC7B,YAAY;QACZ,wEAAsB,CAAA;QACtB,aAAa;QACb,oEAAoB,CAAA;QACpB,aAAa;QACb,8EAAyB,CAAA;QACzB,cAAc;QACd,oFAA4B,CAAA;IAChC,CAAC,EAnEW,YAAY,GAAZ,2BAAY,KAAZ,2BAAY,QAmEvB;AACL,CAAC,EAtGgB,cAAc,8BAAd,cAAc,QAsG9B"}
@@ -0,0 +1,134 @@
1
+ /*********************************************************************************
2
+ * FileName : ObjectUtility
3
+ * FileBasename : ObjectUtility.ts
4
+ * Author : Seven_9t
5
+ * Date : Sat Mar 25 2023 15:05:05 GMT+0800 (中国标准时间)
6
+ * Description : db://assets/frame/script/base/ObjectUtility.ts
7
+ * Version : v3.6
8
+ * Others : 修改默认TS脚本模板路径 D:\Cocos\CocosDashboard\resources\.editors\Creator\<Version>\resources\resources\3d\engine\editor\assets\default_file_content\ts
9
+ * ManualUrl : <指南手册> https://docs.cocos.com/creator/3.6/manual/zh/
10
+ * : <脚本手册> https://docs.cocos.com/creator/3.6/manual/zh/scripting/
11
+ * : <接口手册> https://docs.cocos.com/creator/api/zh/#/docs/3.6/zh/README
12
+ * : <生命周期手册>https://docs.cocos.com/creator/3.6/manual/zh/scripting/life-cycle-callbacks.html
13
+
14
+ **********************************************************************************/
15
+ /** 对象工具 */
16
+ export declare namespace ObjectUtility {
17
+ /** 对象操作泛型接口 */
18
+ interface IObjectOperation<T> {
19
+ /** 获取数量 */
20
+ get Count(): number;
21
+ /** 获取对象 */
22
+ Get(_key: number | string): T;
23
+ /** 获取对象组 */
24
+ Gets(_keys: Array<number | string>): Array<T>;
25
+ /** 获取所有对象 */
26
+ GetAll(): Array<T> | Map<string, T>;
27
+ /** 添加对象实例 */
28
+ Add(..._param: any[]): boolean;
29
+ /** 移除对象实例 */
30
+ Remove(_t: number | string | T): boolean;
31
+ /** 移除所有对象实例 */
32
+ RemoveAll(): void;
33
+ /** 对象实例是否存在 */
34
+ Exist(_t: number | string | T): boolean;
35
+ }
36
+ /** 对象池<数组> */
37
+ export class ArrayPool<T extends object | any> implements IObjectOperation<T> {
38
+ /** 对象池 */
39
+ private _tPools;
40
+ /** 构造函数 */
41
+ constructor();
42
+ /** 获取数量 */
43
+ get Count(): number;
44
+ /** 获取对象 */
45
+ Get<K extends T>(_index: number): K;
46
+ /** 获取对象组 */
47
+ Gets<K extends T>(_indexs: Array<number>): Array<K>;
48
+ /** 获取所有对象 */
49
+ GetAll(): Array<T>;
50
+ /** 添加对象实例 */
51
+ Add(_t: T): boolean;
52
+ /** 移除对象实例 */
53
+ Remove(_t: T | number): boolean;
54
+ /** 移除所有对象实例 */
55
+ RemoveAll(): void;
56
+ /** 对象实例是否存在 */
57
+ Exist(_t: T | number): boolean;
58
+ }
59
+ /** 对象池<字典> */
60
+ export class MapPool<T extends object> implements IObjectOperation<T> {
61
+ /** 对象池 */
62
+ private _tPools;
63
+ /** 构造函数 */
64
+ constructor(_map?: Map<string, T>);
65
+ /** 获取数量 */
66
+ get Count(): number;
67
+ /** 获取对象 */
68
+ Get<K extends T>(_key: string): K;
69
+ /** 获取对象组 */
70
+ Gets<K extends T>(_keys: Array<string>): Array<K>;
71
+ /** 获取所有对象 */
72
+ GetAll(): Map<string, T>;
73
+ /** 添加对象实例 */
74
+ Add(_key: string, _t: T): boolean;
75
+ /** 设置对象 */
76
+ Set<K extends T>(_key: string, _t: T): K;
77
+ /** 移除对象实例 */
78
+ Remove(_key: string): boolean;
79
+ /** 移除所有对象实例 */
80
+ RemoveAll(): void;
81
+ /** 对象实例是否存在 */
82
+ Exist(_t: string): boolean;
83
+ /** 所有键转数组 */
84
+ KeysToArray(): Array<string>;
85
+ /** 所有值转数组 */
86
+ ValuesToArray(): Array<T>;
87
+ }
88
+ /** 队列池<队列> */
89
+ export class QueuePool<T extends object> {
90
+ /** 队列数组 */
91
+ private _tPools;
92
+ constructor();
93
+ /** 入队 */
94
+ Enqueue(_t: T): void;
95
+ /** 出队 */
96
+ Dequeue(): T | undefined;
97
+ /** 查看队首元素 */
98
+ Peek(): T | undefined;
99
+ /** 判断队列是否为空 */
100
+ IsEmpty(): boolean;
101
+ /** 获取队列大小 */
102
+ Size(): number;
103
+ /** 清空队列 */
104
+ Clear(): void;
105
+ /** 克隆 */
106
+ Clone(): Array<T>;
107
+ }
108
+ /** 函数签名信息 */
109
+ export interface FunctionSignature {
110
+ /** 函数名 */
111
+ functionName?: string;
112
+ /** 参数列表 */
113
+ parameters: ParamInfo[];
114
+ }
115
+ /** 参数信息 */
116
+ export interface ParamInfo {
117
+ /** 参数名 */
118
+ name: string;
119
+ /** 参数类型(TypeScript 类型注解,如 number、string、boolean) */
120
+ type?: string;
121
+ /** 默认值 */
122
+ defaultValue?: string;
123
+ /** 是否可选 */
124
+ optional?: boolean;
125
+ }
126
+ /**
127
+ * 解析函数签名
128
+ * @param fn 目标函数
129
+ * @returns 函数签名信息(函数名 + 参数列表)
130
+ */
131
+ export function OnGetFunctionSignature(fn: Function): FunctionSignature;
132
+ export {};
133
+ }
134
+ //# sourceMappingURL=ObjectUtility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectUtility.d.ts","sourceRoot":"","sources":["../../src/utility/ObjectUtility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;mFAamF;AAEnF,WAAW;AACX,yBAAiB,aAAa,CAC9B;IACI,eAAe;IACf,UAAU,gBAAgB,CAAC,CAAC;QAExB,WAAW;QACX,IAAI,KAAK,IAAI,MAAM,CAAC;QACpB,WAAW;QACX,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;QAC9B,YAAY;QACZ,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9C,aAAa;QACb,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,aAAa;QACb,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAC/B,aAAa;QACb,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;QACzC,eAAe;QACf,SAAS,IAAI,IAAI,CAAC;QAClB,eAAe;QACf,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;KAC3C;IACD,cAAc;IACd,MAAM,OAAO,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;QAEzE,UAAU;QACV,OAAO,CAAC,OAAO,CAAkB;QACjC,WAAW;;QAKX,WAAW;QACX,IAAW,KAAK,IAAI,MAAM,CAAgC;QAC1D,WAAW;QACJ,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC;QAK1C,YAAY;QACL,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAW1D,aAAa;QACN,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC;QAIzB,aAAa;QACN,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO;QAM1B,aAAa;QACN,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO;QActC,eAAe;QACR,SAAS,IAAI,IAAI;QAIxB,eAAe;QACR,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,OAAO;KAaxC;IACD,cAAc;IACd,MAAM,OAAO,OAAO,CAAC,CAAC,SAAS,MAAM,CAAE,YAAW,gBAAgB,CAAC,CAAC,CAAC;QAEjE,UAAU;QACV,OAAO,CAAC,OAAO,CAAwB;QACvC,WAAW;oBACQ,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAIxC,WAAW;QACX,IAAW,KAAK,IAAI,MAAM,CAA8B;QACxD,WAAW;QACJ,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;QAKxC,YAAY;QACL,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAWxD,aAAa;QACN,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAI/B,aAAa;QACN,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO;QAMxC,WAAW;QACJ,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC;QAM/C,aAAa;QACN,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;QAKpC,eAAe;QACR,SAAS,IAAI,IAAI;QASxB,eAAe;QACR,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;QAMjC,aAAa;QACN,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;QAInC,aAAa;QACN,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC;KAInC;IACD,cAAc;IACd,MAAM,OAAO,SAAS,CAAC,CAAC,SAAS,MAAM;QAEnC,WAAW;QACX,OAAO,CAAC,OAAO,CAAkB;;QAKjC,SAAS;QACF,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI;QAI3B,SAAS;QACF,OAAO,IAAI,CAAC,GAAG,SAAS;QAI/B,aAAa;QACN,IAAI,IAAI,CAAC,GAAG,SAAS;QAI5B,eAAe;QACR,OAAO,IAAI,OAAO;QAIzB,aAAa;QACN,IAAI,IAAI,MAAM;QAIrB,WAAW;QACJ,KAAK,IAAI,IAAI;QAIpB,SAAS;QACF,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC;KAI3B;IAGD,aAAa;IACb,MAAM,WAAW,iBAAiB;QAE9B,UAAU;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW;QACX,UAAU,EAAE,SAAS,EAAE,CAAC;KAC3B;IACD,WAAW;IACX,MAAM,WAAW,SAAS;QAEtB,UAAU;QACV,IAAI,EAAE,MAAM,CAAC;QACb,oDAAoD;QACpD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW;QACX,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB;IAED;;;;OAIG;IACH,MAAM,UAAU,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,iBAAiB,CAoGtE;;CACJ"}
@@ -0,0 +1,313 @@
1
+ "use strict";
2
+ /*********************************************************************************
3
+ * FileName : ObjectUtility
4
+ * FileBasename : ObjectUtility.ts
5
+ * Author : Seven_9t
6
+ * Date : Sat Mar 25 2023 15:05:05 GMT+0800 (中国标准时间)
7
+ * Description : db://assets/frame/script/base/ObjectUtility.ts
8
+ * Version : v3.6
9
+ * Others : 修改默认TS脚本模板路径 D:\Cocos\CocosDashboard\resources\.editors\Creator\<Version>\resources\resources\3d\engine\editor\assets\default_file_content\ts
10
+ * ManualUrl : <指南手册> https://docs.cocos.com/creator/3.6/manual/zh/
11
+ * : <脚本手册> https://docs.cocos.com/creator/3.6/manual/zh/scripting/
12
+ * : <接口手册> https://docs.cocos.com/creator/api/zh/#/docs/3.6/zh/README
13
+ * : <生命周期手册>https://docs.cocos.com/creator/3.6/manual/zh/scripting/life-cycle-callbacks.html
14
+
15
+ **********************************************************************************/
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ObjectUtility = void 0;
18
+ /** 对象工具 */
19
+ var ObjectUtility;
20
+ (function (ObjectUtility) {
21
+ /** 对象池<数组> */
22
+ class ArrayPool {
23
+ /** 构造函数 */
24
+ constructor() {
25
+ /** 对象池 */
26
+ this._tPools = null;
27
+ this._tPools = new Array();
28
+ }
29
+ /** 获取数量 */
30
+ get Count() { return this._tPools.length; }
31
+ /** 获取对象 */
32
+ Get(_index) {
33
+ if (this._tPools.length <= _index || 0 > _index) {
34
+ return null;
35
+ }
36
+ return this._tPools[_index];
37
+ }
38
+ /** 获取对象组 */
39
+ Gets(_indexs) {
40
+ const _ks = Array();
41
+ for (let index = 0; index < _indexs.length; index++) {
42
+ const _key = _indexs[index];
43
+ const _k = this.Get(_key);
44
+ if (_k) {
45
+ _ks.push(_k);
46
+ }
47
+ }
48
+ return _ks;
49
+ }
50
+ /** 获取所有对象 */
51
+ GetAll() {
52
+ return this._tPools;
53
+ }
54
+ /** 添加对象实例 */
55
+ Add(_t) {
56
+ if (null == _t || this.Exist(_t)) {
57
+ return false;
58
+ }
59
+ this._tPools?.push(_t);
60
+ return true;
61
+ }
62
+ /** 移除对象实例 */
63
+ Remove(_t) {
64
+ if (null == _t || !this.Exist(_t)) {
65
+ return false;
66
+ }
67
+ let _result = null;
68
+ if ("number" == typeof (_t)) {
69
+ _result = this._tPools?.splice(_t, 1);
70
+ }
71
+ else {
72
+ _result = this._tPools?.splice(this._tPools.indexOf(_t), 1);
73
+ }
74
+ return null != _result && 1 == _result.length;
75
+ }
76
+ /** 移除所有对象实例 */
77
+ RemoveAll() {
78
+ this._tPools.splice(0, this._tPools.length);
79
+ }
80
+ /** 对象实例是否存在 */
81
+ Exist(_t) {
82
+ if (null == _t) {
83
+ return false;
84
+ }
85
+ if ("number" == typeof (_t)) {
86
+ if (this._tPools.length <= _t || 0 > _t) {
87
+ return null;
88
+ }
89
+ return null != this._tPools[_t];
90
+ }
91
+ else {
92
+ return -1 != this._tPools?.indexOf(_t);
93
+ }
94
+ }
95
+ }
96
+ ObjectUtility.ArrayPool = ArrayPool;
97
+ /** 对象池<字典> */
98
+ class MapPool {
99
+ /** 构造函数 */
100
+ constructor(_map) {
101
+ /** 对象池 */
102
+ this._tPools = null;
103
+ this._tPools = new Map(_map);
104
+ }
105
+ /** 获取数量 */
106
+ get Count() { return this._tPools.size; }
107
+ /** 获取对象 */
108
+ Get(_key) {
109
+ if (!this._tPools.has(_key)) {
110
+ return null;
111
+ }
112
+ return this._tPools.get(_key);
113
+ }
114
+ /** 获取对象组 */
115
+ Gets(_keys) {
116
+ const _ks = Array();
117
+ for (let index = 0; index < _keys.length; index++) {
118
+ const _key = _keys[index];
119
+ const _k = this.Get(_key);
120
+ if (_k) {
121
+ _ks.push(_k);
122
+ }
123
+ }
124
+ return _ks;
125
+ }
126
+ /** 获取所有对象 */
127
+ GetAll() {
128
+ return this._tPools;
129
+ }
130
+ /** 添加对象实例 */
131
+ Add(_key, _t) {
132
+ if (null == _t || this.Exist(_key)) {
133
+ return false;
134
+ }
135
+ this._tPools?.set(_key, _t);
136
+ return true;
137
+ }
138
+ /** 设置对象 */
139
+ Set(_key, _t) {
140
+ if (this._tPools.has(_key)) {
141
+ this._tPools.delete(_key);
142
+ }
143
+ this._tPools?.set(_key, _t);
144
+ return this._tPools.get(_key);
145
+ }
146
+ /** 移除对象实例 */
147
+ Remove(_key) {
148
+ if (!this.Exist(_key)) {
149
+ return false;
150
+ }
151
+ return this._tPools.delete(_key);
152
+ }
153
+ /** 移除所有对象实例 */
154
+ RemoveAll() {
155
+ const _keys = Array.from(this._tPools.keys());
156
+ for (let i = 0; i < _keys.length; i++) {
157
+ const _key = _keys[i];
158
+ this._tPools.delete(_key);
159
+ }
160
+ }
161
+ /** 对象实例是否存在 */
162
+ Exist(_t) {
163
+ if (null == _t) {
164
+ return false;
165
+ }
166
+ if (!this._tPools.has(_t)) {
167
+ return null;
168
+ }
169
+ return null != this._tPools.get(_t);
170
+ }
171
+ /** 所有键转数组 */
172
+ KeysToArray() {
173
+ return Array.from(this._tPools.keys());
174
+ }
175
+ /** 所有值转数组 */
176
+ ValuesToArray() {
177
+ return Array.from(this._tPools.values());
178
+ }
179
+ }
180
+ ObjectUtility.MapPool = MapPool;
181
+ /** 队列池<队列> */
182
+ class QueuePool {
183
+ constructor() {
184
+ /** 队列数组 */
185
+ this._tPools = null;
186
+ this._tPools = new Array();
187
+ }
188
+ /** 入队 */
189
+ Enqueue(_t) {
190
+ this._tPools.push(_t);
191
+ }
192
+ /** 出队 */
193
+ Dequeue() {
194
+ return this._tPools.shift();
195
+ }
196
+ /** 查看队首元素 */
197
+ Peek() {
198
+ return this._tPools[0];
199
+ }
200
+ /** 判断队列是否为空 */
201
+ IsEmpty() {
202
+ return 0 >= this._tPools.length;
203
+ }
204
+ /** 获取队列大小 */
205
+ Size() {
206
+ return this._tPools.length;
207
+ }
208
+ /** 清空队列 */
209
+ Clear() {
210
+ this._tPools.splice(0, this._tPools.length);
211
+ }
212
+ /** 克隆 */
213
+ Clone() {
214
+ return [...this._tPools];
215
+ }
216
+ }
217
+ ObjectUtility.QueuePool = QueuePool;
218
+ /**
219
+ * 解析函数签名
220
+ * @param fn 目标函数
221
+ * @returns 函数签名信息(函数名 + 参数列表)
222
+ */
223
+ function OnGetFunctionSignature(fn) {
224
+ const src = fn.toString();
225
+ // 提取函数名
226
+ let functionName;
227
+ const nameMatch = src.match(/^(?:async\s+)?function\s+\*?\s*(\w+)\s*\(/);
228
+ if (nameMatch) {
229
+ functionName = nameMatch[1];
230
+ }
231
+ // 提取参数列表字符串(第一个括号对)
232
+ const clean = src.replace(/\/\/.*|\/\*[\s\S]*?\*\//g, "");
233
+ const parenMatch = clean.match(/\(([\s\S]*?)\)/);
234
+ if (!parenMatch) {
235
+ return { functionName, parameters: [] };
236
+ }
237
+ // 按逗号拆分,同时识别 []/()/{} 嵌套防止错误分割默认值
238
+ const paramsStr = parenMatch[1].trim();
239
+ if (!paramsStr) {
240
+ return { functionName, parameters: [] };
241
+ }
242
+ const parts = [];
243
+ let depth = 0;
244
+ let cur = "";
245
+ for (const ch of paramsStr) {
246
+ if (ch === "," && depth === 0) {
247
+ parts.push(cur.trim());
248
+ cur = "";
249
+ }
250
+ else {
251
+ if ("([{".includes(ch)) {
252
+ depth++;
253
+ }
254
+ if (")]}".includes(ch)) {
255
+ depth--;
256
+ }
257
+ cur += ch;
258
+ }
259
+ }
260
+ if (cur.trim()) {
261
+ parts.push(cur.trim());
262
+ }
263
+ // 解析每个参数
264
+ const parameters = parts.map(p => {
265
+ const param = { name: "", optional: false };
266
+ // 解构模式(如 {a, b} 或 [x, y])— 不深入解析,整体当参数名
267
+ if (p.startsWith("{") || p.startsWith("[")) {
268
+ const close = p.startsWith("{") ? "}" : "]";
269
+ const endIdx = p.indexOf(close + ":") !== -1 ? p.indexOf(close + ":") + 1 : p.indexOf(close);
270
+ param.name = p.substring(0, endIdx + 1).trim();
271
+ const rest = p.substring(endIdx + 1).trim();
272
+ if (rest.startsWith(":")) {
273
+ const eqIdx = rest.indexOf("=");
274
+ if (eqIdx !== -1) {
275
+ param.type = rest.substring(1, eqIdx).trim() || undefined;
276
+ param.defaultValue = rest.substring(eqIdx + 1).trim() || undefined;
277
+ }
278
+ else {
279
+ param.type = rest.substring(1).trim() || undefined;
280
+ }
281
+ }
282
+ else if (rest.startsWith("=")) {
283
+ param.defaultValue = rest.substring(1).trim() || undefined;
284
+ }
285
+ return param;
286
+ }
287
+ // 简单参数
288
+ // a?: type = value
289
+ const optional = p.includes("?");
290
+ let remains = p.replace("?", "");
291
+ // 提取默认值
292
+ const eqIdx = remains.indexOf("=");
293
+ if (eqIdx !== -1) {
294
+ param.defaultValue = remains.substring(eqIdx + 1).trim() || undefined;
295
+ remains = remains.substring(0, eqIdx).trim();
296
+ }
297
+ // 提取类型注解
298
+ const colonIdx = remains.indexOf(":");
299
+ if (colonIdx !== -1) {
300
+ param.type = remains.substring(colonIdx + 1).trim() || undefined;
301
+ param.name = remains.substring(0, colonIdx).trim();
302
+ }
303
+ else {
304
+ param.name = remains.trim();
305
+ }
306
+ param.optional = optional || param.defaultValue !== undefined;
307
+ return param;
308
+ });
309
+ return { functionName, parameters };
310
+ }
311
+ ObjectUtility.OnGetFunctionSignature = OnGetFunctionSignature;
312
+ })(ObjectUtility || (exports.ObjectUtility = ObjectUtility = {}));
313
+ //# sourceMappingURL=ObjectUtility.js.map