@cnbcool/cnb-cli 1.3.0 → 1.4.1

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 (265) hide show
  1. package/bin/cnb.js +1 -1
  2. package/dist/index.js +66 -0
  3. package/package.json +10 -5
  4. package/cli/core/config/cag.config.js +0 -58
  5. package/cli/core/core.js +0 -124
  6. package/cli/core/fetch-response-handler.js +0 -34
  7. package/cli/core/flat-options.json +0 -8909
  8. package/cli/core/help.json +0 -38458
  9. package/cli/core/index.js +0 -40
  10. package/cli/core/key-mapping.json +0 -538
  11. package/cli/core/lib/execute-action.js +0 -117
  12. package/cli/core/lib/extra-help.js +0 -20
  13. package/cli/core/lib/flat-options-data.js +0 -16
  14. package/cli/core/lib/format-output.js +0 -85
  15. package/cli/core/lib/format-params.js +0 -217
  16. package/cli/core/lib/help-data.js +0 -15
  17. package/cli/core/lib/key-mapping-data.js +0 -16
  18. package/cli/core/lib/parsers.js +0 -126
  19. package/cli/core/lib/print-json.js +0 -24
  20. package/cli/core/lib/register-fallback.js +0 -15
  21. package/cli/core/lib/register-modules.js +0 -121
  22. package/cli/core/lib/summary-extractors.js +0 -181
  23. package/cli/core/lib/trim-summary.js +0 -17
  24. package/cli/core/shortcuts.js +0 -276
  25. package/cli/core/utils/build-nested-field-map.js +0 -35
  26. package/cli/core/utils/convert-link.js +0 -144
  27. package/cli/core/utils/flat-key-from-segments.js +0 -14
  28. package/cli/core/utils/generate-unique-id.js +0 -10
  29. package/cli/core/utils/match-array-object-field.js +0 -25
  30. package/cli/core/utils/restore-original-keys.js +0 -24
  31. package/cli/core/utils/upload.js +0 -237
  32. package/cli/modules/activities/get-user-activities-by-date.js +0 -75
  33. package/cli/modules/activities/get-user-repo-activity-details.js +0 -77
  34. package/cli/modules/activities/top-contributors.js +0 -75
  35. package/cli/modules/ai/ai-chat-completions.js +0 -69
  36. package/cli/modules/assets/delete-asset.js +0 -75
  37. package/cli/modules/assets/get-files.js +0 -75
  38. package/cli/modules/assets/get-imgs.js +0 -75
  39. package/cli/modules/assets/list-assets.js +0 -75
  40. package/cli/modules/badge/get-badge.js +0 -79
  41. package/cli/modules/badge/list-badge.js +0 -69
  42. package/cli/modules/badge/upload-badge.js +0 -69
  43. package/cli/modules/build/build-crontab-sync.js +0 -74
  44. package/cli/modules/build/build-logs-delete.js +0 -74
  45. package/cli/modules/build/build-runner-download-log.js +0 -74
  46. package/cli/modules/build/get-build-logs.js +0 -75
  47. package/cli/modules/build/get-build-stage.js +0 -78
  48. package/cli/modules/build/get-build-status.js +0 -74
  49. package/cli/modules/build/start-build.js +0 -69
  50. package/cli/modules/build/stop-build.js +0 -74
  51. package/cli/modules/charge/get-special-amount.js +0 -67
  52. package/cli/modules/event/get-events.js +0 -73
  53. package/cli/modules/followers/get-followers-by-user-id.js +0 -75
  54. package/cli/modules/followers/get-following-by-user-id.js +0 -75
  55. package/cli/modules/git/create-blob.js +0 -69
  56. package/cli/modules/git/create-branch-lock.js +0 -74
  57. package/cli/modules/git/create-branch.js +0 -69
  58. package/cli/modules/git/create-tag.js +0 -69
  59. package/cli/modules/git/delete-branch-lock.js +0 -74
  60. package/cli/modules/git/delete-branch.js +0 -74
  61. package/cli/modules/git/delete-commit-annotation.js +0 -76
  62. package/cli/modules/git/delete-commit-asset.js +0 -76
  63. package/cli/modules/git/delete-tag-annotation.js +0 -74
  64. package/cli/modules/git/delete-tag.js +0 -74
  65. package/cli/modules/git/get-archive-commit-changed-files.js +0 -74
  66. package/cli/modules/git/get-archive-compare-changed-files.js +0 -74
  67. package/cli/modules/git/get-archive.js +0 -74
  68. package/cli/modules/git/get-branch.js +0 -74
  69. package/cli/modules/git/get-commit-annotations-in-batch.js +0 -69
  70. package/cli/modules/git/get-commit-annotations.js +0 -74
  71. package/cli/modules/git/get-commit-assets-by-sha.js +0 -74
  72. package/cli/modules/git/get-commit-assets.js +0 -79
  73. package/cli/modules/git/get-commit-statuses.js +0 -74
  74. package/cli/modules/git/get-commit.js +0 -74
  75. package/cli/modules/git/get-compare-commits.js +0 -74
  76. package/cli/modules/git/get-content-without-path.js +0 -75
  77. package/cli/modules/git/get-content.js +0 -77
  78. package/cli/modules/git/get-head.js +0 -66
  79. package/cli/modules/git/get-presigned-lfs-download-link.js +0 -77
  80. package/cli/modules/git/get-raw.js +0 -77
  81. package/cli/modules/git/get-tag-annotations.js +0 -74
  82. package/cli/modules/git/get-tag.js +0 -74
  83. package/cli/modules/git/list-branches.js +0 -75
  84. package/cli/modules/git/list-commits.js +0 -75
  85. package/cli/modules/git/list-tags.js +0 -75
  86. package/cli/modules/git/post-commit-asset-upload-confirmation.js +0 -81
  87. package/cli/modules/git/post-commit-asset-upload-url.js +0 -77
  88. package/cli/modules/git/put-commit-annotations.js +0 -77
  89. package/cli/modules/git/put-tag-annotations.js +0 -77
  90. package/cli/modules/git-settings/delete-branch-protection.js +0 -74
  91. package/cli/modules/git-settings/get-branch-protection.js +0 -74
  92. package/cli/modules/git-settings/get-pipeline-settings.js +0 -66
  93. package/cli/modules/git-settings/get-pull-request-settings.js +0 -66
  94. package/cli/modules/git-settings/get-push-limit-settings.js +0 -66
  95. package/cli/modules/git-settings/list-branch-protections.js +0 -66
  96. package/cli/modules/git-settings/patch-branch-protection.js +0 -77
  97. package/cli/modules/git-settings/post-branch-protection.js +0 -69
  98. package/cli/modules/git-settings/put-pipeline-settings.js +0 -69
  99. package/cli/modules/git-settings/put-pull-request-settings.js +0 -69
  100. package/cli/modules/git-settings/put-push-limit-settings.js +0 -69
  101. package/cli/modules/issues/can-user-be-assigned-to-issue.js +0 -76
  102. package/cli/modules/issues/create-issue.js +0 -69
  103. package/cli/modules/issues/delete-issue-assignees.js +0 -77
  104. package/cli/modules/issues/delete-issue-label.js +0 -76
  105. package/cli/modules/issues/delete-issue-labels.js +0 -74
  106. package/cli/modules/issues/get-issue-comment.js +0 -76
  107. package/cli/modules/issues/get-issue.js +0 -74
  108. package/cli/modules/issues/list-issue-activities-latest.js +0 -76
  109. package/cli/modules/issues/list-issue-activities.js +0 -77
  110. package/cli/modules/issues/list-issue-assignees.js +0 -74
  111. package/cli/modules/issues/list-issue-comments.js +0 -77
  112. package/cli/modules/issues/list-issue-labels.js +0 -77
  113. package/cli/modules/issues/list-issues.js +0 -75
  114. package/cli/modules/issues/list-user-issues.js +0 -71
  115. package/cli/modules/issues/patch-issue-assignees.js +0 -77
  116. package/cli/modules/issues/patch-issue-comment.js +0 -79
  117. package/cli/modules/issues/post-issue-assignees.js +0 -77
  118. package/cli/modules/issues/post-issue-comment.js +0 -77
  119. package/cli/modules/issues/post-issue-file-asset-upload-url.js +0 -77
  120. package/cli/modules/issues/post-issue-image-asset-upload-url.js +0 -77
  121. package/cli/modules/issues/post-issue-labels.js +0 -77
  122. package/cli/modules/issues/put-issue-labels.js +0 -77
  123. package/cli/modules/issues/update-issue-properties.js +0 -78
  124. package/cli/modules/issues/update-issue.js +0 -77
  125. package/cli/modules/knowledge-base/delete-knowledge-base.js +0 -66
  126. package/cli/modules/knowledge-base/get-knowledge-base-info.js +0 -66
  127. package/cli/modules/knowledge-base/get-models.js +0 -66
  128. package/cli/modules/knowledge-base/query-knowledge-base.js +0 -69
  129. package/cli/modules/knowledge-base/search-npc.js +0 -71
  130. package/cli/modules/members/add-members-of-group.js +0 -77
  131. package/cli/modules/members/add-members-of-mission.js +0 -77
  132. package/cli/modules/members/add-members-of-registry.js +0 -77
  133. package/cli/modules/members/add-members-of-repo.js +0 -77
  134. package/cli/modules/members/delete-members-of-group.js +0 -74
  135. package/cli/modules/members/delete-members-of-repo.js +0 -74
  136. package/cli/modules/members/delete-outside-collaborators.js +0 -74
  137. package/cli/modules/members/get-member-access-level-of-group.js +0 -75
  138. package/cli/modules/members/get-member-access-level-of-repo.js +0 -75
  139. package/cli/modules/members/list-all-members.js +0 -75
  140. package/cli/modules/members/list-inherit-members-of-group.js +0 -75
  141. package/cli/modules/members/list-inherit-members-of-repo.js +0 -75
  142. package/cli/modules/members/list-member-access-level-of-group.js +0 -74
  143. package/cli/modules/members/list-member-access-level-of-repo.js +0 -74
  144. package/cli/modules/members/list-members-of-group.js +0 -75
  145. package/cli/modules/members/list-members-of-repo.js +0 -75
  146. package/cli/modules/members/list-outside-collaborators.js +0 -75
  147. package/cli/modules/members/update-members-of-group.js +0 -77
  148. package/cli/modules/members/update-members-of-repo.js +0 -77
  149. package/cli/modules/members/update-outside-collaborators.js +0 -77
  150. package/cli/modules/missions/create-mission.js +0 -69
  151. package/cli/modules/missions/delete-mission.js +0 -66
  152. package/cli/modules/missions/get-group-sub-missions.js +0 -75
  153. package/cli/modules/missions/get-mission-view-config.js +0 -75
  154. package/cli/modules/missions/get-mission-view-list.js +0 -66
  155. package/cli/modules/missions/post-mission-view-config.js +0 -69
  156. package/cli/modules/missions/post-mission-view-list.js +0 -69
  157. package/cli/modules/missions/put-mission-view-list.js +0 -69
  158. package/cli/modules/missions/set-mission-visibility.js +0 -75
  159. package/cli/modules/organizations/create-organization.js +0 -65
  160. package/cli/modules/organizations/delete-organization.js +0 -66
  161. package/cli/modules/organizations/get-group-setting.js +0 -66
  162. package/cli/modules/organizations/get-group.js +0 -66
  163. package/cli/modules/organizations/get-groups-by-user-id.js +0 -75
  164. package/cli/modules/organizations/list-groups.js +0 -75
  165. package/cli/modules/organizations/list-subgroups.js +0 -75
  166. package/cli/modules/organizations/list-top-groups.js +0 -71
  167. package/cli/modules/organizations/transfer-group.js +0 -69
  168. package/cli/modules/organizations/update-group-setting.js +0 -69
  169. package/cli/modules/organizations/update-organization.js +0 -69
  170. package/cli/modules/organizations/upload-logos.js +0 -69
  171. package/cli/modules/pulls/can-user-be-assigned-to-pull.js +0 -76
  172. package/cli/modules/pulls/delete-pull-assignees.js +0 -77
  173. package/cli/modules/pulls/delete-pull-label.js +0 -76
  174. package/cli/modules/pulls/delete-pull-labels.js +0 -74
  175. package/cli/modules/pulls/delete-repo-files.js +0 -75
  176. package/cli/modules/pulls/delete-repo-imgs.js +0 -75
  177. package/cli/modules/pulls/get-pull-comment.js +0 -76
  178. package/cli/modules/pulls/get-pull.js +0 -74
  179. package/cli/modules/pulls/list-pull-assignees.js +0 -74
  180. package/cli/modules/pulls/list-pull-comments.js +0 -77
  181. package/cli/modules/pulls/list-pull-commit-statuses.js +0 -74
  182. package/cli/modules/pulls/list-pull-commits.js +0 -77
  183. package/cli/modules/pulls/list-pull-files.js +0 -74
  184. package/cli/modules/pulls/list-pull-labels.js +0 -77
  185. package/cli/modules/pulls/list-pull-review-comments.js +0 -79
  186. package/cli/modules/pulls/list-pull-reviews.js +0 -77
  187. package/cli/modules/pulls/list-pulls-by-numbers.js +0 -75
  188. package/cli/modules/pulls/list-pulls.js +0 -75
  189. package/cli/modules/pulls/merge-pull.js +0 -77
  190. package/cli/modules/pulls/patch-pull-comment.js +0 -79
  191. package/cli/modules/pulls/patch-pull.js +0 -77
  192. package/cli/modules/pulls/post-pull-assignees.js +0 -77
  193. package/cli/modules/pulls/post-pull-comment.js +0 -77
  194. package/cli/modules/pulls/post-pull-labels.js +0 -77
  195. package/cli/modules/pulls/post-pull-request-review-reply.js +0 -79
  196. package/cli/modules/pulls/post-pull-review.js +0 -77
  197. package/cli/modules/pulls/post-pull.js +0 -69
  198. package/cli/modules/pulls/put-pull-labels.js +0 -77
  199. package/cli/modules/pulls/upload-files.js +0 -69
  200. package/cli/modules/pulls/upload-imgs.js +0 -69
  201. package/cli/modules/rank/get-language-list.js +0 -71
  202. package/cli/modules/rank/get-repo-annual-rank.js +0 -71
  203. package/cli/modules/rank/get-repo-daily-rank.js +0 -71
  204. package/cli/modules/rank/get-repo-monthly-rank.js +0 -71
  205. package/cli/modules/rank/get-repo-weekly-rank.js +0 -71
  206. package/cli/modules/registries/delete-package-tag.js +0 -79
  207. package/cli/modules/registries/delete-package.js +0 -77
  208. package/cli/modules/registries/delete-registry.js +0 -66
  209. package/cli/modules/registries/get-group-sub-registries.js +0 -75
  210. package/cli/modules/registries/get-package-tag-detail.js +0 -82
  211. package/cli/modules/registries/get-package-tag-provenance.js +0 -79
  212. package/cli/modules/registries/get-package.js +0 -77
  213. package/cli/modules/registries/list-package-tags.js +0 -80
  214. package/cli/modules/registries/list-packages.js +0 -76
  215. package/cli/modules/registries/set-registry-visibility.js +0 -75
  216. package/cli/modules/releases/delete-release-asset.js +0 -76
  217. package/cli/modules/releases/delete-release.js +0 -74
  218. package/cli/modules/releases/get-latest-release.js +0 -66
  219. package/cli/modules/releases/get-release-asset.js +0 -76
  220. package/cli/modules/releases/get-release-by-id.js +0 -74
  221. package/cli/modules/releases/get-release-by-tag.js +0 -74
  222. package/cli/modules/releases/get-releases-asset.js +0 -79
  223. package/cli/modules/releases/list-releases.js +0 -75
  224. package/cli/modules/releases/patch-release.js +0 -77
  225. package/cli/modules/releases/post-release-asset-upload-confirmation.js +0 -81
  226. package/cli/modules/releases/post-release-asset-upload-url.js +0 -77
  227. package/cli/modules/releases/post-release.js +0 -69
  228. package/cli/modules/repo-code-issue/get-code-issue-detail-open-api.js +0 -75
  229. package/cli/modules/repo-code-issue/list-code-issue-open-api.js +0 -76
  230. package/cli/modules/repo-contributor/get-repo-contributor-trend.js +0 -75
  231. package/cli/modules/repo-labels/delete-label.js +0 -74
  232. package/cli/modules/repo-labels/list-labels.js +0 -75
  233. package/cli/modules/repo-labels/patch-label.js +0 -77
  234. package/cli/modules/repo-labels/post-label.js +0 -69
  235. package/cli/modules/repositories/archive-repo.js +0 -66
  236. package/cli/modules/repositories/create-repo.js +0 -69
  237. package/cli/modules/repositories/delete-repo.js +0 -66
  238. package/cli/modules/repositories/get-by-id.js +0 -66
  239. package/cli/modules/repositories/get-group-sub-repos.js +0 -75
  240. package/cli/modules/repositories/get-pinned-repo-by-group.js +0 -66
  241. package/cli/modules/repositories/get-pinned-repo-by-id.js +0 -66
  242. package/cli/modules/repositories/get-repos-by-user-name.js +0 -75
  243. package/cli/modules/repositories/get-repos.js +0 -71
  244. package/cli/modules/repositories/list-forks-repos.js +0 -75
  245. package/cli/modules/repositories/set-pinned-repo-by-group.js +0 -69
  246. package/cli/modules/repositories/set-repo-visibility.js +0 -75
  247. package/cli/modules/repositories/transfer-repo.js +0 -69
  248. package/cli/modules/repositories/un-archive-repo.js +0 -66
  249. package/cli/modules/repositories/update-repo.js +0 -69
  250. package/cli/modules/search/list-public-repos.js +0 -71
  251. package/cli/modules/security/get-repo-security-overview.js +0 -75
  252. package/cli/modules/starring/get-user-all-stared-repos.js +0 -71
  253. package/cli/modules/starring/get-user-stared-repos.js +0 -75
  254. package/cli/modules/starring/list-star-users.js +0 -75
  255. package/cli/modules/users/auto-complete-source.js +0 -71
  256. package/cli/modules/users/get-user-info-by-name.js +0 -66
  257. package/cli/modules/users/get-user-info.js +0 -62
  258. package/cli/modules/users/list-email.js +0 -62
  259. package/cli/modules/users/list-gpg-keys.js +0 -71
  260. package/cli/modules/users/update-user-info.js +0 -65
  261. package/cli/modules/workspace/delete-workspace.js +0 -65
  262. package/cli/modules/workspace/get-workspace-detail.js +0 -74
  263. package/cli/modules/workspace/list-workspaces.js +0 -71
  264. package/cli/modules/workspace/start-workspace.js +0 -69
  265. package/cli/modules/workspace/workspace-stop.js +0 -65
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cnbcool/cnb-cli",
3
- "version": "1.3.0",
3
+ "version": "1.4.1",
4
4
  "description": "CNB OpenAPI 命令行工具,基于 CNB 平台 Swagger 自动生成,支持 Issues、PR、Git、组织管理等全部 API 操作",
5
5
  "main": "skills/cnb-api/scripts/core/index.js",
6
6
  "bin": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "files": [
10
10
  "bin/",
11
- "cli/"
11
+ "dist/"
12
12
  ],
13
13
  "engines": {
14
14
  "node": ">=18.0.0"
@@ -27,6 +27,13 @@
27
27
  "url": "https://cnb.cool/cnb/cnb-cli"
28
28
  },
29
29
  "scripts": {
30
+ "build": "bun build cli/core/index.js --outfile dist/index.js --target node --format cjs --minify",
31
+ "compile:darwin-arm64": "bun build cli/core/index.js --compile --minify --target=bun-darwin-arm64 --outfile compile/cnb-darwin-arm64",
32
+ "compile:darwin-x64": "bun build cli/core/index.js --compile --minify --target=bun-darwin-x64 --outfile compile/cnb-darwin-x64",
33
+ "compile:linux-arm64": "bun build cli/core/index.js --compile --minify --target=bun-linux-arm64 --outfile compile/cnb-linux-arm64",
34
+ "compile:linux-x64": "bun build cli/core/index.js --compile --minify --target=bun-linux-x64 --outfile compile/cnb-linux-x64",
35
+ "compile:windows-x64": "bun build cli/core/index.js --compile --minify --target=bun-windows-x64 --outfile compile/cnb-windows-x64.exe",
36
+ "compile:all": "bun run compile:darwin-arm64 && bun run compile:darwin-x64 && bun run compile:linux-arm64 && bun run compile:linux-x64 && bun run compile:windows-x64",
30
37
  "link:all": "npx skills add ./skills --agent codebuddy --copy -y --skill '*'",
31
38
  "link:skill": "npx skills add ./skills --agent codebuddy --copy -y",
32
39
  "gen:skill": "npx csg"
@@ -34,9 +41,7 @@
34
41
  "author": "",
35
42
  "license": "MIT",
36
43
  "devDependencies": {
44
+ "@cnbcool/cnb-api-generate": "^2.3.1",
37
45
  "skills": "^1.4.4"
38
- },
39
- "dependencies": {
40
- "@cnbcool/cnb-api-generate": "^2.3.0"
41
46
  }
42
47
  }
@@ -1,58 +0,0 @@
1
- module.exports = {
2
- target: 'https://api.cnb.cool/swagger.json',
3
- skillsOutputDir: `./skills/cnb-api`,
4
- skillScriptOutputDir: `./cli`,
5
- // skillsDev: true,
6
- skillConfig: {
7
- fetchConfig: {
8
- responseConverter: {
9
- 'get@/{repo}/-/issues/{number}': {
10
- converter: 'convert-link',
11
- handler: (handler, fetchOriginParams, data) => {
12
- data.body = handler(data.body, fetchOriginParams.path.repo);
13
- return data
14
- }
15
- },
16
- 'get@/{repo}/-/issues/{number}/comments/{comment_id}': {
17
- converter: 'convert-link',
18
- handler: (handler, fetchOriginParams, data) => {
19
- data.body = handler(data.body, fetchOriginParams.path.repo);
20
- return data
21
- }
22
- },
23
- 'get@/{repo}/-/issues/{number}/comments': {
24
- converter: 'convert-link',
25
- handler: (handler, fetchOriginParams, data) => {
26
- for (let i = 0; i < data.length; i++) {
27
- data[i].body = handler(data[i].body, fetchOriginParams.path.repo);
28
- }
29
- return data
30
- }
31
- },
32
- 'get@/{repo}/-/pulls/{number}': {
33
- converter: 'convert-link',
34
- handler: (handler, fetchOriginParams, data) => {
35
- data.body = handler(data.body, fetchOriginParams.path.repo);
36
- return data
37
- }
38
- },
39
- 'get@/{repo}/-/pulls/{number}/comments/{comment_id}': {
40
- converter: 'convert-link',
41
- handler: (handler, fetchOriginParams, data) => {
42
- data.body = handler(data.body, fetchOriginParams.path.repo);
43
- return data
44
- }
45
- },
46
- 'get@/{repo}/-/pulls/{number}/comments': {
47
- converter: 'convert-link',
48
- handler: (handler, fetchOriginParams, data) => {
49
- for (let i = 0; i < data.length; i++) {
50
- data[i].body = handler(data[i].body, fetchOriginParams.path.repo);
51
- }
52
- return data
53
- }
54
- },
55
- }
56
- }
57
- }
58
- }
package/cli/core/core.js DELETED
@@ -1,124 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _fs = _interopRequireDefault(require("fs"));
8
- var _path = _interopRequireDefault(require("path"));
9
- var _os = _interopRequireDefault(require("os"));
10
- var _fetchResponseHandler = require("./fetch-response-handler");
11
- var _generateUniqueId = require("./utils/generate-unique-id");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- /**
14
- * 格式化 API 响应
15
- * 构建包含以下字段的响应对象:
16
- * - status: HTTP 状态码
17
- * - trace: traceparent(用于调试追踪)
18
- * - header: 原始分页 header(x-cnb-page 等)
19
- * - page/pageSize/total/totalPages: 从 header 计算的分页信息(仅列表 API)
20
- * - data: 响应体(JSON/文本/图片路径/base64)
21
- *
22
- * 注意:所有字段始终保留,由 index.ts 的输出层决定展示哪些
23
- */
24
- async function formatResponse(data, response) {
25
- const status = response.status;
26
- const trace = response.headers.get('traceparent');
27
- const page = response.headers.get('x-cnb-page');
28
- const pageSize = response.headers.get('x-cnb-page-size');
29
- const total = response.headers.get('x-cnb-total');
30
- const responseData = {
31
- status,
32
- trace,
33
- header: {
34
- 'x-cnb-page': page,
35
- 'x-cnb-page-size': pageSize,
36
- 'x-cnb-total': total
37
- },
38
- data: null
39
- };
40
-
41
- // 分页信息(始终计算,输出层决定是否展示)
42
- if (total != null) {
43
- const pageNum = parseInt(page, 10) || 1;
44
- const pageSizeNum = parseInt(pageSize, 10) || 10;
45
- const totalNum = parseInt(total, 10) || 0;
46
- responseData.page = pageNum;
47
- responseData.pageSize = pageSizeNum;
48
- responseData.total = totalNum;
49
- responseData.totalPages = Math.ceil(totalNum / pageSizeNum);
50
- }
51
- const contentType = response.headers.get('content-type') || '';
52
- const isJson = ['application/vnd.cnb.api+json', 'application/json', 'text/json'].some(t => contentType.includes(t));
53
- const isText = contentType.startsWith('text/') || contentType.includes('xml');
54
- const isImage = contentType.startsWith('image/');
55
- try {
56
- if (isJson) {
57
- responseData.data = await response.json();
58
- } else if (isText) {
59
- responseData.data = await response.text();
60
- } else if (isImage) {
61
- const arrayBuffer = await response.arrayBuffer();
62
- const buffer = Buffer.from(arrayBuffer);
63
-
64
- // 确定文件扩展名
65
- let extension = '.bin';
66
- if (contentType.includes('png')) extension = '.png';else if (contentType.includes('jpeg') || contentType.includes('jpg')) extension = '.jpg';else if (contentType.includes('gif')) extension = '.gif';else if (contentType.includes('webp')) extension = '.webp';else if (contentType.includes('svg')) extension = '.svg';
67
- // 可以根据需要添加更多类型
68
-
69
- // 构建本地保存路径
70
- // 注意:请确保 './downloads' 目录存在,或者使用 fs.mkdirSync 创建它
71
- const tempDir = _os.default.tmpdir();
72
- const uploadDir = _path.default.join(tempDir, 'cnb-api');
73
- if (!_fs.default.existsSync(uploadDir)) {
74
- _fs.default.mkdirSync(uploadDir, {
75
- recursive: true
76
- });
77
- }
78
- const fileName = `${(0, _generateUniqueId.generateUniqueId)()}${extension}`;
79
- const filePath = _path.default.join(uploadDir, fileName);
80
- _fs.default.writeFileSync(filePath, buffer);
81
- responseData.data = filePath;
82
- } else {
83
- // 其他二进制数据保持原有的 Base64 逻辑,或者也可以按需保存
84
- const arrayBuffer = await response.arrayBuffer();
85
- const buffer = Buffer.from(arrayBuffer);
86
- const base64String = buffer.toString('base64');
87
- responseData.data = {
88
- type: 'base64',
89
- data: base64String,
90
- mimeType: contentType || 'application/octet-stream'
91
- };
92
- }
93
- } catch (err) {
94
- responseData.data = err?.message || 'Unknown Error';
95
- }
96
- if (responseData.status >= 200 && responseData.status < 300) {
97
- return await (0, _fetchResponseHandler.fetchResponseHandler)(data._originParams, responseData);
98
- }
99
- return responseData;
100
- }
101
- async function clientFetch(data) {
102
- const domain = process.env.CNB_API_ENDPOINT || 'https://api.cnb.cool';
103
- const url = `${domain}${data.url}`;
104
- const urlParse = new URL(url);
105
- if (data.params) {
106
- // eslint-disable-next-line no-restricted-syntax
107
- for (const key in data.params) {
108
- urlParse.searchParams.append(key, data.params[key]);
109
- }
110
- }
111
- const response = await fetch(urlParse.href, {
112
- method: data.method.toUpperCase(),
113
- body: data.data ? JSON.stringify(data.data) : undefined,
114
- headers: {
115
- Authorization: `Bearer ${process.env.CNB_TOKEN}`,
116
- Accept: 'application/vnd.cnb.api+json',
117
- ...(data?.header || {})
118
- }
119
- });
120
- return await formatResponse(data, response);
121
- }
122
- var _default = exports.default = {
123
- request: clientFetch
124
- };
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fetchResponseHandler = fetchResponseHandler;
7
- async function fetchResponseHandler(fetchOriginParams, response) {
8
- const config = require('./config/cag.config.js');
9
- const responseConverter = config?.skillConfig?.fetchConfig?.responseConverter;
10
- if (!responseConverter) {
11
- return response;
12
- }
13
- const {
14
- method,
15
- _apiTag
16
- } = fetchOriginParams;
17
- const requestTag = `${method}@${_apiTag}`;
18
- const convertConfig = responseConverter[requestTag];
19
- if (convertConfig) {
20
- const {
21
- converter,
22
- handler
23
- } = convertConfig;
24
- try {
25
- const converterExample = require(`./utils/${converter}`).default;
26
- if (converterExample && typeof converterExample === 'function') {
27
- return handler(converterExample, fetchOriginParams, response.data);
28
- }
29
- } catch (e) {
30
- console.error(`converter ${converter} not found`);
31
- }
32
- }
33
- return response;
34
- }