affitor 0.2.0 → 0.3.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.
- package/dist/cli.js +28 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +86 -51
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +123 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +23 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/programs.d.ts +3 -0
- package/dist/commands/programs.d.ts.map +1 -0
- package/dist/commands/programs.js +54 -0
- package/dist/commands/programs.js.map +1 -0
- package/dist/commands/setup-stripe.d.ts.map +1 -1
- package/dist/commands/setup-stripe.js +51 -35
- package/dist/commands/setup-stripe.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +38 -32
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/test.d.ts.map +1 -1
- package/dist/commands/test.js +8 -9
- package/dist/commands/test.js.map +1 -1
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +38 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/lib/api-client.d.ts +25 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +26 -1
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/config.d.ts +11 -3
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +171 -11
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/inject.d.ts +27 -0
- package/dist/lib/inject.d.ts.map +1 -0
- package/dist/lib/inject.js +81 -0
- package/dist/lib/inject.js.map +1 -0
- package/dist/lib/logger.d.ts +8 -0
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +72 -0
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/server-tracking.d.ts +25 -0
- package/dist/lib/server-tracking.d.ts.map +1 -0
- package/dist/lib/server-tracking.js +109 -0
- package/dist/lib/server-tracking.js.map +1 -0
- package/dist/lib/stack-detect.d.ts +18 -0
- package/dist/lib/stack-detect.d.ts.map +1 -0
- package/dist/lib/stack-detect.js +57 -0
- package/dist/lib/stack-detect.js.map +1 -0
- package/dist/lib/wizard.d.ts +14 -0
- package/dist/lib/wizard.d.ts.map +1 -0
- package/dist/lib/wizard.js +166 -0
- package/dist/lib/wizard.js.map +1 -0
- package/dist/types.d.ts +27 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export type Framework = "next-app" | "next-pages" | "unknown";
|
|
2
|
+
export type PackageManager = "npm" | "yarn" | "pnpm";
|
|
3
|
+
export interface StackInfo {
|
|
4
|
+
framework: Framework;
|
|
5
|
+
packageManager: PackageManager;
|
|
6
|
+
/** Absolute path to the entry file to wire (layout.tsx / _app.tsx), or null. */
|
|
7
|
+
entryFile: string | null;
|
|
8
|
+
/** Directory to create the tracker component in, or null. */
|
|
9
|
+
componentDir: string | null;
|
|
10
|
+
}
|
|
11
|
+
export declare function detectPackageManager(cwd: string): PackageManager;
|
|
12
|
+
/**
|
|
13
|
+
* Detect the framework + package manager + entry file of the project at `cwd`.
|
|
14
|
+
* Next.js only for now (App Router preferred, then Pages Router); everything
|
|
15
|
+
* else is `unknown` so the wizard falls back to printed instructions.
|
|
16
|
+
*/
|
|
17
|
+
export declare function detectStack(cwd: string): StackInfo;
|
|
18
|
+
//# sourceMappingURL=stack-detect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-detect.d.ts","sourceRoot":"","sources":["../../src/lib/stack-detect.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,gFAAgF;IAChF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAWD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAIhE;AAUD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA2BlD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
function readDeps(cwd) {
|
|
4
|
+
try {
|
|
5
|
+
const pkg = JSON.parse(readFileSync(join(cwd, "package.json"), "utf8"));
|
|
6
|
+
return { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function detectPackageManager(cwd) {
|
|
13
|
+
if (existsSync(join(cwd, "pnpm-lock.yaml")))
|
|
14
|
+
return "pnpm";
|
|
15
|
+
if (existsSync(join(cwd, "yarn.lock")))
|
|
16
|
+
return "yarn";
|
|
17
|
+
return "npm";
|
|
18
|
+
}
|
|
19
|
+
function firstExisting(cwd, candidates) {
|
|
20
|
+
for (const c of candidates) {
|
|
21
|
+
const full = join(cwd, c);
|
|
22
|
+
if (existsSync(full))
|
|
23
|
+
return full;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Detect the framework + package manager + entry file of the project at `cwd`.
|
|
29
|
+
* Next.js only for now (App Router preferred, then Pages Router); everything
|
|
30
|
+
* else is `unknown` so the wizard falls back to printed instructions.
|
|
31
|
+
*/
|
|
32
|
+
export function detectStack(cwd) {
|
|
33
|
+
const packageManager = detectPackageManager(cwd);
|
|
34
|
+
const deps = readDeps(cwd);
|
|
35
|
+
if (deps["next"]) {
|
|
36
|
+
const appLayout = firstExisting(cwd, [
|
|
37
|
+
"app/layout.tsx",
|
|
38
|
+
"app/layout.jsx",
|
|
39
|
+
"src/app/layout.tsx",
|
|
40
|
+
"src/app/layout.jsx",
|
|
41
|
+
]);
|
|
42
|
+
if (appLayout) {
|
|
43
|
+
return { framework: "next-app", packageManager, entryFile: appLayout, componentDir: dirname(appLayout) };
|
|
44
|
+
}
|
|
45
|
+
const pagesApp = firstExisting(cwd, [
|
|
46
|
+
"pages/_app.tsx",
|
|
47
|
+
"pages/_app.jsx",
|
|
48
|
+
"src/pages/_app.tsx",
|
|
49
|
+
"src/pages/_app.jsx",
|
|
50
|
+
]);
|
|
51
|
+
if (pagesApp) {
|
|
52
|
+
return { framework: "next-pages", packageManager, entryFile: pagesApp, componentDir: dirname(pagesApp) };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return { framework: "unknown", packageManager, entryFile: null, componentDir: null };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=stack-detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stack-detect.js","sourceRoot":"","sources":["../../src/lib/stack-detect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAc1C,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IAC3D,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,UAAoB;IACtD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,MAAM,cAAc,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE3B,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,EAAE;YACnC,gBAAgB;YAChB,gBAAgB;YAChB,oBAAoB;YACpB,oBAAoB;SACrB,CAAC,CAAC;QACH,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3G,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,EAAE;YAClC,gBAAgB;YAChB,gBAAgB;YAChB,oBAAoB;YACpB,oBAAoB;SACrB,CAAC,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACvF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface WizardOptions {
|
|
2
|
+
cwd: string;
|
|
3
|
+
programId: string | number;
|
|
4
|
+
apiUrl: string;
|
|
5
|
+
autoConfirm: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Auto-install wizard: detect the stack, install affitor-sdk, create the
|
|
9
|
+
* tracker component, and wire it into the app entry — with a diff preview and
|
|
10
|
+
* confirmation. Never edits auth/checkout code (signup() is printed as a
|
|
11
|
+
* snippet). Any failure degrades gracefully to printed instructions.
|
|
12
|
+
*/
|
|
13
|
+
export declare function runInstallWizard(opts: WizardOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAiBD;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwDzE"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { basename, join, relative } from "node:path";
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import * as logger from "./logger.js";
|
|
5
|
+
import { format } from "./logger.js";
|
|
6
|
+
import { confirmAction } from "./prompts.js";
|
|
7
|
+
import { detectStack } from "./stack-detect.js";
|
|
8
|
+
import { injectAppLayout, injectPagesApp, trackerComponentSource } from "./inject.js";
|
|
9
|
+
import { affitorClientSource, detectPaymentProvider, serverTrackingSnippets, } from "./server-tracking.js";
|
|
10
|
+
const SDK_PACKAGE = "affitor-sdk";
|
|
11
|
+
const NODE_PACKAGE = "affitor-node";
|
|
12
|
+
function rel(cwd, p) {
|
|
13
|
+
return relative(cwd, p) || basename(p);
|
|
14
|
+
}
|
|
15
|
+
function installCommand(pm, pkg) {
|
|
16
|
+
switch (pm) {
|
|
17
|
+
case "yarn":
|
|
18
|
+
return { cmd: "yarn", args: ["add", pkg] };
|
|
19
|
+
case "pnpm":
|
|
20
|
+
return { cmd: "pnpm", args: ["add", pkg] };
|
|
21
|
+
default:
|
|
22
|
+
return { cmd: "npm", args: ["install", pkg] };
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Auto-install wizard: detect the stack, install affitor-sdk, create the
|
|
27
|
+
* tracker component, and wire it into the app entry — with a diff preview and
|
|
28
|
+
* confirmation. Never edits auth/checkout code (signup() is printed as a
|
|
29
|
+
* snippet). Any failure degrades gracefully to printed instructions.
|
|
30
|
+
*/
|
|
31
|
+
export async function runInstallWizard(opts) {
|
|
32
|
+
const stack = detectStack(opts.cwd);
|
|
33
|
+
logger.titledBox("Auto-install", [
|
|
34
|
+
"",
|
|
35
|
+
` Framework: ${stack.framework === "unknown" ? format.yellow("not detected") : format.green(stack.framework)}`,
|
|
36
|
+
` Installer: ${format.cyan(stack.packageManager)}`,
|
|
37
|
+
"",
|
|
38
|
+
]);
|
|
39
|
+
// ── Browser tracking (affitor-sdk) — click capture ──
|
|
40
|
+
if (stack.framework === "unknown" || !stack.entryFile || !stack.componentDir) {
|
|
41
|
+
logger.step("Framework not auto-detectable — add the browser tracker manually:");
|
|
42
|
+
printScriptTagInstructions(opts);
|
|
43
|
+
}
|
|
44
|
+
else if (!(await installPackage(stack.packageManager, opts.cwd, SDK_PACKAGE, opts.autoConfirm))) {
|
|
45
|
+
logger.warn(`Skipped/failed installing ${SDK_PACKAGE} — use the script tag instead:`);
|
|
46
|
+
printScriptTagInstructions(opts);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Create the tracker component (new file — always safe).
|
|
50
|
+
const componentPath = join(stack.componentDir, "affitor-tracker.tsx");
|
|
51
|
+
if (existsSync(componentPath)) {
|
|
52
|
+
logger.step(`${rel(opts.cwd, componentPath)} already exists — skipped`);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
const useClient = stack.framework === "next-app";
|
|
56
|
+
writeFileSync(componentPath, trackerComponentSource(opts.programId, useClient), "utf8");
|
|
57
|
+
logger.success(`Created ${rel(opts.cwd, componentPath)}`);
|
|
58
|
+
}
|
|
59
|
+
// Wire <AffitorTracker /> into the entry (diff preview + confirm).
|
|
60
|
+
const original = readFileSync(stack.entryFile, "utf8");
|
|
61
|
+
const result = stack.framework === "next-app"
|
|
62
|
+
? injectAppLayout(original, "./affitor-tracker")
|
|
63
|
+
: injectPagesApp(original, "./affitor-tracker");
|
|
64
|
+
const entryLabel = rel(opts.cwd, stack.entryFile);
|
|
65
|
+
if (result.status === "already") {
|
|
66
|
+
logger.step(`${entryLabel} already wired — skipped`);
|
|
67
|
+
}
|
|
68
|
+
else if (result.status === "unrecognized") {
|
|
69
|
+
logger.warn(`Couldn't safely edit ${entryLabel}. Add this yourself:`);
|
|
70
|
+
printEntrySnippet(stack.framework);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
showAddedDiff(entryLabel, result.added);
|
|
74
|
+
const ok = opts.autoConfirm || (await confirmAction(`Apply this change to ${basename(stack.entryFile)}?`));
|
|
75
|
+
if (ok) {
|
|
76
|
+
writeFileSync(stack.entryFile, result.content, "utf8");
|
|
77
|
+
logger.success(`Wired tracking into ${entryLabel}`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
logger.step("Skipped. Add <AffitorTracker /> at the app root when ready.");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// ── Server-side conversion (affitor-node) — lead binding + sale ──
|
|
85
|
+
// Install + scaffold the client; print guided snippets. Never edits auth/payment code.
|
|
86
|
+
await setupServerTracking(opts, stack.packageManager);
|
|
87
|
+
}
|
|
88
|
+
async function setupServerTracking(opts, pm) {
|
|
89
|
+
const provider = detectPaymentProvider(opts.cwd);
|
|
90
|
+
logger.titledBox("Server-side conversion (affitor-node)", [
|
|
91
|
+
"",
|
|
92
|
+
` Payment provider: ${provider === "unknown" ? format.yellow("not detected") : format.green(provider)}`,
|
|
93
|
+
"",
|
|
94
|
+
]);
|
|
95
|
+
const installed = await installPackage(pm, opts.cwd, NODE_PACKAGE, opts.autoConfirm);
|
|
96
|
+
if (installed) {
|
|
97
|
+
const clientDir = existsSync(join(opts.cwd, "src")) ? join(opts.cwd, "src", "lib") : join(opts.cwd, "lib");
|
|
98
|
+
const clientPath = join(clientDir, "affitor.ts");
|
|
99
|
+
if (existsSync(clientPath)) {
|
|
100
|
+
logger.step(`${rel(opts.cwd, clientPath)} already exists — skipped`);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
mkdirSync(clientDir, { recursive: true });
|
|
104
|
+
writeFileSync(clientPath, affitorClientSource(), "utf8");
|
|
105
|
+
logger.success(`Created ${rel(opts.cwd, clientPath)}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
const { cmd, args } = installCommand(pm, NODE_PACKAGE);
|
|
110
|
+
logger.warn(`Skipped/failed installing ${NODE_PACKAGE} — install it when ready: ${cmd} ${args.join(" ")}`);
|
|
111
|
+
}
|
|
112
|
+
printServerSnippets(serverTrackingSnippets(provider));
|
|
113
|
+
}
|
|
114
|
+
function printServerSnippets(s) {
|
|
115
|
+
const lines = ["", ` ${format.dim("1) At signup — bind the customer (server-side):")}`];
|
|
116
|
+
for (const l of s.lead.split("\n"))
|
|
117
|
+
lines.push(` ${format.cyan(l)}`);
|
|
118
|
+
lines.push("", ` ${format.dim(`2) At purchase — ${s.saleContext}:`)}`);
|
|
119
|
+
for (const l of s.sale.split("\n"))
|
|
120
|
+
lines.push(` ${format.cyan(l)}`);
|
|
121
|
+
lines.push("", ` ${format.dim("3) On refund — reverse the commission:")}`);
|
|
122
|
+
for (const l of s.refund.split("\n"))
|
|
123
|
+
lines.push(` ${format.cyan(l)}`);
|
|
124
|
+
lines.push("", ` ${format.dim("Paste these in — the wizard never edits your auth/payment code.")}`, "");
|
|
125
|
+
logger.titledBox("Track conversions (add to your backend)", lines);
|
|
126
|
+
}
|
|
127
|
+
async function installPackage(pm, cwd, pkg, autoConfirm) {
|
|
128
|
+
const { cmd, args } = installCommand(pm, pkg);
|
|
129
|
+
const ok = autoConfirm || (await confirmAction(`Install ${pkg} with \`${cmd} ${args.join(" ")}\`?`));
|
|
130
|
+
if (!ok)
|
|
131
|
+
return false;
|
|
132
|
+
logger.step(`Running ${cmd} ${args.join(" ")} …`);
|
|
133
|
+
try {
|
|
134
|
+
const res = spawnSync(cmd, args, { cwd, stdio: "inherit" });
|
|
135
|
+
return res.status === 0;
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
function showAddedDiff(file, added) {
|
|
142
|
+
logger.newline();
|
|
143
|
+
logger.info(` ${format.dim("Proposed change to")} ${format.cyan(file)}${format.dim(":")}`);
|
|
144
|
+
for (const line of added) {
|
|
145
|
+
logger.info(` ${format.green("+ " + line)}`);
|
|
146
|
+
}
|
|
147
|
+
logger.newline();
|
|
148
|
+
}
|
|
149
|
+
function printEntrySnippet(framework) {
|
|
150
|
+
if (framework === "next-pages") {
|
|
151
|
+
logger.info(` ${format.cyan("import { AffitorTracker } from './affitor-tracker';")}`);
|
|
152
|
+
logger.info(` ${format.dim("// render <AffitorTracker /> alongside <Component {...pageProps} />")}`);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
logger.info(` ${format.cyan("import { AffitorTracker } from './affitor-tracker';")}`);
|
|
156
|
+
logger.info(` ${format.dim("// render <AffitorTracker /> inside <body> of app/layout.tsx")}`);
|
|
157
|
+
}
|
|
158
|
+
logger.newline();
|
|
159
|
+
}
|
|
160
|
+
function printScriptTagInstructions(opts) {
|
|
161
|
+
logger.info(` ${format.cyan(`<script src="${opts.apiUrl}/js/affitor-tracker.js"`)}`);
|
|
162
|
+
logger.info(` ${format.cyan(` data-affitor-program-id="${opts.programId}"></script>`)}`);
|
|
163
|
+
logger.info(` ${format.dim("(add to your site's <head>)")}`);
|
|
164
|
+
logger.newline();
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -13,11 +13,24 @@ export interface AffitorConfig {
|
|
|
13
13
|
duration_days: number;
|
|
14
14
|
};
|
|
15
15
|
ref_param: string;
|
|
16
|
-
stripe_connected
|
|
16
|
+
stripe_connected?: boolean;
|
|
17
17
|
stripe_account_id?: string;
|
|
18
|
-
api_key: string;
|
|
19
18
|
api_url: string;
|
|
20
19
|
created_at: string;
|
|
20
|
+
api_key?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface AffitorSecrets {
|
|
23
|
+
api_key: string;
|
|
24
|
+
program_id: string;
|
|
25
|
+
stripe_account_id?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface UserCredentials {
|
|
28
|
+
token: string;
|
|
29
|
+
email: string;
|
|
30
|
+
user_id: string;
|
|
31
|
+
advertiser_id: string;
|
|
32
|
+
expires_at: string;
|
|
33
|
+
created_at: string;
|
|
21
34
|
}
|
|
22
35
|
export type CommissionType = "percent" | "fixed" | "recurring_percent" | "recurring_fixed";
|
|
23
36
|
export interface InitOptions {
|
|
@@ -56,6 +69,15 @@ export interface ProgramStatus {
|
|
|
56
69
|
active_partners: number;
|
|
57
70
|
pending_commissions: number;
|
|
58
71
|
}
|
|
72
|
+
export interface ProgramSummary {
|
|
73
|
+
id: number;
|
|
74
|
+
name: string;
|
|
75
|
+
domain: string;
|
|
76
|
+
status: string;
|
|
77
|
+
commission: string;
|
|
78
|
+
partners: number;
|
|
79
|
+
created_at: string;
|
|
80
|
+
}
|
|
59
81
|
export interface TestEventResult {
|
|
60
82
|
event_type: "click" | "lead" | "sale";
|
|
61
83
|
event_id: string;
|
|
@@ -77,6 +99,9 @@ export declare const API_URL_UAT = "https://uat-affitor-cms.vanilla-ott.com";
|
|
|
77
99
|
export declare const DEFAULT_API_URL = "https://api.affitor.com";
|
|
78
100
|
export declare const CONFIG_DIR = ".affitor";
|
|
79
101
|
export declare const CONFIG_FILE = "config.json";
|
|
102
|
+
export declare const SECRETS_FILE = ".env";
|
|
103
|
+
export declare const GLOBAL_CONFIG_DIR = ".affitor";
|
|
104
|
+
export declare const CREDENTIALS_FILE = "credentials.json";
|
|
80
105
|
export declare const OAUTH_CALLBACK_PORT_START = 3456;
|
|
81
106
|
export declare const OAUTH_CALLBACK_PORT_END = 3465;
|
|
82
107
|
export declare const OAUTH_TIMEOUT_MS = 120000;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE;QACV,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -3,6 +3,9 @@ export const API_URL_UAT = "https://uat-affitor-cms.vanilla-ott.com";
|
|
|
3
3
|
export const DEFAULT_API_URL = API_URL_PROD;
|
|
4
4
|
export const CONFIG_DIR = ".affitor";
|
|
5
5
|
export const CONFIG_FILE = "config.json";
|
|
6
|
+
export const SECRETS_FILE = ".env";
|
|
7
|
+
export const GLOBAL_CONFIG_DIR = ".affitor";
|
|
8
|
+
export const CREDENTIALS_FILE = "credentials.json";
|
|
6
9
|
export const OAUTH_CALLBACK_PORT_START = 3456;
|
|
7
10
|
export const OAUTH_CALLBACK_PORT_END = 3465;
|
|
8
11
|
export const OAUTH_TIMEOUT_MS = 120_000;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgHA,MAAM,CAAC,MAAM,YAAY,GAAG,yBAAyB,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,yCAAyC,CAAC;AACrE,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AACrC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,kBAAkB;IAClB,4BAA4B;IAC5B,cAAc;IACd,wBAAwB;IACxB,iBAAiB;IACjB,+BAA+B;CACvB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "affitor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "CLI-native affiliate tracking. Connect Stripe, track commissions, manage partners — all from your terminal.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"build": "tsc",
|
|
11
11
|
"dev": "tsc --watch",
|
|
12
12
|
"start": "node dist/cli.js",
|
|
13
|
-
"test": "vitest run",
|
|
13
|
+
"test": "vitest run --passWithNoTests",
|
|
14
14
|
"test:watch": "vitest",
|
|
15
15
|
"lint": "tsc --noEmit",
|
|
16
16
|
"prepublishOnly": "npm run build"
|