@kevisual/cnb 0.0.56 → 0.0.58

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.
@@ -0,0 +1,145 @@
1
+ import { CNBCore, CNBCoreOptions, Result } from "../cnb-core.ts";
2
+
3
+ /**
4
+ * 制品类型
5
+ */
6
+ export type PackageType =
7
+ | "all"
8
+ | "docker"
9
+ | "helm"
10
+ | "docker-model"
11
+ | "maven"
12
+ | "npm"
13
+ | "ohpm"
14
+ | "pypi"
15
+ | "nuget"
16
+ | "composer"
17
+ | "conan"
18
+ | "cargo";
19
+
20
+ /**
21
+ * 制品库可见性类型
22
+ */
23
+ export type VisibilityType = "private" | "public";
24
+
25
+ /**
26
+ * 制品库排序类型
27
+ */
28
+ export type PackageOrderingType = "pull_count" | "last_push_at" | "name_ascend" | "name_descend";
29
+
30
+ /**
31
+ * 最后推送者信息
32
+ */
33
+ export type LastPusher = {
34
+ is_frozen: boolean;
35
+ is_lock: boolean;
36
+ name: string;
37
+ username: string;
38
+ };
39
+
40
+ /**
41
+ * 制品基本信息
42
+ */
43
+ export type Package = {
44
+ count: number;
45
+ description: string;
46
+ labels: string[];
47
+ last_artifact_name: string;
48
+ last_pusher: LastPusher;
49
+ name: string;
50
+ package: string;
51
+ package_type: PackageType;
52
+ pull_count: number;
53
+ recent_pull_count: number;
54
+ };
55
+
56
+ /**
57
+ * 制品库信息
58
+ */
59
+ export type Registry = {
60
+ created_at: string;
61
+ description: string;
62
+ name: string;
63
+ owner: string;
64
+ type: PackageType;
65
+ visibility: VisibilityType;
66
+ };
67
+
68
+ /**
69
+ * 制品库列表查询参数
70
+ */
71
+ export type ListGroupRegistriesParams = {
72
+ /** 页码 */
73
+ page?: number;
74
+ /** 每页数量 */
75
+ page_size?: number;
76
+ /** 制品仓库类型 */
77
+ registry_type?: "npm" | "maven" | "ohpm";
78
+ /** 制品仓库可见性类型 */
79
+ filter_type?: VisibilityType;
80
+ /** 排序字段 */
81
+ order_by?: "created_at" | "name";
82
+ };
83
+
84
+ /**
85
+ * 制品列表查询参数
86
+ */
87
+ export type ListPackagesParams = {
88
+ /** 顺序类型 */
89
+ ordering?: PackageOrderingType;
90
+ /** 关键字,搜索制品名称 */
91
+ name?: string;
92
+ };
93
+
94
+ /**
95
+ * 制品库管理
96
+ */
97
+ export class RegistryPackage extends CNBCore {
98
+ constructor(options: CNBCoreOptions) {
99
+ super(options);
100
+ }
101
+
102
+ /**
103
+ * 查询组织下面用户有权限查看到的制品仓库
104
+ * @param slug 组织 slug
105
+ * @param params 查询参数
106
+ */
107
+ listGroupRegistries(
108
+ slug: string,
109
+ params?: ListGroupRegistriesParams
110
+ ): Promise<Result<Registry[]>> {
111
+ const url = `/${slug}/-/registries`;
112
+ return this.get({
113
+ url,
114
+ params,
115
+ headers: {
116
+ Accept: "application/vnd.cnb.api+json",
117
+ },
118
+ });
119
+ }
120
+
121
+ /**
122
+ * 设置制品库可见性
123
+ * @param registry 制品库路径
124
+ * @param data 可见性设置
125
+ */
126
+ setVisibility(
127
+ registry: string,
128
+ data: { visibility: VisibilityType }
129
+ ): Promise<Result<void>> {
130
+ const url = `/${registry}/-/settings/set_visibility`;
131
+ return this.post({
132
+ url,
133
+ data,
134
+ });
135
+ }
136
+
137
+ /**
138
+ * 删除制品库
139
+ * @param registry 制品库路径
140
+ */
141
+ remove(registry: string): Promise<Result<void>> {
142
+ const url = `/${registry}`;
143
+ return this.delete({ url });
144
+ }
145
+ }