siluzan-tso-cli 1.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +66 -0
- package/assets/siluzan-ads/SKILL.md +123 -0
- package/assets/siluzan-ads/references/accounts.md +644 -0
- package/assets/siluzan-ads/references/aigc.md +176 -0
- package/assets/siluzan-ads/references/finance.md +303 -0
- package/assets/siluzan-ads/references/google-ads-test.md +162 -0
- package/assets/siluzan-ads/references/google-ads.md +918 -0
- package/assets/siluzan-ads/references/open-account-by-media.md +61 -0
- package/assets/siluzan-ads/references/open-account-google-ui.md +121 -0
- package/assets/siluzan-ads/references/reporting.md +511 -0
- package/assets/siluzan-ads/references/setup.md +79 -0
- package/assets/siluzan-ads/references/tips.md +236 -0
- package/assets/siluzan-ads/references/tso-home.md +96 -0
- package/assets/siluzan-ads/references/workflows.md +969 -0
- package/dist/commands/account-history.d.ts +13 -0
- package/dist/commands/account-history.js +87 -0
- package/dist/commands/account-manage.d.ts +253 -0
- package/dist/commands/account-manage.js +817 -0
- package/dist/commands/ad.d.ts +378 -0
- package/dist/commands/ad.js +1169 -0
- package/dist/commands/ai-creation.d.ts +54 -0
- package/dist/commands/ai-creation.js +208 -0
- package/dist/commands/aigc.d.ts +27 -0
- package/dist/commands/aigc.js +222 -0
- package/dist/commands/balance.d.ts +9 -0
- package/dist/commands/balance.js +68 -0
- package/dist/commands/clue.d.ts +16 -0
- package/dist/commands/clue.js +103 -0
- package/dist/commands/config.d.ts +18 -0
- package/dist/commands/config.js +135 -0
- package/dist/commands/forewarning.d.ts +78 -0
- package/dist/commands/forewarning.js +275 -0
- package/dist/commands/init.d.ts +10 -0
- package/dist/commands/init.js +141 -0
- package/dist/commands/invoice-info.d.ts +43 -0
- package/dist/commands/invoice-info.js +159 -0
- package/dist/commands/invoice.d.ts +55 -0
- package/dist/commands/invoice.js +212 -0
- package/dist/commands/keyword.d.ts +14 -0
- package/dist/commands/keyword.js +125 -0
- package/dist/commands/list-accounts.d.ts +11 -0
- package/dist/commands/list-accounts.js +219 -0
- package/dist/commands/login.d.ts +13 -0
- package/dist/commands/login.js +122 -0
- package/dist/commands/open-account.d.ts +291 -0
- package/dist/commands/open-account.js +988 -0
- package/dist/commands/optimize.d.ts +39 -0
- package/dist/commands/optimize.js +143 -0
- package/dist/commands/report.d.ts +55 -0
- package/dist/commands/report.js +274 -0
- package/dist/commands/stats.d.ts +13 -0
- package/dist/commands/stats.js +109 -0
- package/dist/commands/transfer.d.ts +37 -0
- package/dist/commands/transfer.js +124 -0
- package/dist/config/defaults.d.ts +6 -0
- package/dist/config/defaults.js +11 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1973 -0
- package/dist/templates/load-templates.d.ts +5 -0
- package/dist/templates/load-templates.js +60 -0
- package/dist/types/ads.d.ts +138 -0
- package/dist/types/ads.js +4 -0
- package/dist/utils/auth.d.ts +40 -0
- package/dist/utils/auth.js +277 -0
- package/package.json +48 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import type { AdsConfig } from "../types/ads.js";
|
|
2
|
+
export interface ListGroupsOptions {
|
|
3
|
+
token?: string;
|
|
4
|
+
json?: boolean;
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* 查询当前账号下的广告主组列表。
|
|
9
|
+
* GET /query/profile/steward-individual
|
|
10
|
+
*
|
|
11
|
+
* 接口返回完整 profile 对象,广告主组在 profile.mediaAccountGroups 中。
|
|
12
|
+
* 每个广告主组的 key 字段即为开户时需要的 MediaAccountGroupId(magKey)。
|
|
13
|
+
*/
|
|
14
|
+
export declare function runListAdvertiserGroups(opts: ListGroupsOptions): Promise<void>;
|
|
15
|
+
export interface OpenAccountYandexOptions {
|
|
16
|
+
token?: string;
|
|
17
|
+
/** 公司名称(广告主名称),用于自动创建/匹配广告主组,与网页行为一致 */
|
|
18
|
+
company: string;
|
|
19
|
+
/** 可选:手动指定广告主组 magKey,指定后跳过自动创建/匹配逻辑 */
|
|
20
|
+
advertiserId?: string;
|
|
21
|
+
/** Yandex 登录名(英文字母 + 数字,不含空格) */
|
|
22
|
+
login: string;
|
|
23
|
+
firstName: string;
|
|
24
|
+
lastName: string;
|
|
25
|
+
/** 通知邮箱 */
|
|
26
|
+
email: string;
|
|
27
|
+
/** 税号 (Tin / INN),类型固定为 FOREIGN_LEGAL */
|
|
28
|
+
tin: string;
|
|
29
|
+
/** 联系电话 */
|
|
30
|
+
phone: string;
|
|
31
|
+
/** 税务编号(TaxpayerNumber)*/
|
|
32
|
+
taxpayerNumber?: string;
|
|
33
|
+
/** 官网地址 */
|
|
34
|
+
webUrl?: string;
|
|
35
|
+
verbose?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 提交 Yandex 开户申请(无图片,全部为文字参数)。
|
|
39
|
+
* 流程:按公司名自动创建/匹配广告主组(与网页一致)→ POST /command/media-account/AddAgencyClient
|
|
40
|
+
*/
|
|
41
|
+
export declare function runOpenAccountYandex(opts: OpenAccountYandexOptions): Promise<void>;
|
|
42
|
+
export interface OpenAccountBingOptions {
|
|
43
|
+
token?: string;
|
|
44
|
+
/** 可选:手动指定广告主组 magKey,指定后跳过自动创建/匹配逻辑 */
|
|
45
|
+
advertiserId?: string;
|
|
46
|
+
/** 广告主名称(公司全称),用于自动创建/匹配广告主组,与网页行为一致 */
|
|
47
|
+
advertiserName: string;
|
|
48
|
+
/** 简称 */
|
|
49
|
+
nameShort: string;
|
|
50
|
+
/** 省/州 */
|
|
51
|
+
province: string;
|
|
52
|
+
/** 城市 */
|
|
53
|
+
city: string;
|
|
54
|
+
/** 邮编 */
|
|
55
|
+
postcode?: string;
|
|
56
|
+
/** 详细地址 */
|
|
57
|
+
address: string;
|
|
58
|
+
/** 推广链接 */
|
|
59
|
+
promotionLink: string;
|
|
60
|
+
/** 行业名称(来自 open-account bing-industries 的 name 字段) */
|
|
61
|
+
tradeId: string;
|
|
62
|
+
/** 经理账户 CID(AdvertiserCid)*/
|
|
63
|
+
advertiserCid?: string;
|
|
64
|
+
/** 经理账户名称(AdvertiserName)*/
|
|
65
|
+
advertiserName2?: string;
|
|
66
|
+
/** 账户数量,默认 1 */
|
|
67
|
+
accountCount?: number;
|
|
68
|
+
/** 本地营业执照文件路径(必填,用于上传 FileId) */
|
|
69
|
+
licenseFile: string;
|
|
70
|
+
verbose?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 提交 Bing/BingV2 开户申请。
|
|
74
|
+
* 流程:先上传营业执照 → 自动创建/匹配广告主组 → 提交开户请求。
|
|
75
|
+
* 与网页 bingOpenAnAccount.vue 行为一致,用户只需填公司名,无需关心 magKey。
|
|
76
|
+
* POST /command/media-account/AddBingV2Account
|
|
77
|
+
*/
|
|
78
|
+
export declare function runOpenAccountBing(opts: OpenAccountBingOptions): Promise<void>;
|
|
79
|
+
export interface OpenAccountKwaiOptions {
|
|
80
|
+
token?: string;
|
|
81
|
+
/** 可选:手动指定广告主组 magKey,指定后跳过自动创建/匹配逻辑 */
|
|
82
|
+
advertiserId?: string;
|
|
83
|
+
/** 主体代码(营业执照号) */
|
|
84
|
+
licenceId: string;
|
|
85
|
+
/** 主体注册国家代码,如 CN */
|
|
86
|
+
licenceCountry: string;
|
|
87
|
+
/** 主体注册地(省市区详细地址) */
|
|
88
|
+
licenceLocation: string;
|
|
89
|
+
/** 营业范围 */
|
|
90
|
+
businessScope: string;
|
|
91
|
+
/** 产品/品牌名称 */
|
|
92
|
+
product: string;
|
|
93
|
+
/** 账户类型:1=效果广告 2=品牌广告 */
|
|
94
|
+
adType: number;
|
|
95
|
+
/** 产品或品牌网址 */
|
|
96
|
+
productUrl: string;
|
|
97
|
+
/** 实体类型,如 INDIVIDUAL 或 ENTERPRISE */
|
|
98
|
+
licenceIdType: string;
|
|
99
|
+
/** 账户名称 */
|
|
100
|
+
accountName: string;
|
|
101
|
+
/** 公司主体名称 */
|
|
102
|
+
companyName: string;
|
|
103
|
+
/** 一级行业 ID(来自 Kwai 行业列表) */
|
|
104
|
+
industryId1: string;
|
|
105
|
+
/** 二级行业 ID */
|
|
106
|
+
industryId2: string;
|
|
107
|
+
/** 有效期类型:1=有限期 2=长期有效 */
|
|
108
|
+
expireType: number;
|
|
109
|
+
/** 到期时间戳(毫秒),expireType=1 时填写,expireType=2 时为 0 */
|
|
110
|
+
expireAt?: number;
|
|
111
|
+
/** 投放地区国家代码,如 US */
|
|
112
|
+
targetCountry: string;
|
|
113
|
+
/** 本地营业执照文件路径(图片将上传至 Kwai,获取 blobstoreKey) */
|
|
114
|
+
licenseFile: string;
|
|
115
|
+
verbose?: boolean;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* 提交 Kwai 开户申请。
|
|
119
|
+
* 流程:先上传营业执照图片至 Kwai → 自动创建/匹配广告主组 → 提交开户请求。
|
|
120
|
+
* 与网页 KwaiOpenAnAccount.vue 行为一致,用户只需填公司名,无需关心 magKey。
|
|
121
|
+
* POST /command/media-account/AddKwaiAccount
|
|
122
|
+
*/
|
|
123
|
+
export declare function runOpenAccountKwai(opts: OpenAccountKwaiOptions): Promise<void>;
|
|
124
|
+
/** 与 openAnAccount.vue 中 timezonelist() 使用的行结构一致 */
|
|
125
|
+
export interface GoogleTimezoneRow {
|
|
126
|
+
Code?: string;
|
|
127
|
+
Name?: string;
|
|
128
|
+
Time?: string;
|
|
129
|
+
[key: string]: unknown;
|
|
130
|
+
}
|
|
131
|
+
export interface OpenAccountGoogleTimezonesOptions {
|
|
132
|
+
token?: string;
|
|
133
|
+
json?: boolean;
|
|
134
|
+
verbose?: boolean;
|
|
135
|
+
/** 按 Code / Name / 展示文案过滤(忽略大小写) */
|
|
136
|
+
keyword?: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* GET /query/media-account/Google/TimeZoneInfo/ReadFile
|
|
140
|
+
* 与网页「第二步」广告账户表格里时区下拉同一数据源。
|
|
141
|
+
*/
|
|
142
|
+
export declare function fetchGoogleTimezoneRows(config: AdsConfig, verbose?: boolean): Promise<GoogleTimezoneRow[]>;
|
|
143
|
+
export declare function runOpenAccountGoogleTimezones(opts: OpenAccountGoogleTimezonesOptions): Promise<void>;
|
|
144
|
+
export interface OpenAccountGoogleWizardOptions {
|
|
145
|
+
token?: string;
|
|
146
|
+
verbose?: boolean;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 交互式 Google 开户向导:字段顺序与网页 openAnAccount(Google)两步表单一致,
|
|
150
|
+
* 并说明顶部「五步」进度条含义(CLI 只能代劳前两步的数据采集与提交)。
|
|
151
|
+
*/
|
|
152
|
+
export declare function runOpenAccountGoogleWizard(opts: OpenAccountGoogleWizardOptions): Promise<void>;
|
|
153
|
+
export interface OpenAccountGoogleOptions {
|
|
154
|
+
token?: string;
|
|
155
|
+
/**
|
|
156
|
+
* 广告主组 magKey(与网页「广告主组」对应)。
|
|
157
|
+
* 一般无需填写:CLI 会按「公司名称」在后台查找或创建广告主组,与网页第一步一致。
|
|
158
|
+
*/
|
|
159
|
+
advertiserId?: string;
|
|
160
|
+
/** 广告账户名称(显示名,每条最多 22 个字符) */
|
|
161
|
+
accountName: string;
|
|
162
|
+
/** 货币:USD | CNY */
|
|
163
|
+
currency: string;
|
|
164
|
+
/** 时区,如 Asia/Hong_Kong(来自 Google 时区列表)*/
|
|
165
|
+
timezone: string;
|
|
166
|
+
/** 受邀用户邮箱(必须是 .com 结尾的邮箱,账户将发送邀请至该邮箱) */
|
|
167
|
+
inviteEmail: string;
|
|
168
|
+
/** 受邀用户角色:Standard | Admin(默认 Standard)*/
|
|
169
|
+
inviteRole?: string;
|
|
170
|
+
/** 公司名称 */
|
|
171
|
+
company: string;
|
|
172
|
+
/** 行业一级(可选;网页端已弱化,不传则按空处理) */
|
|
173
|
+
industryLevel1?: string;
|
|
174
|
+
/** 行业二级(可选) */
|
|
175
|
+
industryLevel2?: string;
|
|
176
|
+
/** 推广链接(公司官网或产品页) */
|
|
177
|
+
promotionLink: string;
|
|
178
|
+
/** 推广类型:b2b | b2c | app */
|
|
179
|
+
promotionType: string;
|
|
180
|
+
/** 是否自动分配邮箱(默认 false) */
|
|
181
|
+
autoAllotMailbox?: boolean;
|
|
182
|
+
/** 本次开户数量(1-3,默认 1) */
|
|
183
|
+
counts?: number;
|
|
184
|
+
/** MCC 经理账户 ID(可选) */
|
|
185
|
+
managerCustomerId?: string;
|
|
186
|
+
verbose?: boolean;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* 提交 Google 开户申请(无需图片,无 OAuth 跳转)。
|
|
190
|
+
* POST /command/media-account/google
|
|
191
|
+
* Header: s-command-type: AddExistingMediaAccountList
|
|
192
|
+
*
|
|
193
|
+
* 未传 advertiserId 时,会先 PUT 创建/更新广告主组(与网页一致),再提交开户。
|
|
194
|
+
* customer_info.industry 格式为 "level1-level2";不传行业时多为 "-" 或空串,与网页当前行为对齐。
|
|
195
|
+
*/
|
|
196
|
+
export declare function runOpenAccountGoogle(opts: OpenAccountGoogleOptions): Promise<void>;
|
|
197
|
+
export interface OpenAccountTikTokOptions {
|
|
198
|
+
token?: string;
|
|
199
|
+
/** 可选:手动指定广告主组 magKey,指定后跳过自动创建/匹配逻辑 */
|
|
200
|
+
advertiserId?: string;
|
|
201
|
+
/** 广告账户名称 */
|
|
202
|
+
accountName: string;
|
|
203
|
+
/** 货币:USD | CNY */
|
|
204
|
+
currency: string;
|
|
205
|
+
/** 时区,如 UTC+8(来自 TikTok 时区列表) */
|
|
206
|
+
timezone: string;
|
|
207
|
+
/** 公司名称 */
|
|
208
|
+
company: string;
|
|
209
|
+
/** 行业 ID(数字,从 TikTok 行业列表的叶子节点取值) */
|
|
210
|
+
industryId: number;
|
|
211
|
+
/** 注册地国家代码,如 CN */
|
|
212
|
+
registeredArea: string;
|
|
213
|
+
/** 推广链接 */
|
|
214
|
+
promotionLink: string;
|
|
215
|
+
/** 营业执照编码(社会信用代码)*/
|
|
216
|
+
licenseNo: string;
|
|
217
|
+
/** 本地营业执照图片路径(将同时上传到 TikTok 和 Siluzan 存档)*/
|
|
218
|
+
licenseFile: string;
|
|
219
|
+
/** 业务中心类型:Shop | Store | App | B2B | Other(默认 Shop)*/
|
|
220
|
+
businessCentreType?: string;
|
|
221
|
+
/** BC 合作伙伴 ID(可选,即 bc_id)*/
|
|
222
|
+
partnerId?: string;
|
|
223
|
+
/** 法人姓名(若接口要求 unionpay 验证时才需要)*/
|
|
224
|
+
representativeName?: string;
|
|
225
|
+
/** 法人身份证号 */
|
|
226
|
+
representativeId?: string;
|
|
227
|
+
/** 法人银联账号 */
|
|
228
|
+
unionpayAccount?: string;
|
|
229
|
+
/** 法人手机号 */
|
|
230
|
+
representativePhone?: string;
|
|
231
|
+
/** 本次开户数量(1-10,默认 1) */
|
|
232
|
+
counts?: number;
|
|
233
|
+
verbose?: boolean;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* 提交 TikTok 开户申请。
|
|
237
|
+
* 流程:
|
|
238
|
+
* 1. 上传营业执照到 TikTok → 获取 license_image_id
|
|
239
|
+
* 2. 上传营业执照到 Siluzan 附件系统 → 获取 imageId(存档 + MAG 用)
|
|
240
|
+
* 3. 按公司名自动创建/匹配广告主组(与网页 openAnAccount.vue 第一步一致)
|
|
241
|
+
* 4. 查询是否需要法人银联验证信息
|
|
242
|
+
* 5. POST /command/media-account(Header: s-command-type: AddExistingMediaAccountList)
|
|
243
|
+
*/
|
|
244
|
+
export declare function runOpenAccountTikTok(opts: OpenAccountTikTokOptions): Promise<void>;
|
|
245
|
+
export interface OpenAccountTikTokTimezonesOptions {
|
|
246
|
+
token?: string;
|
|
247
|
+
json?: boolean;
|
|
248
|
+
keyword?: string;
|
|
249
|
+
verbose?: boolean;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* GET /query/media-account/tiktok/TikTokTimeZoneInfo/Read
|
|
253
|
+
* 与网页 openAnAccount(TikTok)时区下拉同一数据源,结构与 Google 时区接口一致。
|
|
254
|
+
*/
|
|
255
|
+
export declare function runOpenAccountTikTokTimezones(opts: OpenAccountTikTokTimezonesOptions): Promise<void>;
|
|
256
|
+
export interface OpenAccountTikTokIndustriesOptions {
|
|
257
|
+
token?: string;
|
|
258
|
+
json?: boolean;
|
|
259
|
+
keyword?: string;
|
|
260
|
+
verbose?: boolean;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* GET /query/media-account/tiktok/TikTokIndustryInfo/Read
|
|
264
|
+
* 返回 TikTok 行业列表,前端以两级 Cascader 展示。
|
|
265
|
+
* ID 第 5-6 位(0-indexed 4-5)为 "01" 的是一级分类,其余与同一级 2-4 位相同的是其子项。
|
|
266
|
+
* 提交开户时只传叶子节点 ID(--industry-id)。
|
|
267
|
+
*/
|
|
268
|
+
export declare function runOpenAccountTikTokIndustries(opts: OpenAccountTikTokIndustriesOptions): Promise<void>;
|
|
269
|
+
export interface OpenAccountTikTokAreasOptions {
|
|
270
|
+
token?: string;
|
|
271
|
+
json?: boolean;
|
|
272
|
+
keyword?: string;
|
|
273
|
+
verbose?: boolean;
|
|
274
|
+
}
|
|
275
|
+
export interface OpenAccountBingIndustriesOptions {
|
|
276
|
+
token?: string;
|
|
277
|
+
json?: boolean;
|
|
278
|
+
keyword?: string;
|
|
279
|
+
verbose?: boolean;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* GET /query/media-account/bing/BingTradeList/Read
|
|
283
|
+
* 返回 BingV2 行业列表(中文名),name 字段即为 --trade-id 的传入值。
|
|
284
|
+
*/
|
|
285
|
+
export declare function runOpenAccountBingIndustries(opts: OpenAccountBingIndustriesOptions): Promise<void>;
|
|
286
|
+
/**
|
|
287
|
+
* GET /query/media-account/tiktok/TikTokAreacode/Read
|
|
288
|
+
* 返回 TikTok 注册地(--registered-area)的合法值列表。
|
|
289
|
+
* Key 为提交值(如 "CN"),Value 为显示名。
|
|
290
|
+
*/
|
|
291
|
+
export declare function runOpenAccountTikTokAreas(opts: OpenAccountTikTokAreasOptions): Promise<void>;
|