@sendly/cli 3.35.0 → 3.36.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 (32) hide show
  1. package/dist/commands/business-upgrade/cancel.d.ts +12 -0
  2. package/dist/commands/business-upgrade/cancel.js +47 -0
  3. package/dist/commands/business-upgrade/disposition.d.ts +13 -0
  4. package/dist/commands/business-upgrade/disposition.js +44 -0
  5. package/dist/commands/business-upgrade/preflight.d.ts +16 -0
  6. package/dist/commands/business-upgrade/preflight.js +82 -0
  7. package/dist/commands/business-upgrade/resubmit.d.ts +24 -0
  8. package/dist/commands/business-upgrade/resubmit.js +109 -0
  9. package/dist/commands/business-upgrade/start.d.ts +38 -0
  10. package/dist/commands/business-upgrade/start.js +142 -0
  11. package/dist/commands/business-upgrade/status.d.ts +11 -0
  12. package/dist/commands/business-upgrade/status.js +38 -0
  13. package/dist/commands/enterprise/verification/get.d.ts +13 -0
  14. package/dist/commands/enterprise/verification/get.js +78 -0
  15. package/dist/commands/enterprise/verification/resubmit.d.ts +41 -0
  16. package/dist/commands/enterprise/verification/resubmit.js +87 -0
  17. package/dist/commands/enterprise/verification/submit.d.ts +77 -0
  18. package/dist/commands/enterprise/verification/submit.js +212 -0
  19. package/dist/commands/numbers/buy.d.ts +31 -0
  20. package/dist/commands/numbers/buy.js +252 -0
  21. package/dist/commands/numbers/list.d.ts +10 -0
  22. package/dist/commands/numbers/list.js +53 -0
  23. package/dist/commands/numbers/search.d.ts +13 -0
  24. package/dist/commands/numbers/search.js +78 -0
  25. package/dist/lib/auth.js +2 -94
  26. package/dist/lib/config.js +31 -2
  27. package/dist/lib/detect-install-path.d.ts +11 -7
  28. package/dist/lib/detect-install-path.js +25 -9
  29. package/dist/lib/keypress.d.ts +26 -0
  30. package/dist/lib/keypress.js +103 -0
  31. package/oclif.manifest.json +1931 -622
  32. package/package.json +7 -1
@@ -0,0 +1,12 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class BusinessUpgradeCancel extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ workspace: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ yes: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
8
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ };
11
+ run(): Promise<void>;
12
+ }
@@ -0,0 +1,47 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { json, success, info, isJsonMode } from "../../lib/output.js";
5
+ export default class BusinessUpgradeCancel extends AuthenticatedCommand {
6
+ static description = "Cancel a pending business entity upgrade. Releases the reserved toll-free number, deletes the new messaging profile + EIN document. Current toll-free number unaffected. Idempotent.";
7
+ static examples = [
8
+ "<%= config.bin %> business-upgrade cancel --workspace ws_abc",
9
+ "<%= config.bin %> business-upgrade cancel --workspace ws_abc --yes",
10
+ ];
11
+ static flags = {
12
+ ...AuthenticatedCommand.baseFlags,
13
+ workspace: Flags.string({ required: true }),
14
+ yes: Flags.boolean({
15
+ char: "y",
16
+ description: "Skip the confirmation prompt",
17
+ default: false,
18
+ }),
19
+ };
20
+ async run() {
21
+ const { flags } = await this.parse(BusinessUpgradeCancel);
22
+ if (!flags.yes && !flags.json) {
23
+ // Best-effort prompt — oclif's readline-based confirm. Skip if --yes.
24
+ info(`About to cancel the pending upgrade for workspace ${flags.workspace}.`);
25
+ const { default: inquirer } = await import("@inquirer/confirm").catch(() => ({
26
+ default: undefined,
27
+ }));
28
+ if (inquirer) {
29
+ const ok = await inquirer({
30
+ message: "Continue?",
31
+ default: false,
32
+ });
33
+ if (!ok) {
34
+ info("Cancelled — no changes made.");
35
+ return;
36
+ }
37
+ }
38
+ }
39
+ const result = await apiClient.post(`/api/v1/workspaces/${encodeURIComponent(flags.workspace)}/upgrade/cancel`, {});
40
+ if (isJsonMode()) {
41
+ json(result);
42
+ return;
43
+ }
44
+ success(result.message);
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2J1c2luZXNzLXVwZ3JhZGUvY2FuY2VsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsT0FBTyxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQUNyRSxNQUFNLENBQUMsV0FBVyxHQUNoQixzTEFBc0wsQ0FBQztJQUV6TCxNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDhEQUE4RDtRQUM5RCxvRUFBb0U7S0FDckUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxLQUFLLEdBQUc7UUFDYixHQUFHLG9CQUFvQixDQUFDLFNBQVM7UUFDakMsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDM0MsR0FBRyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDakIsSUFBSSxFQUFFLEdBQUc7WUFDVCxXQUFXLEVBQUUsOEJBQThCO1lBQzNDLE9BQU8sRUFBRSxLQUFLO1NBQ2YsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixzRUFBc0U7WUFDdEUsSUFBSSxDQUFDLHFEQUFxRCxLQUFLLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztZQUM5RSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQzNFLE9BQU8sRUFBRSxTQUFTO2FBQ25CLENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLFdBQVc7b0JBQ3BCLE9BQU8sRUFBRSxLQUFLO2lCQUNmLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ1IsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUM7b0JBQ3JDLE9BQU87Z0JBQ1QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUloQyxzQkFBc0Isa0JBQWtCLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBqc29uLCBzdWNjZXNzLCBpbmZvLCBpc0pzb25Nb2RlIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVzaW5lc3NVcGdyYWRlQ2FuY2VsIGV4dGVuZHMgQXV0aGVudGljYXRlZENvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgIFwiQ2FuY2VsIGEgcGVuZGluZyBidXNpbmVzcyBlbnRpdHkgdXBncmFkZS4gUmVsZWFzZXMgdGhlIHJlc2VydmVkIHRvbGwtZnJlZSBudW1iZXIsIGRlbGV0ZXMgdGhlIG5ldyBtZXNzYWdpbmcgcHJvZmlsZSArIEVJTiBkb2N1bWVudC4gQ3VycmVudCB0b2xsLWZyZWUgbnVtYmVyIHVuYWZmZWN0ZWQuIElkZW1wb3RlbnQuXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gYnVzaW5lc3MtdXBncmFkZSBjYW5jZWwgLS13b3Jrc3BhY2Ugd3NfYWJjXCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBidXNpbmVzcy11cGdyYWRlIGNhbmNlbCAtLXdvcmtzcGFjZSB3c19hYmMgLS15ZXNcIixcbiAgXTtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uQXV0aGVudGljYXRlZENvbW1hbmQuYmFzZUZsYWdzLFxuICAgIHdvcmtzcGFjZTogRmxhZ3Muc3RyaW5nKHsgcmVxdWlyZWQ6IHRydWUgfSksXG4gICAgeWVzOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGNoYXI6IFwieVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU2tpcCB0aGUgY29uZmlybWF0aW9uIHByb21wdFwiLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgfSksXG4gIH07XG5cbiAgYXN5bmMgcnVuKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgZmxhZ3MgfSA9IGF3YWl0IHRoaXMucGFyc2UoQnVzaW5lc3NVcGdyYWRlQ2FuY2VsKTtcbiAgICBpZiAoIWZsYWdzLnllcyAmJiAhZmxhZ3MuanNvbikge1xuICAgICAgLy8gQmVzdC1lZmZvcnQgcHJvbXB0IOKAlCBvY2xpZidzIHJlYWRsaW5lLWJhc2VkIGNvbmZpcm0uIFNraXAgaWYgLS15ZXMuXG4gICAgICBpbmZvKGBBYm91dCB0byBjYW5jZWwgdGhlIHBlbmRpbmcgdXBncmFkZSBmb3Igd29ya3NwYWNlICR7ZmxhZ3Mud29ya3NwYWNlfS5gKTtcbiAgICAgIGNvbnN0IHsgZGVmYXVsdDogaW5xdWlyZXIgfSA9IGF3YWl0IGltcG9ydChcIkBpbnF1aXJlci9jb25maXJtXCIpLmNhdGNoKCgpID0+ICh7XG4gICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCxcbiAgICAgIH0pKTtcbiAgICAgIGlmIChpbnF1aXJlcikge1xuICAgICAgICBjb25zdCBvayA9IGF3YWl0IGlucXVpcmVyKHtcbiAgICAgICAgICBtZXNzYWdlOiBcIkNvbnRpbnVlP1wiLFxuICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFvaykge1xuICAgICAgICAgIGluZm8oXCJDYW5jZWxsZWQg4oCUIG5vIGNoYW5nZXMgbWFkZS5cIik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PHtcbiAgICAgIHN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgICBjYW5jZWxsZWQ6IGJvb2xlYW47XG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgfT4oYC9hcGkvdjEvd29ya3NwYWNlcy8ke2VuY29kZVVSSUNvbXBvbmVudChmbGFncy53b3Jrc3BhY2UpfS91cGdyYWRlL2NhbmNlbGAsIHt9KTtcbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlc3VsdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN1Y2Nlc3MocmVzdWx0Lm1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class BusinessUpgradeDisposition extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ workspace: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ disposition: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ "target-workspace": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
10
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,44 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
3
+ import { apiClient } from "../../lib/api-client.js";
4
+ import { json, success, error, info, isJsonMode } from "../../lib/output.js";
5
+ export default class BusinessUpgradeDisposition extends AuthenticatedCommand {
6
+ static description = "Choose what happens to the old toll-free number after a successful business entity upgrade — either move it to another workspace you own, or release it back to the carrier pool";
7
+ static examples = [
8
+ "<%= config.bin %> business-upgrade disposition --workspace ws_abc --disposition moved --target-workspace ws_xyz",
9
+ "<%= config.bin %> business-upgrade disposition --workspace ws_abc --disposition released",
10
+ ];
11
+ static flags = {
12
+ ...AuthenticatedCommand.baseFlags,
13
+ workspace: Flags.string({
14
+ required: true,
15
+ description: "Workspace whose upgrade was just approved",
16
+ }),
17
+ disposition: Flags.string({
18
+ required: true,
19
+ options: ["moved", "released"],
20
+ description: "What to do with the old toll-free number",
21
+ }),
22
+ "target-workspace": Flags.string({
23
+ description: "Required when disposition='moved' — workspace to attach old number to",
24
+ }),
25
+ };
26
+ async run() {
27
+ const { flags } = await this.parse(BusinessUpgradeDisposition);
28
+ if (flags.disposition === "moved" && !flags["target-workspace"]) {
29
+ error("--target-workspace is required when --disposition=moved.");
30
+ this.exit(1);
31
+ }
32
+ const result = await apiClient.post(`/api/v1/workspaces/${encodeURIComponent(flags.workspace)}/upgrade/disposition`, {
33
+ disposition: flags.disposition,
34
+ targetOrgId: flags["target-workspace"],
35
+ });
36
+ if (isJsonMode()) {
37
+ json(result);
38
+ return;
39
+ }
40
+ success(result.message);
41
+ info(`Superseded verification: ${result.supersededVerificationId}`);
42
+ }
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnVzaW5lc3MtdXBncmFkZS9kaXNwb3NpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTdFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sMEJBQTJCLFNBQVEsb0JBQW9CO0lBQzFFLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLGtMQUFrTCxDQUFDO0lBRXJMLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIsaUhBQWlIO1FBQ2pILDBGQUEwRjtLQUMzRixDQUFDO0lBRUYsTUFBTSxDQUFDLEtBQUssR0FBRztRQUNiLEdBQUcsb0JBQW9CLENBQUMsU0FBUztRQUNqQyxTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixRQUFRLEVBQUUsSUFBSTtZQUNkLFdBQVcsRUFBRSwyQ0FBMkM7U0FDekQsQ0FBQztRQUNGLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztZQUM5QixXQUFXLEVBQUUsMENBQTBDO1NBQ3hELENBQUM7UUFDRixrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQy9CLFdBQVcsRUFBRSx1RUFBdUU7U0FDckYsQ0FBQztLQUNILENBQUM7SUFFRixLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUMvRCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUNoRSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FNakMsc0JBQXNCLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsc0JBQXNCLEVBQy9FO1lBQ0UsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUM7U0FDdkMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNiLE9BQU87UUFDVCxDQUFDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsNEJBQTRCLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyBBdXRoZW50aWNhdGVkQ29tbWFuZCB9IGZyb20gXCIuLi8uLi9saWIvYmFzZS1jb21tYW5kLmpzXCI7XG5pbXBvcnQgeyBhcGlDbGllbnQgfSBmcm9tIFwiLi4vLi4vbGliL2FwaS1jbGllbnQuanNcIjtcbmltcG9ydCB7IGpzb24sIHN1Y2Nlc3MsIGVycm9yLCBpbmZvLCBpc0pzb25Nb2RlIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVzaW5lc3NVcGdyYWRlRGlzcG9zaXRpb24gZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJDaG9vc2Ugd2hhdCBoYXBwZW5zIHRvIHRoZSBvbGQgdG9sbC1mcmVlIG51bWJlciBhZnRlciBhIHN1Y2Nlc3NmdWwgYnVzaW5lc3MgZW50aXR5IHVwZ3JhZGUg4oCUIGVpdGhlciBtb3ZlIGl0IHRvIGFub3RoZXIgd29ya3NwYWNlIHlvdSBvd24sIG9yIHJlbGVhc2UgaXQgYmFjayB0byB0aGUgY2FycmllciBwb29sXCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgIFwiPCU9IGNvbmZpZy5iaW4gJT4gYnVzaW5lc3MtdXBncmFkZSBkaXNwb3NpdGlvbiAtLXdvcmtzcGFjZSB3c19hYmMgLS1kaXNwb3NpdGlvbiBtb3ZlZCAtLXRhcmdldC13b3Jrc3BhY2Ugd3NfeHl6XCIsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBidXNpbmVzcy11cGdyYWRlIGRpc3Bvc2l0aW9uIC0td29ya3NwYWNlIHdzX2FiYyAtLWRpc3Bvc2l0aW9uIHJlbGVhc2VkXCIsXG4gIF07XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLkF1dGhlbnRpY2F0ZWRDb21tYW5kLmJhc2VGbGFncyxcbiAgICB3b3Jrc3BhY2U6IEZsYWdzLnN0cmluZyh7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIldvcmtzcGFjZSB3aG9zZSB1cGdyYWRlIHdhcyBqdXN0IGFwcHJvdmVkXCIsXG4gICAgfSksXG4gICAgZGlzcG9zaXRpb246IEZsYWdzLnN0cmluZyh7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFtcIm1vdmVkXCIsIFwicmVsZWFzZWRcIl0sXG4gICAgICBkZXNjcmlwdGlvbjogXCJXaGF0IHRvIGRvIHdpdGggdGhlIG9sZCB0b2xsLWZyZWUgbnVtYmVyXCIsXG4gICAgfSksXG4gICAgXCJ0YXJnZXQtd29ya3NwYWNlXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJSZXF1aXJlZCB3aGVuIGRpc3Bvc2l0aW9uPSdtb3ZlZCcg4oCUIHdvcmtzcGFjZSB0byBhdHRhY2ggb2xkIG51bWJlciB0b1wiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEJ1c2luZXNzVXBncmFkZURpc3Bvc2l0aW9uKTtcbiAgICBpZiAoZmxhZ3MuZGlzcG9zaXRpb24gPT09IFwibW92ZWRcIiAmJiAhZmxhZ3NbXCJ0YXJnZXQtd29ya3NwYWNlXCJdKSB7XG4gICAgICBlcnJvcihcIi0tdGFyZ2V0LXdvcmtzcGFjZSBpcyByZXF1aXJlZCB3aGVuIC0tZGlzcG9zaXRpb249bW92ZWQuXCIpO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBhcGlDbGllbnQucG9zdDx7XG4gICAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgICAgZGlzcG9zaXRpb246IHN0cmluZztcbiAgICAgIHN1cGVyc2VkZWRWZXJpZmljYXRpb25JZDogc3RyaW5nO1xuICAgICAgbWVzc2FnZTogc3RyaW5nO1xuICAgIH0+KFxuICAgICAgYC9hcGkvdjEvd29ya3NwYWNlcy8ke2VuY29kZVVSSUNvbXBvbmVudChmbGFncy53b3Jrc3BhY2UpfS91cGdyYWRlL2Rpc3Bvc2l0aW9uYCxcbiAgICAgIHtcbiAgICAgICAgZGlzcG9zaXRpb246IGZsYWdzLmRpc3Bvc2l0aW9uLFxuICAgICAgICB0YXJnZXRPcmdJZDogZmxhZ3NbXCJ0YXJnZXQtd29ya3NwYWNlXCJdLFxuICAgICAgfSxcbiAgICApO1xuICAgIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICAgIGpzb24ocmVzdWx0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3VjY2VzcyhyZXN1bHQubWVzc2FnZSk7XG4gICAgaW5mbyhgU3VwZXJzZWRlZCB2ZXJpZmljYXRpb246ICR7cmVzdWx0LnN1cGVyc2VkZWRWZXJpZmljYXRpb25JZH1gKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class BusinessUpgradePreflight extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ "business-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ brn: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ "brn-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ "brn-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ "entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ candidate: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
14
+ };
15
+ run(): Promise<void>;
16
+ }
@@ -0,0 +1,82 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { readFileSync } from "node:fs";
3
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
4
+ import { apiClient } from "../../lib/api-client.js";
5
+ import { json, info, error, isJsonMode, colors } from "../../lib/output.js";
6
+ export default class BusinessUpgradePreflight extends AuthenticatedCommand {
7
+ static description = "Dry-run a business entity upgrade and surface issues + auto-fix suggestions before submitting";
8
+ static examples = [
9
+ '<%= config.bin %> business-upgrade preflight --business-name "Acme LLC" --brn "12-3456789" --brn-type EIN --entity-type PRIVATE_PROFIT',
10
+ "<%= config.bin %> business-upgrade preflight --candidate ./candidate.json --json",
11
+ ];
12
+ static flags = {
13
+ ...AuthenticatedCommand.baseFlags,
14
+ "business-name": Flags.string({
15
+ description: "Legal business name of the new entity",
16
+ }),
17
+ brn: Flags.string({
18
+ description: "Business registration number (EIN/SSN/etc.)",
19
+ }),
20
+ "brn-type": Flags.string({
21
+ description: "Registration type (EIN, SSN, DUNS, CRA, VAT, LEI, OTHER)",
22
+ }),
23
+ "brn-country": Flags.string({
24
+ description: "Registration issuing country (ISO 3166-1 alpha-2)",
25
+ default: "US",
26
+ }),
27
+ "entity-type": Flags.string({
28
+ description: "Entity type (SOLE_PROPRIETOR, PRIVATE_PROFIT, PUBLIC_PROFIT, NON_PROFIT, GOVERNMENT)",
29
+ default: "PRIVATE_PROFIT",
30
+ }),
31
+ candidate: Flags.string({
32
+ description: "Path to a JSON file with the full candidate payload",
33
+ }),
34
+ };
35
+ async run() {
36
+ const { flags } = await this.parse(BusinessUpgradePreflight);
37
+ let candidate = {};
38
+ if (flags.candidate) {
39
+ candidate = JSON.parse(readFileSync(flags.candidate, "utf8"));
40
+ }
41
+ else {
42
+ candidate = {
43
+ businessName: flags["business-name"],
44
+ brn: flags.brn,
45
+ brnType: flags["brn-type"],
46
+ brnCountry: flags["brn-country"],
47
+ entityType: flags["entity-type"],
48
+ };
49
+ }
50
+ if (!candidate.businessName || !candidate.brn) {
51
+ error("Provide --business-name and --brn (or pass --candidate <file>).");
52
+ this.exit(1);
53
+ }
54
+ const report = await apiClient.post("/api/v1/verification/preflight", candidate);
55
+ if (isJsonMode()) {
56
+ json(report);
57
+ return;
58
+ }
59
+ const verdictColor = report.verdict === "blocked"
60
+ ? colors.error
61
+ : report.verdict === "warnings"
62
+ ? colors.warning
63
+ : colors.success;
64
+ info(`Verdict: ${verdictColor(report.verdict)} (${report.country})`);
65
+ if (report.issues.length === 0) {
66
+ info(colors.success("No issues. Ready to submit."));
67
+ return;
68
+ }
69
+ info("");
70
+ for (const issue of report.issues) {
71
+ const sevColor = issue.severity === "blocker"
72
+ ? colors.error
73
+ : issue.severity === "warning"
74
+ ? colors.warning
75
+ : colors.dim;
76
+ info(`${sevColor(issue.severity.toUpperCase())} ${issue.field} — ${issue.message}`);
77
+ if (issue.suggestion)
78
+ info(` ${colors.dim("→ " + issue.suggestion)}`);
79
+ }
80
+ }
81
+ }
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmxpZ2h0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2J1c2luZXNzLXVwZ3JhZGUvcHJlZmxpZ2h0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCNUUsTUFBTSxDQUFDLE9BQU8sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFDeEUsTUFBTSxDQUFDLFdBQVcsR0FDaEIsK0ZBQStGLENBQUM7SUFFbEcsTUFBTSxDQUFDLFFBQVEsR0FBRztRQUNoQix3SUFBd0k7UUFDeEksa0ZBQWtGO0tBQ25GLENBQUM7SUFFRixNQUFNLENBQUMsS0FBSyxHQUFHO1FBQ2IsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTO1FBQ2pDLGVBQWUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzVCLFdBQVcsRUFBRSx1Q0FBdUM7U0FDckQsQ0FBQztRQUNGLEdBQUcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ2hCLFdBQVcsRUFBRSw2Q0FBNkM7U0FDM0QsQ0FBQztRQUNGLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLFdBQVcsRUFBRSwwREFBMEQ7U0FDeEUsQ0FBQztRQUNGLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzFCLFdBQVcsRUFBRSxtREFBbUQ7WUFDaEUsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO1FBQ0YsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDMUIsV0FBVyxFQUNULHNGQUFzRjtZQUN4RixPQUFPLEVBQUUsZ0JBQWdCO1NBQzFCLENBQUM7UUFDRixTQUFTLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN0QixXQUFXLEVBQUUscURBQXFEO1NBQ25FLENBQUM7S0FDSCxDQUFDO0lBRUYsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFN0QsSUFBSSxTQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUM1QyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxHQUFHO2dCQUNWLFlBQVksRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDO2dCQUNwQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7Z0JBQ2QsT0FBTyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDO2dCQUNoQyxVQUFVLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQzthQUNqQyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzlDLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUNqQyxnQ0FBZ0MsRUFDaEMsU0FBUyxDQUNWLENBQUM7UUFFRixJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLFlBQVksR0FDaEIsTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTO1lBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSztZQUNkLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxLQUFLLFVBQVU7Z0JBQzdCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztnQkFDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNyRSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNULEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLE1BQU0sUUFBUSxHQUNaLEtBQUssQ0FBQyxRQUFRLEtBQUssU0FBUztnQkFDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUNkLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxLQUFLLFNBQVM7b0JBQzVCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTztvQkFDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7WUFDbkIsSUFBSSxDQUNGLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FDOUUsQ0FBQztZQUNGLElBQUksS0FBSyxDQUFDLFVBQVU7Z0JBQUUsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZsYWdzIH0gZnJvbSBcIkBvY2xpZi9jb3JlXCI7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHsgYXBpQ2xpZW50IH0gZnJvbSBcIi4uLy4uL2xpYi9hcGktY2xpZW50LmpzXCI7XG5pbXBvcnQgeyBqc29uLCBpbmZvLCBlcnJvciwgaXNKc29uTW9kZSwgY29sb3JzIH0gZnJvbSBcIi4uLy4uL2xpYi9vdXRwdXQuanNcIjtcblxuaW50ZXJmYWNlIFByZWZsaWdodElzc3VlIHtcbiAgc2V2ZXJpdHk6IFwiYmxvY2tlclwiIHwgXCJ3YXJuaW5nXCIgfCBcImluZm9cIjtcbiAgZmllbGQ6IHN0cmluZztcbiAgY29kZTogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHN1Z2dlc3Rpb24/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBQcmVmbGlnaHRSZXBvcnQge1xuICB2ZXJkaWN0OiBcInJlYWR5XCIgfCBcIndhcm5pbmdzXCIgfCBcImJsb2NrZWRcIjtcbiAgY291bnRyeTogc3RyaW5nO1xuICBpc3N1ZXM6IFByZWZsaWdodElzc3VlW107XG4gIHByb3Bvc2VkRml4ZXM6IEFycmF5PHsgZmllbGQ6IHN0cmluZzsgcHJvcG9zZWQ6IHVua25vd247IHJlYXNvbjogc3RyaW5nIH0+O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCdXNpbmVzc1VwZ3JhZGVQcmVmbGlnaHQgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJEcnktcnVuIGEgYnVzaW5lc3MgZW50aXR5IHVwZ3JhZGUgYW5kIHN1cmZhY2UgaXNzdWVzICsgYXV0by1maXggc3VnZ2VzdGlvbnMgYmVmb3JlIHN1Ym1pdHRpbmdcIjtcblxuICBzdGF0aWMgZXhhbXBsZXMgPSBbXG4gICAgJzwlPSBjb25maWcuYmluICU+IGJ1c2luZXNzLXVwZ3JhZGUgcHJlZmxpZ2h0IC0tYnVzaW5lc3MtbmFtZSBcIkFjbWUgTExDXCIgLS1icm4gXCIxMi0zNDU2Nzg5XCIgLS1icm4tdHlwZSBFSU4gLS1lbnRpdHktdHlwZSBQUklWQVRFX1BST0ZJVCcsXG4gICAgXCI8JT0gY29uZmlnLmJpbiAlPiBidXNpbmVzcy11cGdyYWRlIHByZWZsaWdodCAtLWNhbmRpZGF0ZSAuL2NhbmRpZGF0ZS5qc29uIC0tanNvblwiLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgXCJidXNpbmVzcy1uYW1lXCI6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogXCJMZWdhbCBidXNpbmVzcyBuYW1lIG9mIHRoZSBuZXcgZW50aXR5XCIsXG4gICAgfSksXG4gICAgYnJuOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiQnVzaW5lc3MgcmVnaXN0cmF0aW9uIG51bWJlciAoRUlOL1NTTi9ldGMuKVwiLFxuICAgIH0pLFxuICAgIFwiYnJuLXR5cGVcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlJlZ2lzdHJhdGlvbiB0eXBlIChFSU4sIFNTTiwgRFVOUywgQ1JBLCBWQVQsIExFSSwgT1RIRVIpXCIsXG4gICAgfSksXG4gICAgXCJicm4tY291bnRyeVwiOiBGbGFncy5zdHJpbmcoe1xuICAgICAgZGVzY3JpcHRpb246IFwiUmVnaXN0cmF0aW9uIGlzc3VpbmcgY291bnRyeSAoSVNPIDMxNjYtMSBhbHBoYS0yKVwiLFxuICAgICAgZGVmYXVsdDogXCJVU1wiLFxuICAgIH0pLFxuICAgIFwiZW50aXR5LXR5cGVcIjogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkVudGl0eSB0eXBlIChTT0xFX1BST1BSSUVUT1IsIFBSSVZBVEVfUFJPRklULCBQVUJMSUNfUFJPRklULCBOT05fUFJPRklULCBHT1ZFUk5NRU5UKVwiLFxuICAgICAgZGVmYXVsdDogXCJQUklWQVRFX1BST0ZJVFwiLFxuICAgIH0pLFxuICAgIGNhbmRpZGF0ZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlBhdGggdG8gYSBKU09OIGZpbGUgd2l0aCB0aGUgZnVsbCBjYW5kaWRhdGUgcGF5bG9hZFwiLFxuICAgIH0pLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEJ1c2luZXNzVXBncmFkZVByZWZsaWdodCk7XG5cbiAgICBsZXQgY2FuZGlkYXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgIGlmIChmbGFncy5jYW5kaWRhdGUpIHtcbiAgICAgIGNhbmRpZGF0ZSA9IEpTT04ucGFyc2UocmVhZEZpbGVTeW5jKGZsYWdzLmNhbmRpZGF0ZSwgXCJ1dGY4XCIpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FuZGlkYXRlID0ge1xuICAgICAgICBidXNpbmVzc05hbWU6IGZsYWdzW1wiYnVzaW5lc3MtbmFtZVwiXSxcbiAgICAgICAgYnJuOiBmbGFncy5icm4sXG4gICAgICAgIGJyblR5cGU6IGZsYWdzW1wiYnJuLXR5cGVcIl0sXG4gICAgICAgIGJybkNvdW50cnk6IGZsYWdzW1wiYnJuLWNvdW50cnlcIl0sXG4gICAgICAgIGVudGl0eVR5cGU6IGZsYWdzW1wiZW50aXR5LXR5cGVcIl0sXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoIWNhbmRpZGF0ZS5idXNpbmVzc05hbWUgfHwgIWNhbmRpZGF0ZS5icm4pIHtcbiAgICAgIGVycm9yKFwiUHJvdmlkZSAtLWJ1c2luZXNzLW5hbWUgYW5kIC0tYnJuIChvciBwYXNzIC0tY2FuZGlkYXRlIDxmaWxlPikuXCIpO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IGFwaUNsaWVudC5wb3N0PFByZWZsaWdodFJlcG9ydD4oXG4gICAgICBcIi9hcGkvdjEvdmVyaWZpY2F0aW9uL3ByZWZsaWdodFwiLFxuICAgICAgY2FuZGlkYXRlLFxuICAgICk7XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKHJlcG9ydCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdmVyZGljdENvbG9yID1cbiAgICAgIHJlcG9ydC52ZXJkaWN0ID09PSBcImJsb2NrZWRcIlxuICAgICAgICA/IGNvbG9ycy5lcnJvclxuICAgICAgICA6IHJlcG9ydC52ZXJkaWN0ID09PSBcIndhcm5pbmdzXCJcbiAgICAgICAgICA/IGNvbG9ycy53YXJuaW5nXG4gICAgICAgICAgOiBjb2xvcnMuc3VjY2VzcztcbiAgICBpbmZvKGBWZXJkaWN0OiAke3ZlcmRpY3RDb2xvcihyZXBvcnQudmVyZGljdCl9ICgke3JlcG9ydC5jb3VudHJ5fSlgKTtcbiAgICBpZiAocmVwb3J0Lmlzc3Vlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGluZm8oY29sb3JzLnN1Y2Nlc3MoXCJObyBpc3N1ZXMuIFJlYWR5IHRvIHN1Ym1pdC5cIikpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpbmZvKFwiXCIpO1xuICAgIGZvciAoY29uc3QgaXNzdWUgb2YgcmVwb3J0Lmlzc3Vlcykge1xuICAgICAgY29uc3Qgc2V2Q29sb3IgPVxuICAgICAgICBpc3N1ZS5zZXZlcml0eSA9PT0gXCJibG9ja2VyXCJcbiAgICAgICAgICA/IGNvbG9ycy5lcnJvclxuICAgICAgICAgIDogaXNzdWUuc2V2ZXJpdHkgPT09IFwid2FybmluZ1wiXG4gICAgICAgICAgICA/IGNvbG9ycy53YXJuaW5nXG4gICAgICAgICAgICA6IGNvbG9ycy5kaW07XG4gICAgICBpbmZvKFxuICAgICAgICBgJHtzZXZDb2xvcihpc3N1ZS5zZXZlcml0eS50b1VwcGVyQ2FzZSgpKX0gJHtpc3N1ZS5maWVsZH0g4oCUICR7aXNzdWUubWVzc2FnZX1gLFxuICAgICAgKTtcbiAgICAgIGlmIChpc3N1ZS5zdWdnZXN0aW9uKSBpbmZvKGAgICR7Y29sb3JzLmRpbShcIuKGkiBcIiArIGlzc3VlLnN1Z2dlc3Rpb24pfWApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class BusinessUpgradeResubmit extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ workspace: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ "business-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ brn: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ "brn-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ "brn-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ "entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ "monthly-volume": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ "use-case": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ "use-case-summary": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ "sample-messages": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ "opt-in-workflow": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ "privacy-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ "terms-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
19
+ "ein-doc": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
21
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
22
+ };
23
+ run(): Promise<void>;
24
+ }
@@ -0,0 +1,109 @@
1
+ import { Flags } from "@oclif/core";
2
+ import * as fs from "node:fs";
3
+ import * as path from "node:path";
4
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
5
+ import { getAuthToken, getConfigValue, getEffectiveValue, } from "../../lib/config.js";
6
+ import { ApiError, AuthenticationError } from "../../lib/api-client.js";
7
+ import { json, success, info, isJsonMode } from "../../lib/output.js";
8
+ const TEXT_FIELDS = {
9
+ "business-name": "businessName",
10
+ brn: "brn",
11
+ "brn-type": "brnType",
12
+ "brn-country": "brnCountry",
13
+ "entity-type": "entityType",
14
+ "monthly-volume": "monthlyVolume",
15
+ "use-case": "useCase",
16
+ "use-case-summary": "useCaseSummary",
17
+ "sample-messages": "sampleMessages",
18
+ "opt-in-workflow": "optInWorkflow",
19
+ "privacy-url": "privacyUrl",
20
+ "terms-url": "termsUrl",
21
+ };
22
+ export default class BusinessUpgradeResubmit extends AuthenticatedCommand {
23
+ static description = "Resubmit a previously rejected (or waiting-for-customer) business entity upgrade with corrected fields and optionally a new EIN document";
24
+ static examples = [
25
+ '<%= config.bin %> business-upgrade resubmit --workspace ws_abc --business-name "Acme Holdings LLC" --ein-doc ./CP-575-v2.pdf',
26
+ ];
27
+ static flags = {
28
+ ...AuthenticatedCommand.baseFlags,
29
+ workspace: Flags.string({ required: true }),
30
+ "business-name": Flags.string(),
31
+ brn: Flags.string(),
32
+ "brn-type": Flags.string(),
33
+ "brn-country": Flags.string(),
34
+ "entity-type": Flags.string(),
35
+ "monthly-volume": Flags.string(),
36
+ "use-case": Flags.string(),
37
+ "use-case-summary": Flags.string(),
38
+ "sample-messages": Flags.string(),
39
+ "opt-in-workflow": Flags.string(),
40
+ "privacy-url": Flags.string(),
41
+ "terms-url": Flags.string(),
42
+ "ein-doc": Flags.string(),
43
+ };
44
+ async run() {
45
+ const { flags } = await this.parse(BusinessUpgradeResubmit);
46
+ const boundary = `----FormBoundary${Date.now()}${Math.random()
47
+ .toString(36)
48
+ .substring(2)}`;
49
+ const parts = [];
50
+ const appendField = (name, value) => {
51
+ parts.push(Buffer.from(`--${boundary}\r\n` +
52
+ `Content-Disposition: form-data; name="${name}"\r\n\r\n` +
53
+ value +
54
+ "\r\n"));
55
+ };
56
+ for (const [flagKey, wireKey] of Object.entries(TEXT_FIELDS)) {
57
+ const v = flags[flagKey];
58
+ if (typeof v === "string" && v.length > 0)
59
+ appendField(wireKey, v);
60
+ }
61
+ if (flags["ein-doc"]) {
62
+ const filePath = flags["ein-doc"];
63
+ if (!fs.existsSync(filePath)) {
64
+ this.error(`File not found: ${filePath}`);
65
+ }
66
+ const filename = path.basename(filePath);
67
+ const fileBuffer = fs.readFileSync(filePath);
68
+ parts.push(Buffer.from(`--${boundary}\r\n` +
69
+ `Content-Disposition: form-data; name="einDoc"; filename="${filename}"\r\n` +
70
+ `Content-Type: application/pdf\r\n\r\n`));
71
+ parts.push(fileBuffer);
72
+ parts.push(Buffer.from("\r\n"));
73
+ }
74
+ parts.push(Buffer.from(`--${boundary}--\r\n`));
75
+ const body = Buffer.concat(parts);
76
+ const token = getAuthToken();
77
+ if (!token)
78
+ throw new AuthenticationError();
79
+ const baseUrl = getConfigValue("baseUrl") || "https://sendly.live";
80
+ const timeout = getEffectiveValue("timeout");
81
+ const url = `${baseUrl}/api/v1/workspaces/${encodeURIComponent(flags.workspace)}/upgrade/resubmit`;
82
+ const controller = new AbortController();
83
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
84
+ const resp = await fetch(url, {
85
+ method: "POST",
86
+ headers: {
87
+ "Content-Type": `multipart/form-data; boundary=${boundary}`,
88
+ Accept: "application/json",
89
+ Authorization: `Bearer ${token}`,
90
+ },
91
+ body,
92
+ signal: controller.signal,
93
+ });
94
+ clearTimeout(timeoutId);
95
+ const data = (await resp
96
+ .json()
97
+ .catch(() => ({})));
98
+ if (!resp.ok) {
99
+ throw new ApiError(data.error || "resubmit_error", data.message || `HTTP ${resp.status}`, resp.status);
100
+ }
101
+ if (isJsonMode()) {
102
+ json(data);
103
+ return;
104
+ }
105
+ success("Resubmitted to carrier.");
106
+ info(data.message);
107
+ }
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWJtaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnVzaW5lc3MtdXBncmFkZS9yZXN1Ym1pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUNkLGlCQUFpQixHQUNsQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsTUFBTSxXQUFXLEdBQTJCO0lBQzFDLGVBQWUsRUFBRSxjQUFjO0lBQy9CLEdBQUcsRUFBRSxLQUFLO0lBQ1YsVUFBVSxFQUFFLFNBQVM7SUFDckIsYUFBYSxFQUFFLFlBQVk7SUFDM0IsYUFBYSxFQUFFLFlBQVk7SUFDM0IsZ0JBQWdCLEVBQUUsZUFBZTtJQUNqQyxVQUFVLEVBQUUsU0FBUztJQUNyQixrQkFBa0IsRUFBRSxnQkFBZ0I7SUFDcEMsaUJBQWlCLEVBQUUsZ0JBQWdCO0lBQ25DLGlCQUFpQixFQUFFLGVBQWU7SUFDbEMsYUFBYSxFQUFFLFlBQVk7SUFDM0IsV0FBVyxFQUFFLFVBQVU7Q0FDeEIsQ0FBQztBQVNGLE1BQU0sQ0FBQyxPQUFPLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBQ3ZFLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLDBJQUEwSSxDQUFDO0lBRTdJLE1BQU0sQ0FBQyxRQUFRLEdBQUc7UUFDaEIs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Q3JCLElBQUksRUFBRTthQUNOLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQTRCLENBQUM7UUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxRQUFRLENBQ2hCLElBQUksQ0FBQyxLQUFLLElBQUksZ0JBQWdCLEVBQzlCLElBQUksQ0FBQyxPQUFPLElBQUksUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQ3JDLElBQUksQ0FBQyxNQUFNLENBQ1osQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQXV0aGVudGljYXRlZENvbW1hbmQgfSBmcm9tIFwiLi4vLi4vbGliL2Jhc2UtY29tbWFuZC5qc1wiO1xuaW1wb3J0IHtcbiAgZ2V0QXV0aFRva2VuLFxuICBnZXRDb25maWdWYWx1ZSxcbiAgZ2V0RWZmZWN0aXZlVmFsdWUsXG59IGZyb20gXCIuLi8uLi9saWIvY29uZmlnLmpzXCI7XG5pbXBvcnQgeyBBcGlFcnJvciwgQXV0aGVudGljYXRpb25FcnJvciB9IGZyb20gXCIuLi8uLi9saWIvYXBpLWNsaWVudC5qc1wiO1xuaW1wb3J0IHsganNvbiwgc3VjY2VzcywgaW5mbywgaXNKc29uTW9kZSB9IGZyb20gXCIuLi8uLi9saWIvb3V0cHV0LmpzXCI7XG5cbmNvbnN0IFRFWFRfRklFTERTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBcImJ1c2luZXNzLW5hbWVcIjogXCJidXNpbmVzc05hbWVcIixcbiAgYnJuOiBcImJyblwiLFxuICBcImJybi10eXBlXCI6IFwiYnJuVHlwZVwiLFxuICBcImJybi1jb3VudHJ5XCI6IFwiYnJuQ291bnRyeVwiLFxuICBcImVudGl0eS10eXBlXCI6IFwiZW50aXR5VHlwZVwiLFxuICBcIm1vbnRobHktdm9sdW1lXCI6IFwibW9udGhseVZvbHVtZVwiLFxuICBcInVzZS1jYXNlXCI6IFwidXNlQ2FzZVwiLFxuICBcInVzZS1jYXNlLXN1bW1hcnlcIjogXCJ1c2VDYXNlU3VtbWFyeVwiLFxuICBcInNhbXBsZS1tZXNzYWdlc1wiOiBcInNhbXBsZU1lc3NhZ2VzXCIsXG4gIFwib3B0LWluLXdvcmtmbG93XCI6IFwib3B0SW5Xb3JrZmxvd1wiLFxuICBcInByaXZhY3ktdXJsXCI6IFwicHJpdmFjeVVybFwiLFxuICBcInRlcm1zLXVybFwiOiBcInRlcm1zVXJsXCIsXG59O1xuXG5pbnRlcmZhY2UgUmVzdWJtaXRVcGdyYWRlUmVzcG9uc2Uge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBwZW5kaW5nVmVyaWZpY2F0aW9uSWQ6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQnVzaW5lc3NVcGdyYWRlUmVzdWJtaXQgZXh0ZW5kcyBBdXRoZW50aWNhdGVkQ29tbWFuZCB7XG4gIHN0YXRpYyBkZXNjcmlwdGlvbiA9XG4gICAgXCJSZXN1Ym1pdCBhIHByZXZpb3VzbHkgcmVqZWN0ZWQgKG9yIHdhaXRpbmctZm9yLWN1c3RvbWVyKSBidXNpbmVzcyBlbnRpdHkgdXBncmFkZSB3aXRoIGNvcnJlY3RlZCBmaWVsZHMgYW5kIG9wdGlvbmFsbHkgYSBuZXcgRUlOIGRvY3VtZW50XCI7XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICc8JT0gY29uZmlnLmJpbiAlPiBidXNpbmVzcy11cGdyYWRlIHJlc3VibWl0IC0td29ya3NwYWNlIHdzX2FiYyAtLWJ1c2luZXNzLW5hbWUgXCJBY21lIEhvbGRpbmdzIExMQ1wiIC0tZWluLWRvYyAuL0NQLTU3NS12Mi5wZGYnLFxuICBdO1xuXG4gIHN0YXRpYyBmbGFncyA9IHtcbiAgICAuLi5BdXRoZW50aWNhdGVkQ29tbWFuZC5iYXNlRmxhZ3MsXG4gICAgd29ya3NwYWNlOiBGbGFncy5zdHJpbmcoeyByZXF1aXJlZDogdHJ1ZSB9KSxcbiAgICBcImJ1c2luZXNzLW5hbWVcIjogRmxhZ3Muc3RyaW5nKCksXG4gICAgYnJuOiBGbGFncy5zdHJpbmcoKSxcbiAgICBcImJybi10eXBlXCI6IEZsYWdzLnN0cmluZygpLFxuICAgIFwiYnJuLWNvdW50cnlcIjogRmxhZ3Muc3RyaW5nKCksXG4gICAgXCJlbnRpdHktdHlwZVwiOiBGbGFncy5zdHJpbmcoKSxcbiAgICBcIm1vbnRobHktdm9sdW1lXCI6IEZsYWdzLnN0cmluZygpLFxuICAgIFwidXNlLWNhc2VcIjogRmxhZ3Muc3RyaW5nKCksXG4gICAgXCJ1c2UtY2FzZS1zdW1tYXJ5XCI6IEZsYWdzLnN0cmluZygpLFxuICAgIFwic2FtcGxlLW1lc3NhZ2VzXCI6IEZsYWdzLnN0cmluZygpLFxuICAgIFwib3B0LWluLXdvcmtmbG93XCI6IEZsYWdzLnN0cmluZygpLFxuICAgIFwicHJpdmFjeS11cmxcIjogRmxhZ3Muc3RyaW5nKCksXG4gICAgXCJ0ZXJtcy11cmxcIjogRmxhZ3Muc3RyaW5nKCksXG4gICAgXCJlaW4tZG9jXCI6IEZsYWdzLnN0cmluZygpLFxuICB9O1xuXG4gIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKEJ1c2luZXNzVXBncmFkZVJlc3VibWl0KTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5ID0gYC0tLS1Gb3JtQm91bmRhcnkke0RhdGUubm93KCl9JHtNYXRoLnJhbmRvbSgpXG4gICAgICAudG9TdHJpbmcoMzYpXG4gICAgICAuc3Vic3RyaW5nKDIpfWA7XG4gICAgY29uc3QgcGFydHM6IEJ1ZmZlcltdID0gW107XG4gICAgY29uc3QgYXBwZW5kRmllbGQgPSAobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBwYXJ0cy5wdXNoKFxuICAgICAgICBCdWZmZXIuZnJvbShcbiAgICAgICAgICBgLS0ke2JvdW5kYXJ5fVxcclxcbmAgK1xuICAgICAgICAgICAgYENvbnRlbnQtRGlzcG9zaXRpb246IGZvcm0tZGF0YTsgbmFtZT1cIiR7bmFtZX1cIlxcclxcblxcclxcbmAgK1xuICAgICAgICAgICAgdmFsdWUgK1xuICAgICAgICAgICAgXCJcXHJcXG5cIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgW2ZsYWdLZXksIHdpcmVLZXldIG9mIE9iamVjdC5lbnRyaWVzKFRFWFRfRklFTERTKSkge1xuICAgICAgY29uc3QgdiA9IGZsYWdzW2ZsYWdLZXkgYXMga2V5b2YgdHlwZW9mIGZsYWdzXTtcbiAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiAmJiB2Lmxlbmd0aCA+IDApIGFwcGVuZEZpZWxkKHdpcmVLZXksIHYpO1xuICAgIH1cblxuICAgIGlmIChmbGFnc1tcImVpbi1kb2NcIl0pIHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gZmxhZ3NbXCJlaW4tZG9jXCJdO1xuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgICB0aGlzLmVycm9yKGBGaWxlIG5vdCBmb3VuZDogJHtmaWxlUGF0aH1gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpbGVuYW1lID0gcGF0aC5iYXNlbmFtZShmaWxlUGF0aCk7XG4gICAgICBjb25zdCBmaWxlQnVmZmVyID0gZnMucmVhZEZpbGVTeW5jKGZpbGVQYXRoKTtcbiAgICAgIHBhcnRzLnB1c2goXG4gICAgICAgIEJ1ZmZlci5mcm9tKFxuICAgICAgICAgIGAtLSR7Ym91bmRhcnl9XFxyXFxuYCArXG4gICAgICAgICAgICBgQ29udGVudC1EaXNwb3NpdGlvbjogZm9ybS1kYXRhOyBuYW1lPVwiZWluRG9jXCI7IGZpbGVuYW1lPVwiJHtmaWxlbmFtZX1cIlxcclxcbmAgK1xuICAgICAgICAgICAgYENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGRmXFxyXFxuXFxyXFxuYCxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBwYXJ0cy5wdXNoKGZpbGVCdWZmZXIpO1xuICAgICAgcGFydHMucHVzaChCdWZmZXIuZnJvbShcIlxcclxcblwiKSk7XG4gICAgfVxuICAgIHBhcnRzLnB1c2goQnVmZmVyLmZyb20oYC0tJHtib3VuZGFyeX0tLVxcclxcbmApKTtcblxuICAgIGNvbnN0IGJvZHkgPSBCdWZmZXIuY29uY2F0KHBhcnRzKTtcbiAgICBjb25zdCB0b2tlbiA9IGdldEF1dGhUb2tlbigpO1xuICAgIGlmICghdG9rZW4pIHRocm93IG5ldyBBdXRoZW50aWNhdGlvbkVycm9yKCk7XG5cbiAgICBjb25zdCBiYXNlVXJsID0gZ2V0Q29uZmlnVmFsdWUoXCJiYXNlVXJsXCIpIHx8IFwiaHR0cHM6Ly9zZW5kbHkubGl2ZVwiO1xuICAgIGNvbnN0IHRpbWVvdXQgPSBnZXRFZmZlY3RpdmVWYWx1ZShcInRpbWVvdXRcIik7XG4gICAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0vYXBpL3YxL3dvcmtzcGFjZXMvJHtlbmNvZGVVUklDb21wb25lbnQoZmxhZ3Mud29ya3NwYWNlKX0vdXBncmFkZS9yZXN1Ym1pdGA7XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcbiAgICBjb25zdCByZXNwID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBgbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9JHtib3VuZGFyeX1gLFxuICAgICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCxcbiAgICAgIH0sXG4gICAgICBib2R5LFxuICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICB9KTtcbiAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgIGNvbnN0IGRhdGEgPSAoYXdhaXQgcmVzcFxuICAgICAgLmpzb24oKVxuICAgICAgLmNhdGNoKCgpID0+ICh7fSkpKSBhcyBSZXN1Ym1pdFVwZ3JhZGVSZXNwb25zZTtcbiAgICBpZiAoIXJlc3Aub2spIHtcbiAgICAgIHRocm93IG5ldyBBcGlFcnJvcihcbiAgICAgICAgZGF0YS5lcnJvciB8fCBcInJlc3VibWl0X2Vycm9yXCIsXG4gICAgICAgIGRhdGEubWVzc2FnZSB8fCBgSFRUUCAke3Jlc3Auc3RhdHVzfWAsXG4gICAgICAgIHJlc3Auc3RhdHVzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgICBqc29uKGRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzdWNjZXNzKFwiUmVzdWJtaXR0ZWQgdG8gY2Fycmllci5cIik7XG4gICAgaW5mbyhkYXRhLm1lc3NhZ2UpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import { AuthenticatedCommand } from "../../lib/base-command.js";
2
+ export default class BusinessUpgradeStart extends AuthenticatedCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ workspace: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
+ "business-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ brn: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
9
+ "brn-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ "brn-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ "entity-type": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ "doing-business-as": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
13
+ website: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
14
+ address1: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
15
+ address2: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
16
+ city: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
17
+ state: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
18
+ zip: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
19
+ "address-country": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
20
+ "contact-first-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
21
+ "contact-last-name": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
22
+ "contact-email": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
23
+ "contact-phone": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
24
+ "monthly-volume": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
25
+ "use-case": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
26
+ "use-case-summary": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
27
+ "sample-messages": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
28
+ "opt-in-workflow": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
29
+ "privacy-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
30
+ "terms-url": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
31
+ "additional-information": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
32
+ "age-gated-content": import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
33
+ "ein-doc": import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
34
+ json: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
35
+ quiet: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
36
+ };
37
+ run(): Promise<void>;
38
+ }