siluzan-tso-cli 1.0.0-beta.24 → 1.0.0-beta.26

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 CHANGED
@@ -20,7 +20,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
20
20
  siluzan-tso init --force # 强制覆盖已存在文件
21
21
  ```
22
22
 
23
- > **注意**:当前为测试版(1.0.0-beta.24),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
23
+ > **注意**:当前为测试版(1.0.0-beta.26),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
24
24
 
25
25
  | 助手 | 建议 `--ai` |
26
26
  |------|-------------|
package/dist/index.js CHANGED
@@ -974,7 +974,7 @@ function parseTargets(raw) {
974
974
  return [...new Set(result)];
975
975
  }
976
976
  function skillRoot() {
977
- return path5.join(__dirname, "..", "skill");
977
+ return path5.join(__dirname, "skill");
978
978
  }
979
979
  async function writeSkillFilesToDir(destDir, skillFiles, force) {
980
980
  await fs5.mkdir(destDir, { recursive: true });
@@ -6809,23 +6809,19 @@ async function runOpenAccountYandex(opts) {
6809
6809
  opts.advertiserId
6810
6810
  );
6811
6811
  const body = {
6812
- MediaAccountGroupId: magKey,
6813
- AgencyClientInfo: {
6814
- Login: opts.login,
6815
- FirstName: opts.firstName,
6816
- LastName: opts.lastName,
6817
- Currency: "USD",
6818
- Notification: {
6819
- Email: opts.email
6812
+ mediaAccountGroupId: magKey,
6813
+ agencyClientInfo: {
6814
+ name: opts.company,
6815
+ currency: "USD",
6816
+ notification: {
6817
+ email: opts.email
6820
6818
  },
6821
- TinInfo: {
6822
- TinType: "FOREIGN_LEGAL",
6823
- Tin: opts.tin
6819
+ tinInfo: {
6820
+ tinType: "FOREIGN_LEGAL",
6821
+ tin: opts.tin
6824
6822
  },
6825
- AccountInfo: {
6826
- Phone: opts.phone,
6827
- TaxpayerNumber: opts.taxpayerNumber ?? "",
6828
- WebUrl: opts.webUrl ?? ""
6823
+ accountInfo: {
6824
+ taxpayerNumber: opts.tin
6829
6825
  }
6830
6826
  }
6831
6827
  };
@@ -6872,7 +6868,7 @@ async function uploadAttachment(filePath, apiBaseUrl, config, verbose) {
6872
6868
  if (!data.id) {
6873
6869
  throw new Error("\u4E0A\u4F20\u6587\u4EF6\u5931\u8D25\uFF1A\u54CD\u5E94\u4E2D\u672A\u5305\u542B\u6587\u4EF6 ID");
6874
6870
  }
6875
- return { id: data.id, fileName };
6871
+ return { id: data.id, fileName, storageProvider: data.storageProvider ?? "StorageAccount" };
6876
6872
  }
6877
6873
  function guessContentType(fileName) {
6878
6874
  const ext = path9.extname(fileName).toLowerCase();
@@ -6897,29 +6893,31 @@ async function runOpenAccountBing(opts) {
6897
6893
  console.log(" \u6B63\u5728\u4E0A\u4F20\u8425\u4E1A\u6267\u7167...");
6898
6894
  let fileId;
6899
6895
  let fileName;
6896
+ let storageProvider;
6900
6897
  try {
6901
6898
  const uploaded = await uploadAttachment(opts.licenseFile, config.apiBaseUrl, config, opts.verbose);
6902
6899
  fileId = uploaded.id;
6903
6900
  fileName = uploaded.fileName;
6901
+ storageProvider = uploaded.storageProvider;
6904
6902
  } catch (err) {
6905
6903
  console.error(`
6906
6904
  \u274C \u8425\u4E1A\u6267\u7167\u4E0A\u4F20\u5931\u8D25\uFF1A${err instanceof Error ? err.message : String(err)}
6907
6905
  `);
6908
6906
  process.exit(1);
6909
6907
  }
6910
- console.log(` \u8425\u4E1A\u6267\u7167\u4E0A\u4F20\u6210\u529F\uFF0CFileId: ${fileId}`);
6908
+ console.log(` \u8425\u4E1A\u6267\u7167\u4E0A\u4F20\u6210\u529F\uFF0CfileId: ${fileId}`);
6911
6909
  const magKey = await resolveGenericMagKey(
6912
6910
  config,
6913
6911
  opts.advertiserName,
6914
- { ImageId: fileId, StorageProvider: "StorageAccount" },
6912
+ { imageId: fileId, storageProvider },
6915
6913
  opts.verbose,
6916
6914
  opts.advertiserId
6917
6915
  );
6918
6916
  const accountCount = Math.min(Math.max(opts.accountCount ?? 1, 1), 6);
6919
6917
  const body = {
6920
- MediaAccountGroupId: magKey,
6921
- AccountCount: accountCount,
6922
- BingCustomerInfo: {
6918
+ mediaAccountGroupId: magKey,
6919
+ accountCount,
6920
+ bingCustomerInfo: {
6923
6921
  name: opts.advertiserName,
6924
6922
  province: opts.province,
6925
6923
  tradeId: opts.tradeId,
@@ -6928,12 +6926,14 @@ async function runOpenAccountBing(opts) {
6928
6926
  city: opts.city,
6929
6927
  address: opts.address,
6930
6928
  promotionLink: opts.promotionLink,
6931
- directAgent: "",
6932
- FileId: fileId,
6933
- FileName: fileName
6929
+ // directAgent 对应前端 pattern 字段:Direct(直接)或 Agency(代理)
6930
+ directAgent: opts.pattern,
6931
+ fileId,
6932
+ fileName
6934
6933
  },
6935
- BingV2AccountInfo: {
6936
- nameRemarkList: [],
6934
+ bingV2AccountInfo: {
6935
+ // 开户名称,对应前端表单 nameRemarkList 字段
6936
+ nameRemarkList: opts.nameRemarkList,
6937
6937
  promotionLink: opts.promotionLink,
6938
6938
  address: opts.address,
6939
6939
  city: opts.city,
@@ -6942,10 +6942,11 @@ async function runOpenAccountBing(opts) {
6942
6942
  province: opts.province,
6943
6943
  tradeId: opts.tradeId,
6944
6944
  nameShort: opts.nameShort,
6945
- FileId: fileId,
6946
- FileName: fileName,
6947
- AdvertiserCid: opts.advertiserCid ?? "",
6948
- AdvertiserName: opts.advertiserName2 ?? ""
6945
+ fileId,
6946
+ fileName,
6947
+ // 经理账号(可选),不绑定时传空字符串
6948
+ advertiserCid: opts.advertiserCid ?? "",
6949
+ advertiserName: opts.advertiserName2 ?? ""
6949
6950
  }
6950
6951
  };
6951
6952
  try {
@@ -8895,35 +8896,31 @@ var openAccountCmd = program.command("open-account").description("\u5F00\u6237\u
8895
8896
  openAccountCmd.command("list-groups").description("\u67E5\u8BE2\u5E7F\u544A\u4E3B\u7EC4\u5217\u8868\uFF08\u83B7\u53D6\u5F00\u6237\u6240\u9700\u7684 --advertiser-id\uFF09").option("-t, --token <token>", "Auth Token").option("--json", "JSON \u683C\u5F0F\u8F93\u51FA", false).option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8896
8897
  await runListAdvertiserGroups({ token: opts.token, json: opts.json, verbose: opts.verbose });
8897
8898
  });
8898
- openAccountCmd.command("yandex").description("\u63D0\u4EA4 Yandex \u5F00\u6237\u7533\u8BF7\uFF08\u65E0\u9700\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u884C\u4E3A\u4E00\u81F4\uFF09").requiredOption("--login <login>", "Yandex \u767B\u5F55\u540D\uFF08\u82F1\u6587\u5B57\u6BCD + \u6570\u5B57\uFF09").requiredOption("--first-name <name>", "\u540D\uFF08\u62FC\u97F3\u6216\u82F1\u6587\uFF09").requiredOption("--last-name <name>", "\u59D3\uFF08\u62FC\u97F3\u6216\u82F1\u6587\uFF09").requiredOption("--email <email>", "\u901A\u77E5\u90AE\u7BB1").requiredOption("--tin <tin>", "\u7A0E\u53F7 / INN\uFF08TinType \u56FA\u5B9A\u4E3A FOREIGN_LEGAL\uFF09").requiredOption("--phone <phone>", "\u8054\u7CFB\u7535\u8BDD\uFF08\u5E26\u56FD\u5BB6\u7801\uFF0C\u5982 +86188xxxxxxxx\uFF09").option("--taxpayer-number <no>", "\u7EB3\u7A0E\u4EBA\u7F16\u53F7\uFF08TaxpayerNumber\uFF09").option("--web-url <url>", "\u5B98\u7F51\u5730\u5740").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 magKey\uFF08\u4E00\u822C\u65E0\u9700\u586B\u5199\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8899
+ openAccountCmd.command("yandex").description("\u63D0\u4EA4 Yandex \u5F00\u6237\u7533\u8BF7\uFF08\u65E0\u9700\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u884C\u4E3A\u4E00\u81F4\uFF09").requiredOption("--email <email>", "\u8054\u7CFB\u90AE\u7BB1").requiredOption("--tin <tin>", "\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7\uFF08TIN / INN\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 magKey\uFF08\u4E00\u822C\u65E0\u9700\u586B\u5199\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8899
8900
  await runOpenAccountYandex({
8900
8901
  token: opts.token,
8901
8902
  company: opts.company,
8902
8903
  advertiserId: opts.advertiserId,
8903
- login: opts.login,
8904
- firstName: opts.firstName,
8905
- lastName: opts.lastName,
8906
8904
  email: opts.email,
8907
8905
  tin: opts.tin,
8908
- phone: opts.phone,
8909
- taxpayerNumber: opts.taxpayerNumber,
8910
- webUrl: opts.webUrl,
8911
8906
  verbose: opts.verbose
8912
8907
  });
8913
8908
  });
8914
- openAccountCmd.command("bing").description("\u63D0\u4EA4 Bing/BingV2 \u5F00\u6237\u7533\u8BF7\uFF08\u9700\u4E0A\u4F20\u8425\u4E1A\u6267\u7167\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--advertiser-name <name>", "\u5E7F\u544A\u4E3B\u540D\u79F0\uFF08\u516C\u53F8\u5168\u79F0\uFF0C\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--name-short <short>", "\u5E7F\u544A\u4E3B\u7B80\u79F0").requiredOption("--province <province>", "\u7701/\u5DDE").requiredOption("--city <city>", "\u57CE\u5E02").requiredOption("--address <address>", "\u8BE6\u7EC6\u5730\u5740").requiredOption("--promotion-link <url>", "\u63A8\u5E7F\u94FE\u63A5").requiredOption("--trade-id <name>", "\u884C\u4E1A\u540D\u79F0\uFF08\u6765\u81EA open-account bing-industries \u7684 name \u5B57\u6BB5\uFF09").requiredOption("--license-file <path>", "\u8425\u4E1A\u6267\u7167\u56FE\u7247\u672C\u5730\u8DEF\u5F84\uFF08JPG/PNG/PDF\uFF09").option("--postcode <code>", "\u90AE\u653F\u7F16\u7801").option("--advertiser-cid <cid>", "\u7ECF\u7406\u8D26\u6237 CID").option("--advertiser-name2 <name>", "\u7ECF\u7406\u8D26\u6237\u540D\u79F0").option("--account-count <n>", "\u5F00\u6237\u6570\u91CF\uFF081~6\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 magKey\uFF08\u4E00\u822C\u65E0\u9700\u586B\u5199\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8909
+ openAccountCmd.command("bing").description("\u63D0\u4EA4 Bing/BingV2 \u5F00\u6237\u7533\u8BF7\uFF08\u9700\u4E0A\u4F20\u8425\u4E1A\u6267\u7167\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--pattern <Direct|Agency>", "\u76F4\u63A5/\u4EE3\u7406\uFF1ADirect\uFF08\u76F4\u63A5\uFF09\u6216 Agency\uFF08\u4EE3\u7406\uFF09").requiredOption("--advertiser-name <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u5E7F\u544A\u4E3B\u5168\u79F0\uFF0C\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--name-short <short>", "\u516C\u53F8\u7B80\u79F0").requiredOption("--name-remark-list <name>", "\u5F00\u6237\u540D\u79F0\uFF08\u8D26\u6237\u663E\u793A\u540D\uFF09").requiredOption("--province <province>", "\u516C\u53F8\u6240\u5728\u7701\u4EFD").requiredOption("--city <city>", "\u516C\u53F8\u6240\u5728\u57CE\u5E02").requiredOption("--address <address>", "\u516C\u53F8\u8BE6\u7EC6\u5730\u5740").requiredOption("--postcode <code>", "\u516C\u53F8\u6240\u5728\u5730\u90AE\u7F16").requiredOption("--trade-id <name>", "\u884C\u4E1A\uFF08\u6765\u81EA open-account bing-industries \u7684 name \u5B57\u6BB5\uFF09").requiredOption("--promotion-link <url>", "\u5F00\u6237\u7F51\u5740\uFF08\u63A8\u5E7F\u94FE\u63A5\uFF09").requiredOption("--license-file <path>", "\u8425\u4E1A\u6267\u7167\u56FE\u7247\u672C\u5730\u8DEF\u5F84\uFF08JPG/PNG/PDF\uFF09").option("--account-count <n>", "\u5F00\u6237\u6570\u91CF\uFF081~6\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("--advertiser-cid <cid>", "\u7ECF\u7406\u8D26\u53F7 ID\uFF08\u53EF\u9009\uFF09").option("--advertiser-name2 <name>", "\u7ECF\u7406\u8D26\u53F7\u540D\u79F0\uFF08\u53EF\u9009\uFF0C\u4E0E --advertiser-cid \u914D\u5BF9\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 magKey\uFF08\u4E00\u822C\u65E0\u9700\u586B\u5199\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8915
8910
  await runOpenAccountBing({
8916
8911
  token: opts.token,
8917
8912
  advertiserId: opts.advertiserId,
8913
+ pattern: opts.pattern,
8918
8914
  advertiserName: opts.advertiserName,
8919
8915
  nameShort: opts.nameShort,
8916
+ nameRemarkList: opts.nameRemarkList,
8920
8917
  province: opts.province,
8921
8918
  city: opts.city,
8922
8919
  address: opts.address,
8920
+ postcode: opts.postcode,
8923
8921
  promotionLink: opts.promotionLink,
8924
8922
  tradeId: opts.tradeId,
8925
8923
  licenseFile: opts.licenseFile,
8926
- postcode: opts.postcode,
8927
8924
  advertiserCid: opts.advertiserCid,
8928
8925
  advertiserName2: opts.advertiserName2,
8929
8926
  accountCount: opts.accountCount,
@@ -8953,7 +8950,7 @@ openAccountCmd.command("google-timezones").description("\u5217\u51FA Google \u5F
8953
8950
  openAccountCmd.command("google-wizard").description("\u4EA4\u4E92\u5F0F Google \u5F00\u6237\uFF08\u5BF9\u9F50\u7F51\u9875\u4E94\u6B65\u8BF4\u660E + \u4E24\u6B65\u8868\u5355\uFF1B\u9700\u7EC8\u7AEF TTY\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8954
8951
  await runOpenAccountGoogleWizard({ token: opts.token, verbose: opts.verbose });
8955
8952
  });
8956
- openAccountCmd.command("google").description("\u63D0\u4EA4 Google \u5F00\u6237\u7533\u8BF7\uFF08\u4E0E\u7F51\u9875\u8868\u5355\u4E00\u81F4\uFF1A\u6309\u516C\u53F8\u540D\u79F0\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u65E0\u9700 magKey\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 ID\uFF08\u4E00\u822C\u4E0D\u7528\uFF1B\u8C03\u8BD5\u7528\u6216\u7279\u6B8A\u573A\u666F\uFF09").requiredOption("--account-name <name>", "\u5E7F\u544A\u8D26\u6237\u540D\u79F0\uFF08\u5EFA\u8BAE 22 \u4E2A\u5B57\u7B26\u4EE5\u5185\uFF09").requiredOption("--currency <code>", "\u8D27\u5E01\uFF1AUSD | CNY").requiredOption("--timezone <tz>", "\u65F6\u533A\uFF0C\u5982 Asia/Hong_Kong\uFF08\u53EF\u5148\u67E5 open-account google-timezones\uFF09").requiredOption("--invite-email <email>", "\u53D7\u9080\u7528\u6237\u90AE\u7BB1\uFF08\u8D26\u6237\u9080\u8BF7\u5C06\u53D1\u5230\u6B64\u90AE\u7BB1\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u7B2C\u4E00\u6B65\u4E00\u81F4\uFF09").requiredOption("--promotion-link <url>", "\u63A8\u5E7F\u94FE\u63A5\uFF08\u516C\u53F8\u5B98\u7F51\u6216\u4EA7\u54C1\u9875\uFF1B\u53EF\u5199\u57DF\u540D\uFF0C\u4F1A\u81EA\u52A8\u8865 https://\uFF09").requiredOption("--promotion-type <type>", "\u63A8\u5E7F\u7C7B\u578B\uFF1Ab2b | b2c | app").option("--invite-role <role>", "\u53D7\u9080\u7528\u6237\u89D2\u8272\uFF1AStandard | Admin\uFF08\u9ED8\u8BA4 Standard\uFF09", "Standard").option("--auto-mailbox", "\u81EA\u52A8\u5206\u914D\u90AE\u7BB1", false).option("--counts <n>", "\u672C\u6B21\u5F00\u6237\u6570\u91CF\uFF081-3\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("--manager-customer-id <id>", "MCC \u7ECF\u7406\u8D26\u6237 ID\uFF08\u53EF\u9009\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8953
+ openAccountCmd.command("google").description("\u63D0\u4EA4 Google \u5F00\u6237\u7533\u8BF7\uFF08\u4E0E\u7F51\u9875\u8868\u5355\u4E00\u81F4\uFF1A\u6309\u516C\u53F8\u540D\u79F0\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u65E0\u9700 magKey\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 ID\uFF08\u4E00\u822C\u4E0D\u7528\uFF1B\u8C03\u8BD5\u7528\u6216\u7279\u6B8A\u573A\u666F\uFF09").requiredOption("--account-name <name>", "\u5E7F\u544A\u8D26\u6237\u540D\u79F0\uFF08\u5EFA\u8BAE 22 \u4E2A\u5B57\u7B26\u4EE5\u5185\uFF09").requiredOption("--currency <code>", "\u8D27\u5E01\uFF1AUSD | CNY").requiredOption("--timezone <tz>", "\u65F6\u533A\uFF0C\u5982 Asia/Hong_Kong\uFF08\u53EF\u5148\u67E5 open-account google-timezones\uFF09").requiredOption("--invite-email <email>", "\u53D7\u9080\u7528\u6237\u90AE\u7BB1\uFF08\u8D26\u6237\u9080\u8BF7\u5C06\u53D1\u5230\u6B64\u90AE\u7BB1\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u7B2C\u4E00\u6B65\u4E00\u81F4\uFF09").requiredOption("--promotion-link <url>", "\u63A8\u5E7F\u94FE\u63A5\uFF08\u516C\u53F8\u5B98\u7F51\u6216\u4EA7\u54C1\u9875\uFF1B\u53EF\u5199\u57DF\u540D\uFF0C\u4F1A\u81EA\u52A8\u8865 https://\uFF09").requiredOption("--promotion-type <type>", "\u63A8\u5E7F\u7C7B\u578B\uFF1Ab2b | b2c | app").option("--invite-role <role>", "\u53D7\u9080\u7528\u6237\u89D2\u8272\uFF1AStandard | Admin\uFF08\u9ED8\u8BA4 Standard\uFF09", "Standard").option("--auto-mailbox", "\u81EA\u52A8\u5206\u914D\u90AE\u7BB1", false).option("--counts <n>", "\u672C\u6B21\u5F00\u6237\u6570\u91CF\uFF081-3\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
8957
8954
  await runOpenAccountGoogle({
8958
8955
  token: opts.token,
8959
8956
  advertiserId: opts.advertiserId,
@@ -8967,7 +8964,6 @@ openAccountCmd.command("google").description("\u63D0\u4EA4 Google \u5F00\u6237\u
8967
8964
  inviteRole: opts.inviteRole,
8968
8965
  autoAllotMailbox: opts.autoMailbox,
8969
8966
  counts: opts.counts,
8970
- managerCustomerId: opts.managerCustomerId,
8971
8967
  verbose: opts.verbose
8972
8968
  });
8973
8969
  });
@@ -71,7 +71,6 @@ description: >-
71
71
  | 查询投放数据 | `siluzan-tso stats -m Google -a <mediaCustomerId>` |
72
72
  | TSO 首页(网页) | `config show` 取 `webUrl` → `{webUrl}/v3/foreign_trade/tso/home` |
73
73
  | 查广告主组(TikTok 等取 magKey) | `siluzan-tso open-account list-groups` |
74
- | Google 开户(交互,推荐) | `siluzan-tso open-account google-wizard`(对齐 `/openAnAccount` 五步说明 + 两步表单) |
75
74
  | Google 开户(脚本) | `siluzan-tso open-account google --company "…" --promotion-link "…" --promotion-type b2c ...`(**无需 magKey**) |
76
75
  | Google 开户时区列表 | `siluzan-tso open-account google-timezones`(可加 `--keyword`) |
77
76
  | TikTok 开户时区列表 | `siluzan-tso open-account tiktok-timezones`(可加 `--keyword`) |
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "slug": "siluzan-tso",
3
- "version": "1.0.0-beta.24",
4
- "publishedAt": 1774425556177
3
+ "version": "1.0.0-beta.26",
4
+ "publishedAt": 1774428362970
5
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siluzan-tso-cli",
3
- "version": "1.0.0-beta.24",
3
+ "version": "1.0.0-beta.26",
4
4
  "description": "Siluzan 广告账户管理 CLI — 查询账户、余额、消耗数据,管理绑定关系与充值。",
5
5
  "type": "module",
6
6
  "bin": {