@atlasauth/backend 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/backchannel-handlers.d.ts +87 -0
  3. package/dist/backchannel-handlers.js +137 -0
  4. package/dist/backchannel-handlers.js.map +1 -0
  5. package/dist/client/activity.d.ts +13 -2
  6. package/dist/client/activity.js.map +1 -1
  7. package/dist/client/audit-logs.d.ts +7 -0
  8. package/dist/client/audit-logs.js.map +1 -1
  9. package/dist/client/compliance.d.ts +216 -0
  10. package/dist/client/compliance.js +77 -0
  11. package/dist/client/compliance.js.map +1 -0
  12. package/dist/client/credentials.d.ts +409 -0
  13. package/dist/client/credentials.js +158 -0
  14. package/dist/client/credentials.js.map +1 -0
  15. package/dist/client/data-subject-requests.d.ts +36 -1
  16. package/dist/client/data-subject-requests.js.map +1 -1
  17. package/dist/client/design.d.ts +48 -0
  18. package/dist/client/design.js +9 -0
  19. package/dist/client/design.js.map +1 -1
  20. package/dist/client/entitlement-overrides.d.ts +30 -0
  21. package/dist/client/entitlement-overrides.js +9 -0
  22. package/dist/client/entitlement-overrides.js.map +1 -1
  23. package/dist/client/env.d.ts +16 -0
  24. package/dist/client/env.js +38 -0
  25. package/dist/client/env.js.map +1 -0
  26. package/dist/client/error.d.ts +10 -0
  27. package/dist/client/error.js +4 -0
  28. package/dist/client/error.js.map +1 -1
  29. package/dist/client/index.d.ts +382 -7
  30. package/dist/client/index.js +44 -1
  31. package/dist/client/index.js.map +1 -1
  32. package/dist/client/instance.d.ts +401 -3
  33. package/dist/client/instance.js +77 -3
  34. package/dist/client/instance.js.map +1 -1
  35. package/dist/client/integrations.d.ts +107 -0
  36. package/dist/client/integrations.js +25 -0
  37. package/dist/client/integrations.js.map +1 -0
  38. package/dist/client/messaging.d.ts +18 -4
  39. package/dist/client/messaging.js +6 -2
  40. package/dist/client/messaging.js.map +1 -1
  41. package/dist/client/oauth-clients.d.ts +11 -3
  42. package/dist/client/oauth-clients.js +4 -2
  43. package/dist/client/oauth-clients.js.map +1 -1
  44. package/dist/client/operator.d.ts +100 -0
  45. package/dist/client/operator.js +132 -0
  46. package/dist/client/operator.js.map +1 -0
  47. package/dist/client/platform.d.ts +233 -9
  48. package/dist/client/platform.js +74 -6
  49. package/dist/client/platform.js.map +1 -1
  50. package/dist/client/policies.d.ts +316 -0
  51. package/dist/client/policies.js +103 -0
  52. package/dist/client/policies.js.map +1 -0
  53. package/dist/client/privacy.d.ts +127 -0
  54. package/dist/client/privacy.js +44 -0
  55. package/dist/client/privacy.js.map +1 -0
  56. package/dist/client/referrals.d.ts +53 -6
  57. package/dist/client/referrals.js +9 -0
  58. package/dist/client/referrals.js.map +1 -1
  59. package/dist/client/request.d.ts +38 -1
  60. package/dist/client/request.js +6 -2
  61. package/dist/client/request.js.map +1 -1
  62. package/dist/client/sealed-box.d.ts +7 -0
  63. package/dist/client/sealed-box.js +62 -0
  64. package/dist/client/sealed-box.js.map +1 -0
  65. package/dist/client/sessions.d.ts +16 -5
  66. package/dist/client/sessions.js +7 -10
  67. package/dist/client/sessions.js.map +1 -1
  68. package/dist/client/status.d.ts +200 -0
  69. package/dist/client/status.js +54 -0
  70. package/dist/client/status.js.map +1 -0
  71. package/dist/client/users.d.ts +15 -0
  72. package/dist/client/webhooks.d.ts +244 -11
  73. package/dist/client/webhooks.js +52 -3
  74. package/dist/client/webhooks.js.map +1 -1
  75. package/dist/index.d.ts +9 -6
  76. package/dist/index.js +20 -4
  77. package/dist/index.js.map +1 -1
  78. package/dist/oidc.d.ts +65 -1
  79. package/dist/oidc.js +46 -0
  80. package/dist/oidc.js.map +1 -1
  81. package/dist/policy-source.d.ts +104 -0
  82. package/dist/policy-source.js +99 -0
  83. package/dist/policy-source.js.map +1 -0
  84. package/dist/referral-test-calls.d.ts +26 -13
  85. package/dist/referral-test-calls.js +40 -14
  86. package/dist/referral-test-calls.js.map +1 -1
  87. package/dist/testing.d.ts +41 -6
  88. package/dist/testing.js +34 -2
  89. package/dist/testing.js.map +1 -1
  90. package/dist/webhooks.d.ts +8 -0
  91. package/dist/webhooks.js +13 -4
  92. package/dist/webhooks.js.map +1 -1
  93. package/package.json +6 -3
package/dist/oidc.d.ts CHANGED
@@ -87,6 +87,12 @@ export interface OidcStartOptions extends OidcBaseOptions {
87
87
  loginHint?: string;
88
88
  /** Sent as `audience_hint`. */
89
89
  audienceHint?: string;
90
+ /**
91
+ * Sent as `organization`: the organization (id or slug) the sign-in must be
92
+ * made in. The user has to be a member (else the callback fails with
93
+ * `access_denied`); the identity's `organization` is then that org.
94
+ */
95
+ organization?: string;
90
96
  /**
91
97
  * Any other authorize parameters. They cannot override the ones this helper
92
98
  * owns (`response_type`, `client_id`, `redirect_uri`, `state`, `nonce`,
@@ -140,6 +146,53 @@ export interface OidcCallbackOptions extends OidcBaseOptions {
140
146
  /** Allowed clock skew for `exp`/`iat`, in seconds. Default 60. */
141
147
  clockToleranceSec?: number;
142
148
  }
149
+ /** The organization a sign-in was made in (the ID token's `org_*` claims). */
150
+ export interface OidcOrganization {
151
+ /** `org_id` */
152
+ id: string;
153
+ /** `org_slug` */
154
+ slug: string;
155
+ /** `org_role`: the user's role key in it. */
156
+ role: string;
157
+ /** `org_permissions` */
158
+ permissions: string[];
159
+ }
160
+ /** One entry of the `orgs` claim (the `organizations` scope). */
161
+ export interface OidcOrganizationMembership {
162
+ id: string;
163
+ slug: string;
164
+ role: string;
165
+ }
166
+ /** The enterprise SSO context of a sign-in (the ID token's `sso_*` claims). */
167
+ export interface OidcSsoContext {
168
+ /** `sso_connection_id`: the connection the user signed in through. */
169
+ connectionId: string;
170
+ /** `sso_tenant_id`: the IdP-side tenant (Entra `tid`, Google `hd`, SAML entity id), when known. */
171
+ tenantId: string | null;
172
+ /** `sso_issuer`: the IdP issuer, when known. */
173
+ issuer: string | null;
174
+ /** `sso_domain`: the connection domain matching the user's email. */
175
+ domain: string | null;
176
+ }
177
+ /** The Atlas-specific claims an Atlas ID token can carry, beyond the OIDC standard ones. */
178
+ export interface AtlasIdTokenClaims {
179
+ account_status?: 'active' | 'suspended' | 'banned';
180
+ org_id?: string;
181
+ org_slug?: string;
182
+ org_role?: string;
183
+ org_permissions?: string[];
184
+ orgs?: OidcOrganizationMembership[];
185
+ sso_connection_id?: string;
186
+ sso_tenant_id?: string;
187
+ sso_issuer?: string;
188
+ sso_domain?: string;
189
+ }
190
+ /** Read the organization (`org_*`) from verified ID-token or userinfo claims. */
191
+ export declare function oidcOrganizationOf(claims: Record<string, unknown>): OidcOrganization | null;
192
+ /** Read the `orgs` membership list (the `organizations` scope) from claims. */
193
+ export declare function oidcOrganizationsOf(claims: Record<string, unknown>): OidcOrganizationMembership[] | null;
194
+ /** Read the enterprise SSO context (`sso_*`) from claims. */
195
+ export declare function oidcSsoOf(claims: Record<string, unknown>): OidcSsoContext | null;
143
196
  export interface OidcIdentity {
144
197
  /** The Atlas user id (`sub`). Unique within one issuer. */
145
198
  sub: string;
@@ -153,6 +206,17 @@ export interface OidcIdentity {
153
206
  /** `true` only when the ID token says `email_verified: true`. */
154
207
  emailVerified: boolean;
155
208
  name: string | null;
209
+ /**
210
+ * The organization the sign-in was made in (`org_id`, `org_slug`,
211
+ * `org_role`, `org_permissions`): the `organization` you asked for, the
212
+ * enterprise SSO connection's organization, or the user's active one. Null
213
+ * when no organization was involved.
214
+ */
215
+ organization: OidcOrganization | null;
216
+ /** Every membership (`orgs`), when you asked for the `organizations` scope. */
217
+ organizations: OidcOrganizationMembership[] | null;
218
+ /** The enterprise SSO connection the user signed in through (`sso_*`), or null. */
219
+ sso: OidcSsoContext | null;
156
220
  /** The raw, verified ID token. Keep it for `logoutUrl({ idTokenHint })`. */
157
221
  idToken: string;
158
222
  accessToken: string;
@@ -161,7 +225,7 @@ export interface OidcIdentity {
161
225
  /** When the access token expires, in epoch milliseconds. */
162
226
  expiresAt: number;
163
227
  /** Every verified ID-token claim. */
164
- claims: JWTPayload & Record<string, unknown>;
228
+ claims: JWTPayload & AtlasIdTokenClaims & Record<string, unknown>;
165
229
  /** A `Set-Cookie` value that removes the flow cookie. Send it with your response. */
166
230
  clearCookie: string;
167
231
  }
package/dist/oidc.js CHANGED
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.oidc = exports.OIDC_FLOW_MAX_AGE_SECONDS = exports.OIDC_FLOW_COOKIE = exports.AtlasOidcError = void 0;
4
4
  exports.oidcStart = oidcStart;
5
+ exports.oidcOrganizationOf = oidcOrganizationOf;
6
+ exports.oidcOrganizationsOf = oidcOrganizationsOf;
7
+ exports.oidcSsoOf = oidcSsoOf;
5
8
  exports.oidcCallback = oidcCallback;
6
9
  exports.oidcVerifyIdToken = oidcVerifyIdToken;
7
10
  exports.oidcLogoutUrl = oidcLogoutUrl;
@@ -85,6 +88,8 @@ async function oidcStart(options) {
85
88
  url.searchParams.set('login_hint', options.loginHint);
86
89
  if (options.audienceHint)
87
90
  url.searchParams.set('audience_hint', options.audienceHint);
91
+ if (options.organization)
92
+ url.searchParams.set('organization', options.organization);
88
93
  const payload = {
89
94
  s: state,
90
95
  n: nonce,
@@ -102,6 +107,44 @@ async function oidcStart(options) {
102
107
  });
103
108
  return { url: url.toString(), cookie, state, nonce };
104
109
  }
110
+ /** Read the organization (`org_*`) from verified ID-token or userinfo claims. */
111
+ function oidcOrganizationOf(claims) {
112
+ if (typeof claims.org_id !== 'string')
113
+ return null;
114
+ return {
115
+ id: claims.org_id,
116
+ slug: typeof claims.org_slug === 'string' ? claims.org_slug : '',
117
+ role: typeof claims.org_role === 'string' ? claims.org_role : '',
118
+ permissions: Array.isArray(claims.org_permissions)
119
+ ? claims.org_permissions.filter((p) => typeof p === 'string')
120
+ : [],
121
+ };
122
+ }
123
+ /** Read the `orgs` membership list (the `organizations` scope) from claims. */
124
+ function oidcOrganizationsOf(claims) {
125
+ if (!Array.isArray(claims.orgs))
126
+ return null;
127
+ return claims.orgs
128
+ .filter((o) => typeof o === 'object' && o !== null)
129
+ .filter((o) => typeof o.id === 'string')
130
+ .map((o) => ({
131
+ id: o.id,
132
+ slug: typeof o.slug === 'string' ? o.slug : '',
133
+ role: typeof o.role === 'string' ? o.role : '',
134
+ }));
135
+ }
136
+ /** Read the enterprise SSO context (`sso_*`) from claims. */
137
+ function oidcSsoOf(claims) {
138
+ if (typeof claims.sso_connection_id !== 'string')
139
+ return null;
140
+ const s = (v) => (typeof v === 'string' ? v : null);
141
+ return {
142
+ connectionId: claims.sso_connection_id,
143
+ tenantId: s(claims.sso_tenant_id),
144
+ issuer: s(claims.sso_issuer),
145
+ domain: s(claims.sso_domain),
146
+ };
147
+ }
105
148
  /**
106
149
  * Finish a sign-in: check `state`, exchange the code (with PKCE and client
107
150
  * authentication), verify the ID token, and return who signed in.
@@ -178,6 +221,9 @@ async function runCallback(options, cookieName) {
178
221
  email: typeof claims.email === 'string' ? claims.email : null,
179
222
  emailVerified: claims.email_verified === true,
180
223
  name: typeof claims.name === 'string' ? claims.name : null,
224
+ organization: oidcOrganizationOf(claims),
225
+ organizations: oidcOrganizationsOf(claims),
226
+ sso: oidcSsoOf(claims),
181
227
  idToken: tokens.id_token,
182
228
  accessToken: tokens.access_token,
183
229
  ...(typeof tokens.refresh_token === 'string' ? { refreshToken: tokens.refresh_token } : {}),
package/dist/oidc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Atlas policy source protocol v1 — helpers for the system that SERVES an
3
+ * Atlas instance's policy documents (a CMS, a docs platform, your own service).
4
+ *
5
+ * Atlas → you: GET {endpoint_url}/policies (full feed)
6
+ * GET {endpoint_url}/policies?key=<key> (one policy, after your event)
7
+ * signed with the source's signing secret: `atlas-id`, `atlas-timestamp`
8
+ * (epoch ms) and `atlas-signature: v1,<base64 HMAC-SHA256>` over
9
+ * `{atlas-id}.{atlas-timestamp}.GET\n{path+query}`. Verify it with
10
+ * {@link verifyPolicyFeedRequest}, then answer a {@link PolicyFeed}.
11
+ * You → Atlas: POST {webhook_url} (from GET /v1/instance/policy_source), a
12
+ * {@link PolicySourceEvent} signed with the same secret —
13
+ * {@link signPolicySourceEvent} (Atlas-style) or any Standard Webhooks library.
14
+ * Atlas then re-fetches that policy; it never stores content from the event.
15
+ */
16
+ export declare const POLICY_SOURCE_PROTOCOL_VERSION = "2026-10-24";
17
+ export declare const POLICY_SOURCE_VERSION_HEADER = "atlas-policies-version";
18
+ export interface PolicyFeedVersion {
19
+ version: string;
20
+ /** Epoch ms or ISO 8601. */
21
+ published_at?: number | string;
22
+ /** When Atlas starts asking users for it (defaults to published_at). */
23
+ effective_at?: number | string;
24
+ /** One of content_html / content_markdown, or content_url for Atlas to snapshot. At most 512 KB. */
25
+ content_html?: string;
26
+ content_markdown?: string;
27
+ content_url?: string;
28
+ summary_of_changes?: string;
29
+ locale?: string;
30
+ }
31
+ export interface PolicyFeedPolicy {
32
+ /** Slug: lowercase letters, digits, `_` and `-`. */
33
+ key: string;
34
+ title: string;
35
+ display?: 'checkbox' | 'scroll' | 'link';
36
+ required?: boolean;
37
+ applies_to?: 'sign_up' | 'sign_in_and_sign_up';
38
+ versions: PolicyFeedVersion[];
39
+ }
40
+ /** The answer to `GET {endpoint_url}/policies`. */
41
+ export interface PolicyFeed {
42
+ object: 'policy_list';
43
+ policies: PolicyFeedPolicy[];
44
+ }
45
+ export type PolicySourceEvent = {
46
+ type: 'policy.published';
47
+ key: string;
48
+ version: string;
49
+ occurred_at?: string | number;
50
+ } | {
51
+ type: 'policy.retired';
52
+ key: string;
53
+ occurred_at?: string | number;
54
+ };
55
+ type HeadersLike = Headers | Record<string, string | string[] | undefined>;
56
+ export type PolicyFeedVerifyResult = {
57
+ verified: true;
58
+ deliveryId: string;
59
+ timestamp: number;
60
+ key: string | null;
61
+ protocolVersion: string | undefined;
62
+ } | {
63
+ verified: false;
64
+ reason: 'missing_headers' | 'malformed_signature' | 'stale_timestamp' | 'signature_mismatch' | 'wrong_method';
65
+ };
66
+ /**
67
+ * Verify Atlas's signed GET of your feed. Pass the request's path AND query
68
+ * exactly as received (e.g. `req.originalUrl`), and the method.
69
+ *
70
+ * ```ts
71
+ * app.get('/atlas/policies', (req, res) => {
72
+ * const v = verifyPolicyFeedRequest({ method: req.method, pathAndQuery: req.originalUrl, headers: req.headers, secret });
73
+ * if (!v.verified) return res.sendStatus(401);
74
+ * res.json(buildFeed(v.key)); // PolicyFeed, one policy when v.key is set
75
+ * });
76
+ * ```
77
+ */
78
+ export declare function verifyPolicyFeedRequest(input: {
79
+ method?: string;
80
+ pathAndQuery: string;
81
+ headers: HeadersLike;
82
+ secret: string;
83
+ now?: Date;
84
+ toleranceMs?: number;
85
+ }): PolicyFeedVerifyResult;
86
+ /**
87
+ * Sign an event for `POST {webhook_url}` (Atlas-style headers). Send `body`
88
+ * byte-for-byte as returned.
89
+ *
90
+ * ```ts
91
+ * const { body, headers } = signPolicySourceEvent({ event: { type: 'policy.published', key: 'tos', version: '2026-10-24' }, secret });
92
+ * await fetch(webhookUrl, { method: 'POST', headers: { 'content-type': 'application/json', ...headers }, body });
93
+ * ```
94
+ */
95
+ export declare function signPolicySourceEvent(input: {
96
+ event: PolicySourceEvent;
97
+ secret: string;
98
+ id?: string;
99
+ timestampMs?: number;
100
+ }): {
101
+ body: string;
102
+ headers: Record<string, string>;
103
+ };
104
+ export {};
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POLICY_SOURCE_VERSION_HEADER = exports.POLICY_SOURCE_PROTOCOL_VERSION = void 0;
4
+ exports.verifyPolicyFeedRequest = verifyPolicyFeedRequest;
5
+ exports.signPolicySourceEvent = signPolicySourceEvent;
6
+ const node_crypto_1 = require("node:crypto");
7
+ /**
8
+ * Atlas policy source protocol v1 — helpers for the system that SERVES an
9
+ * Atlas instance's policy documents (a CMS, a docs platform, your own service).
10
+ *
11
+ * Atlas → you: GET {endpoint_url}/policies (full feed)
12
+ * GET {endpoint_url}/policies?key=<key> (one policy, after your event)
13
+ * signed with the source's signing secret: `atlas-id`, `atlas-timestamp`
14
+ * (epoch ms) and `atlas-signature: v1,<base64 HMAC-SHA256>` over
15
+ * `{atlas-id}.{atlas-timestamp}.GET\n{path+query}`. Verify it with
16
+ * {@link verifyPolicyFeedRequest}, then answer a {@link PolicyFeed}.
17
+ * You → Atlas: POST {webhook_url} (from GET /v1/instance/policy_source), a
18
+ * {@link PolicySourceEvent} signed with the same secret —
19
+ * {@link signPolicySourceEvent} (Atlas-style) or any Standard Webhooks library.
20
+ * Atlas then re-fetches that policy; it never stores content from the event.
21
+ */
22
+ exports.POLICY_SOURCE_PROTOCOL_VERSION = '2026-10-24';
23
+ exports.POLICY_SOURCE_VERSION_HEADER = 'atlas-policies-version';
24
+ const TOLERANCE_MS = 5 * 60_000;
25
+ function header(headers, name) {
26
+ if (typeof headers.get === 'function')
27
+ return headers.get(name) ?? undefined;
28
+ const bag = headers;
29
+ const direct = bag[name] ?? bag[Object.keys(bag).find((k) => k.toLowerCase() === name) ?? ''];
30
+ return Array.isArray(direct) ? direct[0] : direct;
31
+ }
32
+ function mac(secret, id, timestamp, payload) {
33
+ return (0, node_crypto_1.createHmac)('sha256', secret).update(`${id}.${timestamp}.${payload}`).digest();
34
+ }
35
+ /**
36
+ * Verify Atlas's signed GET of your feed. Pass the request's path AND query
37
+ * exactly as received (e.g. `req.originalUrl`), and the method.
38
+ *
39
+ * ```ts
40
+ * app.get('/atlas/policies', (req, res) => {
41
+ * const v = verifyPolicyFeedRequest({ method: req.method, pathAndQuery: req.originalUrl, headers: req.headers, secret });
42
+ * if (!v.verified) return res.sendStatus(401);
43
+ * res.json(buildFeed(v.key)); // PolicyFeed, one policy when v.key is set
44
+ * });
45
+ * ```
46
+ */
47
+ function verifyPolicyFeedRequest(input) {
48
+ if (input.method && input.method.toUpperCase() !== 'GET')
49
+ return { verified: false, reason: 'wrong_method' };
50
+ const id = header(input.headers, 'atlas-id');
51
+ const ts = header(input.headers, 'atlas-timestamp');
52
+ const sig = header(input.headers, 'atlas-signature');
53
+ if (!id || !ts || !sig)
54
+ return { verified: false, reason: 'missing_headers' };
55
+ const provided = sig
56
+ .trim()
57
+ .split(/\s+/)
58
+ .filter((e) => e.startsWith('v1,'))
59
+ .map((e) => Buffer.from(e.slice(3), 'base64'));
60
+ if (provided.length === 0)
61
+ return { verified: false, reason: 'malformed_signature' };
62
+ const timestamp = Number(ts);
63
+ const now = (input.now ?? new Date()).getTime();
64
+ if (!Number.isFinite(timestamp) || Math.abs(now - timestamp) > (input.toleranceMs ?? TOLERANCE_MS)) {
65
+ return { verified: false, reason: 'stale_timestamp' };
66
+ }
67
+ const expected = mac(input.secret, id, ts, `GET\n${input.pathAndQuery}`);
68
+ const ok = provided.some((p) => p.length === expected.length && (0, node_crypto_1.timingSafeEqual)(p, expected));
69
+ if (!ok)
70
+ return { verified: false, reason: 'signature_mismatch' };
71
+ let key = null;
72
+ const q = input.pathAndQuery.indexOf('?');
73
+ if (q !== -1)
74
+ key = new URLSearchParams(input.pathAndQuery.slice(q + 1)).get('key');
75
+ return { verified: true, deliveryId: id, timestamp, key, protocolVersion: header(input.headers, exports.POLICY_SOURCE_VERSION_HEADER) };
76
+ }
77
+ /**
78
+ * Sign an event for `POST {webhook_url}` (Atlas-style headers). Send `body`
79
+ * byte-for-byte as returned.
80
+ *
81
+ * ```ts
82
+ * const { body, headers } = signPolicySourceEvent({ event: { type: 'policy.published', key: 'tos', version: '2026-10-24' }, secret });
83
+ * await fetch(webhookUrl, { method: 'POST', headers: { 'content-type': 'application/json', ...headers }, body });
84
+ * ```
85
+ */
86
+ function signPolicySourceEvent(input) {
87
+ const body = JSON.stringify({ occurred_at: new Date().toISOString(), ...input.event });
88
+ const id = input.id ?? `evt_${(0, node_crypto_1.randomUUID)()}`;
89
+ const ts = String(input.timestampMs ?? Date.now());
90
+ return {
91
+ body,
92
+ headers: {
93
+ 'atlas-id': id,
94
+ 'atlas-timestamp': ts,
95
+ 'atlas-signature': `v1,${mac(input.secret, id, ts, body).toString('base64')}`,
96
+ },
97
+ };
98
+ }
99
+ //# sourceMappingURL=policy-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-source.js","sourceRoot":"","sources":["../src/policy-source.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,12 @@ import { type ReferralOp } from './referrals';
7
7
  * - the Atlas referral protocol (provider `webhook`): every call is a signed
8
8
  * `POST {base}/<endpoint>` with `op` and `customerRef` in the body, signed
9
9
  * like Atlas webhooks (`atlas-id`, `atlas-timestamp`, `atlas-signature`);
10
- * - Referalli (provider `referally`): `{base}/v1/auth/connections/{id}/…`,
11
- * signed with `x-referally-signature: t=<unix s>,v1=<hex HMAC-SHA256>` over
10
+ * - Referalli (provider `referalli`): `{base}/v1/auth/connections/{id}/…`,
11
+ * signed with `x-referalli-signature: t=<unix s>,v1=<hex HMAC-SHA256>` over
12
12
  * `"{t}.{payload}"`, where payload is the raw body for POST and the raw
13
13
  * query string for GET.
14
14
  *
15
- * Both are also on {@link TestIssuer} (`referralCall`, `referallyCall`) with
15
+ * Both are also on {@link TestIssuer} (`referralCall`, `referalliCall`) with
16
16
  * the issuer's clock.
17
17
  */
18
18
  /** A ready-to-send signed call. `request()` builds a Fetch `Request`. */
@@ -43,32 +43,45 @@ export interface AtlasReferralCallOptions {
43
43
  }
44
44
  /** A call in the Atlas referral protocol, signed exactly as an Atlas instance signs it. */
45
45
  export declare function signAtlasReferralCall(options: AtlasReferralCallOptions): SignedReferralCall;
46
- /** The Referalli API version Atlas pins on every call (`referally-version`). */
47
- export declare const REFERALLY_API_VERSION = "2026-10-21";
46
+ /** The Referalli API version Atlas pins on every call (`referalli-version`). */
47
+ export declare const REFERALLI_API_VERSION = "2026-10-21";
48
48
  /** The Referalli connection calls Atlas makes. */
49
- export type ReferallyCallOp = 'signups' | 'erase' | 'export' | 'aliases' | 'users' | 'ping';
50
- export interface ReferallyCallOptions {
49
+ export type ReferalliCallOp = 'signups' | 'erase' | 'export' | 'aliases' | 'users' | 'signals' | 'ping';
50
+ export interface ReferalliCallOptions {
51
51
  /** Your Referalli base URL (never hard-code it; read it from config). */
52
52
  baseUrl: string;
53
53
  /** The Atlas connection id on Referalli. */
54
54
  connectionId: string;
55
55
  /** The connection secret Referalli returned when the connection was created. */
56
56
  secret: string;
57
- op: ReferallyCallOp;
57
+ op: ReferalliCallOp;
58
58
  /** The JSON body for POST calls. */
59
59
  body?: Record<string, unknown>;
60
60
  /** `export` only: the customer to export (sent as `?customerRef=`). */
61
61
  customerRef?: string;
62
62
  /** Epoch ms. Default: now. */
63
63
  now?: number;
64
+ /** The per-attempt request id (`x-referalli-id`). Default: derived from the time and op. */
65
+ requestId?: string;
64
66
  }
65
67
  /**
66
- * The `x-referally-signature` value for a payload: `t=<unix s>,v1=<hex
67
- * HMAC-SHA256(secret, "{t}.{payload}")>`.
68
+ * The v1-only `x-referalli-signature` value for a payload: `t=<unix s>,v1=<hex
69
+ * HMAC-SHA256(secret, "{t}.{payload}")>`. {@link signReferalliCall} sends v1 and
70
+ * v2 together.
68
71
  */
69
- export declare function referallySignature(secret: string, payload: string, unixSeconds: number): string;
70
- /** A Referalli connection call, signed exactly as the Atlas `referally` adapter signs it. */
71
- export declare function signReferallyCall(options: ReferallyCallOptions): SignedReferralCall;
72
+ export declare function referalliSignature(secret: string, payload: string, unixSeconds: number): string;
73
+ /**
74
+ * The full signature header Atlas sends: v1 over "{t}.{payload}" plus v2 over
75
+ * "{t}.{METHOD}.{path?query}.{body}" (body empty for a GET), which binds the
76
+ * request to its endpoint.
77
+ */
78
+ export declare function referalliSignatureV2(secret: string, parts: {
79
+ method: 'GET' | 'POST';
80
+ pathAndQuery: string;
81
+ payload: string;
82
+ }, unixSeconds: number): string;
83
+ /** A Referalli connection call, signed exactly as the Atlas `referalli` adapter signs it (v1 + v2, both header spellings). */
84
+ export declare function signReferalliCall(options: ReferalliCallOptions): SignedReferralCall;
72
85
  /** The fields of a `referral.updated` event; absent fields stay unchanged on the Atlas side. */
73
86
  export interface ReferralUpdatedEvent {
74
87
  /** The user's `customerRef` (as Atlas sent it on sign-up). This or `referralId` names the referral. */