@cnbcool/cnb-cli 1.0.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 (281) hide show
  1. package/.cnb.yml +37 -0
  2. package/DEVELOPMENT.md +345 -0
  3. package/LICENSE.md +9 -0
  4. package/README.md +119 -0
  5. package/bin/cnb.js +3 -0
  6. package/cag.config.js +57 -0
  7. package/downloads/1773729361207-dsfgely.png +0 -0
  8. package/package.json +20 -0
  9. package/skills/artifact-migrate/README.md +79 -0
  10. package/skills/artifact-migrate/SKILL.md +674 -0
  11. package/skills/auto-code/SKILL.md +71 -0
  12. package/skills/auto-code/hooks/hooks.json +15 -0
  13. package/skills/cnb-code-import/LICENSE +20 -0
  14. package/skills/cnb-code-import/README.md +311 -0
  15. package/skills/cnb-code-import/SKILL.md +368 -0
  16. package/skills/cnb-code-import/scripts/migrate.sh +371 -0
  17. package/skills/cnb-skill/SKILL.md +100 -0
  18. package/skills/cnb-skill/scripts/core/config/cag.config.js +57 -0
  19. package/skills/cnb-skill/scripts/core/convertLink.js +140 -0
  20. package/skills/cnb-skill/scripts/core/core.js +97 -0
  21. package/skills/cnb-skill/scripts/core/fetch-response-handler.js +34 -0
  22. package/skills/cnb-skill/scripts/core/help.json +35199 -0
  23. package/skills/cnb-skill/scripts/core/index.d.js +6 -0
  24. package/skills/cnb-skill/scripts/core/index.js +337 -0
  25. package/skills/cnb-skill/scripts/core/modules.help.js +40 -0
  26. package/skills/cnb-skill/scripts/core/schemaToJson.d.js +5 -0
  27. package/skills/cnb-skill/scripts/core/schemaToJson.js +32 -0
  28. package/skills/cnb-skill/scripts/core/shortcuts.js +247 -0
  29. package/skills/cnb-skill/scripts/core/tools.help.js +116 -0
  30. package/skills/cnb-skill/scripts/core/utils/convert-link.js +144 -0
  31. package/skills/cnb-skill/scripts/core/utils/generate-unique-id.js +10 -0
  32. package/skills/cnb-skill/scripts/modules/activities/get-user-activities-by-date.js +76 -0
  33. package/skills/cnb-skill/scripts/modules/activities/get-user-repo-activity-details.js +78 -0
  34. package/skills/cnb-skill/scripts/modules/activities/top-contributors.js +76 -0
  35. package/skills/cnb-skill/scripts/modules/ai/ai-auto-pr.js +70 -0
  36. package/skills/cnb-skill/scripts/modules/ai/ai-chat-completions.js +70 -0
  37. package/skills/cnb-skill/scripts/modules/assets/delete-asset.js +76 -0
  38. package/skills/cnb-skill/scripts/modules/assets/get-files.js +76 -0
  39. package/skills/cnb-skill/scripts/modules/assets/get-imgs.js +76 -0
  40. package/skills/cnb-skill/scripts/modules/assets/list-assets.js +76 -0
  41. package/skills/cnb-skill/scripts/modules/badge/get-badge.js +80 -0
  42. package/skills/cnb-skill/scripts/modules/badge/list-badge.js +70 -0
  43. package/skills/cnb-skill/scripts/modules/badge/upload-badge.js +70 -0
  44. package/skills/cnb-skill/scripts/modules/build/build-crontab-sync.js +75 -0
  45. package/skills/cnb-skill/scripts/modules/build/build-logs-delete.js +75 -0
  46. package/skills/cnb-skill/scripts/modules/build/build-runner-download-log.js +75 -0
  47. package/skills/cnb-skill/scripts/modules/build/get-build-logs.js +76 -0
  48. package/skills/cnb-skill/scripts/modules/build/get-build-stage.js +79 -0
  49. package/skills/cnb-skill/scripts/modules/build/get-build-status.js +75 -0
  50. package/skills/cnb-skill/scripts/modules/build/start-build.js +70 -0
  51. package/skills/cnb-skill/scripts/modules/build/stop-build.js +75 -0
  52. package/skills/cnb-skill/scripts/modules/charge/get-special-amount.js +68 -0
  53. package/skills/cnb-skill/scripts/modules/event/get-events.js +74 -0
  54. package/skills/cnb-skill/scripts/modules/followers/get-followers-by-user-id.js +76 -0
  55. package/skills/cnb-skill/scripts/modules/followers/get-following-by-user-id.js +76 -0
  56. package/skills/cnb-skill/scripts/modules/git/create-blob.js +70 -0
  57. package/skills/cnb-skill/scripts/modules/git/create-branch-lock.js +75 -0
  58. package/skills/cnb-skill/scripts/modules/git/create-branch.js +70 -0
  59. package/skills/cnb-skill/scripts/modules/git/create-tag.js +70 -0
  60. package/skills/cnb-skill/scripts/modules/git/delete-branch-lock.js +75 -0
  61. package/skills/cnb-skill/scripts/modules/git/delete-branch.js +75 -0
  62. package/skills/cnb-skill/scripts/modules/git/delete-commit-annotation.js +77 -0
  63. package/skills/cnb-skill/scripts/modules/git/delete-commit-asset.js +77 -0
  64. package/skills/cnb-skill/scripts/modules/git/delete-tag-annotation.js +75 -0
  65. package/skills/cnb-skill/scripts/modules/git/delete-tag.js +75 -0
  66. package/skills/cnb-skill/scripts/modules/git/get-archive-commit-changed-files.js +75 -0
  67. package/skills/cnb-skill/scripts/modules/git/get-archive-compare-changed-files.js +75 -0
  68. package/skills/cnb-skill/scripts/modules/git/get-archive.js +75 -0
  69. package/skills/cnb-skill/scripts/modules/git/get-branch.js +75 -0
  70. package/skills/cnb-skill/scripts/modules/git/get-commit-annotations-in-batch.js +70 -0
  71. package/skills/cnb-skill/scripts/modules/git/get-commit-annotations.js +75 -0
  72. package/skills/cnb-skill/scripts/modules/git/get-commit-assets-by-sha.js +75 -0
  73. package/skills/cnb-skill/scripts/modules/git/get-commit-assets.js +80 -0
  74. package/skills/cnb-skill/scripts/modules/git/get-commit-statuses.js +75 -0
  75. package/skills/cnb-skill/scripts/modules/git/get-commit.js +75 -0
  76. package/skills/cnb-skill/scripts/modules/git/get-compare-commits.js +75 -0
  77. package/skills/cnb-skill/scripts/modules/git/get-content-without-path.js +76 -0
  78. package/skills/cnb-skill/scripts/modules/git/get-content.js +78 -0
  79. package/skills/cnb-skill/scripts/modules/git/get-head.js +67 -0
  80. package/skills/cnb-skill/scripts/modules/git/get-presigned-lfs-download-link.js +78 -0
  81. package/skills/cnb-skill/scripts/modules/git/get-raw.js +78 -0
  82. package/skills/cnb-skill/scripts/modules/git/get-tag-annotations.js +75 -0
  83. package/skills/cnb-skill/scripts/modules/git/get-tag.js +75 -0
  84. package/skills/cnb-skill/scripts/modules/git/list-branches.js +76 -0
  85. package/skills/cnb-skill/scripts/modules/git/list-commits.js +76 -0
  86. package/skills/cnb-skill/scripts/modules/git/list-tags.js +76 -0
  87. package/skills/cnb-skill/scripts/modules/git/post-commit-asset-upload-confirmation.js +82 -0
  88. package/skills/cnb-skill/scripts/modules/git/post-commit-asset-upload-url.js +78 -0
  89. package/skills/cnb-skill/scripts/modules/git/put-commit-annotations.js +78 -0
  90. package/skills/cnb-skill/scripts/modules/git/put-tag-annotations.js +78 -0
  91. package/skills/cnb-skill/scripts/modules/git-settings/delete-branch-protection.js +75 -0
  92. package/skills/cnb-skill/scripts/modules/git-settings/get-branch-protection.js +75 -0
  93. package/skills/cnb-skill/scripts/modules/git-settings/get-pipeline-settings.js +67 -0
  94. package/skills/cnb-skill/scripts/modules/git-settings/get-pull-request-settings.js +67 -0
  95. package/skills/cnb-skill/scripts/modules/git-settings/get-push-limit-settings.js +67 -0
  96. package/skills/cnb-skill/scripts/modules/git-settings/list-branch-protections.js +67 -0
  97. package/skills/cnb-skill/scripts/modules/git-settings/patch-branch-protection.js +78 -0
  98. package/skills/cnb-skill/scripts/modules/git-settings/post-branch-protection.js +70 -0
  99. package/skills/cnb-skill/scripts/modules/git-settings/put-pipeline-settings.js +70 -0
  100. package/skills/cnb-skill/scripts/modules/git-settings/put-pull-request-settings.js +70 -0
  101. package/skills/cnb-skill/scripts/modules/git-settings/put-push-limit-settings.js +70 -0
  102. package/skills/cnb-skill/scripts/modules/issues/can-user-be-assigned-to-issue.js +77 -0
  103. package/skills/cnb-skill/scripts/modules/issues/create-issue.js +70 -0
  104. package/skills/cnb-skill/scripts/modules/issues/delete-issue-assignees.js +78 -0
  105. package/skills/cnb-skill/scripts/modules/issues/delete-issue-label.js +77 -0
  106. package/skills/cnb-skill/scripts/modules/issues/delete-issue-labels.js +75 -0
  107. package/skills/cnb-skill/scripts/modules/issues/get-issue-comment.js +77 -0
  108. package/skills/cnb-skill/scripts/modules/issues/get-issue.js +75 -0
  109. package/skills/cnb-skill/scripts/modules/issues/list-issue-activities-latest.js +77 -0
  110. package/skills/cnb-skill/scripts/modules/issues/list-issue-activities.js +78 -0
  111. package/skills/cnb-skill/scripts/modules/issues/list-issue-assignees.js +75 -0
  112. package/skills/cnb-skill/scripts/modules/issues/list-issue-comments.js +78 -0
  113. package/skills/cnb-skill/scripts/modules/issues/list-issue-labels.js +78 -0
  114. package/skills/cnb-skill/scripts/modules/issues/list-issues.js +76 -0
  115. package/skills/cnb-skill/scripts/modules/issues/patch-issue-assignees.js +78 -0
  116. package/skills/cnb-skill/scripts/modules/issues/patch-issue-comment.js +80 -0
  117. package/skills/cnb-skill/scripts/modules/issues/post-issue-assignees.js +78 -0
  118. package/skills/cnb-skill/scripts/modules/issues/post-issue-comment.js +78 -0
  119. package/skills/cnb-skill/scripts/modules/issues/post-issue-labels.js +78 -0
  120. package/skills/cnb-skill/scripts/modules/issues/put-issue-labels.js +78 -0
  121. package/skills/cnb-skill/scripts/modules/issues/update-issue-properties.js +79 -0
  122. package/skills/cnb-skill/scripts/modules/issues/update-issue.js +78 -0
  123. package/skills/cnb-skill/scripts/modules/knowledge-base/delete-knowledge-base.js +67 -0
  124. package/skills/cnb-skill/scripts/modules/knowledge-base/get-knowledge-base-info.js +67 -0
  125. package/skills/cnb-skill/scripts/modules/knowledge-base/get-models.js +67 -0
  126. package/skills/cnb-skill/scripts/modules/knowledge-base/query-knowledge-base.js +70 -0
  127. package/skills/cnb-skill/scripts/modules/members/add-members-of-group.js +78 -0
  128. package/skills/cnb-skill/scripts/modules/members/add-members-of-mission.js +78 -0
  129. package/skills/cnb-skill/scripts/modules/members/add-members-of-registry.js +78 -0
  130. package/skills/cnb-skill/scripts/modules/members/add-members-of-repo.js +78 -0
  131. package/skills/cnb-skill/scripts/modules/members/delete-members-of-group.js +75 -0
  132. package/skills/cnb-skill/scripts/modules/members/delete-members-of-repo.js +75 -0
  133. package/skills/cnb-skill/scripts/modules/members/delete-outside-collaborators.js +75 -0
  134. package/skills/cnb-skill/scripts/modules/members/get-member-access-level-of-group.js +76 -0
  135. package/skills/cnb-skill/scripts/modules/members/get-member-access-level-of-repo.js +76 -0
  136. package/skills/cnb-skill/scripts/modules/members/list-all-members.js +76 -0
  137. package/skills/cnb-skill/scripts/modules/members/list-inherit-members-of-group.js +76 -0
  138. package/skills/cnb-skill/scripts/modules/members/list-inherit-members-of-repo.js +76 -0
  139. package/skills/cnb-skill/scripts/modules/members/list-member-access-level-of-group.js +75 -0
  140. package/skills/cnb-skill/scripts/modules/members/list-member-access-level-of-repo.js +75 -0
  141. package/skills/cnb-skill/scripts/modules/members/list-members-of-group.js +76 -0
  142. package/skills/cnb-skill/scripts/modules/members/list-members-of-repo.js +76 -0
  143. package/skills/cnb-skill/scripts/modules/members/list-outside-collaborators.js +76 -0
  144. package/skills/cnb-skill/scripts/modules/members/update-members-of-group.js +78 -0
  145. package/skills/cnb-skill/scripts/modules/members/update-members-of-repo.js +78 -0
  146. package/skills/cnb-skill/scripts/modules/members/update-outside-collaborators.js +78 -0
  147. package/skills/cnb-skill/scripts/modules/missions/create-mission.js +70 -0
  148. package/skills/cnb-skill/scripts/modules/missions/delete-mission.js +67 -0
  149. package/skills/cnb-skill/scripts/modules/missions/get-group-sub-missions.js +76 -0
  150. package/skills/cnb-skill/scripts/modules/missions/get-mission-view-config.js +76 -0
  151. package/skills/cnb-skill/scripts/modules/missions/get-mission-view-list.js +67 -0
  152. package/skills/cnb-skill/scripts/modules/missions/post-mission-view-config.js +70 -0
  153. package/skills/cnb-skill/scripts/modules/missions/post-mission-view-list.js +70 -0
  154. package/skills/cnb-skill/scripts/modules/missions/put-mission-view-list.js +70 -0
  155. package/skills/cnb-skill/scripts/modules/missions/set-mission-visibility.js +76 -0
  156. package/skills/cnb-skill/scripts/modules/organizations/create-organization.js +66 -0
  157. package/skills/cnb-skill/scripts/modules/organizations/delete-organization.js +67 -0
  158. package/skills/cnb-skill/scripts/modules/organizations/get-group-setting.js +67 -0
  159. package/skills/cnb-skill/scripts/modules/organizations/get-group.js +67 -0
  160. package/skills/cnb-skill/scripts/modules/organizations/get-groups-by-user-id.js +76 -0
  161. package/skills/cnb-skill/scripts/modules/organizations/list-groups.js +76 -0
  162. package/skills/cnb-skill/scripts/modules/organizations/list-subgroups.js +76 -0
  163. package/skills/cnb-skill/scripts/modules/organizations/list-top-groups.js +72 -0
  164. package/skills/cnb-skill/scripts/modules/organizations/transfer-group.js +70 -0
  165. package/skills/cnb-skill/scripts/modules/organizations/update-group-setting.js +70 -0
  166. package/skills/cnb-skill/scripts/modules/organizations/update-organization.js +70 -0
  167. package/skills/cnb-skill/scripts/modules/organizations/upload-logos.js +70 -0
  168. package/skills/cnb-skill/scripts/modules/pulls/can-user-be-assigned-to-pull.js +77 -0
  169. package/skills/cnb-skill/scripts/modules/pulls/delete-pull-assignees.js +78 -0
  170. package/skills/cnb-skill/scripts/modules/pulls/delete-pull-label.js +77 -0
  171. package/skills/cnb-skill/scripts/modules/pulls/delete-pull-labels.js +75 -0
  172. package/skills/cnb-skill/scripts/modules/pulls/delete-repo-files.js +76 -0
  173. package/skills/cnb-skill/scripts/modules/pulls/delete-repo-imgs.js +76 -0
  174. package/skills/cnb-skill/scripts/modules/pulls/get-files.js +75 -0
  175. package/skills/cnb-skill/scripts/modules/pulls/get-imgs.js +75 -0
  176. package/skills/cnb-skill/scripts/modules/pulls/get-pull-comment.js +77 -0
  177. package/skills/cnb-skill/scripts/modules/pulls/get-pull.js +75 -0
  178. package/skills/cnb-skill/scripts/modules/pulls/list-pull-assignees.js +75 -0
  179. package/skills/cnb-skill/scripts/modules/pulls/list-pull-comments.js +78 -0
  180. package/skills/cnb-skill/scripts/modules/pulls/list-pull-commit-statuses.js +75 -0
  181. package/skills/cnb-skill/scripts/modules/pulls/list-pull-commits.js +78 -0
  182. package/skills/cnb-skill/scripts/modules/pulls/list-pull-files.js +75 -0
  183. package/skills/cnb-skill/scripts/modules/pulls/list-pull-labels.js +78 -0
  184. package/skills/cnb-skill/scripts/modules/pulls/list-pull-review-comments.js +80 -0
  185. package/skills/cnb-skill/scripts/modules/pulls/list-pull-reviews.js +78 -0
  186. package/skills/cnb-skill/scripts/modules/pulls/list-pulls-by-numbers.js +76 -0
  187. package/skills/cnb-skill/scripts/modules/pulls/list-pulls.js +76 -0
  188. package/skills/cnb-skill/scripts/modules/pulls/merge-pull.js +78 -0
  189. package/skills/cnb-skill/scripts/modules/pulls/patch-pull-comment.js +80 -0
  190. package/skills/cnb-skill/scripts/modules/pulls/patch-pull.js +78 -0
  191. package/skills/cnb-skill/scripts/modules/pulls/post-pull-assignees.js +78 -0
  192. package/skills/cnb-skill/scripts/modules/pulls/post-pull-comment.js +78 -0
  193. package/skills/cnb-skill/scripts/modules/pulls/post-pull-labels.js +78 -0
  194. package/skills/cnb-skill/scripts/modules/pulls/post-pull-request-review-reply.js +80 -0
  195. package/skills/cnb-skill/scripts/modules/pulls/post-pull-review.js +78 -0
  196. package/skills/cnb-skill/scripts/modules/pulls/post-pull.js +70 -0
  197. package/skills/cnb-skill/scripts/modules/pulls/put-pull-labels.js +78 -0
  198. package/skills/cnb-skill/scripts/modules/pulls/upload-files.js +70 -0
  199. package/skills/cnb-skill/scripts/modules/pulls/upload-imgs.js +70 -0
  200. package/skills/cnb-skill/scripts/modules/rank/get-language-list.js +72 -0
  201. package/skills/cnb-skill/scripts/modules/rank/get-repo-annual-rank.js +72 -0
  202. package/skills/cnb-skill/scripts/modules/rank/get-repo-daily-rank.js +72 -0
  203. package/skills/cnb-skill/scripts/modules/rank/get-repo-monthly-rank.js +72 -0
  204. package/skills/cnb-skill/scripts/modules/rank/get-repo-weekly-rank.js +72 -0
  205. package/skills/cnb-skill/scripts/modules/registries/delete-package-tag.js +80 -0
  206. package/skills/cnb-skill/scripts/modules/registries/delete-package.js +78 -0
  207. package/skills/cnb-skill/scripts/modules/registries/delete-registry.js +67 -0
  208. package/skills/cnb-skill/scripts/modules/registries/get-group-sub-registries.js +76 -0
  209. package/skills/cnb-skill/scripts/modules/registries/get-package-tag-detail.js +83 -0
  210. package/skills/cnb-skill/scripts/modules/registries/get-package.js +78 -0
  211. package/skills/cnb-skill/scripts/modules/registries/list-package-tags.js +81 -0
  212. package/skills/cnb-skill/scripts/modules/registries/list-packages.js +77 -0
  213. package/skills/cnb-skill/scripts/modules/registries/set-registry-visibility.js +76 -0
  214. package/skills/cnb-skill/scripts/modules/releases/delete-release-asset.js +77 -0
  215. package/skills/cnb-skill/scripts/modules/releases/delete-release.js +75 -0
  216. package/skills/cnb-skill/scripts/modules/releases/get-latest-release.js +67 -0
  217. package/skills/cnb-skill/scripts/modules/releases/get-release-asset.js +77 -0
  218. package/skills/cnb-skill/scripts/modules/releases/get-release-by-id.js +75 -0
  219. package/skills/cnb-skill/scripts/modules/releases/get-release-by-tag.js +75 -0
  220. package/skills/cnb-skill/scripts/modules/releases/get-releases-asset.js +80 -0
  221. package/skills/cnb-skill/scripts/modules/releases/list-releases.js +76 -0
  222. package/skills/cnb-skill/scripts/modules/releases/patch-release.js +78 -0
  223. package/skills/cnb-skill/scripts/modules/releases/post-release-asset-upload-confirmation.js +82 -0
  224. package/skills/cnb-skill/scripts/modules/releases/post-release-asset-upload-url.js +78 -0
  225. package/skills/cnb-skill/scripts/modules/releases/post-release.js +70 -0
  226. package/skills/cnb-skill/scripts/modules/repo-code-issue/get-code-issue-detail-open-api.js +76 -0
  227. package/skills/cnb-skill/scripts/modules/repo-code-issue/list-code-issue-open-api.js +77 -0
  228. package/skills/cnb-skill/scripts/modules/repo-contributor/get-repo-contributor-trend.js +76 -0
  229. package/skills/cnb-skill/scripts/modules/repo-labels/delete-label.js +75 -0
  230. package/skills/cnb-skill/scripts/modules/repo-labels/list-labels.js +76 -0
  231. package/skills/cnb-skill/scripts/modules/repo-labels/patch-label.js +78 -0
  232. package/skills/cnb-skill/scripts/modules/repo-labels/post-label.js +70 -0
  233. package/skills/cnb-skill/scripts/modules/repositories/archive-repo.js +67 -0
  234. package/skills/cnb-skill/scripts/modules/repositories/create-repo.js +70 -0
  235. package/skills/cnb-skill/scripts/modules/repositories/delete-repo.js +67 -0
  236. package/skills/cnb-skill/scripts/modules/repositories/get-by-id.js +67 -0
  237. package/skills/cnb-skill/scripts/modules/repositories/get-group-sub-repos.js +76 -0
  238. package/skills/cnb-skill/scripts/modules/repositories/get-pinned-repo-by-group.js +67 -0
  239. package/skills/cnb-skill/scripts/modules/repositories/get-pinned-repo-by-id.js +67 -0
  240. package/skills/cnb-skill/scripts/modules/repositories/get-repos-by-user-name.js +76 -0
  241. package/skills/cnb-skill/scripts/modules/repositories/get-repos.js +72 -0
  242. package/skills/cnb-skill/scripts/modules/repositories/list-forks-repos.js +76 -0
  243. package/skills/cnb-skill/scripts/modules/repositories/set-pinned-repo-by-group.js +70 -0
  244. package/skills/cnb-skill/scripts/modules/repositories/set-repo-visibility.js +76 -0
  245. package/skills/cnb-skill/scripts/modules/repositories/transfer-repo.js +70 -0
  246. package/skills/cnb-skill/scripts/modules/repositories/un-archive-repo.js +67 -0
  247. package/skills/cnb-skill/scripts/modules/repositories/update-repo.js +70 -0
  248. package/skills/cnb-skill/scripts/modules/search/list-public-repos.js +72 -0
  249. package/skills/cnb-skill/scripts/modules/security/get-repo-security-overview.js +76 -0
  250. package/skills/cnb-skill/scripts/modules/starring/get-user-all-stared-repos.js +72 -0
  251. package/skills/cnb-skill/scripts/modules/starring/get-user-stared-repos.js +76 -0
  252. package/skills/cnb-skill/scripts/modules/starring/list-star-users.js +76 -0
  253. package/skills/cnb-skill/scripts/modules/users/auto-complete-source.js +72 -0
  254. package/skills/cnb-skill/scripts/modules/users/get-user-info-by-name.js +67 -0
  255. package/skills/cnb-skill/scripts/modules/users/get-user-info.js +63 -0
  256. package/skills/cnb-skill/scripts/modules/users/list-email.js +63 -0
  257. package/skills/cnb-skill/scripts/modules/users/list-gpg-keys.js +72 -0
  258. package/skills/cnb-skill/scripts/modules/users/update-user-info.js +66 -0
  259. package/skills/cnb-skill/scripts/modules/workspace/delete-workspace.js +66 -0
  260. package/skills/cnb-skill/scripts/modules/workspace/get-workspace-detail.js +75 -0
  261. package/skills/cnb-skill/scripts/modules/workspace/list-workspaces.js +72 -0
  262. package/skills/cnb-skill/scripts/modules/workspace/start-workspace.js +70 -0
  263. package/skills/cnb-skill/scripts/modules/workspace/workspace-stop.js +66 -0
  264. package/skills/code-review/README.md +3 -0
  265. package/skills/code-review/SKILL.md +131 -0
  266. package/skills/code-review/hooks/hooks.json +15 -0
  267. package/skills/diagnose-pr-pipeline/README.md +3 -0
  268. package/skills/diagnose-pr-pipeline/SKILL.md +88 -0
  269. package/skills/dialog-ci-log/README.md +16 -0
  270. package/skills/dialog-ci-log/SKILL.md +41 -0
  271. package/skills/dialog-ci-log/scrips/get-failed-stage-logs.js +124 -0
  272. package/skills/pr-diff/README.md +3 -0
  273. package/skills/pr-diff/SKILL.md +97 -0
  274. package/skills/pr-summary/README.md +3 -0
  275. package/skills/pr-summary/SKILL.md +70 -0
  276. package/skills/tapd-resource-fetcher/README.md +3 -0
  277. package/skills/tapd-resource-fetcher/SKILL.md +97 -0
  278. package/skills/text-path-converter/README.md +3 -0
  279. package/skills/text-path-converter/SKILL.md +30 -0
  280. package/skills/text-path-converter/scripts/convertLink.js +148 -0
  281. package/test.js +1 -0
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/commit-assets/download/{commit_id}/{filename}
21
+ */
22
+
23
+ /**
24
+ * @description getCommitAssets request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetCommitAssetsRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetCommitAssetsError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-contents:r
42
+ * @tags Git
43
+ * @name getCommitAssets
44
+ * @summary 发起一个获取 commits 附件的请求, 302到有一定效期的下载地址。Get a request to fetch a commit assets and returns 302 redirect to the assets URL with specific valid time.
45
+ * @request get:/{repo}/-/commit-assets/download/{commit_id}/{filename}
46
+
47
+ ----------------------------------
48
+ * @param {GetCommitAssetsParams} arg0 - getCommitAssets request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ commit_id,
54
+ filename,
55
+ ...query
56
+ }, {
57
+ req,
58
+ options,
59
+ ...axiosConfig
60
+ } = {}) {
61
+ return await _core.default.request({
62
+ ...axiosConfig,
63
+ _next_req: req,
64
+ options: options,
65
+ url: `/${repo}/-/commit-assets/download/${commit_id}/${filename}`,
66
+ _apiTag: "/{repo}/-/commit-assets/download/{commit_id}/{filename}",
67
+ method: "get",
68
+ params: query,
69
+ _originParams: {
70
+ method: "get",
71
+ _apiTag: "/{repo}/-/commit-assets/download/{commit_id}/{filename}",
72
+ path: {
73
+ repo,
74
+ commit_id,
75
+ filename
76
+ },
77
+ query: query
78
+ }
79
+ });
80
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/commit-statuses/{commitish}
21
+ */
22
+
23
+ /**
24
+ * @description getCommitStatuses request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetCommitStatusesRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetCommitStatusesError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getCommitStatuses
44
+ * @summary 查询指定 commit 的提交状态。List commit check statuses.
45
+ * @request get:/{repo}/-/git/commit-statuses/{commitish}
46
+
47
+ ----------------------------------
48
+ * @param {GetCommitStatusesParams} arg0 - getCommitStatuses request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ commitish
54
+ }, {
55
+ req,
56
+ options,
57
+ ...axiosConfig
58
+ } = {}) {
59
+ return await _core.default.request({
60
+ ...axiosConfig,
61
+ _next_req: req,
62
+ options: options,
63
+ url: `/${repo}/-/git/commit-statuses/${commitish}`,
64
+ _apiTag: "/{repo}/-/git/commit-statuses/{commitish}",
65
+ method: "get",
66
+ _originParams: {
67
+ method: "get",
68
+ _apiTag: "/{repo}/-/git/commit-statuses/{commitish}",
69
+ path: {
70
+ repo,
71
+ commitish
72
+ }
73
+ }
74
+ });
75
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/commits/{ref}
21
+ */
22
+
23
+ /**
24
+ * @description getCommit request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetCommitRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetCommitError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getCommit
44
+ * @summary 查询指定 commit。Get a commit.
45
+ * @request get:/{repo}/-/git/commits/{ref}
46
+
47
+ ----------------------------------
48
+ * @param {GetCommitParams} arg0 - getCommit request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ ref
54
+ }, {
55
+ req,
56
+ options,
57
+ ...axiosConfig
58
+ } = {}) {
59
+ return await _core.default.request({
60
+ ...axiosConfig,
61
+ _next_req: req,
62
+ options: options,
63
+ url: `/${repo}/-/git/commits/${ref}`,
64
+ _apiTag: "/{repo}/-/git/commits/{ref}",
65
+ method: "get",
66
+ _originParams: {
67
+ method: "get",
68
+ _apiTag: "/{repo}/-/git/commits/{ref}",
69
+ path: {
70
+ repo,
71
+ ref
72
+ }
73
+ }
74
+ });
75
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/compare/{base_head}
21
+ */
22
+
23
+ /**
24
+ * @description getCompareCommits request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetCompareCommitsRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetCompareCommitsError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getCompareCommits
44
+ * @summary 比较两个提交、分支或标签之间差异的接口。Compare two commits, branches, or tags.
45
+ * @request get:/{repo}/-/git/compare/{base_head}
46
+
47
+ ----------------------------------
48
+ * @param {GetCompareCommitsParams} arg0 - getCompareCommits request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ base_head
54
+ }, {
55
+ req,
56
+ options,
57
+ ...axiosConfig
58
+ } = {}) {
59
+ return await _core.default.request({
60
+ ...axiosConfig,
61
+ _next_req: req,
62
+ options: options,
63
+ url: `/${repo}/-/git/compare/${base_head}`,
64
+ _apiTag: "/{repo}/-/git/compare/{base_head}",
65
+ method: "get",
66
+ _originParams: {
67
+ method: "get",
68
+ _apiTag: "/{repo}/-/git/compare/{base_head}",
69
+ path: {
70
+ repo,
71
+ base_head
72
+ }
73
+ }
74
+ });
75
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/contents
21
+ */
22
+
23
+ /**
24
+ * @description getContentWithoutPath request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetContentWithoutPathRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetContentWithoutPathError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getContentWithoutPath
44
+ * @summary 查询仓库文件和目录内容。List repository files and directories.
45
+ * @request get:/{repo}/-/git/contents
46
+
47
+ ----------------------------------
48
+ * @param {GetContentWithoutPathParams} arg0 - getContentWithoutPath request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ ...query
54
+ }, {
55
+ req,
56
+ options,
57
+ ...axiosConfig
58
+ } = {}) {
59
+ return await _core.default.request({
60
+ ...axiosConfig,
61
+ _next_req: req,
62
+ options: options,
63
+ url: `/${repo}/-/git/contents`,
64
+ _apiTag: "/{repo}/-/git/contents",
65
+ method: "get",
66
+ params: query,
67
+ _originParams: {
68
+ method: "get",
69
+ _apiTag: "/{repo}/-/git/contents",
70
+ path: {
71
+ repo
72
+ },
73
+ query: query
74
+ }
75
+ });
76
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/contents/{file_path}
21
+ */
22
+
23
+ /**
24
+ * @description getContent request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetContentRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetContentError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getContent
44
+ * @summary 查询仓库文件列表或文件。List repository files or file.
45
+ * @request get:/{repo}/-/git/contents/{file_path}
46
+
47
+ ----------------------------------
48
+ * @param {GetContentParams} arg0 - getContent request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ file_path,
54
+ ...query
55
+ }, {
56
+ req,
57
+ options,
58
+ ...axiosConfig
59
+ } = {}) {
60
+ return await _core.default.request({
61
+ ...axiosConfig,
62
+ _next_req: req,
63
+ options: options,
64
+ url: `/${repo}/-/git/contents/${file_path}`,
65
+ _apiTag: "/{repo}/-/git/contents/{file_path}",
66
+ method: "get",
67
+ params: query,
68
+ _originParams: {
69
+ method: "get",
70
+ _apiTag: "/{repo}/-/git/contents/{file_path}",
71
+ path: {
72
+ repo,
73
+ file_path
74
+ },
75
+ query: query
76
+ }
77
+ });
78
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/head
21
+ */
22
+
23
+ /**
24
+ * @description Other reuqest params
25
+ */
26
+
27
+ /**
28
+ * @description GetHeadRes Success Response Type
29
+ */
30
+
31
+ /**
32
+ * @description GetHeadError Error Response Type
33
+ */
34
+
35
+ /**
36
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
37
+ * repo-code:r
38
+ * @tags Git
39
+ * @name getHead
40
+ * @summary 获取仓库默认分支。Get the default branch of the repository.
41
+ * @request get:/{repo}/-/git/head
42
+
43
+ ----------------------------------
44
+ * @param {string} arg0
45
+ * @param {RequestConfig} arg1 - Other reuqest params
46
+ */
47
+ async function _default(repo, {
48
+ req,
49
+ options,
50
+ ...axiosConfig
51
+ } = {}) {
52
+ return await _core.default.request({
53
+ ...axiosConfig,
54
+ _next_req: req,
55
+ options: options,
56
+ url: `/${repo}/-/git/head`,
57
+ _apiTag: "/{repo}/-/git/head",
58
+ method: "get",
59
+ _originParams: {
60
+ method: "get",
61
+ _apiTag: "/{repo}/-/git/head",
62
+ path: {
63
+ repo
64
+ }
65
+ }
66
+ });
67
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{slug}/-/lfs/{oid}
21
+ */
22
+
23
+ /**
24
+ * @description getPresignedLFSDownloadLink request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetPresignedLFSDownloadLinkRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetPresignedLFSDownloadLinkError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getPresignedLFSDownloadLink
44
+ * @summary 获取 git lfs 文件下载链接
45
+ * @request get:/{slug}/-/lfs/{oid}
46
+
47
+ ----------------------------------
48
+ * @param {GetPresignedLFSDownloadLinkParams} arg0 - getPresignedLFSDownloadLink request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ slug,
53
+ oid,
54
+ ...query
55
+ }, {
56
+ req,
57
+ options,
58
+ ...axiosConfig
59
+ } = {}) {
60
+ return await _core.default.request({
61
+ ...axiosConfig,
62
+ _next_req: req,
63
+ options: options,
64
+ url: `/${slug}/-/lfs/${oid}`,
65
+ _apiTag: "/{slug}/-/lfs/{oid}",
66
+ method: "get",
67
+ params: query,
68
+ _originParams: {
69
+ method: "get",
70
+ _apiTag: "/{slug}/-/lfs/{oid}",
71
+ path: {
72
+ slug,
73
+ oid
74
+ },
75
+ query: query
76
+ }
77
+ });
78
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = _default;
7
+ var _core = _interopRequireDefault(require("../../core/core.js"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // @ts-nocheck
10
+ /* tslint:disable */
11
+ /* eslint-disable */
12
+ /*
13
+ * -------------------------------------------------------------------------
14
+ * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
+ * ## ##
16
+ * ## AUTHOR: bapelin ##
17
+ * ## SOURCE: https://cnb.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /{repo}/-/git/raw/{ref_with_path}
21
+ */
22
+
23
+ /**
24
+ * @description getRaw request params
25
+ */
26
+
27
+ /**
28
+ * @description Other reuqest params
29
+ */
30
+
31
+ /**
32
+ * @description GetRawRes Success Response Type
33
+ */
34
+
35
+ /**
36
+ * @description GetRawError Error Response Type
37
+ */
38
+
39
+ /**
40
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
+ * repo-code:r
42
+ * @tags Git
43
+ * @name getRaw
44
+ * @summary 获得仓库指定文件内容
45
+ * @request get:/{repo}/-/git/raw/{ref_with_path}
46
+
47
+ ----------------------------------
48
+ * @param {GetRawParams} arg0 - getRaw request params
49
+ * @param {RequestConfig} arg1 - Other reuqest params
50
+ */
51
+ async function _default({
52
+ repo,
53
+ ref_with_path,
54
+ ...query
55
+ }, {
56
+ req,
57
+ options,
58
+ ...axiosConfig
59
+ } = {}) {
60
+ return await _core.default.request({
61
+ ...axiosConfig,
62
+ _next_req: req,
63
+ options: options,
64
+ url: `/${repo}/-/git/raw/${ref_with_path}`,
65
+ _apiTag: "/{repo}/-/git/raw/{ref_with_path}",
66
+ method: "get",
67
+ params: query,
68
+ _originParams: {
69
+ method: "get",
70
+ _apiTag: "/{repo}/-/git/raw/{ref_with_path}",
71
+ path: {
72
+ repo,
73
+ ref_with_path
74
+ },
75
+ query: query
76
+ }
77
+ });
78
+ }