@proof-holdings/sdk 0.0.0-stage → 1.2.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 +54 -0
- package/LICENSE +21 -0
- package/README.md +239 -2
- package/dist/cjs/client.d.ts +48 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +73 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/credentials.d.ts +46 -0
- package/dist/cjs/credentials.d.ts.map +1 -0
- package/dist/cjs/credentials.js +137 -0
- package/dist/cjs/credentials.js.map +1 -0
- package/dist/cjs/crypto/hitl-crypto.d.ts +95 -0
- package/dist/cjs/crypto/hitl-crypto.d.ts.map +1 -0
- package/dist/cjs/crypto/hitl-crypto.js +338 -0
- package/dist/cjs/crypto/hitl-crypto.js.map +1 -0
- package/dist/cjs/errors.d.ts +52 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +121 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/http.d.ts +62 -0
- package/dist/cjs/http.d.ts.map +1 -0
- package/dist/cjs/http.js +192 -0
- package/dist/cjs/http.js.map +1 -0
- package/dist/cjs/index.d.ts +26 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +79 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/jwks/key-set-cache.d.ts +105 -0
- package/dist/cjs/jwks/key-set-cache.d.ts.map +1 -0
- package/dist/cjs/jwks/key-set-cache.js +277 -0
- package/dist/cjs/jwks/key-set-cache.js.map +1 -0
- package/dist/cjs/jwks/keyset.d.ts +139 -0
- package/dist/cjs/jwks/keyset.d.ts.map +1 -0
- package/dist/cjs/jwks/keyset.js +503 -0
- package/dist/cjs/jwks/keyset.js.map +1 -0
- package/dist/cjs/jwks/support.d.ts +9 -0
- package/dist/cjs/jwks/support.d.ts.map +1 -0
- package/dist/cjs/jwks/support.js +12 -0
- package/dist/cjs/jwks/support.js.map +1 -0
- package/dist/cjs/polling.d.ts +10 -0
- package/dist/cjs/polling.d.ts.map +1 -0
- package/dist/cjs/polling.js +74 -0
- package/dist/cjs/polling.js.map +1 -0
- package/dist/cjs/resources/auth-sessions.d.ts +41 -0
- package/dist/cjs/resources/auth-sessions.d.ts.map +1 -0
- package/dist/cjs/resources/auth-sessions.js +34 -0
- package/dist/cjs/resources/auth-sessions.js.map +1 -0
- package/dist/cjs/resources/authorizations.d.ts +23 -0
- package/dist/cjs/resources/authorizations.d.ts.map +1 -0
- package/dist/cjs/resources/authorizations.js +29 -0
- package/dist/cjs/resources/authorizations.js.map +1 -0
- package/dist/cjs/resources/circles.d.ts +38 -0
- package/dist/cjs/resources/circles.d.ts.map +1 -0
- package/dist/cjs/resources/circles.js +67 -0
- package/dist/cjs/resources/circles.js.map +1 -0
- package/dist/cjs/resources/confirmations.d.ts +111 -0
- package/dist/cjs/resources/confirmations.d.ts.map +1 -0
- package/dist/cjs/resources/confirmations.js +86 -0
- package/dist/cjs/resources/confirmations.js.map +1 -0
- package/dist/cjs/resources/delegations.d.ts +36 -0
- package/dist/cjs/resources/delegations.d.ts.map +1 -0
- package/dist/cjs/resources/delegations.js +47 -0
- package/dist/cjs/resources/delegations.js.map +1 -0
- package/dist/cjs/resources/hitl-chat-id.d.ts +42 -0
- package/dist/cjs/resources/hitl-chat-id.d.ts.map +1 -0
- package/dist/cjs/resources/hitl-chat-id.js +37 -0
- package/dist/cjs/resources/hitl-chat-id.js.map +1 -0
- package/dist/cjs/resources/hitl-keys.d.ts +13 -0
- package/dist/cjs/resources/hitl-keys.d.ts.map +1 -0
- package/dist/cjs/resources/hitl-keys.js +22 -0
- package/dist/cjs/resources/hitl-keys.js.map +1 -0
- package/dist/cjs/resources/hitl.d.ts +39 -0
- package/dist/cjs/resources/hitl.d.ts.map +1 -0
- package/dist/cjs/resources/hitl.js +58 -0
- package/dist/cjs/resources/hitl.js.map +1 -0
- package/dist/cjs/resources/me.d.ts +102 -0
- package/dist/cjs/resources/me.d.ts.map +1 -0
- package/dist/cjs/resources/me.js +85 -0
- package/dist/cjs/resources/me.js.map +1 -0
- package/dist/cjs/resources/profiles.d.ts +47 -0
- package/dist/cjs/resources/profiles.d.ts.map +1 -0
- package/dist/cjs/resources/profiles.js +70 -0
- package/dist/cjs/resources/profiles.js.map +1 -0
- package/dist/cjs/resources/proof-me.d.ts +48 -0
- package/dist/cjs/resources/proof-me.d.ts.map +1 -0
- package/dist/cjs/resources/proof-me.js +24 -0
- package/dist/cjs/resources/proof-me.js.map +1 -0
- package/dist/cjs/resources/proofs.d.ts +81 -0
- package/dist/cjs/resources/proofs.d.ts.map +1 -0
- package/dist/cjs/resources/proofs.js +437 -0
- package/dist/cjs/resources/proofs.js.map +1 -0
- package/dist/cjs/resources/public-profiles.d.ts +36 -0
- package/dist/cjs/resources/public-profiles.d.ts.map +1 -0
- package/dist/cjs/resources/public-profiles.js +49 -0
- package/dist/cjs/resources/public-profiles.js.map +1 -0
- package/dist/cjs/resources/sessions.d.ts +15 -0
- package/dist/cjs/resources/sessions.d.ts.map +1 -0
- package/dist/cjs/resources/sessions.js +26 -0
- package/dist/cjs/resources/sessions.js.map +1 -0
- package/dist/cjs/resources/templates.d.ts +25 -0
- package/dist/cjs/resources/templates.d.ts.map +1 -0
- package/dist/cjs/resources/templates.js +46 -0
- package/dist/cjs/resources/templates.js.map +1 -0
- package/dist/cjs/resources/verification-requests.d.ts +56 -0
- package/dist/cjs/resources/verification-requests.d.ts.map +1 -0
- package/dist/cjs/resources/verification-requests.js +61 -0
- package/dist/cjs/resources/verification-requests.js.map +1 -0
- package/dist/cjs/resources/verifications.d.ts +60 -0
- package/dist/cjs/resources/verifications.d.ts.map +1 -0
- package/dist/cjs/resources/verifications.js +91 -0
- package/dist/cjs/resources/verifications.js.map +1 -0
- package/dist/cjs/resources/webhook-deliveries.d.ts +15 -0
- package/dist/cjs/resources/webhook-deliveries.d.ts.map +1 -0
- package/dist/cjs/resources/webhook-deliveries.js +26 -0
- package/dist/cjs/resources/webhook-deliveries.js.map +1 -0
- package/dist/cjs/streaming.d.ts +87 -0
- package/dist/cjs/streaming.d.ts.map +1 -0
- package/dist/cjs/streaming.js +289 -0
- package/dist/cjs/streaming.js.map +1 -0
- package/dist/cjs/types.d.ts +1483 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +6 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/version.d.ts +2 -0
- package/dist/cjs/version.d.ts.map +1 -0
- package/dist/cjs/version.js +5 -0
- package/dist/cjs/version.js.map +1 -0
- package/dist/esm/client.d.ts +48 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +69 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/credentials.d.ts +46 -0
- package/dist/esm/credentials.d.ts.map +1 -0
- package/dist/esm/credentials.js +127 -0
- package/dist/esm/credentials.js.map +1 -0
- package/dist/esm/crypto/hitl-crypto.d.ts +95 -0
- package/dist/esm/crypto/hitl-crypto.d.ts.map +1 -0
- package/dist/esm/crypto/hitl-crypto.js +321 -0
- package/dist/esm/crypto/hitl-crypto.js.map +1 -0
- package/dist/esm/errors.d.ts +52 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +106 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/http.d.ts +62 -0
- package/dist/esm/http.d.ts.map +1 -0
- package/dist/esm/http.js +187 -0
- package/dist/esm/http.js.map +1 -0
- package/dist/esm/index.d.ts +26 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +33 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/jwks/key-set-cache.d.ts +105 -0
- package/dist/esm/jwks/key-set-cache.d.ts.map +1 -0
- package/dist/esm/jwks/key-set-cache.js +268 -0
- package/dist/esm/jwks/key-set-cache.js.map +1 -0
- package/dist/esm/jwks/keyset.d.ts +139 -0
- package/dist/esm/jwks/keyset.d.ts.map +1 -0
- package/dist/esm/jwks/keyset.js +489 -0
- package/dist/esm/jwks/keyset.js.map +1 -0
- package/dist/esm/jwks/support.d.ts +9 -0
- package/dist/esm/jwks/support.d.ts.map +1 -0
- package/dist/esm/jwks/support.js +9 -0
- package/dist/esm/jwks/support.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/polling.d.ts +10 -0
- package/dist/esm/polling.d.ts.map +1 -0
- package/dist/esm/polling.js +71 -0
- package/dist/esm/polling.js.map +1 -0
- package/dist/esm/resources/auth-sessions.d.ts +41 -0
- package/dist/esm/resources/auth-sessions.d.ts.map +1 -0
- package/dist/esm/resources/auth-sessions.js +30 -0
- package/dist/esm/resources/auth-sessions.js.map +1 -0
- package/dist/esm/resources/authorizations.d.ts +23 -0
- package/dist/esm/resources/authorizations.d.ts.map +1 -0
- package/dist/esm/resources/authorizations.js +25 -0
- package/dist/esm/resources/authorizations.js.map +1 -0
- package/dist/esm/resources/circles.d.ts +38 -0
- package/dist/esm/resources/circles.d.ts.map +1 -0
- package/dist/esm/resources/circles.js +63 -0
- package/dist/esm/resources/circles.js.map +1 -0
- package/dist/esm/resources/confirmations.d.ts +111 -0
- package/dist/esm/resources/confirmations.d.ts.map +1 -0
- package/dist/esm/resources/confirmations.js +82 -0
- package/dist/esm/resources/confirmations.js.map +1 -0
- package/dist/esm/resources/delegations.d.ts +36 -0
- package/dist/esm/resources/delegations.d.ts.map +1 -0
- package/dist/esm/resources/delegations.js +43 -0
- package/dist/esm/resources/delegations.js.map +1 -0
- package/dist/esm/resources/hitl-chat-id.d.ts +42 -0
- package/dist/esm/resources/hitl-chat-id.d.ts.map +1 -0
- package/dist/esm/resources/hitl-chat-id.js +33 -0
- package/dist/esm/resources/hitl-chat-id.js.map +1 -0
- package/dist/esm/resources/hitl-keys.d.ts +13 -0
- package/dist/esm/resources/hitl-keys.d.ts.map +1 -0
- package/dist/esm/resources/hitl-keys.js +18 -0
- package/dist/esm/resources/hitl-keys.js.map +1 -0
- package/dist/esm/resources/hitl.d.ts +39 -0
- package/dist/esm/resources/hitl.d.ts.map +1 -0
- package/dist/esm/resources/hitl.js +54 -0
- package/dist/esm/resources/hitl.js.map +1 -0
- package/dist/esm/resources/me.d.ts +102 -0
- package/dist/esm/resources/me.d.ts.map +1 -0
- package/dist/esm/resources/me.js +81 -0
- package/dist/esm/resources/me.js.map +1 -0
- package/dist/esm/resources/profiles.d.ts +47 -0
- package/dist/esm/resources/profiles.d.ts.map +1 -0
- package/dist/esm/resources/profiles.js +66 -0
- package/dist/esm/resources/profiles.js.map +1 -0
- package/dist/esm/resources/proof-me.d.ts +48 -0
- package/dist/esm/resources/proof-me.d.ts.map +1 -0
- package/dist/esm/resources/proof-me.js +20 -0
- package/dist/esm/resources/proof-me.js.map +1 -0
- package/dist/esm/resources/proofs.d.ts +81 -0
- package/dist/esm/resources/proofs.d.ts.map +1 -0
- package/dist/esm/resources/proofs.js +433 -0
- package/dist/esm/resources/proofs.js.map +1 -0
- package/dist/esm/resources/public-profiles.d.ts +36 -0
- package/dist/esm/resources/public-profiles.d.ts.map +1 -0
- package/dist/esm/resources/public-profiles.js +45 -0
- package/dist/esm/resources/public-profiles.js.map +1 -0
- package/dist/esm/resources/sessions.d.ts +15 -0
- package/dist/esm/resources/sessions.d.ts.map +1 -0
- package/dist/esm/resources/sessions.js +22 -0
- package/dist/esm/resources/sessions.js.map +1 -0
- package/dist/esm/resources/templates.d.ts +25 -0
- package/dist/esm/resources/templates.d.ts.map +1 -0
- package/dist/esm/resources/templates.js +42 -0
- package/dist/esm/resources/templates.js.map +1 -0
- package/dist/esm/resources/verification-requests.d.ts +56 -0
- package/dist/esm/resources/verification-requests.d.ts.map +1 -0
- package/dist/esm/resources/verification-requests.js +57 -0
- package/dist/esm/resources/verification-requests.js.map +1 -0
- package/dist/esm/resources/verifications.d.ts +60 -0
- package/dist/esm/resources/verifications.d.ts.map +1 -0
- package/dist/esm/resources/verifications.js +87 -0
- package/dist/esm/resources/verifications.js.map +1 -0
- package/dist/esm/resources/webhook-deliveries.d.ts +15 -0
- package/dist/esm/resources/webhook-deliveries.d.ts.map +1 -0
- package/dist/esm/resources/webhook-deliveries.js +22 -0
- package/dist/esm/resources/webhook-deliveries.js.map +1 -0
- package/dist/esm/streaming.d.ts +87 -0
- package/dist/esm/streaming.d.ts.map +1 -0
- package/dist/esm/streaming.js +286 -0
- package/dist/esm/streaming.js.map +1 -0
- package/dist/esm/types.d.ts +1483 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +5 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/version.d.ts +2 -0
- package/dist/esm/version.d.ts.map +1 -0
- package/dist/esm/version.js +2 -0
- package/dist/esm/version.js.map +1 -0
- package/package.json +64 -4
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** The `profile_id` query naming the project, or nothing when the caller named none. */
|
|
2
|
+
function projectQuery(options) {
|
|
3
|
+
return options?.profileId === undefined ? undefined : { profile_id: options.profileId };
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Message templates. Templates exist per project (sub-account) only: every method but
|
|
7
|
+
* `getDefaults` takes an optional `{ profileId }` naming the project, sent as `profile_id`.
|
|
8
|
+
*/
|
|
9
|
+
export class Templates {
|
|
10
|
+
constructor(http) {
|
|
11
|
+
this.http = http;
|
|
12
|
+
}
|
|
13
|
+
/** List the project's custom templates plus available channels, message types, and variables */
|
|
14
|
+
list(options) {
|
|
15
|
+
return this.http.get('/api/v1/templates', projectQuery(options));
|
|
16
|
+
}
|
|
17
|
+
/** Get all default templates (for reference) */
|
|
18
|
+
getDefaults() {
|
|
19
|
+
return this.http.get('/api/v1/templates/defaults');
|
|
20
|
+
}
|
|
21
|
+
/** Get a specific template (the project's own if set, default otherwise) */
|
|
22
|
+
retrieve(channel, messageType, options) {
|
|
23
|
+
return this.http.get(`/api/v1/templates/${encodeURIComponent(channel)}/${encodeURIComponent(messageType)}`, projectQuery(options));
|
|
24
|
+
}
|
|
25
|
+
/** Create or update the project's custom template */
|
|
26
|
+
upsert(channel, messageType, content, options) {
|
|
27
|
+
return this.http.request('PUT', `/api/v1/templates/${encodeURIComponent(channel)}/${encodeURIComponent(messageType)}`, { body: content, query: projectQuery(options) });
|
|
28
|
+
}
|
|
29
|
+
/** Delete the project's custom template (resets to default; 404 if no custom template exists) */
|
|
30
|
+
delete(channel, messageType, options) {
|
|
31
|
+
return this.http.request('DELETE', `/api/v1/templates/${encodeURIComponent(channel)}/${encodeURIComponent(messageType)}`, { query: projectQuery(options) });
|
|
32
|
+
}
|
|
33
|
+
/** Preview a template with sample data and the project's branding */
|
|
34
|
+
preview(params, options) {
|
|
35
|
+
return this.http.request('POST', '/api/v1/templates/preview', { body: params, query: projectQuery(options) });
|
|
36
|
+
}
|
|
37
|
+
/** Render the project's template with provided variables (for testing) */
|
|
38
|
+
render(params, options) {
|
|
39
|
+
return this.http.request('POST', '/api/v1/templates/render', { body: params, query: projectQuery(options) });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../src/resources/templates.ts"],"names":[],"mappings":"AAiBA,wFAAwF;AACxF,SAAS,YAAY,CAAC,OAAgC;IACpD,OAAO,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,SAAS;IACpB,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,gGAAgG;IAChG,IAAI,CAAC,OAAgC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,mBAAmB,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,gDAAgD;IAChD,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,4BAA4B,CAAC,CAAC;IAC/E,CAAC;IAED,4EAA4E;IAC5E,QAAQ,CAAC,OAAwB,EAAE,WAAgC,EAAE,OAAgC;QACnG,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACrF,YAAY,CAAC,OAAO,CAAC,CACtB,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,MAAM,CACJ,OAAwB,EACxB,WAAgC,EAChC,OAAwB,EACxB,OAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,KAAK,EACL,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACrF,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAChD,CAAC;IACJ,CAAC;IAED,iGAAiG;IACjG,MAAM,CAAC,OAAwB,EAAE,WAAgC,EAAE,OAAgC;QACjG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,QAAQ,EACR,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,EACrF,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CACjC,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,MAA6B,EAAE,OAAgC;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,MAAM,EACN,2BAA2B,EAC3B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAC/C,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,MAA4B,EAAE,OAAgC;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACtB,MAAM,EACN,0BAA0B,EAC1B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { HttpClient } from '../http.js';
|
|
2
|
+
import { type StreamEvent, type StreamOptions } from '../streaming.js';
|
|
3
|
+
import type { VerificationRequest, VerificationRequestListItem, CancelVerificationRequestResponse, CreateVerificationRequestParams, ListVerificationRequestsParams, PaginatedList, VerificationRequestProofsResponse, WaitOptions } from '../types.js';
|
|
4
|
+
/** Asset-level status snapshot returned by the verify-request asset poll endpoint. */
|
|
5
|
+
export interface VerificationRequestAssetStatus {
|
|
6
|
+
status: string;
|
|
7
|
+
/** The parent request's status — `cancelled` or `expired` ends the stream while the asset stays `pending`. */
|
|
8
|
+
request_status?: string;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
/** The `connected` frame of `verificationRequests.streamAsset()`, written once when the connection opens. */
|
|
12
|
+
export interface VerificationRequestAssetStreamConnected {
|
|
13
|
+
request_id: string;
|
|
14
|
+
asset_index: number;
|
|
15
|
+
status: string;
|
|
16
|
+
request_status: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The `update` frame of `verificationRequests.streamAsset()`: a status signal, not the asset status.
|
|
20
|
+
* `verified`, `cancelled` and `expired` are the last frame — the server closes the stream after it;
|
|
21
|
+
* `failed` is not, since a failed asset can be started again.
|
|
22
|
+
*/
|
|
23
|
+
export interface VerificationRequestAssetStreamUpdate {
|
|
24
|
+
status: string;
|
|
25
|
+
timestamp: string;
|
|
26
|
+
/** Present on the `cancelled` / `expired` frames a closed request sends. */
|
|
27
|
+
request_status?: string;
|
|
28
|
+
}
|
|
29
|
+
export type VerificationRequestAssetStreamEvent = StreamEvent<'update', VerificationRequestAssetStreamConnected, VerificationRequestAssetStreamUpdate, VerificationRequestAssetStatus>;
|
|
30
|
+
export declare class VerificationRequests {
|
|
31
|
+
private readonly http;
|
|
32
|
+
constructor(http: HttpClient);
|
|
33
|
+
/** Create a multi-asset verification request */
|
|
34
|
+
create(params: CreateVerificationRequestParams): Promise<VerificationRequest>;
|
|
35
|
+
/** Get a verification request by ID */
|
|
36
|
+
retrieve(id: string): Promise<VerificationRequest>;
|
|
37
|
+
/** List verification requests with optional filters */
|
|
38
|
+
list(params?: ListVerificationRequestsParams): Promise<PaginatedList<VerificationRequestListItem>>;
|
|
39
|
+
/** Get a verification request by its reference ID */
|
|
40
|
+
getByReference(referenceId: string): Promise<VerificationRequest>;
|
|
41
|
+
/** Cancel a pending verification request */
|
|
42
|
+
cancel(id: string): Promise<CancelVerificationRequestResponse>;
|
|
43
|
+
/** Get proof tokens for verified assets of a verification request */
|
|
44
|
+
getProofs(id: string): Promise<VerificationRequestProofsResponse>;
|
|
45
|
+
/** Poll until the request reaches a terminal state. */
|
|
46
|
+
waitForCompletion(id: string, options?: WaitOptions): Promise<VerificationRequest>;
|
|
47
|
+
/** Retrieve asset-level verification status (polling fallback target). */
|
|
48
|
+
retrieveAssetStatus(id: string, assetIndex: number): Promise<VerificationRequestAssetStatus>;
|
|
49
|
+
/**
|
|
50
|
+
* Stream asset-level verification status via SSE (`connected` / `update`
|
|
51
|
+
* signals), with a polling fallback that yields the asset status as
|
|
52
|
+
* `poll` / `terminal` events.
|
|
53
|
+
*/
|
|
54
|
+
streamAsset(id: string, assetIndex: number, options?: StreamOptions): AsyncIterable<VerificationRequestAssetStreamEvent>;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=verification-requests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-requests.d.ts","sourceRoot":"","sources":["../../../src/resources/verification-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,iCAAiC,EACjC,+BAA+B,EAC/B,8BAA8B,EAC9B,aAAa,EACb,iCAAiC,EACjC,WAAW,EACZ,MAAM,aAAa,CAAC;AAErB,sFAAsF;AACtF,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,8GAA8G;IAC9G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,6GAA6G;AAC7G,MAAM,WAAW,uCAAuC;IACtD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,mCAAmC,GAAG,WAAW,CAC3D,QAAQ,EACR,uCAAuC,EACvC,oCAAoC,EACpC,8BAA8B,CAC/B,CAAC;AAMF,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,gDAAgD;IAChD,MAAM,CAAC,MAAM,EAAE,+BAA+B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI7E,uCAAuC;IACvC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIlD,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,EAAE,8BAA8B,GAAG,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAIlG,qDAAqD;IACrD,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIjE,4CAA4C;IAC5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAI9D,qEAAqE;IACrE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iCAAiC,CAAC;IAMjE,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC;IASlF,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAM5F;;;;OAIG;IACH,WAAW,CACT,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CAAC,mCAAmC,CAAC;CAUtD"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { pollUntilComplete } from '../polling.js';
|
|
2
|
+
import { streamEndpoint } from '../streaming.js';
|
|
3
|
+
const TERMINAL_STATES = ['completed', 'expired', 'cancelled'];
|
|
4
|
+
const ASSET_TERMINAL_STATES = ['verified', 'failed', 'expired', 'revoked'];
|
|
5
|
+
const ASSET_REQUEST_TERMINAL_STATES = ['cancelled', 'expired'];
|
|
6
|
+
export class VerificationRequests {
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
/** Create a multi-asset verification request */
|
|
11
|
+
create(params) {
|
|
12
|
+
return this.http.post('/api/v1/verification-requests', params);
|
|
13
|
+
}
|
|
14
|
+
/** Get a verification request by ID */
|
|
15
|
+
retrieve(id) {
|
|
16
|
+
return this.http.get(`/api/v1/verification-requests/${encodeURIComponent(id)}`);
|
|
17
|
+
}
|
|
18
|
+
/** List verification requests with optional filters */
|
|
19
|
+
list(params) {
|
|
20
|
+
return this.http.get('/api/v1/verification-requests', params);
|
|
21
|
+
}
|
|
22
|
+
/** Get a verification request by its reference ID */
|
|
23
|
+
getByReference(referenceId) {
|
|
24
|
+
return this.http.get(`/api/v1/verification-requests/by-reference/${encodeURIComponent(referenceId)}`);
|
|
25
|
+
}
|
|
26
|
+
/** Cancel a pending verification request */
|
|
27
|
+
cancel(id) {
|
|
28
|
+
return this.http.del(`/api/v1/verification-requests/${encodeURIComponent(id)}`);
|
|
29
|
+
}
|
|
30
|
+
/** Get proof tokens for verified assets of a verification request */
|
|
31
|
+
getProofs(id) {
|
|
32
|
+
return this.http.get(`/api/v1/verification-requests/${encodeURIComponent(id)}/proofs`);
|
|
33
|
+
}
|
|
34
|
+
/** Poll until the request reaches a terminal state. */
|
|
35
|
+
waitForCompletion(id, options) {
|
|
36
|
+
return pollUntilComplete(() => this.retrieve(id), TERMINAL_STATES, `Verification request ${id}`, options);
|
|
37
|
+
}
|
|
38
|
+
/** Retrieve asset-level verification status (polling fallback target). */
|
|
39
|
+
retrieveAssetStatus(id, assetIndex) {
|
|
40
|
+
return this.http.get(`/api/v1/verify/request/${encodeURIComponent(id)}/assets/${encodeURIComponent(String(assetIndex))}/status`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Stream asset-level verification status via SSE (`connected` / `update`
|
|
44
|
+
* signals), with a polling fallback that yields the asset status as
|
|
45
|
+
* `poll` / `terminal` events.
|
|
46
|
+
*/
|
|
47
|
+
streamAsset(id, assetIndex, options) {
|
|
48
|
+
return streamEndpoint(this.http, {
|
|
49
|
+
path: `/api/v1/verify/request/${encodeURIComponent(id)}/assets/${encodeURIComponent(String(assetIndex))}/events`,
|
|
50
|
+
retrieve: () => this.retrieveAssetStatus(id, assetIndex),
|
|
51
|
+
terminalStates: ASSET_TERMINAL_STATES,
|
|
52
|
+
isTerminal: (asset) => asset.request_status !== undefined && ASSET_REQUEST_TERMINAL_STATES.includes(asset.request_status),
|
|
53
|
+
label: `Verification request ${id} asset ${assetIndex}`,
|
|
54
|
+
}, options);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=verification-requests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-requests.js","sourceRoot":"","sources":["../../../src/resources/verification-requests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAwC,MAAM,iBAAiB,CAAC;AA+CvF,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AACvE,MAAM,qBAAqB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AACpF,MAAM,6BAA6B,GAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAElF,MAAM,OAAO,oBAAoB;IAC/B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,gDAAgD;IAChD,MAAM,CAAC,MAAuC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,+BAA+B,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,uCAAuC;IACvC,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,iCAAiC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,MAAuC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6C,+BAA+B,EAAE,MAA+D,CAAC,CAAC;IACrK,CAAC;IAED,qDAAqD;IACrD,cAAc,CAAC,WAAmB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,8CAA8C,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7H,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,iCAAiC,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,qEAAqE;IACrE,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,iCAAiC,kBAAkB,CAAC,EAAE,CAAC,SAAS,CACjE,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,iBAAiB,CAAC,EAAU,EAAE,OAAqB;QACjD,OAAO,iBAAiB,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EACvB,eAAe,EACf,wBAAwB,EAAE,EAAE,EAC5B,OAAO,CACR,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,mBAAmB,CAAC,EAAU,EAAE,UAAkB;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAC3G,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,WAAW,CACT,EAAU,EACV,UAAkB,EAClB,OAAuB;QAEvB,OAAO,cAAc,CAAsE,IAAI,CAAC,IAAI,EAAE;YACpG,IAAI,EAAE,0BAA0B,kBAAkB,CAAC,EAAE,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS;YAChH,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,UAAU,CAAC;YACxD,cAAc,EAAE,qBAAqB;YACrC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CACpB,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,6BAA6B,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;YACpG,KAAK,EAAE,wBAAwB,EAAE,UAAU,UAAU,EAAE;SACxD,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { HttpClient } from '../http.js';
|
|
2
|
+
import { type StreamEvent, type StreamOptions } from '../streaming.js';
|
|
3
|
+
import type { Verification, CreateVerificationParams, ListVerificationsParams, PaginatedList, WaitOptions, ResendResponse, TestVerifyResponse, StartDomainVerificationParams, DomainVerification, DomainCheckResponse, VerifiedUser, ListVerifiedUsersParams, CreateMultiChannelVerificationParams, MultiChannelVerificationResponse, MultiChannelGroupStatusResponse } from '../types.js';
|
|
4
|
+
/** The `connected` frame of `verifications.stream()`, written once when the connection opens. */
|
|
5
|
+
export interface VerificationStreamConnected {
|
|
6
|
+
verificationId: string;
|
|
7
|
+
}
|
|
8
|
+
/** The `status_changed` frame of `verifications.stream()`: a status signal, not the verification. */
|
|
9
|
+
export interface VerificationStreamUpdate {
|
|
10
|
+
status: Verification['status'];
|
|
11
|
+
timestamp: string;
|
|
12
|
+
data?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export type VerificationStreamEvent = StreamEvent<'status_changed', VerificationStreamConnected, VerificationStreamUpdate, Verification>;
|
|
15
|
+
export declare class Verifications {
|
|
16
|
+
private readonly http;
|
|
17
|
+
constructor(http: HttpClient);
|
|
18
|
+
/** Create a new verification */
|
|
19
|
+
create(params: CreateVerificationParams): Promise<Verification>;
|
|
20
|
+
/** Get a verification by ID */
|
|
21
|
+
retrieve(id: string): Promise<Verification>;
|
|
22
|
+
/** Create a multi-channel verification group (one phone offered across several channels; first completed channel wins) */
|
|
23
|
+
createMultiChannel(params: CreateMultiChannelVerificationParams): Promise<MultiChannelVerificationResponse>;
|
|
24
|
+
/** Get multi-channel group status (poll until verified/expired; proof is present when verified) */
|
|
25
|
+
getMultiChannelStatus(groupId: string): Promise<MultiChannelGroupStatusResponse>;
|
|
26
|
+
/** List verifications with optional filters */
|
|
27
|
+
list(params?: ListVerificationsParams): Promise<PaginatedList<Verification>>;
|
|
28
|
+
/** Trigger a DNS/HTTP verification check */
|
|
29
|
+
verify(id: string): Promise<Verification>;
|
|
30
|
+
/** Submit an OTP/challenge code */
|
|
31
|
+
submit(id: string, code: string): Promise<Verification>;
|
|
32
|
+
/** Resend a verification email (email channel only) */
|
|
33
|
+
resend(id: string): Promise<ResendResponse>;
|
|
34
|
+
/** Auto-complete a verification in test mode (pk_test_* API keys only) */
|
|
35
|
+
testVerify(id: string): Promise<TestVerifyResponse>;
|
|
36
|
+
/** List verified users grouped by external_user_id */
|
|
37
|
+
listVerifiedUsers(params?: ListVerifiedUsersParams): Promise<PaginatedList<VerifiedUser>>;
|
|
38
|
+
/** Get a single verified user's verifications by external user ID */
|
|
39
|
+
getVerifiedUser(externalUserId: string): Promise<VerifiedUser>;
|
|
40
|
+
/** Start a B2B domain verification */
|
|
41
|
+
startDomainVerification(params: StartDomainVerificationParams): Promise<DomainVerification>;
|
|
42
|
+
/** Check a pending domain verification (DNS/HTTP file) */
|
|
43
|
+
checkDomainVerification(id: string): Promise<DomainCheckResponse>;
|
|
44
|
+
/**
|
|
45
|
+
* Delete a domain verification attempt that is not verified (pending, verifying or failed) —
|
|
46
|
+
* nothing is revoked. A verified domain, or one that needs re-verification, is refused with 409
|
|
47
|
+
* `domain_verified`: removing it revokes its proofs and every delegation issued from it, which
|
|
48
|
+
* belongs to the signed-in owner (the dashboard, or the MCP `delete_domain` tool in a login session).
|
|
49
|
+
*/
|
|
50
|
+
deleteDomainVerification(id: string): Promise<void>;
|
|
51
|
+
/** Poll until the verification reaches a terminal state. */
|
|
52
|
+
waitForCompletion(id: string, options?: WaitOptions): Promise<Verification>;
|
|
53
|
+
/**
|
|
54
|
+
* Stream verification status changes via SSE: a `connected` signal, then
|
|
55
|
+
* `status_changed` signals, neither carrying the verification. The
|
|
56
|
+
* polling fallback yields it as `poll` / `terminal` events.
|
|
57
|
+
*/
|
|
58
|
+
stream(id: string, options?: StreamOptions): AsyncIterable<VerificationStreamEvent>;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=verifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifications.d.ts","sourceRoot":"","sources":["../../../src/resources/verifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAkB,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,uBAAuB,EACvB,aAAa,EACb,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,uBAAuB,EACvB,oCAAoC,EACpC,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,aAAa,CAAC;AAErB,iGAAiG;AACjG,MAAM,WAAW,2BAA2B;IAC1C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qGAAqG;AACrG,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,YAAY,CAAC,CAAC;AAIzI,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,gCAAgC;IAChC,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAI/D,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI3C,0HAA0H;IAC1H,kBAAkB,CAAC,MAAM,EAAE,oCAAoC,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAI3G,mGAAmG;IACnG,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAIhF,+CAA+C;IAC/C,IAAI,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAI5E,4CAA4C;IAC5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzC,mCAAmC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIvD,uDAAuD;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3C,0EAA0E;IAC1E,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAInD,sDAAsD;IACtD,iBAAiB,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAIzF,qEAAqE;IACrE,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI9D,sCAAsC;IACtC,uBAAuB,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI3F,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIjE;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAS3E;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,uBAAuB,CAAC;CAQpF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { pollUntilComplete } from '../polling.js';
|
|
2
|
+
import { streamEndpoint } from '../streaming.js';
|
|
3
|
+
const TERMINAL_STATES = ['verified', 'failed', 'expired', 'revoked'];
|
|
4
|
+
export class Verifications {
|
|
5
|
+
constructor(http) {
|
|
6
|
+
this.http = http;
|
|
7
|
+
}
|
|
8
|
+
/** Create a new verification */
|
|
9
|
+
create(params) {
|
|
10
|
+
return this.http.post('/api/v1/verifications', params);
|
|
11
|
+
}
|
|
12
|
+
/** Get a verification by ID */
|
|
13
|
+
retrieve(id) {
|
|
14
|
+
return this.http.get(`/api/v1/verifications/${encodeURIComponent(id)}`);
|
|
15
|
+
}
|
|
16
|
+
/** Create a multi-channel verification group (one phone offered across several channels; first completed channel wins) */
|
|
17
|
+
createMultiChannel(params) {
|
|
18
|
+
return this.http.post('/api/v1/verifications/multi-channel', params);
|
|
19
|
+
}
|
|
20
|
+
/** Get multi-channel group status (poll until verified/expired; proof is present when verified) */
|
|
21
|
+
getMultiChannelStatus(groupId) {
|
|
22
|
+
return this.http.get(`/api/v1/verifications/multi-channel/${encodeURIComponent(groupId)}/status`);
|
|
23
|
+
}
|
|
24
|
+
/** List verifications with optional filters */
|
|
25
|
+
list(params) {
|
|
26
|
+
return this.http.get('/api/v1/verifications', params);
|
|
27
|
+
}
|
|
28
|
+
/** Trigger a DNS/HTTP verification check */
|
|
29
|
+
verify(id) {
|
|
30
|
+
return this.http.post(`/api/v1/verifications/${encodeURIComponent(id)}/verify`);
|
|
31
|
+
}
|
|
32
|
+
/** Submit an OTP/challenge code */
|
|
33
|
+
submit(id, code) {
|
|
34
|
+
return this.http.post(`/api/v1/verifications/${encodeURIComponent(id)}/submit`, { code });
|
|
35
|
+
}
|
|
36
|
+
/** Resend a verification email (email channel only) */
|
|
37
|
+
resend(id) {
|
|
38
|
+
return this.http.post(`/api/v1/verifications/${encodeURIComponent(id)}/resend`);
|
|
39
|
+
}
|
|
40
|
+
/** Auto-complete a verification in test mode (pk_test_* API keys only) */
|
|
41
|
+
testVerify(id) {
|
|
42
|
+
return this.http.post(`/api/v1/verifications/${encodeURIComponent(id)}/test-verify`);
|
|
43
|
+
}
|
|
44
|
+
/** List verified users grouped by external_user_id */
|
|
45
|
+
listVerifiedUsers(params) {
|
|
46
|
+
return this.http.get('/api/v1/verifications/users', params);
|
|
47
|
+
}
|
|
48
|
+
/** Get a single verified user's verifications by external user ID */
|
|
49
|
+
getVerifiedUser(externalUserId) {
|
|
50
|
+
return this.http.get(`/api/v1/verifications/users/${encodeURIComponent(externalUserId)}`);
|
|
51
|
+
}
|
|
52
|
+
/** Start a B2B domain verification */
|
|
53
|
+
startDomainVerification(params) {
|
|
54
|
+
return this.http.post('/api/v1/verifications/domain', params);
|
|
55
|
+
}
|
|
56
|
+
/** Check a pending domain verification (DNS/HTTP file) */
|
|
57
|
+
checkDomainVerification(id) {
|
|
58
|
+
return this.http.post(`/api/v1/verifications/domain/${encodeURIComponent(id)}/check`);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Delete a domain verification attempt that is not verified (pending, verifying or failed) —
|
|
62
|
+
* nothing is revoked. A verified domain, or one that needs re-verification, is refused with 409
|
|
63
|
+
* `domain_verified`: removing it revokes its proofs and every delegation issued from it, which
|
|
64
|
+
* belongs to the signed-in owner (the dashboard, or the MCP `delete_domain` tool in a login session).
|
|
65
|
+
*/
|
|
66
|
+
deleteDomainVerification(id) {
|
|
67
|
+
return this.http.del(`/api/v1/verifications/domain/${encodeURIComponent(id)}`);
|
|
68
|
+
}
|
|
69
|
+
/** Poll until the verification reaches a terminal state. */
|
|
70
|
+
waitForCompletion(id, options) {
|
|
71
|
+
return pollUntilComplete(() => this.retrieve(id), TERMINAL_STATES, `Verification ${id}`, options);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Stream verification status changes via SSE: a `connected` signal, then
|
|
75
|
+
* `status_changed` signals, neither carrying the verification. The
|
|
76
|
+
* polling fallback yields it as `poll` / `terminal` events.
|
|
77
|
+
*/
|
|
78
|
+
stream(id, options) {
|
|
79
|
+
return streamEndpoint(this.http, {
|
|
80
|
+
path: `/api/v1/verifications/${encodeURIComponent(id)}/events`,
|
|
81
|
+
retrieve: () => this.retrieve(id),
|
|
82
|
+
terminalStates: TERMINAL_STATES,
|
|
83
|
+
label: `Verification ${id}`,
|
|
84
|
+
}, options);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=verifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifications.js","sourceRoot":"","sources":["../../../src/resources/verifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HttpClient } from '../http.js';
|
|
2
|
+
import type { WebhookDelivery, WebhookDeliveryList, WebhookDeliveryStats, WebhookRetryResponse, ListWebhookDeliveriesParams } from '../types.js';
|
|
3
|
+
export declare class WebhookDeliveries {
|
|
4
|
+
private readonly http;
|
|
5
|
+
constructor(http: HttpClient);
|
|
6
|
+
/** Get webhook delivery statistics (totals, rates, recent failures) */
|
|
7
|
+
stats(): Promise<WebhookDeliveryStats>;
|
|
8
|
+
/** List webhook deliveries with optional filters */
|
|
9
|
+
list(params?: ListWebhookDeliveriesParams): Promise<WebhookDeliveryList>;
|
|
10
|
+
/** Get a webhook delivery by ID */
|
|
11
|
+
retrieve(id: string): Promise<WebhookDelivery>;
|
|
12
|
+
/** Retry a failed webhook delivery */
|
|
13
|
+
retry(id: string): Promise<WebhookRetryResponse>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=webhook-deliveries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-deliveries.d.ts","sourceRoot":"","sources":["../../../src/resources/webhook-deliveries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAEjJ,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,uEAAuE;IACvE,KAAK,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAItC,oDAAoD;IACpD,IAAI,CAAC,MAAM,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIxE,mCAAmC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9C,sCAAsC;IACtC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAGjD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export class WebhookDeliveries {
|
|
2
|
+
constructor(http) {
|
|
3
|
+
this.http = http;
|
|
4
|
+
}
|
|
5
|
+
/** Get webhook delivery statistics (totals, rates, recent failures) */
|
|
6
|
+
stats() {
|
|
7
|
+
return this.http.get('/api/v1/webhook-deliveries/stats');
|
|
8
|
+
}
|
|
9
|
+
/** List webhook deliveries with optional filters */
|
|
10
|
+
list(params) {
|
|
11
|
+
return this.http.get('/api/v1/webhook-deliveries', params);
|
|
12
|
+
}
|
|
13
|
+
/** Get a webhook delivery by ID */
|
|
14
|
+
retrieve(id) {
|
|
15
|
+
return this.http.get(`/api/v1/webhook-deliveries/${encodeURIComponent(id)}`);
|
|
16
|
+
}
|
|
17
|
+
/** Retry a failed webhook delivery */
|
|
18
|
+
retry(id) {
|
|
19
|
+
return this.http.post(`/api/v1/webhook-deliveries/${encodeURIComponent(id)}/retry`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=webhook-deliveries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-deliveries.js","sourceRoot":"","sources":["../../../src/resources/webhook-deliveries.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,iBAAiB;IAC5B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,uEAAuE;IACvE,KAAK;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,kCAAkC,CAAC,CAAC;IACjF,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC,MAAoC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,4BAA4B,EAAE,MAA+D,CAAC,CAAC;IAC3I,CAAC;IAED,mCAAmC;IACnC,QAAQ,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,EAAU;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,8BAA8B,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5G,CAAC;CACF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { HttpClient } from './http.js';
|
|
2
|
+
import type { WaitOptions } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options accepted by every SDK `stream()` method.
|
|
5
|
+
*
|
|
6
|
+
* If the SSE connection fails (503 from the `ENABLE_SSE=false` kill-switch,
|
|
7
|
+
* network error, or a runtime with no ReadableStream body), the iterator
|
|
8
|
+
* transparently falls back to the standard polling contract. You can opt out
|
|
9
|
+
* of the fallback with `pollFallback: false`.
|
|
10
|
+
*/
|
|
11
|
+
export interface StreamOptions extends WaitOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Disable the automatic polling fallback. When `false`, SSE failures are
|
|
14
|
+
* surfaced to the caller as a thrown error from the async iterator.
|
|
15
|
+
* Defaults to `true`.
|
|
16
|
+
*/
|
|
17
|
+
pollFallback?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Configuration for `streamEndpoint`. Callers supply a URL, a polling
|
|
21
|
+
* fallback (must follow the standard polling contract), and terminal-state
|
|
22
|
+
* metadata so the iterator knows when to stop emitting once a resource is
|
|
23
|
+
* done.
|
|
24
|
+
*/
|
|
25
|
+
export interface StreamConfig<T extends object> {
|
|
26
|
+
/** Absolute path on the API, e.g. `/api/v1/verifications/ver_123/events`. */
|
|
27
|
+
path: string;
|
|
28
|
+
/**
|
|
29
|
+
* Fallback retrieve function for polling mode. Returns the full resource.
|
|
30
|
+
* Only used when SSE fails / is disabled / is unsupported.
|
|
31
|
+
*/
|
|
32
|
+
retrieve: () => Promise<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Terminal states for this resource. When a polled resource enters one of
|
|
35
|
+
* these states, the iterator yields it once and completes. For SSE, the
|
|
36
|
+
* iterator completes when the server closes the stream — terminal-state
|
|
37
|
+
* detection from event payloads is left to the caller.
|
|
38
|
+
*/
|
|
39
|
+
terminalStates: readonly string[];
|
|
40
|
+
/**
|
|
41
|
+
* Additional terminal test for a polled resource whose own `status` cannot say it is done — an
|
|
42
|
+
* asset that stays `pending` after its request was cancelled.
|
|
43
|
+
*/
|
|
44
|
+
isTerminal?: (resource: T) => boolean;
|
|
45
|
+
/** Human-readable label for error messages ("Verification ver_123"). */
|
|
46
|
+
label: string;
|
|
47
|
+
}
|
|
48
|
+
/** Parsed SSE event (id + event name + JSON-parsed data). */
|
|
49
|
+
export interface SSEEvent<T = unknown> {
|
|
50
|
+
id?: string;
|
|
51
|
+
event: string;
|
|
52
|
+
data: T;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* What a resource's `stream()` yields. A live SSE connection writes a `connected` signal, then
|
|
56
|
+
* `TUpdateName` signals as the server publishes them — not necessarily one per status change, so
|
|
57
|
+
* re-read the resource with its `retrieve()` rather than relying on the stream to report each one.
|
|
58
|
+
* Neither signal carries the resource. Only the polling fallback yields the resource itself, as
|
|
59
|
+
* `poll` events, and as a `terminal` one when it reaches a terminal status. Narrow on `event` before
|
|
60
|
+
* reading `data`.
|
|
61
|
+
*/
|
|
62
|
+
export type StreamEvent<TUpdateName extends string, TConnected, TUpdate, TResource> = {
|
|
63
|
+
id?: string;
|
|
64
|
+
event: 'connected';
|
|
65
|
+
data: TConnected;
|
|
66
|
+
} | {
|
|
67
|
+
id?: string;
|
|
68
|
+
event: TUpdateName;
|
|
69
|
+
data: TUpdate;
|
|
70
|
+
} | {
|
|
71
|
+
id?: string;
|
|
72
|
+
event: 'poll' | 'terminal';
|
|
73
|
+
data: TResource;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Open an SSE stream to `config.path` using `http.rawFetch` and yield
|
|
77
|
+
* parsed events. On any failure (server returns 503, runtime lacks
|
|
78
|
+
* `ReadableStream`, body read throws) and when `pollFallback !== false`, fall
|
|
79
|
+
* back to polling `config.retrieve` under the standard polling contract.
|
|
80
|
+
*
|
|
81
|
+
* The returned async iterable is single-use. Consuming it via
|
|
82
|
+
* `for await (...)` attaches an abort listener to `options.signal`; breaking
|
|
83
|
+
* out of the loop or aborting the signal cleanly closes the connection — an
|
|
84
|
+
* aborted signal ends the loop, it does not throw.
|
|
85
|
+
*/
|
|
86
|
+
export declare function streamEndpoint<T extends object, E extends SSEEvent<unknown> = SSEEvent<T>>(http: HttpClient, config: StreamConfig<T>, options?: StreamOptions): AsyncIterable<E>;
|
|
87
|
+
//# sourceMappingURL=streaming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM;IAC5C,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B;;;;;OAKG;IACH,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC;IACtC,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;CACf;AAED,6DAA6D;AAC7D,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,IAC9E;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACrD;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EACxF,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,aAAa,CAAC,CAAC,CAAC,CAMlB"}
|