@apex-inc/sdk 0.1.1 → 0.5.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.
@@ -45,7 +45,49 @@ function createManagementClient(cfg) {
45
45
  }
46
46
  return res.json();
47
47
  },
48
+ /** Fetch a single experiment (unified shape). */
49
+ async getExperiment(id) {
50
+ const res = await fetch(`${root}/api/experiments/${encodeURIComponent(id)}?unified=true`, { headers });
51
+ if (!res.ok)
52
+ throw new Error(`Apex getExperiment failed (${res.status}): ${await res.text().catch(() => "")}`);
53
+ return res.json();
54
+ },
55
+ /**
56
+ * Computed results + the shared readiness verdict
57
+ * (collecting | decisive | inconclusive | guardrail) for any surface.
58
+ */
59
+ async getExperimentResults(id) {
60
+ const res = await fetch(`${root}/api/experiments/${encodeURIComponent(id)}/results`, { headers });
61
+ if (!res.ok)
62
+ throw new Error(`Apex getExperimentResults failed (${res.status}): ${await res.text().catch(() => "")}`);
63
+ return res.json();
64
+ },
65
+ /**
66
+ * Promote the experiment's winner (re-verifies the readiness gate
67
+ * server-side; pass `force` to override). Winner content is written into
68
+ * the canonical communication as a new version.
69
+ */
70
+ async promoteExperiment(id, opts) {
71
+ const res = await fetch(`${root}/api/experiments/${encodeURIComponent(id)}/promote`, { method: "POST", headers, body: JSON.stringify(opts ?? {}) });
72
+ if (!res.ok)
73
+ throw new Error(`Apex promoteExperiment failed (${res.status}): ${await res.text().catch(() => "")}`);
74
+ return res.json();
75
+ },
48
76
  // ─── Communications ───────────────────────────────────────────────
77
+ /** Append a content variant to a communication (composer-columns model; an experiment arm). */
78
+ async createCommVariant(commId, opts) {
79
+ const res = await fetch(`${root}/api/communications/${encodeURIComponent(commId)}/variants`, { method: "POST", headers, body: JSON.stringify(opts ?? {}) });
80
+ if (!res.ok)
81
+ throw new Error(`Apex createCommVariant failed (${res.status}): ${await res.text().catch(() => "")}`);
82
+ return res.json();
83
+ },
84
+ /** List the content variants (`content.variants[]`) of a communication. */
85
+ async listCommVariants(commId) {
86
+ const res = await fetch(`${root}/api/communications/${encodeURIComponent(commId)}/variants`, { headers });
87
+ if (!res.ok)
88
+ throw new Error(`Apex listCommVariants failed (${res.status}): ${await res.text().catch(() => "")}`);
89
+ return res.json();
90
+ },
49
91
  async recommendCommunications() {
50
92
  const res = await fetch(`${root}/api/communications/recommend`, { method: "POST", headers });
51
93
  if (!res.ok)
@@ -151,6 +193,356 @@ function createManagementClient(cfg) {
151
193
  throw new Error(`Apex getEventIntegrationStatus failed (${res.status}): ${await res.text().catch(() => "")}`);
152
194
  return res.json();
153
195
  },
196
+ // ─── Partner Network — Programs (MMP-161) ─────────────────────────
197
+ //
198
+ // Every method below runs under the merchant's x-apex-project scope.
199
+ // Partner-facing flows (self-signup, dashboard, Stripe Connect OAuth)
200
+ // are cookie-authed in the portal and not wrapped in this SDK.
201
+ async listPrograms() {
202
+ const res = await fetch(`${root}/api/mobile/affiliates/programs`, { headers });
203
+ if (!res.ok)
204
+ throw new Error(`Apex listPrograms failed (${res.status}): ${await res.text().catch(() => "")}`);
205
+ return res.json();
206
+ },
207
+ async createProgram(params) {
208
+ const res = await fetch(`${root}/api/mobile/affiliates/programs`, {
209
+ method: "POST",
210
+ headers,
211
+ body: JSON.stringify(params),
212
+ });
213
+ if (!res.ok)
214
+ throw new Error(`Apex createProgram failed (${res.status}): ${await res.text().catch(() => "")}`);
215
+ return res.json();
216
+ },
217
+ async updateProgram(programId, updates) {
218
+ const res = await fetch(`${root}/api/mobile/affiliates/programs/${encodeURIComponent(programId)}`, {
219
+ method: "PATCH",
220
+ headers,
221
+ body: JSON.stringify(updates),
222
+ });
223
+ if (!res.ok)
224
+ throw new Error(`Apex updateProgram failed (${res.status}): ${await res.text().catch(() => "")}`);
225
+ return res.json();
226
+ },
227
+ async listProgramMembers(programId) {
228
+ const res = await fetch(`${root}/api/mobile/affiliates/programs/${encodeURIComponent(programId)}/members`, { headers });
229
+ if (!res.ok)
230
+ throw new Error(`Apex listProgramMembers failed (${res.status}): ${await res.text().catch(() => "")}`);
231
+ return res.json();
232
+ },
233
+ /** Apply program default commission to every existing member (respects overrides). */
234
+ async applyProgramDefaultToMembers(programId) {
235
+ const res = await fetch(`${root}/api/mobile/affiliates/programs/${encodeURIComponent(programId)}/apply-to-members`, {
236
+ method: "POST",
237
+ headers,
238
+ });
239
+ if (!res.ok)
240
+ throw new Error(`Apex applyProgramDefaultToMembers failed (${res.status}): ${await res.text().catch(() => "")}`);
241
+ return res.json();
242
+ },
243
+ // ─── Partner Network — Rate overrides ─────────────────────────────
244
+ /** Override a single membership's commission (sticky — survives program default updates). */
245
+ async updateMembershipRate(profileId, params) {
246
+ const res = await fetch(`${root}/api/mobile/affiliates/memberships/${encodeURIComponent(profileId)}/rate`, {
247
+ method: "POST",
248
+ headers,
249
+ body: JSON.stringify(params),
250
+ });
251
+ if (!res.ok)
252
+ throw new Error(`Apex updateMembershipRate failed (${res.status}): ${await res.text().catch(() => "")}`);
253
+ return res.json();
254
+ },
255
+ /** Reset a membership back to its program's default commission. */
256
+ async resetMembershipRate(profileId, reason) {
257
+ const res = await fetch(`${root}/api/mobile/affiliates/memberships/${encodeURIComponent(profileId)}/rate`, {
258
+ method: "POST",
259
+ headers,
260
+ body: JSON.stringify({ reset: true, reason }),
261
+ });
262
+ if (!res.ok)
263
+ throw new Error(`Apex resetMembershipRate failed (${res.status}): ${await res.text().catch(() => "")}`);
264
+ return res.json();
265
+ },
266
+ // ─── Partner Network — Invitations ────────────────────────────────
267
+ /** Send a magic-link invite to a partner (email resolves to existing profile or creates pending). */
268
+ async invitePartner(params) {
269
+ const res = await fetch(`${root}/api/mobile/affiliates/invites`, {
270
+ method: "POST",
271
+ headers,
272
+ body: JSON.stringify(params),
273
+ });
274
+ if (!res.ok)
275
+ throw new Error(`Apex invitePartner failed (${res.status}): ${await res.text().catch(() => "")}`);
276
+ return res.json();
277
+ },
278
+ // ─── Partner Network — Payouts (MMP-145 + MMP-151) ────────────────
279
+ /** Pending payouts grouped into aging buckets (0-30, 30-60, 60+). */
280
+ async listPendingPayouts() {
281
+ const res = await fetch(`${root}/api/mobile/affiliates/payouts/pending`, { headers });
282
+ if (!res.ok)
283
+ throw new Error(`Apex listPendingPayouts failed (${res.status}): ${await res.text().catch(() => "")}`);
284
+ return res.json();
285
+ },
286
+ /** Approve one or more pending payouts (creates HoldbackEntry per approved conversion). */
287
+ async approvePayouts(conversionIds) {
288
+ const res = await fetch(`${root}/api/mobile/affiliates/payouts/approve`, {
289
+ method: "POST",
290
+ headers,
291
+ body: JSON.stringify({ conversionIds }),
292
+ });
293
+ if (!res.ok)
294
+ throw new Error(`Apex approvePayouts failed (${res.status}): ${await res.text().catch(() => "")}`);
295
+ return res.json();
296
+ },
297
+ /** Reject pending payouts (opens an audit FraudCase severity=low). */
298
+ async rejectPayouts(conversionIds, reason) {
299
+ const res = await fetch(`${root}/api/mobile/affiliates/payouts/reject`, {
300
+ method: "POST",
301
+ headers,
302
+ body: JSON.stringify({ conversionIds, reason }),
303
+ });
304
+ if (!res.ok)
305
+ throw new Error(`Apex rejectPayouts failed (${res.status}): ${await res.text().catch(() => "")}`);
306
+ return res.json();
307
+ },
308
+ // ─── Partner Network — Fees (MMP-158) ─────────────────────────────
309
+ /** Merchant-facing fee disclosure. Returns every fee kind Apex charges this merchant. */
310
+ async getEffectiveFees() {
311
+ const res = await fetch(`${root}/api/mobile/affiliates/fees`, { headers });
312
+ if (!res.ok)
313
+ throw new Error(`Apex getEffectiveFees failed (${res.status}): ${await res.text().catch(() => "")}`);
314
+ return res.json();
315
+ },
316
+ // ─── Partner Network — Vouch (MMP-156) ────────────────────────────
317
+ /**
318
+ * Vouch for a partner — one-tier bump for 60 days. Requires indemnity
319
+ * acknowledgment. Fails if the partner is already verified.
320
+ */
321
+ async vouchForPartner(profileId, params) {
322
+ const res = await fetch(`${root}/api/mobile/affiliates/${encodeURIComponent(profileId)}/vouch`, {
323
+ method: "POST",
324
+ headers,
325
+ body: JSON.stringify(params),
326
+ });
327
+ if (!res.ok)
328
+ throw new Error(`Apex vouchForPartner failed (${res.status}): ${await res.text().catch(() => "")}`);
329
+ return res.json();
330
+ },
331
+ // ─── Communications — end-user preferences (DFC-016) ─────────────────
332
+ //
333
+ // Two API-key methods for managing an end-user's communication
334
+ // preferences from the customer's backend. `preferences.get` and
335
+ // `preferences.update` proxy `/api/communications/preferences/[id]`
336
+ // with the org-scoped key — the route's dual-auth layer treats the
337
+ // API-key caller as a trusted server.
338
+ preferences: {
339
+ async get(endUserId) {
340
+ const res = await fetch(`${root}/api/communications/preferences/${encodeURIComponent(endUserId)}?projectKey=${encodeURIComponent(cfg.projectKey)}`, { headers });
341
+ if (!res.ok) {
342
+ throw new Error(`Apex preferences.get failed (${res.status}): ${await res.text().catch(() => "")}`);
343
+ }
344
+ return res.json();
345
+ },
346
+ async update(endUserId, patch) {
347
+ const res = await fetch(`${root}/api/communications/preferences/${encodeURIComponent(endUserId)}?projectKey=${encodeURIComponent(cfg.projectKey)}`, {
348
+ method: "PATCH",
349
+ headers,
350
+ body: JSON.stringify(patch),
351
+ });
352
+ if (!res.ok) {
353
+ throw new Error(`Apex preferences.update failed (${res.status}): ${await res.text().catch(() => "")}`);
354
+ }
355
+ return res.json();
356
+ },
357
+ },
358
+ // ─── Communications — inbox notifications (DFC-016) ──────────────────
359
+ //
360
+ // Read + write helpers for the in-app inbox. The `mark-read` and
361
+ // `mark-all-read` paths target the existing PATCH route on the
362
+ // workspace-admin gate (the SDK's API key satisfies that gate).
363
+ notifications: {
364
+ async list(endUserId, opts) {
365
+ const qs = new URLSearchParams({ userId: endUserId });
366
+ if (opts?.limit)
367
+ qs.set("limit", String(opts.limit));
368
+ if (opts?.unreadOnly)
369
+ qs.set("unreadOnly", "true");
370
+ const res = await fetch(`${root}/api/communications/notifications?${qs.toString()}`, { headers });
371
+ if (!res.ok) {
372
+ throw new Error(`Apex notifications.list failed (${res.status}): ${await res.text().catch(() => "")}`);
373
+ }
374
+ return res.json();
375
+ },
376
+ async markRead(notificationId) {
377
+ const res = await fetch(`${root}/api/communications/notifications`, {
378
+ method: "PATCH",
379
+ headers,
380
+ body: JSON.stringify({ notificationId }),
381
+ });
382
+ if (!res.ok) {
383
+ throw new Error(`Apex notifications.markRead failed (${res.status}): ${await res.text().catch(() => "")}`);
384
+ }
385
+ },
386
+ async markAllRead(endUserId) {
387
+ const res = await fetch(`${root}/api/communications/notifications`, {
388
+ method: "PATCH",
389
+ headers,
390
+ body: JSON.stringify({ markAll: true, endUserId }),
391
+ });
392
+ if (!res.ok) {
393
+ throw new Error(`Apex notifications.markAllRead failed (${res.status}): ${await res.text().catch(() => "")}`);
394
+ }
395
+ },
396
+ },
397
+ // ─── Communications — end-user token mint (DFC-018) ──────────────────
398
+ //
399
+ // Server-side helper that asks Apex to sign an HMAC end-user token
400
+ // for the customer's client. The signing key lives on Apex servers
401
+ // only, so this is the canonical path. Customers call this from
402
+ // their backend, then hand the token to <ApexPreferenceCenter>.
403
+ /**
404
+ * Set up Apex — programmatic access to per-workspace setup state.
405
+ *
406
+ * `get()` returns the current hub signal + per-step overrides
407
+ * (read-only). `complete(stepId)` / `skip(stepId, reason)` mirror
408
+ * the dashboard's write contract at
409
+ * POST /api/workspaces/<projectKey>/setup-state/<stepId>.
410
+ *
411
+ * Allowed step IDs are enforced server-side via the SetupRegistry
412
+ * allowlist. Unknown IDs return 400.
413
+ */
414
+ workspace: {
415
+ setupState: {
416
+ async get() {
417
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/setup-state`, { headers });
418
+ if (!res.ok) {
419
+ throw new Error(`Apex workspace.setupState.get failed (${res.status}): ${await res.text().catch(() => "")}`);
420
+ }
421
+ const json = (await res.json());
422
+ return {
423
+ overrides: json.overrides ?? [],
424
+ signal: json.signal ?? {},
425
+ };
426
+ },
427
+ async complete(stepId) {
428
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/setup-state/${encodeURIComponent(stepId)}/complete`, { method: "POST", headers });
429
+ if (!res.ok) {
430
+ throw new Error(`Apex workspace.setupState.complete failed (${res.status}): ${await res.text().catch(() => "")}`);
431
+ }
432
+ },
433
+ async skip(stepId, reason) {
434
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/setup-state/${encodeURIComponent(stepId)}/skip`, {
435
+ method: "POST",
436
+ headers,
437
+ body: JSON.stringify({ reason: reason ?? null }),
438
+ });
439
+ if (!res.ok) {
440
+ throw new Error(`Apex workspace.setupState.skip failed (${res.status}): ${await res.text().catch(() => "")}`);
441
+ }
442
+ },
443
+ },
444
+ },
445
+ /**
446
+ * Data Sources registry — the producers that send events into this
447
+ * workspace (Website, iOS / Android apps, Backend). Mirrors
448
+ * /api/workspaces/<projectKey>/data-sources. `dataSourceId` is
449
+ * reporting-only; these methods manage the registry, not access control.
450
+ */
451
+ dataSources: {
452
+ async list(opts) {
453
+ const qs = opts?.includeArchived ? "?includeArchived=true" : "";
454
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/data-sources${qs}`, { headers });
455
+ if (!res.ok) {
456
+ throw new Error(`Apex dataSources.list failed (${res.status}): ${await res.text().catch(() => "")}`);
457
+ }
458
+ const json = (await res.json());
459
+ return json.data ?? [];
460
+ },
461
+ async get(id) {
462
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/data-sources/${encodeURIComponent(id)}`, { headers });
463
+ if (!res.ok) {
464
+ throw new Error(`Apex dataSources.get failed (${res.status}): ${await res.text().catch(() => "")}`);
465
+ }
466
+ const json = (await res.json());
467
+ return json.data;
468
+ },
469
+ async create(params) {
470
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/data-sources`, { method: "POST", headers, body: JSON.stringify(params) });
471
+ if (!res.ok) {
472
+ throw new Error(`Apex dataSources.create failed (${res.status}): ${await res.text().catch(() => "")}`);
473
+ }
474
+ const json = (await res.json());
475
+ return json.data;
476
+ },
477
+ async update(id, patch) {
478
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/data-sources/${encodeURIComponent(id)}`, { method: "PATCH", headers, body: JSON.stringify(patch) });
479
+ if (!res.ok) {
480
+ throw new Error(`Apex dataSources.update failed (${res.status}): ${await res.text().catch(() => "")}`);
481
+ }
482
+ const json = (await res.json());
483
+ return json.data;
484
+ },
485
+ async archive(id) {
486
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/data-sources/${encodeURIComponent(id)}`, { method: "DELETE", headers });
487
+ if (!res.ok) {
488
+ throw new Error(`Apex dataSources.archive failed (${res.status}): ${await res.text().catch(() => "")}`);
489
+ }
490
+ },
491
+ async health(id) {
492
+ const res = await fetch(`${root}/api/workspaces/${encodeURIComponent(cfg.projectKey)}/data-sources/${encodeURIComponent(id)}/health`, { headers });
493
+ if (!res.ok) {
494
+ throw new Error(`Apex dataSources.health failed (${res.status}): ${await res.text().catch(() => "")}`);
495
+ }
496
+ const json = (await res.json());
497
+ return json.data;
498
+ },
499
+ },
500
+ /**
501
+ * Unified analytics reads — per-source / per-platform / per-hostname
502
+ * breakdowns from the ingest-maintained rollups. Honors the source/
503
+ * platform/hostname/range filters the dashboard exposes.
504
+ */
505
+ analytics: {
506
+ async sources(opts) {
507
+ const qs = new URLSearchParams();
508
+ if (opts?.days)
509
+ qs.set("days", String(opts.days));
510
+ if (opts?.source)
511
+ qs.set("source", opts.source);
512
+ const suffix = qs.toString() ? `?${qs}` : "";
513
+ const res = await fetch(`${root}/api/analytics/sources${suffix}`, {
514
+ headers,
515
+ });
516
+ if (!res.ok) {
517
+ throw new Error(`Apex analytics.sources failed (${res.status}): ${await res.text().catch(() => "")}`);
518
+ }
519
+ const json = (await res.json());
520
+ return json.data;
521
+ },
522
+ async hostnames(opts) {
523
+ const qs = opts?.limit ? `?limit=${opts.limit}` : "";
524
+ const res = await fetch(`${root}/api/analytics/hostnames${qs}`, {
525
+ headers,
526
+ });
527
+ if (!res.ok) {
528
+ throw new Error(`Apex analytics.hostnames failed (${res.status}): ${await res.text().catch(() => "")}`);
529
+ }
530
+ const json = (await res.json());
531
+ return json.data ?? [];
532
+ },
533
+ },
534
+ async signEndUserToken(params) {
535
+ const res = await fetch(`${root}/api/v1/tokens/end-user`, {
536
+ method: "POST",
537
+ headers,
538
+ body: JSON.stringify(params),
539
+ });
540
+ if (!res.ok) {
541
+ throw new Error(`Apex signEndUserToken failed (${res.status}): ${await res.text().catch(() => "")}`);
542
+ }
543
+ const json = (await res.json());
544
+ return json.data;
545
+ },
154
546
  };
155
547
  }
156
548
  //# sourceMappingURL=management.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"management.js","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AA+BH,wDAkJC;AAxKD,SAAS,OAAO,CAAC,GAAqB;IACpC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,GAAqB;IACvC,OAAO;QACL,cAAc,EAAE,kBAAkB;QAClC,WAAW,EAAE,GAAG,CAAC,MAAM;QACvB,gBAAgB,EAAE,GAAG,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC;AAQD;;;GAGG;AACH,SAAgB,sBAAsB,CAAC,GAAqB;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEhC,OAAO;QACL,KAAK,CAAC,eAAe;YACnB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,EAAwB,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,YAAoB,EAAE,SAAiB;YACzD,MAAM,MAAM,GAAG;gBACb,YAAY,kBAAkB,CAAC,SAAS,CAAC,EAAE;gBAC3C,gBAAgB,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;aACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,oBAAoB,kBAAkB,CAAC,YAAY,CAAC,SAAS,EACpE;gBACE,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;aACxC,CACF,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;YACxE,CAAC;YACD,OAAO,GAAG,CAAC,IAAI,EAAkC,CAAC;QACpD,CAAC;QAED,qEAAqE;QAErE,KAAK,CAAC,uBAAuB;YAC3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,+BAA+B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,CAAC,sBAAsB,CAAC,eAAyB;YACpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,8BAA8B,EAAE;gBAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxH,OAAO,GAAG,CAAC,IAAI,EAAwB,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,kBAAkB;YACtB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,qBAAqB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpH,OAAO,GAAG,CAAC,IAAI,EAAwB,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;YAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAClH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,OAAgC;YACpE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9E,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aACxD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;YAClC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9E,MAAM,EAAE,QAAQ,EAAE,OAAO;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvH,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;YACnC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE;gBACtF,MAAM,EAAE,MAAM,EAAE,OAAO;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtH,OAAO,GAAG,CAAC,IAAI,EAAgD,CAAC;QAClE,CAAC;QAED,KAAK,CAAC,qBAAqB,CAAC,EAAU;YACpC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;gBACnF,MAAM,EAAE,MAAM,EAAE,OAAO;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzH,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,EAAU,EAAE,IAAoE;YACzG,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,uBAAuB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;gBACnF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aACpD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACxH,CAAC;QAED,qEAAqE;QAErE,KAAK,CAAC,mBAAmB;YACvB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,iCAAiC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACrH,OAAO,GAAG,CAAC,IAAI,EAAwB,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,MAK1B;YACC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,iCAAiC,EAAE;gBAChE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aACtD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtH,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAED,KAAK,CAAC,mBAAmB,CAAC,EAAU;YAClC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,mCAAmC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1F,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aACpE,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACvH,CAAC;QAED,KAAK,CAAC,2BAA2B,CAAC,EAAU;YAC1C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,mCAAmC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1F,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;aACtE,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/H,CAAC;QAED,qEAAqE;QAErE,KAAK,CAAC,gBAAgB;YACpB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,4BAA4B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAClH,OAAO,GAAG,CAAC,IAAI,EAAwB,CAAC;QAC1C,CAAC;QAED,KAAK,CAAC,yBAAyB;YAC7B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,mCAAmC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACjF,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,GAAG,CAAC,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3H,OAAO,GAAG,CAAC,IAAI,EAAwB,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"management.js","sourceRoot":"","sources":["../src/management.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * MWO-009 — Apex PLG Event Catalog.
3
+ *
4
+ * Curated, typed event schemas for the eight most common PLG
5
+ * lifecycle moments. Customers import these interfaces directly so
6
+ * their `apex.track()` calls type-check end-to-end, and the Apex
7
+ * dashboard uses them to derive activation / expansion / retention
8
+ * rollups without bespoke queries per customer.
9
+ *
10
+ * import { EVENTS, type ActivatedEvent } from "@apex-inc/sdk/plg-events";
11
+ * apex.track(EVENTS.ACTIVATED, { daysToActivation: 2 } satisfies ActivatedEvent);
12
+ *
13
+ * Adding a new event:
14
+ * 1. Add its name to `EVENTS`.
15
+ * 2. Add its typed interface below.
16
+ * 3. Update the doc page at /docs/plg-event-catalog (Phase 10).
17
+ *
18
+ * Every event is optional. There's no requirement that a customer
19
+ * emit any of these — the catalog is a convention, not a gate.
20
+ * Archived event definitions (Phase 8 follow-up) will stop deriving
21
+ * new rollups but preserve their historical data.
22
+ */
23
+ export declare const EVENTS: {
24
+ readonly SIGNUP: "signup";
25
+ readonly ACTIVATED: "activated";
26
+ readonly FEATURE_FIRST_USE: "feature_first_use";
27
+ readonly AHA_MOMENT: "aha_moment";
28
+ readonly EXPANSION: "expansion";
29
+ readonly CONTRACTION: "contraction";
30
+ readonly REACTIVATION: "reactivation";
31
+ readonly CHURN: "churn";
32
+ };
33
+ export type PLGEventName = (typeof EVENTS)[keyof typeof EVENTS];
34
+ /**
35
+ * signup — a user created an account. Fire once per user lifecycle.
36
+ * Revenue shouldn't be expected yet; don't confuse with `converted`.
37
+ */
38
+ export interface SignupEvent {
39
+ /** Auth method (`email`, `google`, `github`, etc.). Optional. */
40
+ method?: string;
41
+ /** Referral source if known. Optional. */
42
+ referralSource?: string;
43
+ /** Invitation code if the signup came from an invite. Optional. */
44
+ invitationId?: string;
45
+ }
46
+ /**
47
+ * activated — user hit the product's core activation milestone. You
48
+ * define the milestone per product (e.g. "sent a first message").
49
+ * Fire once per user.
50
+ */
51
+ export interface ActivatedEvent {
52
+ daysToActivation?: number;
53
+ /** Free-form label for the moment ("first message sent"). */
54
+ milestone?: string;
55
+ }
56
+ /**
57
+ * feature_first_use — user used a named feature for the first time.
58
+ * Emit on every feature, only on first use. Use `apex.feature()` for
59
+ * recurring usage tracking.
60
+ */
61
+ export interface FeatureFirstUseEvent {
62
+ featureKey: string;
63
+ daysFromSignup?: number;
64
+ }
65
+ /**
66
+ * aha_moment — the user saw the product's value. Often emitted after
67
+ * a specific sequence ("connected a source and ran their first
68
+ * experiment"). Definition is customer-specific.
69
+ */
70
+ export interface AhaMomentEvent {
71
+ label: string;
72
+ daysFromSignup?: number;
73
+ /** Confidence signal, 0-1, if the customer's model computes it. */
74
+ confidence?: number;
75
+ }
76
+ /**
77
+ * expansion — paying account increased spend (upgrade, more seats,
78
+ * more usage). Amount in positive units of the account's currency.
79
+ */
80
+ export interface ExpansionEvent {
81
+ amount: number;
82
+ currency?: string;
83
+ driver?: "plan_upgrade" | "seat_add" | "usage_overage" | "other";
84
+ fromPlan?: string;
85
+ toPlan?: string;
86
+ }
87
+ /**
88
+ * contraction — paying account decreased spend without churning
89
+ * outright. Amount in positive units (representing the reduction).
90
+ */
91
+ export interface ContractionEvent {
92
+ amount: number;
93
+ currency?: string;
94
+ driver?: "plan_downgrade" | "seat_removed" | "usage_drop" | "other";
95
+ fromPlan?: string;
96
+ toPlan?: string;
97
+ }
98
+ /**
99
+ * reactivation — a churned account came back. Emit once on re-signup
100
+ * or re-activation after a cancel.
101
+ */
102
+ export interface ReactivationEvent {
103
+ daysInactive?: number;
104
+ reason?: string;
105
+ }
106
+ /**
107
+ * churn — account cancelled or let subscription lapse. Fire once on
108
+ * the churn transition; emit `reactivation` later if they come back.
109
+ */
110
+ export interface ChurnEvent {
111
+ reason?: string;
112
+ cancelType?: "voluntary" | "involuntary";
113
+ daysActive?: number;
114
+ }
115
+ export type PLGEventPayload = SignupEvent | ActivatedEvent | FeatureFirstUseEvent | AhaMomentEvent | ExpansionEvent | ContractionEvent | ReactivationEvent | ChurnEvent;
116
+ /**
117
+ * Typed `apex.track` wrapper specific to PLG events. Not a hard gate —
118
+ * `apex.track()` still accepts any event name — but gives customers
119
+ * compile-time safety on the curated set.
120
+ */
121
+ export declare function trackPlgEvent<K extends PLGEventName>(_apex: {
122
+ track: (event: string, properties?: Record<string, unknown>) => void;
123
+ }, name: K, payload: PayloadForEvent<K>): void;
124
+ type PayloadForEvent<K extends PLGEventName> = K extends typeof EVENTS.SIGNUP ? SignupEvent : K extends typeof EVENTS.ACTIVATED ? ActivatedEvent : K extends typeof EVENTS.FEATURE_FIRST_USE ? FeatureFirstUseEvent : K extends typeof EVENTS.AHA_MOMENT ? AhaMomentEvent : K extends typeof EVENTS.EXPANSION ? ExpansionEvent : K extends typeof EVENTS.CONTRACTION ? ContractionEvent : K extends typeof EVENTS.REACTIVATION ? ReactivationEvent : K extends typeof EVENTS.CHURN ? ChurnEvent : never;
125
+ /**
126
+ * Read-only exhaustive list of the catalog. Handy for UI surfaces
127
+ * that need to render "all PLG events we know about."
128
+ */
129
+ export declare const ALL_PLG_EVENTS: readonly PLGEventName[];
130
+ export {};
131
+ //# sourceMappingURL=plg-events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plg-events.d.ts","sourceRoot":"","sources":["../src/plg-events.ts"],"names":[],"mappings":"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"}