@forjio/storlaunch-cli 0.14.0 → 0.15.1

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 (38) hide show
  1. package/dist/commands/api-keys.d.ts +4 -0
  2. package/dist/commands/api-keys.d.ts.map +1 -0
  3. package/dist/commands/api-keys.js +99 -0
  4. package/dist/commands/api-keys.js.map +1 -0
  5. package/dist/commands/audit-log.d.ts +4 -0
  6. package/dist/commands/audit-log.d.ts.map +1 -0
  7. package/dist/commands/audit-log.js +61 -0
  8. package/dist/commands/audit-log.js.map +1 -0
  9. package/dist/commands/buy.d.ts.map +1 -1
  10. package/dist/commands/buy.js +2 -0
  11. package/dist/commands/buy.js.map +1 -1
  12. package/dist/commands/domains.d.ts +4 -0
  13. package/dist/commands/domains.d.ts.map +1 -0
  14. package/dist/commands/domains.js +124 -0
  15. package/dist/commands/domains.js.map +1 -0
  16. package/dist/commands/modules.d.ts +4 -0
  17. package/dist/commands/modules.d.ts.map +1 -0
  18. package/dist/commands/modules.js +152 -0
  19. package/dist/commands/modules.js.map +1 -0
  20. package/dist/commands/referrals.d.ts +10 -0
  21. package/dist/commands/referrals.d.ts.map +1 -0
  22. package/dist/commands/referrals.js +286 -0
  23. package/dist/commands/referrals.js.map +1 -0
  24. package/dist/commands/sell.d.ts.map +1 -1
  25. package/dist/commands/sell.js +14 -0
  26. package/dist/commands/sell.js.map +1 -1
  27. package/dist/commands/settings.d.ts +4 -0
  28. package/dist/commands/settings.d.ts.map +1 -0
  29. package/dist/commands/settings.js +390 -0
  30. package/dist/commands/settings.js.map +1 -0
  31. package/dist/commands/storefront.d.ts.map +1 -1
  32. package/dist/commands/storefront.js +88 -0
  33. package/dist/commands/storefront.js.map +1 -1
  34. package/dist/commands/workspace.d.ts +4 -0
  35. package/dist/commands/workspace.d.ts.map +1 -0
  36. package/dist/commands/workspace.js +249 -0
  37. package/dist/commands/workspace.js.map +1 -0
  38. package/package.json +11 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/commands/modules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAe,MAAM,kBAAkB,CAAC;AAEvD;;;;;;;;;;;GAWG;AAEH,SAAS,WAAW,CAAC,GAAY;IAC/B,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,CAAC;QACvD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,uBAAuB;YAAE,OAAO,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAAC,GAAY,EAAE,IAAc;IAC/C,IAAI,IAAI,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CACX,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACzF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,MAAM,CAAc,MAAe;IAC1C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAK,MAAkC,EAAE,CAAC;QAC1F,OAAQ,MAAsB,CAAC,IAAI,CAAC;IACtC,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AASD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAChD,kEAAkE,CACnE,CAAC;AAEF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAY,EAAE,EAAE;IAChC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAA0B,UAAU,EAAE;YACnE,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAiB,MAAM,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAE,KAA+B,EAAE,OAAO,CAAC;YAC3D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC,CAAC;QACJ,MAAM,IAAI,GAAa;YACrB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;YAC9C,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;YAChD,EAAE,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,EAAE;SACpD,CAAC;QACF,IAAI,OAAO,CAAC,IAAI;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,MAAM,CAAC,IAAY,EAAE,OAAgB,EAAE,OAA4B,EAAE,IAAyB;IAC3G,MAAM,MAAM,GAAG,MAAM,UAAU,CAA0B,UAAU,EAAE;QACnE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;QAC/B,OAAO;KACR,CAAC,CAAC;IACH,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,MAAM,CAA0B,MAAM,CAAC,CAAC;QACrD,IAAI,IAAI;YAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,CAAC,EAAE,GAAY,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,CAAC,EAAE,GAAY,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,CAAC,EAAE,GAAY,EAAE,EAAE;IAC9C,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAA0B,UAAU,EAAE;YACnE,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAiB,MAAM,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAC9C,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,OAAO,CAAE,KAAsC,EAAE,OAAO,CAAC;YAClE,cAAc,EAAE,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtD,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,KAAK;SACf,CAAC;QACF,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,+BAA+B,CAAC,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAA4C,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Referral program commands (Phase F.5).
4
+ *
5
+ * sell referral-program get/update/links/attributions/stats
6
+ * buy referral get-link/rewards
7
+ */
8
+ export declare const referralProgram: Command;
9
+ export declare const buyReferral: Command;
10
+ //# sourceMappingURL=referrals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referrals.d.ts","sourceRoot":"","sources":["../../src/commands/referrals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;;;;GAKG;AAIH,eAAO,MAAM,eAAe,SAE3B,CAAC;AAkNF,eAAO,MAAM,WAAW,SAAkF,CAAC"}
@@ -0,0 +1,286 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { apiRequest } from "../lib/api.js";
4
+ import { buyerRequest, BuyerApiError } from "../lib/buyer-api.js";
5
+ import { requireBuyerSession } from "../lib/buyer-config.js";
6
+ import { output } from "../lib/output.js";
7
+ /**
8
+ * Referral program commands (Phase F.5).
9
+ *
10
+ * sell referral-program get/update/links/attributions/stats
11
+ * buy referral get-link/rewards
12
+ */
13
+ // ─── sell referral-program ───────────────────────────────────────────────
14
+ export const referralProgram = new Command("referral-program").description("Configure per-merchant referral program + inspect links / attributions / stats");
15
+ function handleError(err, json) {
16
+ const msg = err instanceof Error ? err.message : String(err);
17
+ if (json)
18
+ output({ error: { message: msg } }, { json: true });
19
+ else
20
+ console.error(chalk.red(`Error: ${msg}`));
21
+ process.exit(1);
22
+ }
23
+ referralProgram
24
+ .command("get")
25
+ .description("Show current program config")
26
+ .action(async (_opts, cmd) => {
27
+ const g = cmd.optsWithGlobals();
28
+ try {
29
+ const result = await apiRequest("/account/referrals", { sandbox: g.sandbox });
30
+ const data = result.data ?? result;
31
+ if (g.json)
32
+ output(result, { json: true });
33
+ else {
34
+ console.log(`Enabled: ${data.enabled ? chalk.green("yes") : chalk.red("no")}`);
35
+ console.log(`Reward type: ${data.rewardType}`);
36
+ console.log(`Referrer reward: ${formatReward(data.rewardType, data.referrerValue, data.currency)}`);
37
+ console.log(`Referee reward: ${formatReward(data.rewardType, data.refereeValue, data.currency)}`);
38
+ console.log(`Currency: ${data.currency}`);
39
+ console.log(`Min purchase: ${data.minPurchaseAmount != null ? formatCurrency(data.minPurchaseAmount, data.currency) : chalk.dim("(none)")}`);
40
+ console.log(`Reward expires after: ${data.rewardExpiryDays} days`);
41
+ console.log(`Attribution window: ${data.attributionWindowDays} days`);
42
+ console.log(`Max rewards per referrer: ${data.maxRewardsPerReferrer ?? chalk.dim("unlimited")}`);
43
+ if (data.programTerms)
44
+ console.log(`Terms:\n${chalk.dim(data.programTerms)}`);
45
+ }
46
+ }
47
+ catch (err) {
48
+ handleError(err, g.json);
49
+ }
50
+ });
51
+ referralProgram
52
+ .command("update")
53
+ .description("Update program fields (only flags you pass are changed)")
54
+ .option("--enable", "Enable the program")
55
+ .option("--disable", "Disable the program")
56
+ .option("--reward-type <type>", "percent | fixed | shipping_percent | shipping_fixed")
57
+ .option("--referrer-value <n>", "Reward value for the referrer", (v) => parseInt(v, 10))
58
+ .option("--referee-value <n>", "Reward value for the new buyer", (v) => parseInt(v, 10))
59
+ .option("--currency <code>", "Currency (e.g. IDR, USD)")
60
+ .option("--min-purchase <n>", "Min purchase amount in smallest unit", (v) => parseInt(v, 10))
61
+ .option("--no-min-purchase", "Clear the min purchase floor")
62
+ .option("--reward-expiry-days <n>", "Reward code TTL in days", (v) => parseInt(v, 10))
63
+ .option("--attribution-window-days <n>", "Attribution window in days", (v) => parseInt(v, 10))
64
+ .option("--max-rewards-per-referrer <n>", "Per-referrer lifetime cap", (v) => parseInt(v, 10))
65
+ .option("--no-max-rewards-per-referrer", "Remove the per-referrer cap")
66
+ .option("--terms <text>", "Fine-print terms shown to buyers")
67
+ .action(async (opts, cmd) => {
68
+ const g = cmd.optsWithGlobals();
69
+ try {
70
+ // Fetch current so we can merge — the API PUT replaces required fields.
71
+ const current = await apiRequest("/account/referrals", { sandbox: g.sandbox });
72
+ const cur = current.data ?? current;
73
+ const body = {
74
+ rewardType: opts.rewardType ?? cur.rewardType,
75
+ referrerValue: opts.referrerValue ?? cur.referrerValue,
76
+ refereeValue: opts.refereeValue ?? cur.refereeValue,
77
+ currency: opts.currency ?? cur.currency,
78
+ };
79
+ if (opts.enable)
80
+ body.enabled = true;
81
+ else if (opts.disable)
82
+ body.enabled = false;
83
+ else
84
+ body.enabled = cur.enabled;
85
+ if (opts.minPurchase === false)
86
+ body.minPurchaseAmount = null;
87
+ else if (opts.minPurchase !== undefined)
88
+ body.minPurchaseAmount = opts.minPurchase;
89
+ else
90
+ body.minPurchaseAmount = cur.minPurchaseAmount;
91
+ if (opts.rewardExpiryDays !== undefined)
92
+ body.rewardExpiryDays = opts.rewardExpiryDays;
93
+ if (opts.attributionWindowDays !== undefined)
94
+ body.attributionWindowDays = opts.attributionWindowDays;
95
+ if (opts.maxRewardsPerReferrer === false)
96
+ body.maxRewardsPerReferrer = null;
97
+ else if (opts.maxRewardsPerReferrer !== undefined)
98
+ body.maxRewardsPerReferrer = opts.maxRewardsPerReferrer;
99
+ else
100
+ body.maxRewardsPerReferrer = cur.maxRewardsPerReferrer;
101
+ if (opts.terms !== undefined)
102
+ body.programTerms = opts.terms || null;
103
+ const result = await apiRequest("/account/referrals", {
104
+ method: "PUT",
105
+ body,
106
+ sandbox: g.sandbox,
107
+ });
108
+ if (g.json)
109
+ output(result, { json: true });
110
+ else
111
+ console.log(chalk.green("Program saved."));
112
+ }
113
+ catch (err) {
114
+ handleError(err, g.json);
115
+ }
116
+ });
117
+ referralProgram
118
+ .command("links")
119
+ .description("Top referrer links (sorted by rewards, newest tiebreak)")
120
+ .option("--limit <n>", "Limit rows (max 200)", (v) => parseInt(v, 10), 20)
121
+ .action(async (opts, cmd) => {
122
+ const g = cmd.optsWithGlobals();
123
+ try {
124
+ const result = await apiRequest("/account/referrals/links", { query: { limit: String(opts.limit) }, sandbox: g.sandbox });
125
+ const rows = result.data?.rows ?? [];
126
+ if (g.json)
127
+ output(result, { json: true });
128
+ else if (rows.length === 0)
129
+ console.log(chalk.dim("No referral links yet."));
130
+ else {
131
+ console.log(chalk.bold("code email clicks signups rewards revenue"));
132
+ for (const r of rows) {
133
+ const email = (r.customer?.email ?? "—").padEnd(33).slice(0, 33);
134
+ console.log(`${r.code.padEnd(9)} ${email} ${String(r.clicks).padStart(6)} ${String(r.signups).padStart(7)} ${String(r.rewards).padStart(7)} ${r.revenue > 0 ? formatCurrency(r.revenue, "IDR") : "—"}`);
135
+ }
136
+ }
137
+ }
138
+ catch (err) {
139
+ handleError(err, g.json);
140
+ }
141
+ });
142
+ referralProgram
143
+ .command("attributions")
144
+ .description("Recent attribution lifecycle rows")
145
+ .option("--limit <n>", "Limit rows (max 200)", (v) => parseInt(v, 10), 20)
146
+ .option("--status <status>", "Filter: pending | rewarded | voided | expired")
147
+ .action(async (opts, cmd) => {
148
+ const g = cmd.optsWithGlobals();
149
+ try {
150
+ const query = { limit: String(opts.limit) };
151
+ if (opts.status)
152
+ query.status = opts.status;
153
+ const result = await apiRequest("/account/referrals/attributions", { query, sandbox: g.sandbox });
154
+ const rows = result.data?.rows ?? [];
155
+ if (g.json)
156
+ output(result, { json: true });
157
+ else if (rows.length === 0)
158
+ console.log(chalk.dim("No attributions yet."));
159
+ else {
160
+ console.log(chalk.bold("clicked status code referrer referee"));
161
+ for (const r of rows) {
162
+ const when = new Date(r.clickedAt).toISOString().slice(0, 16).replace("T", " ");
163
+ const status = r.status === "rewarded" ? chalk.green(r.status) : r.status === "pending" ? chalk.yellow(r.status) : chalk.dim(r.status);
164
+ const referrer = (r.referrerCustomer?.email ?? "—").padEnd(33).slice(0, 33);
165
+ const referee = (r.refereeCustomer?.email ?? "—").padEnd(33).slice(0, 33);
166
+ console.log(`${when} ${status.padEnd(16)} ${(r.link?.code ?? "—").padEnd(9)} ${referrer} ${referee}`);
167
+ }
168
+ }
169
+ }
170
+ catch (err) {
171
+ handleError(err, g.json);
172
+ }
173
+ });
174
+ referralProgram
175
+ .command("stats")
176
+ .description("Program stats (clicks, signups, rewards, attributed revenue)")
177
+ .action(async (_opts, cmd) => {
178
+ const g = cmd.optsWithGlobals();
179
+ try {
180
+ const result = await apiRequest("/account/referrals/stats", { sandbox: g.sandbox });
181
+ const stats = result.data ?? result;
182
+ if (g.json)
183
+ output(result, { json: true });
184
+ else {
185
+ console.log(`Links issued: ${chalk.bold(stats.totalLinks)}`);
186
+ console.log(`Clicks: ${chalk.bold(stats.totalClicks)}`);
187
+ console.log(`Signups: ${chalk.bold(stats.totalSignups)}`);
188
+ console.log(`Rewards issued: ${chalk.bold(stats.totalRewards)}`);
189
+ console.log(`Attributed revenue: ${formatCurrency(stats.attributedRevenue, "IDR")}`);
190
+ console.log(`Conversion rate: ${chalk.bold((stats.conversionRate * 100).toFixed(1))}% ${chalk.dim("(rewards / clicks)")}`);
191
+ }
192
+ }
193
+ catch (err) {
194
+ handleError(err, g.json);
195
+ }
196
+ });
197
+ // ─── buy referral ────────────────────────────────────────────────────────
198
+ export const buyReferral = new Command("referral").description("Your referral link + earned reward codes");
199
+ buyReferral
200
+ .command("get-link")
201
+ .description("Show your unique referral link for a merchant")
202
+ .requiredOption("--merchant <slug>", "Merchant slug")
203
+ .action(async (opts, cmd) => {
204
+ const g = cmd.optsWithGlobals();
205
+ try {
206
+ requireBuyerSession(opts.merchant);
207
+ const { data } = await buyerRequest(opts.merchant, "/checkout/referrals/my-link", {
208
+ method: "GET",
209
+ query: { accountSlug: opts.merchant },
210
+ });
211
+ if (g.json)
212
+ output({ data }, { json: true });
213
+ else if (!data?.enabled)
214
+ console.log(chalk.dim("This merchant hasn't enabled referrals yet."));
215
+ else {
216
+ console.log(`Link: ${chalk.bold(data.url ?? "—")}`);
217
+ console.log(`Code: ${chalk.bold(data.code ?? "—")}`);
218
+ console.log(chalk.dim("Stats:"));
219
+ console.log(` Clicks: ${data.stats?.clicks ?? 0}`);
220
+ console.log(` Signups: ${data.stats?.signups ?? 0}`);
221
+ console.log(` Rewards: ${data.stats?.rewards ?? 0}`);
222
+ }
223
+ }
224
+ catch (err) {
225
+ errExit(err);
226
+ }
227
+ });
228
+ buyReferral
229
+ .command("rewards")
230
+ .description("List reward codes you've earned from referrals")
231
+ .requiredOption("--merchant <slug>", "Merchant slug")
232
+ .action(async (opts, cmd) => {
233
+ const g = cmd.optsWithGlobals();
234
+ try {
235
+ requireBuyerSession(opts.merchant);
236
+ const { data } = await buyerRequest(opts.merchant, "/checkout/referrals/my-rewards", {
237
+ method: "GET",
238
+ query: { accountSlug: opts.merchant },
239
+ });
240
+ const rewards = data ?? [];
241
+ if (g.json)
242
+ output({ data: rewards }, { json: true });
243
+ else if (rewards.length === 0)
244
+ console.log(chalk.dim("No rewards yet."));
245
+ else {
246
+ console.log(chalk.bold("code role reward expires status"));
247
+ for (const r of rewards) {
248
+ const reward = formatReward(r.discountType, r.value, r.currency).padEnd(32);
249
+ const expires = r.expiresAt ? new Date(r.expiresAt).toISOString().slice(0, 10) : "—";
250
+ const status = r.redeemed ? chalk.green("used") : r.active ? chalk.yellow("active") : chalk.dim("expired");
251
+ console.log(`${r.code.padEnd(16)} ${r.role.padEnd(10)} ${reward} ${expires.padEnd(12)} ${status}`);
252
+ }
253
+ }
254
+ }
255
+ catch (err) {
256
+ errExit(err);
257
+ }
258
+ });
259
+ // ─── helpers ─────────────────────────────────────────────────────────────
260
+ function formatCurrency(amount, currency) {
261
+ return new Intl.NumberFormat(currency === "USD" ? "en-US" : "id-ID", {
262
+ style: "currency", currency, minimumFractionDigits: 0,
263
+ }).format(amount);
264
+ }
265
+ function formatReward(type, value, currency) {
266
+ if (type === "percent")
267
+ return `${value}% off cart`;
268
+ if (type === "shipping_percent")
269
+ return `${value}% off shipping`;
270
+ if (type === "fixed")
271
+ return `${formatCurrency(value, currency)} off cart`;
272
+ return `${formatCurrency(value, currency)} off shipping`;
273
+ }
274
+ function errExit(err) {
275
+ if (err instanceof BuyerApiError) {
276
+ if (err.status === 401)
277
+ console.error(chalk.red("Not signed in — run: storlaunch buy auth login --merchant <slug>"));
278
+ else
279
+ console.error(chalk.red(`${err.message} (HTTP ${err.status})`));
280
+ }
281
+ else {
282
+ console.error(chalk.red(err.message));
283
+ }
284
+ process.exit(1);
285
+ }
286
+ //# sourceMappingURL=referrals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../../src/commands/referrals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;;;;GAKG;AAEH,4EAA4E;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC,WAAW,CACxE,gFAAgF,CACjF,CAAC;AA6CF,SAAS,WAAW,CAAC,GAAY,EAAE,IAAc;IAC/C,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,IAAI,IAAI;QAAE,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;;QACzD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,eAAe;KACZ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,6BAA6B,CAAC;KAC1C,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAgB,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAI,MAA8C,CAAC,IAAI,IAAK,MAAmC,CAAC;QAC1G,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9F,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3G,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1G,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACvJ,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,gBAAgB,OAAO,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,qBAAqB,OAAO,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACjG,IAAI,IAAI,CAAC,YAAY;gBAAE,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,eAAe;KACZ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,UAAU,EAAE,oBAAoB,CAAC;KACxC,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC;KAC1C,MAAM,CAAC,sBAAsB,EAAE,qDAAqD,CAAC;KACrF,MAAM,CAAC,sBAAsB,EAAE,+BAA+B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACvF,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACvF,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;KACvD,MAAM,CAAC,oBAAoB,EAAE,sCAAsC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAC5F,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC3D,MAAM,CAAC,0BAA0B,EAAE,yBAAyB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KACrF,MAAM,CAAC,+BAA+B,EAAE,4BAA4B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAC7F,MAAM,CAAC,gCAAgC,EAAE,2BAA2B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAC7F,MAAM,CAAC,+BAA+B,EAAE,6BAA6B,CAAC;KACtE,MAAM,CAAC,gBAAgB,EAAE,kCAAkC,CAAC;KAC5D,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAY,EAAE,EAAE;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,wEAAwE;QACxE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAgB,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9F,MAAM,GAAG,GAAI,OAA+C,CAAC,IAAI,IAAK,OAAoC,CAAC;QAE3G,MAAM,IAAI,GAA4B;YACpC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU;YAC7C,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa;YACtD,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,CAAC,YAAY;YACnD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;SACxC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aAChC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;YACvC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAEhC,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK;YAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACzD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;;YAC9E,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC;QAEpD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvF,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS;YAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEtG,IAAI,IAAI,CAAC,qBAAqB,KAAK,KAAK;YAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACvE,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS;YAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;;YACtG,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC,qBAAqB,CAAC;QAE5D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAgB,oBAAoB,EAAE;YACnE,MAAM,EAAE,KAAK;YACb,IAAI;YACJ,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,eAAe;KACZ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;KACzE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAY,EAAE,EAAE;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,0BAA0B,EAC1B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAC7D,CAAC;QACF,MAAM,IAAI,GAAI,MAAoD,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACpF,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;aACxE,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC,CAAC;YACzG,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAC/L,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,eAAe;KACZ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;KACzE,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,CAAC;KAC5E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAY,EAAE,EAAE;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,KAAK,GAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,iCAAiC,EACjC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAC9B,CAAC;QACF,MAAM,IAAI,GAAI,MAA2D,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC3F,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;aACtE,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC,CAAC;YAClH,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAChF,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACvI,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5E,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,KAAK,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,eAAe;KACZ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;IACpC,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAe,0BAA0B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAClG,MAAM,KAAK,GAAI,MAA6C,CAAC,IAAI,IAAK,MAAkC,CAAC;QACzG,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACtC,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAChI,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEL,4EAA4E;AAE5E,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,0CAA0C,CAAC,CAAC;AAoB3G,WAAW;KACR,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,cAAc,CAAC,mBAAmB,EAAE,eAAe,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,IAA0B,EAAE,GAAY,EAAE,EAAE;IACzD,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAS,IAAI,CAAC,QAAQ,EAAE,6BAA6B,EAAE;YACxF,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC,IAAI,CAAC,IAAI,EAAE,OAAO;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;aAC1F,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,WAAW;KACR,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,cAAc,CAAC,mBAAmB,EAAE,eAAe,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,IAA0B,EAAE,GAAY,EAAE,EAAE;IACzD,MAAM,CAAC,GAAG,GAAG,CAAC,eAAe,EAAyC,CAAC;IACvE,IAAI,CAAC;QACH,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,YAAY,CAAa,IAAI,CAAC,QAAQ,EAAE,gCAAgC,EAAE;YAC/F,MAAM,EAAE,KAAK;YACb,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE;SACtC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI;YAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;aACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACpE,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC,CAAC;YAC5G,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5E,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACrF,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3G,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,4EAA4E;AAE5E,SAAS,cAAc,CAAC,MAAc,EAAE,QAAgB;IACtD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE;QACnE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;KACtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa,EAAE,QAAgB;IACjE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,GAAG,KAAK,YAAY,CAAC;IACpD,IAAI,IAAI,KAAK,kBAAkB;QAAE,OAAO,GAAG,KAAK,gBAAgB,CAAC;IACjE,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC;IAC3E,OAAO,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC;AAC3D,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC,CAAC;;YAChH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC;;;;GAIG;AACH,eAAO,MAAM,IAAI,SAAoF,CAAC"}
1
+ {"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC;;;;GAIG;AACH,eAAO,MAAM,IAAI,SAAoF,CAAC"}
@@ -15,6 +15,13 @@ import { pixels } from "./pixels.js";
15
15
  import { abandonedCart } from "./abandoned-cart.js";
16
16
  import { feeds } from "./feeds.js";
17
17
  import { blog } from "./blog.js";
18
+ import { referralProgram } from "./referrals.js";
19
+ import { apiKeys } from "./api-keys.js";
20
+ import { auditLog } from "./audit-log.js";
21
+ import { domains } from "./domains.js";
22
+ import { settings } from "./settings.js";
23
+ import { modules } from "./modules.js";
24
+ import { workspace } from "./workspace.js";
18
25
  /**
19
26
  * `sell` — seller-side commands. Wraps existing command modules as
20
27
  * subcommands. 0.3.0 adds inventory (variants/warehouses/stock) and
@@ -35,6 +42,13 @@ sell.addCommand(pixels);
35
42
  sell.addCommand(abandonedCart);
36
43
  sell.addCommand(feeds);
37
44
  sell.addCommand(blog);
45
+ sell.addCommand(referralProgram);
38
46
  sell.addCommand(webhook);
47
+ sell.addCommand(apiKeys);
48
+ sell.addCommand(auditLog);
49
+ sell.addCommand(domains);
50
+ sell.addCommand(settings);
51
+ sell.addCommand(modules);
52
+ sell.addCommand(workspace);
39
53
  sell.addCommand(config);
40
54
  //# sourceMappingURL=sell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sell.js","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;GAIG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,gDAAgD,CAAC,CAAC;AAEtG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC3B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"sell.js","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Command } from "commander";
2
+ declare const settings: Command;
3
+ export { settings };
4
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/commands/settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmFpC,QAAA,MAAM,QAAQ,SAEb,CAAC;AAmUF,OAAO,EAAE,QAAQ,EAAE,CAAC"}