@atlasauth/backend 0.11.0 → 0.12.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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlasauth/backend changelog
2
2
 
3
+ ## 0.12.0
4
+ - **Referral attribution v2.** `referrals.retryFailed({ kind?, error_code? }, idempotencyKey?)` (`POST /v1/instance/referrals/calls/retry_failed`, `ReferralRetryFailedResult` with `requeued`), `referrals.simulate({ code? })` (`POST /v1/instance/referrals/simulate`, `ReferralSimulateResult`: `call_id`, `customer_ref`, `result`, `response`), `referrals.backfill({ since, codes?, code_metadata_path? }, idempotencyKey?)` and `referrals.getBackfill(id)` (`POST /v1/instance/referrals/backfill`, `GET /v1/instance/referrals/backfill/:id`, `ReferralBackfillJob`: `users_scanned`, `users_skipped`, `calls_queued`, `truncated`, `next_since`, `calls`), and `referrals.getForUser(userId)` (`GET /v1/users/:id/referral`, `UserReferralResult`).
5
+ - **Settings.** `ReferralSettings` and `UpdateReferralSettingsBody` gain `tracking_token`, `code_lookup_url`, `signup_code_field`, `forward_lifecycle`, `mirror_to_public_metadata` and `include_referral_claims`. `provider` can be `referally`. `ReferralProviderCapabilities` gains `alias`, `user` and `ping`; `needs` can list `tracking_token`. `ReferralConnectionStatus` gains `last_ping` (`ReferralPing`) and `alert` (`signature_rejected` or `connection_paused`). `ReferralConnectionTest` gains `ping`, `method` and `warnings`.
6
+ - **Call log.** `ReferralCallKind` adds `alias`, `user` and `ping`. `ReferralCall` gains `latency_ms`, `error_code`, `response`, `highlights`, `request_id` and `batch_id`. `ListReferralCallsParams` gains `error_code` and `starting_after`; `limit` goes up to 1000.
7
+ - **Users.** `users.setExternalId(id, externalId | null)` (`PATCH /v1/users/:id`); with referrals on, Atlas forwards the change to the platform as an alias. `UpdateUserBody` gains `external_id`. `UserReferral` gains `partner_external_ref`, `referral_status` and `notes`; `status` is now the attribution status (`pending`, `attributed`, `none`, `failed`, `held`, `flagged`), and the platform's own status moved to `referral_status`. New `UserReferralResolvedEvent` types the `data` of `user.referral_resolved`.
8
+ - **before_user_create hook.** New `userHooks` namespace: `getBeforeUserCreate()`, `updateBeforeUserCreate(body)` and `testBeforeUserCreate()` (`/v1/instance/hooks/before_user_create`; `BeforeUserCreateHook`, `UpdateBeforeUserCreateHookBody`, `BeforeUserCreateHookTest`).
9
+ - **Referral protocol receiver.** `verifyReferralRequest` accepts the new operations `alias` (`/aliases`, `ReferralAliasPayload`), `user` (`/users`, `ReferralUserPayload`) and `ping` (`/ping`, `ReferralPingPayload`; answer `ReferralPingResponse`), and returns `protocolVersion` (the `Atlas-Referrals-Version` header). `ReferralSignupResponse` gains optional `notes`. New constants `REFERRAL_PROTOCOL_VERSION` (`2026-10-21`) and `REFERRAL_PROTOCOL_VERSION_HEADER`.
10
+ - **Test calls.** `createTestIssuer()` gains `referralCall(options)` (an Atlas referral protocol call, signed as an instance signs it) and `referallyCall(options)` (a Referally connection call: `x-referally-signature` over the raw body, or the raw query string for `export`, with `referally-version`). Also standalone: `signAtlasReferralCall`, `signReferallyCall`, `referallySignature`, `referralEmailHash`, `REFERALLY_API_VERSION`; types `SignedReferralCall`, `AtlasReferralCallOptions`, `ReferallyCallOptions`, `ReferallyCallOp`.
11
+ - **Compatible.** New methods, types, optional fields and constants. One meaning changed on the server: `user.referral.status` is the attribution status; read the platform's status from `referral_status`.
12
+
3
13
  ## 0.11.0
4
14
  - **Referral attribution settings.** New `referrals` namespace: `get()` and `update(body, idempotencyKey?)` (`GET`/`PATCH /v1/instance/referrals`; `ReferralSettings`, `UpdateReferralSettingsBody` with nested `security`: `ReferralSecuritySettings` `challenge_referred_signups`, `on_high_risk`, `hold_until_email_verified`, `max_referred_signups_per_ip_hour`), `test()` (`ReferralConnectionTest`), `listCalls({ limit?, status?, kind?, user_id? })` (`ReferralCall`, `ListReferralCallsParams`) and `retryCall(id, idempotencyKey?)`. Also `ReferralProviderInfo`, `ReferralProviderCapabilities`, `ReferralConnectionStatus`, `ReferralRisk`, `ReferralCallKind`, `ReferralCallStatus`.
5
15
  - **Users.** `User` gains optional `referral` (`UserReferral`: `partner_id`, `referrer_external_id`, `referrer_user_id`, `matched_via`, `status`, `risk_level`, `flagged`), `referral_code` and `referral_link`. `CreateUserBody` accepts `referral` (`CreateUserReferralInput`: `code`, `click_id`, `anon_id`) and `referral_code`; `UpdateUserBody` accepts `referral_code` (`null` clears). New `users.flagReferral(id, { reason? }, idempotencyKey?)` (`POST /v1/users/:id/referral/flag`, `UserReferralFlag`).
@@ -16,6 +16,7 @@ declare function buildNamespaces(request: RequestFn): {
16
16
  get(id: string): Promise<import("./users").User>;
17
17
  create(body: import("./users").CreateUserBody, idempotencyKey?: string): Promise<import("./users").User>;
18
18
  update(id: string, body: import("./users").UpdateUserBody): Promise<import("./users").User>;
19
+ setExternalId(id: string, externalId: string | null): Promise<import("./users").User>;
19
20
  replaceMetadata(id: string, body: import("./users").ReplaceUserMetadataBody): Promise<import("./users").User>;
20
21
  ban(id: string): Promise<import("./users").User>;
21
22
  unban(id: string): Promise<import("./users").User>;
@@ -979,6 +980,21 @@ declare function buildNamespaces(request: RequestFn): {
979
980
  test(): Promise<import("./referrals").ReferralConnectionTest>;
980
981
  listCalls(params?: import("./referrals").ListReferralCallsParams): Promise<import("./types").ListPage<import("./referrals").ReferralCall>>;
981
982
  retryCall(id: string, idempotencyKey?: string): Promise<import("./referrals").ReferralCall>;
983
+ retryFailed(filter?: {
984
+ kind?: import("./referrals").ReferralCallKind;
985
+ error_code?: string;
986
+ }, idempotencyKey?: string): Promise<import("./referrals").ReferralRetryFailedResult>;
987
+ simulate(body?: {
988
+ code?: string;
989
+ }): Promise<import("./referrals").ReferralSimulateResult>;
990
+ backfill(body: import("./referrals").ReferralBackfillBody, idempotencyKey?: string): Promise<import("./referrals").ReferralBackfillJob>;
991
+ getBackfill(id: string): Promise<import("./referrals").ReferralBackfillJob>;
992
+ getForUser(userId: string): Promise<import("./users").UserReferralResult>;
993
+ };
994
+ userHooks: {
995
+ getBeforeUserCreate(): Promise<import("./user-hooks").BeforeUserCreateHook>;
996
+ updateBeforeUserCreate(body: import("./user-hooks").UpdateBeforeUserCreateHookBody): Promise<import("./user-hooks").BeforeUserCreateHook>;
997
+ testBeforeUserCreate(): Promise<import("./user-hooks").BeforeUserCreateHookTest>;
982
998
  };
983
999
  tokens: {
984
1000
  verify(body: import("./tokens").VerifyTokenBody): Promise<import("./tokens").TokenVerification>;
@@ -1331,6 +1347,7 @@ export * from './lti-platforms';
1331
1347
  export * from './instance';
1332
1348
  export * from './instance-security';
1333
1349
  export * from './referrals';
1350
+ export * from './user-hooks';
1334
1351
  export * from './tokens';
1335
1352
  export * from './captcha';
1336
1353
  export * from './design';
@@ -61,6 +61,7 @@ const lti_platforms_1 = require("./lti-platforms");
61
61
  const instance_1 = require("./instance");
62
62
  const instance_security_1 = require("./instance-security");
63
63
  const referrals_1 = require("./referrals");
64
+ const user_hooks_1 = require("./user-hooks");
64
65
  const tokens_1 = require("./tokens");
65
66
  const captcha_1 = require("./captcha");
66
67
  const design_1 = require("./design");
@@ -150,6 +151,8 @@ function buildNamespaces(request) {
150
151
  instanceSecurity: (0, instance_security_1.instanceSecurityResource)(request),
151
152
  // Referral attribution: the instance's referral platform connection and call log.
152
153
  referrals: (0, referrals_1.referralsResource)(request),
154
+ // The before_user_create hook (sets external_id before the user exists).
155
+ userHooks: (0, user_hooks_1.userHooksResource)(request),
153
156
  tokens: (0, tokens_1.tokensResource)(request),
154
157
  // §5 "captcha anywhere" — verify any CAPTCHA token against the instance's
155
158
  // centrally-configured provider, server-side, with the secret held by Atlas.
@@ -240,6 +243,7 @@ __exportStar(require("./lti-platforms"), exports);
240
243
  __exportStar(require("./instance"), exports);
241
244
  __exportStar(require("./instance-security"), exports);
242
245
  __exportStar(require("./referrals"), exports);
246
+ __exportStar(require("./user-hooks"), exports);
243
247
  __exportStar(require("./tokens"), exports);
244
248
  __exportStar(require("./captcha"), exports);
245
249
  __exportStar(require("./design"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { type RequestFn } from './request';
2
2
  import type { ListPage } from './types';
3
+ import type { UserReferralResult } from './users';
3
4
  /**
4
5
  * Referral attribution: the instance's connection to a referral platform.
5
6
  *
@@ -10,7 +11,10 @@ import type { ListPage } from './types';
10
11
  * call is retried, and `user.referral_attributed` is sent when it resolves.
11
12
  *
12
13
  * `provider` is `webhook` (the Atlas referral protocol, which any platform can
13
- * implement; see {@link verifyReferralRequest}) or a built-in vendor adapter.
14
+ * implement; see {@link verifyReferralRequest}), `referally` (the built-in
15
+ * Referally adapter: `endpoint_url` is your Referally base URL, plus
16
+ * `connection_id`, `signing_secret` and optionally `tracking_token`) or
17
+ * another built-in vendor adapter.
14
18
  * `signing_secret` and `api_key` are write-only: reads return
15
19
  * `signing_secret_set` / `api_key_set`.
16
20
  */
@@ -22,6 +26,12 @@ export interface ReferralProviderCapabilities {
22
26
  partner: boolean;
23
27
  auto_enroll: boolean;
24
28
  signal: boolean;
29
+ /** Forwards an `external_id` change after sign-up (old id → new id). */
30
+ alias?: boolean;
31
+ /** Forwards email, name and ban/unban changes. */
32
+ user?: boolean;
33
+ /** Answers a ping (org, program, clock) for the connection test. */
34
+ ping?: boolean;
25
35
  }
26
36
  /** A referral provider Atlas supports. */
27
37
  export interface ReferralProviderInfo {
@@ -30,7 +40,7 @@ export interface ReferralProviderInfo {
30
40
  name: string;
31
41
  capabilities: ReferralProviderCapabilities;
32
42
  /** What must be set before `enabled` can be true. */
33
- needs: Array<'endpoint_url' | 'signing_secret' | 'api_key' | 'connection_id'>;
43
+ needs: Array<'endpoint_url' | 'signing_secret' | 'api_key' | 'connection_id' | 'tracking_token'>;
34
44
  /** The vendor's own first-party tracking cookie, suggested when this provider is picked. */
35
45
  default_context_cookie: string | null;
36
46
  docs_url: string | null;
@@ -70,6 +80,39 @@ export interface ReferralConnectionStatus {
70
80
  retrying_calls: number;
71
81
  /** Epoch ms of the last successful call, or null. */
72
82
  last_success_at: number | null;
83
+ /** The last ping answer, when the provider supports ping. */
84
+ last_ping?: ReferralPing | null;
85
+ /**
86
+ * A refusal only a person can fix: `signature_rejected` (the platform
87
+ * answered 401: a rotated secret or clock skew) or `connection_paused`.
88
+ */
89
+ alert?: {
90
+ code: string;
91
+ message: string;
92
+ at: number;
93
+ call_id?: string;
94
+ } | null;
95
+ }
96
+ /** What a platform answers to a ping. */
97
+ export interface ReferralPing {
98
+ ok: boolean;
99
+ connection_id?: string | null;
100
+ program_id?: string | null;
101
+ program_name?: string | null;
102
+ org_name?: string | null;
103
+ auto_enroll_users?: boolean | null;
104
+ /** The platform's clock, as it sent it. */
105
+ server_time?: string | number | null;
106
+ /** Platform clock minus Atlas clock, in ms. Over 60 s is a warning; over 5 minutes, signatures fail. */
107
+ clock_skew_ms?: number | null;
108
+ /** True when `clock_skew_ms` is over 60 seconds. */
109
+ clock_skew_warning?: boolean;
110
+ /** Epoch ms of the ping. */
111
+ at?: number | null;
112
+ http_status?: number | null;
113
+ latency_ms?: number | null;
114
+ error_code?: string | null;
115
+ error?: string | null;
73
116
  }
74
117
  /** `GET /v1/instance/referrals`. */
75
118
  export interface ReferralSettings {
@@ -100,6 +143,18 @@ export interface ReferralSettings {
100
143
  /** How long a sign-up waits for the platform (100-5000 ms, default 3000). */
101
144
  timeout_ms: number;
102
145
  security: ReferralSecuritySettings;
146
+ /** Public tracking token (the `referally` adapter derives the code lookup from it). */
147
+ tracking_token?: string | null;
148
+ /** Public, CORS-enabled lookup with `{code}` for "X invited you" on hosted sign-up. */
149
+ code_lookup_url?: string | null;
150
+ /** Show an optional "Referral code" field on hosted sign-up. */
151
+ signup_code_field?: boolean;
152
+ /** Forward email, name and ban/unban changes to the platform (default true). */
153
+ forward_lifecycle?: boolean;
154
+ /** Mirror the result into `public_metadata.referral` (default false). */
155
+ mirror_to_public_metadata?: boolean;
156
+ /** Add a `referral_code` claim (the user's own code) to ID tokens and sessions. */
157
+ include_referral_claims?: boolean;
103
158
  /** What the chosen provider still needs before referrals can be enabled. */
104
159
  missing?: string[];
105
160
  connection?: ReferralConnectionStatus | null;
@@ -133,6 +188,13 @@ export interface UpdateReferralSettingsBody {
133
188
  timeout_ms?: number;
134
189
  /** Partial: only the security fields sent change. */
135
190
  security?: Partial<ReferralSecuritySettings>;
191
+ tracking_token?: string | null;
192
+ /** An https URL containing `{code}`. */
193
+ code_lookup_url?: string | null;
194
+ signup_code_field?: boolean;
195
+ forward_lifecycle?: boolean;
196
+ mirror_to_public_metadata?: boolean;
197
+ include_referral_claims?: boolean;
136
198
  }
137
199
  /** `POST /v1/instance/referrals/test`. */
138
200
  export interface ReferralConnectionTest {
@@ -144,8 +206,91 @@ export interface ReferralConnectionTest {
144
206
  code: string;
145
207
  message: string;
146
208
  };
209
+ /** The ping answer, when the provider supports ping (the test is then a ping). */
210
+ ping?: ReferralPing | null;
211
+ /** `ping`, or `probe` (the older signed export probe). */
212
+ method?: 'ping' | 'probe';
213
+ /** Human warnings, e.g. a clock more than 60 seconds off. */
214
+ warnings?: string[];
215
+ }
216
+ /** `POST /v1/instance/referrals/simulate`: a sign-up call for a fake user, never stored. */
217
+ export interface ReferralSimulateResult {
218
+ object: 'referral_simulation';
219
+ ok: boolean;
220
+ /** The logged call, in the delivery log. */
221
+ call_id: string | null;
222
+ /** `atlas_test_<random>`. */
223
+ customer_ref: string;
224
+ http_status: number | null;
225
+ latency_ms: number | null;
226
+ /** The platform's answer, normalised (null when the call failed). */
227
+ result: {
228
+ referral: {
229
+ partner_id: string | null;
230
+ partner_external_ref: string | null;
231
+ matched_via: string | null;
232
+ status: string | null;
233
+ } | null;
234
+ partner: {
235
+ id: string | null;
236
+ code: string | null;
237
+ link: string | null;
238
+ } | null;
239
+ notes: string[];
240
+ } | null;
241
+ /** The platform's raw answer, personal fields removed. */
242
+ response: unknown;
243
+ error: {
244
+ code: string;
245
+ message: string;
246
+ } | null;
247
+ }
248
+ /** `POST /v1/instance/referrals/calls/retry_failed`. */
249
+ export interface ReferralRetryFailedResult {
250
+ object: 'referral_retry';
251
+ /** How many failed calls were queued to send now. */
252
+ requeued: number;
253
+ }
254
+ /** `POST /v1/instance/referrals/backfill`. */
255
+ export interface ReferralBackfillBody {
256
+ /** ISO 8601 date or date-time: users who signed up at or after it. */
257
+ since: string;
258
+ /** customerRef → code (a CSV, for example). Wins over `code_metadata_path`. */
259
+ codes?: Record<string, string>;
260
+ /** Where a stored code lives on the user, e.g. `public_metadata.referral_code`. */
261
+ code_metadata_path?: string;
262
+ }
263
+ /** A backfill job. Users already reported are skipped. */
264
+ export interface ReferralBackfillJob {
265
+ object: 'referral_backfill';
266
+ id: string;
267
+ /** `running` while any queued call is still to be sent, then `completed`. */
268
+ status: string;
269
+ /** Epoch ms. */
270
+ since: number;
271
+ code_metadata_path?: string | null;
272
+ /** How many codes were given in `codes`. */
273
+ codes_given?: number;
274
+ users_scanned: number;
275
+ /** Already reported, or no code while auto-enroll is off. */
276
+ users_skipped: number;
277
+ calls_queued: number;
278
+ /** True when the run stopped at its cap: start another from `next_since`. */
279
+ truncated: boolean;
280
+ /** Epoch ms, when `truncated`. */
281
+ next_since?: number | null;
282
+ /** Where the queued calls stand. */
283
+ calls: {
284
+ pending: number;
285
+ succeeded: number;
286
+ failed: number;
287
+ skipped: number;
288
+ held: number;
289
+ };
290
+ created_at: number;
291
+ finished_at?: number | null;
147
292
  }
148
- export type ReferralCallKind = 'signup' | 'erase' | 'export' | 'partner' | 'signal' | 'test';
293
+ export type ReferralCallKind = 'signup' | 'erase' | 'export' | 'partner' | 'signal' | 'alias' | 'user' | 'ping' | 'test';
149
294
  export type ReferralCallStatus = 'pending' | 'succeeded' | 'retrying' | 'failed' | 'held' | 'skipped';
150
295
  /** The risk verdict sent with a sign-up (camelCase, as on the referral protocol). */
151
296
  export interface ReferralRisk {
@@ -180,15 +325,39 @@ export interface ReferralCall {
180
325
  risk?: ReferralRisk | null;
181
326
  /** What was sent (never secrets). */
182
327
  payload?: Record<string, unknown>;
328
+ /** Round trip of the last attempt, in ms. */
329
+ latency_ms?: number | null;
330
+ /**
331
+ * Machine code of the last failure, e.g. `signature_rejected` (401, not
332
+ * retried), `connection_paused` (paused by the merchant, not retried),
333
+ * `rate_limited`, `timeout`, `network_error`.
334
+ */
335
+ error_code?: string | null;
336
+ /** The platform's last answer, with personal data removed. */
337
+ response?: unknown;
338
+ /** Sign-up calls: how the platform matched, the referrer and its notes. */
339
+ highlights?: {
340
+ matched_via: string | null;
341
+ partner_external_ref: string | null;
342
+ notes: string[];
343
+ } | null;
344
+ /** The platform's request id for its last answer, for its support team. */
345
+ request_id?: string | null;
346
+ /** The backfill job this call belongs to. */
347
+ batch_id?: string | null;
183
348
  created_at: number;
184
349
  updated_at?: number;
185
350
  }
186
351
  export interface ListReferralCallsParams {
187
- /** 1-200, default 50, newest first. */
352
+ /** 1-1000 (1-200 on servers before referral attribution v2), default 50, newest first. */
188
353
  limit?: number;
189
354
  status?: ReferralCallStatus;
190
355
  kind?: ReferralCallKind;
191
356
  user_id?: string;
357
+ /** e.g. `signature_rejected`. */
358
+ error_code?: string;
359
+ /** The id of the last call of the previous page. */
360
+ starting_after?: string;
192
361
  }
193
362
  export declare function referralsResource(request: RequestFn): {
194
363
  /** `GET /v1/instance/referrals` — settings, connection status and the supported providers. */
@@ -207,4 +376,30 @@ export declare function referralsResource(request: RequestFn): {
207
376
  * or skipped call now (a connection test cannot be retried).
208
377
  */
209
378
  retryCall(id: string, idempotencyKey?: string): Promise<ReferralCall>;
379
+ /** `POST /v1/instance/referrals/calls/retry_failed` — re-queue every failed call (not tests) to send now. */
380
+ retryFailed(filter?: {
381
+ kind?: ReferralCallKind;
382
+ error_code?: string;
383
+ }, idempotencyKey?: string): Promise<ReferralRetryFailedResult>;
384
+ /**
385
+ * `POST /v1/instance/referrals/simulate` — send a sign-up call for a fake
386
+ * user (`atlas_test_<random>`, never stored) with an optional code, and
387
+ * return what the platform answered.
388
+ */
389
+ simulate(body?: {
390
+ code?: string;
391
+ }): Promise<ReferralSimulateResult>;
392
+ /**
393
+ * `POST /v1/instance/referrals/backfill` — queue sign-up calls for existing
394
+ * users with their real sign-up time. Referrals must be on (`422
395
+ * REFERRALS_NOT_CONFIGURED` otherwise). Returns the job; poll {@link getBackfill}.
396
+ */
397
+ backfill(body: ReferralBackfillBody, idempotencyKey?: string): Promise<ReferralBackfillJob>;
398
+ /** `GET /v1/instance/referrals/backfill/:id`. */
399
+ getBackfill(id: string): Promise<ReferralBackfillJob>;
400
+ /**
401
+ * `GET /v1/users/:id/referral` — the stored result for one user (who
402
+ * referred them, how, their own code), with no call to the platform.
403
+ */
404
+ getForUser(userId: string): Promise<UserReferralResult>;
210
405
  };
@@ -34,6 +34,37 @@ function referralsResource(request) {
34
34
  idempotencyKey,
35
35
  });
36
36
  },
37
+ /** `POST /v1/instance/referrals/calls/retry_failed` — re-queue every failed call (not tests) to send now. */
38
+ retryFailed(filter = {}, idempotencyKey) {
39
+ return request({ method: 'POST', path: '/v1/instance/referrals/calls/retry_failed', body: filter, idempotencyKey });
40
+ },
41
+ /**
42
+ * `POST /v1/instance/referrals/simulate` — send a sign-up call for a fake
43
+ * user (`atlas_test_<random>`, never stored) with an optional code, and
44
+ * return what the platform answered.
45
+ */
46
+ simulate(body = {}) {
47
+ return request({ method: 'POST', path: '/v1/instance/referrals/simulate', body });
48
+ },
49
+ /**
50
+ * `POST /v1/instance/referrals/backfill` — queue sign-up calls for existing
51
+ * users with their real sign-up time. Referrals must be on (`422
52
+ * REFERRALS_NOT_CONFIGURED` otherwise). Returns the job; poll {@link getBackfill}.
53
+ */
54
+ backfill(body, idempotencyKey) {
55
+ return request({ method: 'POST', path: '/v1/instance/referrals/backfill', body, idempotencyKey });
56
+ },
57
+ /** `GET /v1/instance/referrals/backfill/:id`. */
58
+ getBackfill(id) {
59
+ return request({ method: 'GET', path: `/v1/instance/referrals/backfill/${(0, request_1.enc)(id)}` });
60
+ },
61
+ /**
62
+ * `GET /v1/users/:id/referral` — the stored result for one user (who
63
+ * referred them, how, their own code), with no call to the platform.
64
+ */
65
+ getForUser(userId) {
66
+ return request({ method: 'GET', path: `/v1/users/${(0, request_1.enc)(userId)}/referral` });
67
+ },
37
68
  };
38
69
  }
39
70
  //# sourceMappingURL=referrals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../../src/client/referrals.ts"],"names":[],"mappings":";;AAqMA,8CAiCC;AAtOD,uCAAgD;AAqMhD,SAAgB,iBAAiB,CAAC,OAAkB;IAClD,OAAO;QACL,8FAA8F;QAC9F,GAAG;YACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,+EAA+E;QAC/E,MAAM,CAAC,IAAgC,EAAE,cAAuB;YAC9D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD;;;WAGG;QACH,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,uEAAuE;QACvE,SAAS,CAAC,SAAkC,EAAE;YAC5C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QACD;;;WAGG;QACH,SAAS,CAAC,EAAU,EAAE,cAAuB;YAC3C,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,gCAAgC,IAAA,aAAG,EAAC,EAAE,CAAC,QAAQ;gBACrD,cAAc;aACf,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../../src/client/referrals.ts"],"names":[],"mappings":";;AAiWA,8CAmEC;AApaD,uCAAgD;AAiWhD,SAAgB,iBAAiB,CAAC,OAAkB;IAClD,OAAO;QACL,8FAA8F;QAC9F,GAAG;YACD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,+EAA+E;QAC/E,MAAM,CAAC,IAAgC,EAAE,cAAuB;YAC9D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD;;;WAGG;QACH,IAAI;YACF,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,uEAAuE;QACvE,SAAS,CAAC,SAAkC,EAAE;YAC5C,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;QAChG,CAAC;QACD;;;WAGG;QACH,SAAS,CAAC,EAAU,EAAE,cAAuB;YAC3C,OAAO,OAAO,CAAC;gBACb,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,gCAAgC,IAAA,aAAG,EAAC,EAAE,CAAC,QAAQ;gBACrD,cAAc;aACf,CAAC,CAAC;QACL,CAAC;QACD,6GAA6G;QAC7G,WAAW,CACT,SAA2D,EAAE,EAC7D,cAAuB;YAEvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2CAA2C,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QACtH,CAAC;QACD;;;;WAIG;QACH,QAAQ,CAAC,OAA0B,EAAE;YACnC,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,CAAC;QACD;;;;WAIG;QACH,QAAQ,CAAC,IAA0B,EAAE,cAAuB;YAC1D,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,iDAAiD;QACjD,WAAW,CAAC,EAAU;YACpB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mCAAmC,IAAA,aAAG,EAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACxF,CAAC;QACD;;;WAGG;QACH,UAAU,CAAC,MAAc;YACvB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,IAAA,aAAG,EAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/E,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type { RequestFn } from './request';
2
+ /**
3
+ * The `before_user_create` hook: just before Atlas creates a user from an
4
+ * interactive sign-up, it calls your endpoint (signed exactly like a webhook:
5
+ * `atlas-id`, `atlas-timestamp`, `atlas-signature`, verify with
6
+ * {@link verifyWebhook}) with an event of type `user.before_create`, and stamps
7
+ * the `external_id` and metadata you answer. A referral call then goes out
8
+ * with your id. Slow or failing hooks never block a sign-up.
9
+ *
10
+ * Answer `{ external_id?, public_metadata?, private_metadata?, unsafe_metadata? }`.
11
+ */
12
+ export interface BeforeUserCreateHook {
13
+ object: 'before_user_create_hook';
14
+ enabled: boolean;
15
+ url: string | null;
16
+ /** The secret is write-only. */
17
+ signing_secret_set: boolean;
18
+ /** At most 5000, default 3000. */
19
+ timeout_ms: number;
20
+ /** The last call Atlas made to the hook. */
21
+ last_call: {
22
+ at: number;
23
+ status: string | null;
24
+ error: string | null;
25
+ } | null;
26
+ updated_at: number | null;
27
+ }
28
+ export interface UpdateBeforeUserCreateHookBody {
29
+ enabled?: boolean;
30
+ /** https (http only for localhost on a development instance); `null` clears. */
31
+ url?: string | null;
32
+ /** Write-only; `null` clears. */
33
+ signing_secret?: string | null;
34
+ timeout_ms?: number;
35
+ }
36
+ /** `POST …/test`: a sample draft sent to the hook; nothing is stored. */
37
+ export interface BeforeUserCreateHookTest {
38
+ ok: boolean;
39
+ latency_ms: number;
40
+ answer?: {
41
+ external_id: string | null;
42
+ public_metadata: Record<string, unknown> | null;
43
+ private_metadata_set: boolean;
44
+ unsafe_metadata: Record<string, unknown> | null;
45
+ };
46
+ error?: {
47
+ code: string;
48
+ message: string;
49
+ };
50
+ }
51
+ export declare function userHooksResource(request: RequestFn): {
52
+ /** `GET /v1/instance/hooks/before_user_create`. */
53
+ getBeforeUserCreate(): Promise<BeforeUserCreateHook>;
54
+ /** `PATCH /v1/instance/hooks/before_user_create` — partial; the secret is write-only. */
55
+ updateBeforeUserCreate(body: UpdateBeforeUserCreateHookBody): Promise<BeforeUserCreateHook>;
56
+ /** `POST /v1/instance/hooks/before_user_create/test`. */
57
+ testBeforeUserCreate(): Promise<BeforeUserCreateHookTest>;
58
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.userHooksResource = userHooksResource;
4
+ const PATH = '/v1/instance/hooks/before_user_create';
5
+ function userHooksResource(request) {
6
+ return {
7
+ /** `GET /v1/instance/hooks/before_user_create`. */
8
+ getBeforeUserCreate() {
9
+ return request({ method: 'GET', path: PATH });
10
+ },
11
+ /** `PATCH /v1/instance/hooks/before_user_create` — partial; the secret is write-only. */
12
+ updateBeforeUserCreate(body) {
13
+ return request({ method: 'PATCH', path: PATH, body });
14
+ },
15
+ /** `POST /v1/instance/hooks/before_user_create/test`. */
16
+ testBeforeUserCreate() {
17
+ return request({ method: 'POST', path: `${PATH}/test` });
18
+ },
19
+ };
20
+ }
21
+ //# sourceMappingURL=user-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-hooks.js","sourceRoot":"","sources":["../../src/client/user-hooks.ts"],"names":[],"mappings":";;AAkDA,8CAeC;AAjBD,MAAM,IAAI,GAAG,uCAAuC,CAAC;AAErD,SAAgB,iBAAiB,CAAC,OAAkB;IAClD,OAAO;QACL,mDAAmD;QACnD,mBAAmB;YACjB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,yFAAyF;QACzF,sBAAsB,CAAC,IAAoC;YACzD,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,yDAAyD;QACzD,oBAAoB;YAClB,OAAO,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -44,8 +44,19 @@ export interface UserReferral {
44
44
  referrer_user_id: string | null;
45
45
  /** How the platform matched the referral, e.g. `code`, `click`, `coupon`. */
46
46
  matched_via: string | null;
47
- /** The platform's own status for the referral. */
47
+ /**
48
+ * The attribution status: `pending` (the platform has not answered yet),
49
+ * `attributed`, `none`, `failed`, `held` or `flagged`. Servers before
50
+ * referral attribution v2 sent the platform's own status here; that is now
51
+ * `referral_status`.
52
+ */
48
53
  status: string | null;
54
+ /** The referrer as the platform knows them. Same value as `referrer_external_id`. */
55
+ partner_external_ref?: string | null;
56
+ /** The platform's own status for the referral, e.g. `active`. */
57
+ referral_status?: string | null;
58
+ /** The platform's reasoning notes (why it matched, or why not). */
59
+ notes?: string[] | null;
49
60
  /** The risk level Atlas assessed at sign-up, when one was. */
50
61
  risk_level?: 'low' | 'medium' | 'high' | null;
51
62
  /** An admin marked the referral fraudulent (`users.flagReferral`). */
@@ -89,6 +100,44 @@ export interface UserReferralAttributedEvent {
89
100
  signed_up_at: number;
90
101
  updated_at: number;
91
102
  }
103
+ /**
104
+ * The `data` of a `user.referral_resolved` webhook: a referral call that was
105
+ * still pending when `user.created` was sent has a final result (attributed,
106
+ * none or failed). `user.referral_attributed` still fires too when attributed.
107
+ */
108
+ export type UserReferralResolvedEvent = UserReferralAttributedEvent;
109
+ /**
110
+ * `GET /v1/users/:id/referral`: the stored result of the user's referral
111
+ * calls, with no call to the platform. 404 when the user was never reported.
112
+ */
113
+ export interface UserReferralResult {
114
+ object: 'user_referral';
115
+ user_id: string;
116
+ /** `pending`, `attributed`, `none`, `failed`, `held` or `flagged`. */
117
+ status: 'pending' | 'attributed' | 'none' | 'failed' | 'held' | 'flagged';
118
+ /** The id Atlas reports the user under: their `external_id`, else the Atlas user id. */
119
+ customer_ref: string;
120
+ partner_id: string | null;
121
+ /** The referrer as the platform knows them. */
122
+ partner_external_ref: string | null;
123
+ referrer_user_id: string | null;
124
+ matched_via: string | null;
125
+ /** The platform's own status for the referral. */
126
+ referral_status: string | null;
127
+ /** The platform's reasoning notes. */
128
+ notes: string[];
129
+ referral_code: string | null;
130
+ referral_link: string | null;
131
+ /** The referral captured at sign-up, as sent (camelCase). */
132
+ context: Record<string, unknown> | null;
133
+ risk_level: 'low' | 'medium' | 'high' | null;
134
+ flagged: boolean;
135
+ /** Why the call is held, while `held`. */
136
+ hold_reason: string | null;
137
+ /** Epoch ms. */
138
+ signed_up_at: number;
139
+ updated_at: number;
140
+ }
92
141
  export interface EmailAddress {
93
142
  object: 'email_address';
94
143
  id: string;
@@ -152,6 +201,12 @@ export interface CreateUserBody {
152
201
  export interface UpdateUserBody {
153
202
  first_name?: string;
154
203
  last_name?: string;
204
+ /**
205
+ * Your own id for the user; `null` clears. With referral attribution on, a
206
+ * change after sign-up is forwarded to the referral platform as an alias,
207
+ * so events under the new id still match.
208
+ */
209
+ external_id?: string | null;
155
210
  public_metadata?: Metadata;
156
211
  private_metadata?: Metadata;
157
212
  /** The user's own referral code; `null` clears. Unique per instance (`409 REFERRAL_CODE_TAKEN`). */
@@ -168,6 +223,13 @@ export declare function usersResource(request: RequestFn): {
168
223
  get(id: string): Promise<User>;
169
224
  create(body: CreateUserBody, idempotencyKey?: string): Promise<User>;
170
225
  update(id: string, body: UpdateUserBody): Promise<User>;
226
+ /**
227
+ * Set (or clear with `null`) the user's `external_id`: `PATCH
228
+ * /v1/users/:id`. With referral attribution on, Atlas forwards the change
229
+ * to the referral platform as an alias (old id, or the Atlas user id, to
230
+ * the new one), so billing events under your id earn the referrer.
231
+ */
232
+ setExternalId(id: string, externalId: string | null): Promise<User>;
171
233
  /** `PUT /v1/users/:id/metadata` — replaces the named bags wholesale. */
172
234
  replaceMetadata(id: string, body: ReplaceUserMetadataBody): Promise<User>;
173
235
  ban(id: string): Promise<User>;
@@ -17,6 +17,15 @@ function usersResource(request) {
17
17
  update(id, body) {
18
18
  return request({ method: 'PATCH', path: `/v1/users/${(0, request_1.enc)(id)}`, body });
19
19
  },
20
+ /**
21
+ * Set (or clear with `null`) the user's `external_id`: `PATCH
22
+ * /v1/users/:id`. With referral attribution on, Atlas forwards the change
23
+ * to the referral platform as an alias (old id, or the Atlas user id, to
24
+ * the new one), so billing events under your id earn the referrer.
25
+ */
26
+ setExternalId(id, externalId) {
27
+ return request({ method: 'PATCH', path: `/v1/users/${(0, request_1.enc)(id)}`, body: { external_id: externalId } });
28
+ },
20
29
  /** `PUT /v1/users/:id/metadata` — replaces the named bags wholesale. */
21
30
  replaceMetadata(id, body) {
22
31
  return request({ method: 'PUT', path: `/v1/users/${(0, request_1.enc)(id)}/metadata`, body });
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/client/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/client/users.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -13,6 +13,8 @@ export type { AtlasClient } from './client';
13
13
  export * from './client';
14
14
  export { createTestIssuer, TEST_TOKEN_TAMPERS } from './testing';
15
15
  export type { TestIssuer, CreateTestIssuerOptions, MintIdTokenOptions, TestAuthorizeOptions, TestAuthorizeResult, TestTokenTamper, } from './testing';
16
+ export { signAtlasReferralCall, signReferallyCall, referallySignature, referralEmailHash, REFERALLY_API_VERSION, } from './referral-test-calls';
17
+ export type { AtlasReferralCallOptions, ReferallyCallOptions, ReferallyCallOp, SignedReferralCall, } from './referral-test-calls';
16
18
  export { verifyPCActn } from './pca/verify';
17
19
  export type { PcaVerdict, PcaContext, VerifyPCActnOptions } from './pca/verify';
18
20
  export { requirePCA, defaultExtract, memoryPcaStore } from './pca/require-pca';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.memoryPcaStore = exports.defaultExtract = exports.requirePCA = exports.verifyPCActn = exports.TEST_TOKEN_TAMPERS = exports.createTestIssuer = exports.createAtlasClient = exports.resetOidcCaches = exports.oidcVerifyIdToken = exports.oidcStart = exports.oidcLogoutUrl = exports.oidcClearCookie = exports.oidcCallback = exports.oidc = exports.OIDC_FLOW_MAX_AGE_SECONDS = exports.OIDC_FLOW_COOKIE = exports.AtlasOidcError = exports.verifyLogoutToken = exports.memoryLogoutReplayStore = exports.LogoutTokenVerifier = exports.LOGOUT_TOKEN_MAX_AGE_SECONDS = exports.LOGOUT_TOKEN_CLOCK_SKEW_SECONDS = exports.BACKCHANNEL_LOGOUT_EVENT = exports.instanceIdFromPublishableKey = exports.discoveryUrlFor = exports.JwksDiscovery = exports.DiscoveryError = void 0;
17
+ exports.memoryPcaStore = exports.defaultExtract = exports.requirePCA = exports.verifyPCActn = exports.REFERALLY_API_VERSION = exports.referralEmailHash = exports.referallySignature = exports.signReferallyCall = exports.signAtlasReferralCall = exports.TEST_TOKEN_TAMPERS = exports.createTestIssuer = exports.createAtlasClient = exports.resetOidcCaches = exports.oidcVerifyIdToken = exports.oidcStart = exports.oidcLogoutUrl = exports.oidcClearCookie = exports.oidcCallback = exports.oidc = exports.OIDC_FLOW_MAX_AGE_SECONDS = exports.OIDC_FLOW_COOKIE = exports.AtlasOidcError = exports.verifyLogoutToken = exports.memoryLogoutReplayStore = exports.LogoutTokenVerifier = exports.LOGOUT_TOKEN_MAX_AGE_SECONDS = exports.LOGOUT_TOKEN_CLOCK_SKEW_SECONDS = exports.BACKCHANNEL_LOGOUT_EVENT = exports.instanceIdFromPublishableKey = exports.discoveryUrlFor = exports.JwksDiscovery = exports.DiscoveryError = void 0;
18
18
  // §7.3 token verification — the original surface, unchanged.
19
19
  __exportStar(require("./jwks-cache"), exports);
20
20
  // OIDC discovery of the JWKS URL when only `issuer` is configured.
@@ -60,6 +60,12 @@ __exportStar(require("./client"), exports);
60
60
  var testing_1 = require("./testing");
61
61
  Object.defineProperty(exports, "createTestIssuer", { enumerable: true, get: function () { return testing_1.createTestIssuer; } });
62
62
  Object.defineProperty(exports, "TEST_TOKEN_TAMPERS", { enumerable: true, get: function () { return testing_1.TEST_TOKEN_TAMPERS; } });
63
+ var referral_test_calls_1 = require("./referral-test-calls");
64
+ Object.defineProperty(exports, "signAtlasReferralCall", { enumerable: true, get: function () { return referral_test_calls_1.signAtlasReferralCall; } });
65
+ Object.defineProperty(exports, "signReferallyCall", { enumerable: true, get: function () { return referral_test_calls_1.signReferallyCall; } });
66
+ Object.defineProperty(exports, "referallySignature", { enumerable: true, get: function () { return referral_test_calls_1.referallySignature; } });
67
+ Object.defineProperty(exports, "referralEmailHash", { enumerable: true, get: function () { return referral_test_calls_1.referralEmailHash; } });
68
+ Object.defineProperty(exports, "REFERALLY_API_VERSION", { enumerable: true, get: function () { return referral_test_calls_1.REFERALLY_API_VERSION; } });
63
69
  // Proof-Carrying Authority (agentic auth): offline verifier + framework-agnostic guard,
64
70
  // beside the session-token verifier above.
65
71
  var verify_1 = require("./pca/verify");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA6D;AAC7D,+CAA6B;AAC7B,mEAAmE;AACnE,yCAA2G;AAAlG,2GAAA,cAAc,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AACrF,2CAAyB;AACzB,8CAA4B;AAE5B,6EAA6E;AAC7E,+CAOwB;AANtB,wHAAA,wBAAwB,OAAA;AACxB,+HAAA,+BAA+B,OAAA;AAC/B,4HAAA,4BAA4B,OAAA;AAC5B,mHAAA,mBAAmB,OAAA;AACnB,uHAAA,uBAAuB,OAAA;AACvB,iHAAA,iBAAiB,OAAA;AAUnB,sEAAsE;AACtE,iFAAiF;AACjF,+BAWgB;AAVd,sGAAA,cAAc,OAAA;AACd,wGAAA,gBAAgB,OAAA;AAChB,iHAAA,yBAAyB,OAAA;AACzB,4FAAA,IAAI,OAAA;AACJ,oGAAA,YAAY,OAAA;AACZ,uGAAA,eAAe,OAAA;AACf,qGAAA,aAAa,OAAA;AACb,iGAAA,SAAS,OAAA;AACT,yGAAA,iBAAiB,OAAA;AACjB,uGAAA,eAAe,OAAA;AAcjB,oDAAoD;AACpD,6CAA2B;AAE3B,uFAAuF;AACvF,8CAA4B;AAE5B,8DAA8D;AAC9D,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAE1B,2CAAyB;AAEzB,yEAAyE;AACzE,2EAA2E;AAC3E,iEAAiE;AACjE,qCAAiE;AAAxD,2GAAA,gBAAgB,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAU7C,wFAAwF;AACxF,2CAA2C;AAC3C,uCAA4C;AAAnC,sGAAA,YAAY,OAAA;AAErB,iDAA+E;AAAtE,yGAAA,UAAU,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,6GAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA6D;AAC7D,+CAA6B;AAC7B,mEAAmE;AACnE,yCAA2G;AAAlG,2GAAA,cAAc,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,4GAAA,eAAe,OAAA;AAAE,yHAAA,4BAA4B,OAAA;AACrF,2CAAyB;AACzB,8CAA4B;AAE5B,6EAA6E;AAC7E,+CAOwB;AANtB,wHAAA,wBAAwB,OAAA;AACxB,+HAAA,+BAA+B,OAAA;AAC/B,4HAAA,4BAA4B,OAAA;AAC5B,mHAAA,mBAAmB,OAAA;AACnB,uHAAA,uBAAuB,OAAA;AACvB,iHAAA,iBAAiB,OAAA;AAUnB,sEAAsE;AACtE,iFAAiF;AACjF,+BAWgB;AAVd,sGAAA,cAAc,OAAA;AACd,wGAAA,gBAAgB,OAAA;AAChB,iHAAA,yBAAyB,OAAA;AACzB,4FAAA,IAAI,OAAA;AACJ,oGAAA,YAAY,OAAA;AACZ,uGAAA,eAAe,OAAA;AACf,qGAAA,aAAa,OAAA;AACb,iGAAA,SAAS,OAAA;AACT,yGAAA,iBAAiB,OAAA;AACjB,uGAAA,eAAe,OAAA;AAcjB,oDAAoD;AACpD,6CAA2B;AAE3B,uFAAuF;AACvF,8CAA4B;AAE5B,8DAA8D;AAC9D,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAE1B,2CAAyB;AAEzB,yEAAyE;AACzE,2EAA2E;AAC3E,iEAAiE;AACjE,qCAAiE;AAAxD,2GAAA,gBAAgB,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAS7C,6DAM+B;AAL7B,4HAAA,qBAAqB,OAAA;AACrB,wHAAA,iBAAiB,OAAA;AACjB,yHAAA,kBAAkB,OAAA;AAClB,wHAAA,iBAAiB,OAAA;AACjB,4HAAA,qBAAqB,OAAA;AASvB,wFAAwF;AACxF,2CAA2C;AAC3C,uCAA4C;AAAnC,sGAAA,YAAY,OAAA;AAErB,iDAA+E;AAAtE,yGAAA,UAAU,OAAA;AAAE,6GAAA,cAAc,OAAA;AAAE,6GAAA,cAAc,OAAA"}
@@ -0,0 +1,71 @@
1
+ import { type ReferralOp } from './referrals';
2
+ /**
3
+ * Signed referral calls for an app's own test suite: send exactly what an
4
+ * Atlas instance would send to a referral platform, against a platform you run
5
+ * locally, with no Atlas instance involved. Two wire formats:
6
+ *
7
+ * - the Atlas referral protocol (provider `webhook`): every call is a signed
8
+ * `POST {base}/<endpoint>` with `op` and `customerRef` in the body, signed
9
+ * like Atlas webhooks (`atlas-id`, `atlas-timestamp`, `atlas-signature`);
10
+ * - Referally (provider `referally`): `{base}/v1/auth/connections/{id}/…`,
11
+ * signed with `x-referally-signature: t=<unix s>,v1=<hex HMAC-SHA256>` over
12
+ * `"{t}.{payload}"`, where payload is the raw body for POST and the raw
13
+ * query string for GET.
14
+ *
15
+ * Both are also on {@link TestIssuer} (`referralCall`, `referallyCall`) with
16
+ * the issuer's clock.
17
+ */
18
+ /** A ready-to-send signed call. `request()` builds a Fetch `Request`. */
19
+ export interface SignedReferralCall {
20
+ url: string;
21
+ method: 'POST' | 'GET';
22
+ headers: Record<string, string>;
23
+ /** The exact signed body (absent on GET). */
24
+ body?: string;
25
+ request(): Request;
26
+ }
27
+ /** sha256 hex of the lower-cased, trimmed email, as Atlas sends `emailHash`. */
28
+ export declare function referralEmailHash(email: string | null | undefined): string | null;
29
+ export interface AtlasReferralCallOptions {
30
+ /** The platform's base URL, as configured on the instance (`endpoint_url`). */
31
+ baseUrl: string;
32
+ /** The instance's signing secret for the connection. */
33
+ secret: string;
34
+ op: ReferralOp;
35
+ /** The rest of the body (`customerRef` and the op's fields); `op` is added. */
36
+ payload: {
37
+ customerRef: string;
38
+ } & Record<string, unknown>;
39
+ /** The call id (`atlas-id`), the same on every retry of one call. Default: random. */
40
+ callId?: string;
41
+ /** Epoch ms. Default: now. */
42
+ now?: number;
43
+ }
44
+ /** A call in the Atlas referral protocol, signed exactly as an Atlas instance signs it. */
45
+ export declare function signAtlasReferralCall(options: AtlasReferralCallOptions): SignedReferralCall;
46
+ /** The Referally API version Atlas pins on every call (`referally-version`). */
47
+ export declare const REFERALLY_API_VERSION = "2026-10-21";
48
+ /** The Referally connection calls Atlas makes. */
49
+ export type ReferallyCallOp = 'signups' | 'erase' | 'export' | 'aliases' | 'users' | 'ping';
50
+ export interface ReferallyCallOptions {
51
+ /** Your Referally base URL (never hard-code it; read it from config). */
52
+ baseUrl: string;
53
+ /** The Atlas connection id on Referally. */
54
+ connectionId: string;
55
+ /** The connection secret Referally returned when the connection was created. */
56
+ secret: string;
57
+ op: ReferallyCallOp;
58
+ /** The JSON body for POST calls. */
59
+ body?: Record<string, unknown>;
60
+ /** `export` only: the customer to export (sent as `?customerRef=`). */
61
+ customerRef?: string;
62
+ /** Epoch ms. Default: now. */
63
+ now?: number;
64
+ }
65
+ /**
66
+ * The `x-referally-signature` value for a payload: `t=<unix s>,v1=<hex
67
+ * HMAC-SHA256(secret, "{t}.{payload}")>`.
68
+ */
69
+ export declare function referallySignature(secret: string, payload: string, unixSeconds: number): string;
70
+ /** A Referally connection call, signed exactly as the Atlas `referally` adapter signs it. */
71
+ export declare function signReferallyCall(options: ReferallyCallOptions): SignedReferralCall;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REFERALLY_API_VERSION = void 0;
4
+ exports.referralEmailHash = referralEmailHash;
5
+ exports.signAtlasReferralCall = signAtlasReferralCall;
6
+ exports.referallySignature = referallySignature;
7
+ exports.signReferallyCall = signReferallyCall;
8
+ const node_crypto_1 = require("node:crypto");
9
+ const referrals_1 = require("./referrals");
10
+ function signed(url, method, headers, body) {
11
+ return {
12
+ url,
13
+ method,
14
+ headers,
15
+ body,
16
+ request: () => new Request(url, { method, headers, body }),
17
+ };
18
+ }
19
+ const trimBase = (base) => base.replace(/\/+$/, '');
20
+ /** sha256 hex of the lower-cased, trimmed email, as Atlas sends `emailHash`. */
21
+ function referralEmailHash(email) {
22
+ if (!email)
23
+ return null;
24
+ return (0, node_crypto_1.createHash)('sha256').update(email.trim().toLowerCase()).digest('hex');
25
+ }
26
+ /** A call in the Atlas referral protocol, signed exactly as an Atlas instance signs it. */
27
+ function signAtlasReferralCall(options) {
28
+ const id = options.callId ?? `rfc_test_${(0, node_crypto_1.randomBytes)(8).toString('hex')}`;
29
+ const timestamp = options.now ?? Date.now();
30
+ const body = JSON.stringify({ op: options.op, ...options.payload });
31
+ const signature = (0, node_crypto_1.createHmac)('sha256', options.secret).update(`${id}.${timestamp}.${body}`).digest('base64');
32
+ const headers = {
33
+ 'content-type': 'application/json',
34
+ 'atlas-id': id,
35
+ 'atlas-timestamp': String(timestamp),
36
+ 'atlas-signature': `v1,${signature}`,
37
+ 'idempotency-key': `${options.op}:${options.payload.customerRef}`,
38
+ 'user-agent': referrals_1.REFERRAL_PROTOCOL_USER_AGENT,
39
+ [referrals_1.REFERRAL_PROTOCOL_VERSION_HEADER]: referrals_1.REFERRAL_PROTOCOL_VERSION,
40
+ };
41
+ return signed(`${trimBase(options.baseUrl)}/${referrals_1.REFERRAL_OP_ENDPOINTS[options.op]}`, 'POST', headers, body);
42
+ }
43
+ /** The Referally API version Atlas pins on every call (`referally-version`). */
44
+ exports.REFERALLY_API_VERSION = '2026-10-21';
45
+ /**
46
+ * The `x-referally-signature` value for a payload: `t=<unix s>,v1=<hex
47
+ * HMAC-SHA256(secret, "{t}.{payload}")>`.
48
+ */
49
+ function referallySignature(secret, payload, unixSeconds) {
50
+ const mac = (0, node_crypto_1.createHmac)('sha256', secret).update(`${unixSeconds}.${payload}`).digest('hex');
51
+ return `t=${unixSeconds},v1=${mac}`;
52
+ }
53
+ /** A Referally connection call, signed exactly as the Atlas `referally` adapter signs it. */
54
+ function signReferallyCall(options) {
55
+ const t = Math.floor((options.now ?? Date.now()) / 1000);
56
+ const base = `${trimBase(options.baseUrl)}/v1/auth/connections/${encodeURIComponent(options.connectionId)}/${options.op}`;
57
+ const headers = { 'referally-version': exports.REFERALLY_API_VERSION };
58
+ if (options.op === 'export') {
59
+ if (!options.customerRef)
60
+ throw new Error('signReferallyCall: export needs customerRef.');
61
+ const query = new URLSearchParams({ customerRef: options.customerRef }).toString();
62
+ headers['x-referally-signature'] = referallySignature(options.secret, query, t);
63
+ return signed(`${base}?${query}`, 'GET', headers);
64
+ }
65
+ const body = JSON.stringify(options.body ?? {});
66
+ headers['content-type'] = 'application/json';
67
+ headers['x-referally-signature'] = referallySignature(options.secret, body, t);
68
+ return signed(base, 'POST', headers, body);
69
+ }
70
+ //# sourceMappingURL=referral-test-calls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"referral-test-calls.js","sourceRoot":"","sources":["../src/referral-test-calls.ts"],"names":[],"mappings":";;;AAiDA,8CAGC;AAiBD,sDAeC;AA4BD,gDAGC;AAGD,8CAcC;AApID,6CAAkE;AAClE,2CAMqB;AA6BrB,SAAS,MAAM,CAAC,GAAW,EAAE,MAAsB,EAAE,OAA+B,EAAE,IAAa;IACjG,OAAO;QACL,GAAG;QACH,MAAM;QACN,OAAO;QACP,IAAI;QACJ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE5D,gFAAgF;AAChF,SAAgB,iBAAiB,CAAC,KAAgC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/E,CAAC;AAgBD,2FAA2F;AAC3F,SAAgB,qBAAqB,CAAC,OAAiC;IACrE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7G,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,UAAU,EAAE,EAAE;QACd,iBAAiB,EAAE,MAAM,CAAC,SAAS,CAAC;QACpC,iBAAiB,EAAE,MAAM,SAAS,EAAE;QACpC,iBAAiB,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE;QACjE,YAAY,EAAE,wCAA4B;QAC1C,CAAC,4CAAgC,CAAC,EAAE,qCAAyB;KAC9D,CAAC;IACF,OAAO,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,iCAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5G,CAAC;AAED,gFAAgF;AACnE,QAAA,qBAAqB,GAAG,YAAY,CAAC;AAqBlD;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,MAAc,EAAE,OAAe,EAAE,WAAmB;IACrF,MAAM,GAAG,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3F,OAAO,KAAK,WAAW,OAAO,GAAG,EAAE,CAAC;AACtC,CAAC;AAED,6FAA6F;AAC7F,SAAgB,iBAAiB,CAAC,OAA6B;IAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAC1H,MAAM,OAAO,GAA2B,EAAE,mBAAmB,EAAE,6BAAqB,EAAE,CAAC;IACvF,IAAI,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnF,OAAO,CAAC,uBAAuB,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,MAAM,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IAC7C,OAAO,CAAC,uBAAuB,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7C,CAAC"}
@@ -11,13 +11,17 @@ import type { ReferralRisk } from './client/referrals';
11
11
  * POST {base}/export { op: 'export', customerRef, test } → 200 JSON (any shape) | 404
12
12
  * POST {base}/partners { op: 'partner', customerRef, code, emailHash } → 2xx | 409 code taken | 404/405/501 unsupported
13
13
  * POST {base}/signals { op: 'signal', customerRef, type, occurredAt, data } → 2xx | 404/405/501 unsupported
14
+ * POST {base}/aliases { op: 'alias', customerRef, fromCustomerRef, toCustomerRef } → 2xx | 409 (permanent)
15
+ * POST {base}/users { op: 'user', customerRef, email?, name?, status? } → 2xx
16
+ * POST {base}/ping { op: 'ping', customerRef: 'atlas_connection_test' } → 200 ReferralPingResponse
14
17
  *
15
18
  * The connection test is `POST {base}/export` with
16
19
  * `{ op: 'export', customerRef: 'atlas_connection_test', test: true }` (answer
17
20
  * 2xx or 404). Calls are signed exactly like Atlas webhooks (`atlas-id`,
18
21
  * `atlas-timestamp`, `atlas-signature` over `<id>.<timestamp>.<raw body>`),
19
- * with `Idempotency-Key` and `User-Agent: Atlas-Referrals/1`. `atlas-id` is the
20
- * call id, the same on every retry of one call.
22
+ * with `Idempotency-Key`, `User-Agent: Atlas-Referrals/1` and
23
+ * `Atlas-Referrals-Version: 2026-10-21`. `atlas-id` is the call id, the same on
24
+ * every retry of one call.
21
25
  *
22
26
  * The signature covers the body, not the URL, so everything that matters is in
23
27
  * the body. Pass the path the request arrived on (or the operation you
@@ -28,6 +32,10 @@ import type { ReferralRisk } from './client/referrals';
28
32
  export declare const REFERRAL_CONNECTION_TEST_REF = "atlas_connection_test";
29
33
  /** The `User-Agent` Atlas sends on every referral call. */
30
34
  export declare const REFERRAL_PROTOCOL_USER_AGENT = "Atlas-Referrals/1";
35
+ /** The `Atlas-Referrals-Version` header Atlas sends on every call; shapes only grow, additively, under it. */
36
+ export declare const REFERRAL_PROTOCOL_VERSION = "2026-10-21";
37
+ /** The name of the version header (lower-case). */
38
+ export declare const REFERRAL_PROTOCOL_VERSION_HEADER = "atlas-referrals-version";
31
39
  /** The referral captured at sign-up (from the page URL, or a tracking cookie under consent). Never trusted. */
32
40
  export interface ReferralContext {
33
41
  /** The referral code from the URL (or cookie), 3-64 of `A-Z a-z 0-9 _ -`. */
@@ -82,6 +90,8 @@ export interface ReferralSignupResponse {
82
90
  code: string | null;
83
91
  link?: string | null;
84
92
  } | null;
93
+ /** Why you matched or did not (shown in the Atlas delivery log and on the user). */
94
+ notes?: string[];
85
95
  }
86
96
  /** `POST {base}/erase`. */
87
97
  export interface ReferralErasePayload {
@@ -113,8 +123,46 @@ export interface ReferralSignalPayload {
113
123
  occurredAt: string;
114
124
  data: Record<string, unknown>;
115
125
  }
126
+ /**
127
+ * `POST {base}/aliases`: the user's `external_id` was set or changed after the
128
+ * sign-up call. Re-key the customer from `fromCustomerRef` (the old value, or
129
+ * the Atlas user id) to `toCustomerRef`. `customerRef` equals `toCustomerRef`.
130
+ * A 409 is treated as permanent.
131
+ */
132
+ export interface ReferralAliasPayload {
133
+ op: 'alias';
134
+ customerRef: string;
135
+ fromCustomerRef: string;
136
+ toCustomerRef: string;
137
+ }
138
+ /**
139
+ * `POST {base}/users`: a lifecycle change. `email` / `name` when they changed;
140
+ * `status` `suspended` on a ban, `active` on an unban, `deleted` on deletion
141
+ * (deletion is also sent to `/erase`).
142
+ */
143
+ export interface ReferralUserPayload {
144
+ op: 'user';
145
+ customerRef: string;
146
+ email?: string | null;
147
+ name?: string | null;
148
+ status?: 'active' | 'suspended' | 'deleted';
149
+ }
150
+ /** `POST {base}/ping`: the connection test where the platform supports it. */
151
+ export interface ReferralPingPayload {
152
+ op: 'ping';
153
+ customerRef: string;
154
+ }
155
+ /** The answer to a ping. Every field but `ok` is optional and shown on the Atlas dashboard. */
156
+ export interface ReferralPingResponse {
157
+ ok: boolean;
158
+ programName?: string;
159
+ orgName?: string;
160
+ autoEnrollUsers?: boolean;
161
+ /** ISO 8601. Atlas warns when it is more than 60 seconds off. */
162
+ serverTime?: string;
163
+ }
116
164
  /** The operations of the referral protocol (the `op` of every call). */
117
- export type ReferralOp = 'signup' | 'erase' | 'export' | 'partner' | 'signal';
165
+ export type ReferralOp = 'signup' | 'erase' | 'export' | 'partner' | 'signal' | 'alias' | 'user' | 'ping';
118
166
  /** The endpoint (last path segment) each operation is sent to. */
119
167
  export declare const REFERRAL_OP_ENDPOINTS: Record<ReferralOp, string>;
120
168
  /** A verified call, by operation. */
@@ -135,6 +183,15 @@ export type ReferralProtocolCall = {
135
183
  } | {
136
184
  op: 'signal';
137
185
  payload: ReferralSignalPayload;
186
+ } | {
187
+ op: 'alias';
188
+ payload: ReferralAliasPayload;
189
+ } | {
190
+ op: 'user';
191
+ payload: ReferralUserPayload;
192
+ } | {
193
+ op: 'ping';
194
+ payload: ReferralPingPayload;
138
195
  };
139
196
  /**
140
197
  * Why a call was refused: a webhook signature failure, or
@@ -153,8 +210,8 @@ export interface VerifyReferralRequestInput {
153
210
  secret: string;
154
211
  /**
155
212
  * The path (or full URL) the request arrived on, e.g. `req.path`. Its last
156
- * segment (`signups`, `erase`, `export`, `partners`, `signals`) must match
157
- * the signed `op`.
213
+ * segment (`signups`, `erase`, `export`, `partners`, `signals`, `aliases`,
214
+ * `users`, `ping`) must match the signed `op`.
158
215
  */
159
216
  path?: string;
160
217
  /** The operation this handler serves; the signed `op` must equal it. */
@@ -172,6 +229,8 @@ export interface ReferralVerifyResult {
172
229
  timestamp?: number;
173
230
  /** The `Idempotency-Key` header (`signup:<customerRef>` on sign-ups). Not signed. */
174
231
  idempotencyKey?: string;
232
+ /** The `Atlas-Referrals-Version` header, when sent. Not signed. */
233
+ protocolVersion?: string;
175
234
  /** The operation and its payload, present only when `verified`. */
176
235
  call?: ReferralProtocolCall;
177
236
  }
@@ -191,7 +250,8 @@ export declare function referralOpForPath(path: string): ReferralOp | null;
191
250
  * if (!verified || !call) return res.sendStatus(401);
192
251
  * if (call.op === 'export' && call.test) return res.sendStatus(404);
193
252
  * if (call.op === 'signup') return res.json(await attribute(call.payload)); // ReferralSignupResponse
194
- * // erase, export, partner, signal ...
253
+ * if (call.op === 'ping') return res.json({ ok: true, serverTime: new Date().toISOString() });
254
+ * // erase, export, partner, signal, alias, user ...
195
255
  * });
196
256
  * ```
197
257
  */
package/dist/referrals.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.REFERRAL_OP_ENDPOINTS = exports.REFERRAL_PROTOCOL_USER_AGENT = exports.REFERRAL_CONNECTION_TEST_REF = void 0;
3
+ exports.REFERRAL_OP_ENDPOINTS = exports.REFERRAL_PROTOCOL_VERSION_HEADER = exports.REFERRAL_PROTOCOL_VERSION = exports.REFERRAL_PROTOCOL_USER_AGENT = exports.REFERRAL_CONNECTION_TEST_REF = void 0;
4
4
  exports.referralOpForPath = referralOpForPath;
5
5
  exports.verifyReferralRequest = verifyReferralRequest;
6
6
  const webhooks_1 = require("./webhooks");
@@ -15,13 +15,17 @@ const webhooks_1 = require("./webhooks");
15
15
  * POST {base}/export { op: 'export', customerRef, test } → 200 JSON (any shape) | 404
16
16
  * POST {base}/partners { op: 'partner', customerRef, code, emailHash } → 2xx | 409 code taken | 404/405/501 unsupported
17
17
  * POST {base}/signals { op: 'signal', customerRef, type, occurredAt, data } → 2xx | 404/405/501 unsupported
18
+ * POST {base}/aliases { op: 'alias', customerRef, fromCustomerRef, toCustomerRef } → 2xx | 409 (permanent)
19
+ * POST {base}/users { op: 'user', customerRef, email?, name?, status? } → 2xx
20
+ * POST {base}/ping { op: 'ping', customerRef: 'atlas_connection_test' } → 200 ReferralPingResponse
18
21
  *
19
22
  * The connection test is `POST {base}/export` with
20
23
  * `{ op: 'export', customerRef: 'atlas_connection_test', test: true }` (answer
21
24
  * 2xx or 404). Calls are signed exactly like Atlas webhooks (`atlas-id`,
22
25
  * `atlas-timestamp`, `atlas-signature` over `<id>.<timestamp>.<raw body>`),
23
- * with `Idempotency-Key` and `User-Agent: Atlas-Referrals/1`. `atlas-id` is the
24
- * call id, the same on every retry of one call.
26
+ * with `Idempotency-Key`, `User-Agent: Atlas-Referrals/1` and
27
+ * `Atlas-Referrals-Version: 2026-10-21`. `atlas-id` is the call id, the same on
28
+ * every retry of one call.
25
29
  *
26
30
  * The signature covers the body, not the URL, so everything that matters is in
27
31
  * the body. Pass the path the request arrived on (or the operation you
@@ -32,6 +36,10 @@ const webhooks_1 = require("./webhooks");
32
36
  exports.REFERRAL_CONNECTION_TEST_REF = 'atlas_connection_test';
33
37
  /** The `User-Agent` Atlas sends on every referral call. */
34
38
  exports.REFERRAL_PROTOCOL_USER_AGENT = 'Atlas-Referrals/1';
39
+ /** The `Atlas-Referrals-Version` header Atlas sends on every call; shapes only grow, additively, under it. */
40
+ exports.REFERRAL_PROTOCOL_VERSION = '2026-10-21';
41
+ /** The name of the version header (lower-case). */
42
+ exports.REFERRAL_PROTOCOL_VERSION_HEADER = 'atlas-referrals-version';
35
43
  /** The endpoint (last path segment) each operation is sent to. */
36
44
  exports.REFERRAL_OP_ENDPOINTS = {
37
45
  signup: 'signups',
@@ -39,6 +47,9 @@ exports.REFERRAL_OP_ENDPOINTS = {
39
47
  export: 'export',
40
48
  partner: 'partners',
41
49
  signal: 'signals',
50
+ alias: 'aliases',
51
+ user: 'users',
52
+ ping: 'ping',
42
53
  };
43
54
  function header(headers, name) {
44
55
  if (typeof headers.get === 'function')
@@ -76,7 +87,8 @@ function referralOpForPath(path) {
76
87
  * if (!verified || !call) return res.sendStatus(401);
77
88
  * if (call.op === 'export' && call.test) return res.sendStatus(404);
78
89
  * if (call.op === 'signup') return res.json(await attribute(call.payload)); // ReferralSignupResponse
79
- * // erase, export, partner, signal ...
90
+ * if (call.op === 'ping') return res.json({ ok: true, serverTime: new Date().toISOString() });
91
+ * // erase, export, partner, signal, alias, user ...
80
92
  * });
81
93
  * ```
82
94
  */
@@ -115,6 +127,7 @@ function verifyReferralRequest(input) {
115
127
  deliveryId: result.deliveryId,
116
128
  timestamp: result.timestamp,
117
129
  idempotencyKey: header(input.headers, 'idempotency-key'),
130
+ protocolVersion: header(input.headers, exports.REFERRAL_PROTOCOL_VERSION_HEADER),
118
131
  call,
119
132
  };
120
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../src/referrals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"referrals.js","sourceRoot":"","sources":["../src/referrals.ts"],"names":[],"mappings":"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"}
package/dist/testing.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type KeyLike } from 'jose';
2
2
  import type { Jwks } from './jwks-cache';
3
3
  import type { SessionClaims } from './verify';
4
+ import { type AtlasReferralCallOptions, type ReferallyCallOptions, type SignedReferralCall } from './referral-test-calls';
4
5
  /**
5
6
  * §1.3(c) hermetic test fixtures.
6
7
  *
@@ -128,6 +129,17 @@ export interface TestIssuer {
128
129
  * answers 404, so nothing reaches the network.
129
130
  */
130
131
  fetch: typeof fetch;
132
+ /**
133
+ * A signed call in the Atlas referral protocol, as an instance with
134
+ * provider `webhook` sends it, for testing your referral platform's
135
+ * receiver. Uses this issuer's clock unless `now` is given.
136
+ */
137
+ referralCall(options: AtlasReferralCallOptions): SignedReferralCall;
138
+ /**
139
+ * A signed Referally connection call, as an instance with provider
140
+ * `referally` sends it, to run against a local Referally in your tests.
141
+ */
142
+ referallyCall(options: ReferallyCallOptions): SignedReferralCall;
131
143
  /** The endpoint URLs `fetch` serves (and the discovery document lists). */
132
144
  endpoints: {
133
145
  discovery: string;
package/dist/testing.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TEST_TOKEN_TAMPERS = void 0;
4
4
  exports.createTestIssuer = createTestIssuer;
5
5
  const jose_1 = require("jose");
6
+ const referral_test_calls_1 = require("./referral-test-calls");
6
7
  /** The six {@link TestTokenTamper} cases, for a table-driven negative test. */
7
8
  exports.TEST_TOKEN_TAMPERS = [
8
9
  'wrong_aud',
@@ -224,6 +225,8 @@ async function createTestIssuer(options = {}) {
224
225
  clientId,
225
226
  mintSession,
226
227
  mintIdToken,
228
+ referralCall: (o) => (0, referral_test_calls_1.signAtlasReferralCall)({ ...o, now: o.now ?? clock() }),
229
+ referallyCall: (o) => (0, referral_test_calls_1.signReferallyCall)({ ...o, now: o.now ?? clock() }),
227
230
  authorize,
228
231
  fetch: fakeFetch,
229
232
  endpoints,
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":";;;AAkMA,4CAkOC;AApaD,+BAAuF;AAGvF,+DAM+B;AA8D/B,+EAA+E;AAClE,QAAA,kBAAkB,GAA+B;IAC5D,WAAW;IACX,WAAW;IACX,aAAa;IACb,SAAS;IACT,aAAa;IACb,UAAU;CACX,CAAC;AAkGF,MAAM,cAAc,GAAG,wCAAwC,CAAC;AAChE,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,iBAAiB,GAAG,aAAa,CAAC;AACxC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAE1C;;;;;;;;;;GAUG;AACI,KAAK,UAAU,gBAAgB,CACpC,UAAmC,EAAE;IAErC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;IAChD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IAEtC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,sBAAe,EAAC,OAAO,CAAC,CAAC;IACjE,uEAAuE;IACvE,8EAA8E;IAC9E,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,MAAM,IAAA,gBAAS,EAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACrF,MAAM,IAAI,GAAS,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;IAEzC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,IAAI,4BAA4B,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE,GAAG,IAAI,mCAAmC;QACrD,IAAI,EAAE,GAAG,IAAI,wBAAwB;QACrC,aAAa,EAAE,GAAG,IAAI,mBAAmB;QACzC,KAAK,EAAE,GAAG,IAAI,eAAe;QAC7B,UAAU,EAAE,GAAG,IAAI,gBAAgB;KACpC,CAAC;IAEF,6EAA6E;IAC7E,0EAA0E;IAC1E,IAAI,UAAU,GAA4B,IAAI,CAAC;IAE/C,KAAK,UAAU,IAAI,CAAC,OAAgC,EAAE,MAAmC;QACvF,IAAI,MAAM,KAAK,UAAU;YAAE,OAAO,IAAI,mBAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;QACrE,IAAI,GAAG,GAAG,UAAU,CAAC;QACrB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;YAC7B,UAAU,KAAK,IAAA,sBAAe,EAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxE,GAAG,GAAG,MAAM,UAAU,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,cAAO,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,SAAS,WAAW,CAAC,OAAgC,EAAE,MAAmC,EAAE,UAAkB;QAC5G,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,GAAG,GAAG,qBAAqB,CAAC;QAChE,IAAI,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,GAAG,GAAG,kCAAkC,CAAC;QAC7E,IAAI,MAAM,KAAK,aAAa;YAAE,OAAO,CAAC,KAAK,GAAG,SAAS,QAAQ,EAAE,EAAE,CAAC;QACpE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC;YAChC,OAAO,CAAC,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;QACjC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,SAAiC,EAAE,EACnC,cAA4C,EAAE;QAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,OAAO,GAA4B;YACvC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,MAAM;YACX,EAAE,EAAE,CAAC;YACL,GAAG,EAAE,KAAK;YACV,yEAAyE;YACzE,yDAAyD;YACzD,SAAS,EAAE,SAAS;YACpB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU,GAAG,UAAU;YAC5B,GAAG,MAAM;SACV,CAAC;QAEF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,UAAU,WAAW,CACxB,SAAkC,EAAE,EACpC,cAAkC,EAAE;QAEpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,MAAM,OAAO,GAA4B;YACvC,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,QAAQ;YAChC,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,UAAU,GAAG,CAAC,WAAW,CAAC,UAAU,IAAI,UAAU,CAAC;YACxD,SAAS,EAAE,UAAU;YACrB,GAAG,EAAE,WAAW;YAChB,GAAG,EAAE,CAAC,KAAK,CAAC;YACZ,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,MAAM;SACV,CAAC;QACF,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;IAYD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAuB,CAAC;IAE7C,KAAK,UAAU,SAAS,CAAC,YAAoB,EAAE,cAAoC,EAAE;QACnF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC;QAC3B,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACxG,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,QAAQ,GAAG,CAAC,CAAC;YACrG,CAAC;YACD,MAAM,IAAI,GAAG,QAAQ,QAAQ,EAAE,EAAE,CAAC;YAClC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;gBACd,QAAQ;gBACR,WAAW;gBACX,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;gBAClC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,SAAS;gBAC/C,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ;gBACjC,GAAG,EAAE,WAAW,CAAC,GAAG,IAAI,WAAW;gBACnC,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,EAAE;gBAChC,MAAM,EAAE,WAAW,CAAC,MAAM;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC5B,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS;YAChD,KAAK;SACN,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAc,EAAE,IAAa,EAAE,EAAE,CAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAElG,KAAK,UAAU,aAAa,CAAC,OAAgB;QAC3C,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,0EAA0E;QAC1E,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAChC,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,EAAE,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC3F,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,oBAAoB;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC3G,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB;QAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC/G,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,QAAQ,EAAE,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,WAAW,CAC/B,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EACvC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAC9D,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,EAAE;YACf,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,QAAQ;YACpB,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtG,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG;QACnB,MAAM;QACN,sBAAsB,EAAE,SAAS,CAAC,aAAa;QAC/C,cAAc,EAAE,SAAS,CAAC,KAAK;QAC/B,QAAQ,EAAE,SAAS,CAAC,IAAI;QACxB,oBAAoB,EAAE,SAAS,CAAC,UAAU;QAC1C,wBAAwB,EAAE,CAAC,MAAM,CAAC;QAClC,uBAAuB,EAAE,CAAC,QAAQ,CAAC;QACnC,qCAAqC,EAAE,CAAC,OAAO,CAAC;QAChD,gCAAgC,EAAE,CAAC,MAAM,CAAC;QAC1C,qCAAqC,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,CAAC;KAC7F,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,KAAkC,EAAE,IAAkB,EAAE,EAAE;QAClF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,MAAM,KAAK,SAAS,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC/F,IAAI,MAAM,KAAK,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClF,IAAI,MAAM,KAAK,SAAS,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3F,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAiB,CAAC;IAEnB,OAAO;QACL,MAAM;QACN,IAAI;QACJ,GAAG;QACH,UAAU;QACV,QAAQ;QACR,WAAW;QACX,WAAW;QACX,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,2CAAqB,EAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;QAC3E,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,uCAAiB,EAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,EAAE,EAAE,CAAC;QACxE,SAAS;QACT,KAAK,EAAE,SAAS;QAChB,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,MAAM,CAAC,KAAiB;IAC/B,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,KAAa;IAC/B,OAAO,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,MAAM,CAAC,WAAmB;IACvC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5G,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@atlasauth/backend",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "dependencies": {
7
7
  "jose": "^5.9.6",
8
- "@atlasauth/authz": "0.1.1",
9
- "@atlasauth/pca": "0.1.0"
8
+ "@atlasauth/pca": "0.1.0",
9
+ "@atlasauth/authz": "0.1.1"
10
10
  },
11
11
  "devDependencies": {
12
12
  "typescript": "^5.6.3",