@dossier-wiki/cloud-sdk 0.1.0 → 0.2.0-staging.3dda5e6

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 (120) hide show
  1. package/README.md +697 -46
  2. package/dist/cjs/api.js +34 -0
  3. package/dist/cjs/api.js.map +1 -0
  4. package/dist/cjs/error.js +29 -0
  5. package/dist/cjs/error.js.map +1 -0
  6. package/dist/cjs/http.js +75 -0
  7. package/dist/cjs/http.js.map +1 -0
  8. package/dist/cjs/index.js +48 -0
  9. package/dist/cjs/index.js.map +1 -0
  10. package/dist/cjs/resources/aml.js +88 -0
  11. package/dist/cjs/resources/aml.js.map +1 -0
  12. package/dist/cjs/resources/documents.js +170 -0
  13. package/dist/cjs/resources/documents.js.map +1 -0
  14. package/dist/cjs/resources/form-templates.js +117 -0
  15. package/dist/cjs/resources/form-templates.js.map +1 -0
  16. package/dist/cjs/resources/kyc/index.js +32 -0
  17. package/dist/cjs/resources/kyc/index.js.map +1 -0
  18. package/dist/cjs/resources/kyc/sessions.js +103 -0
  19. package/dist/cjs/resources/kyc/sessions.js.map +1 -0
  20. package/dist/cjs/resources/kyc/workflows.js +150 -0
  21. package/dist/cjs/resources/kyc/workflows.js.map +1 -0
  22. package/dist/cjs/resources/media.js +62 -0
  23. package/dist/cjs/resources/media.js.map +1 -0
  24. package/dist/cjs/schemas/index.js +9 -0
  25. package/dist/cjs/schemas/index.js.map +1 -0
  26. package/dist/cjs/schemas/kyc/workflow-steps.js +145 -0
  27. package/dist/cjs/schemas/kyc/workflow-steps.js.map +1 -0
  28. package/dist/cjs/service.js +132 -0
  29. package/dist/cjs/service.js.map +1 -0
  30. package/dist/cjs/session.js +379 -0
  31. package/dist/cjs/session.js.map +1 -0
  32. package/dist/cjs/types.js +36 -0
  33. package/dist/cjs/types.js.map +1 -0
  34. package/dist/cjs/webhooks.js +93 -0
  35. package/dist/cjs/webhooks.js.map +1 -0
  36. package/dist/esm/api.js +33 -0
  37. package/dist/esm/api.js.map +1 -0
  38. package/dist/esm/error.js +25 -0
  39. package/dist/esm/error.js.map +1 -0
  40. package/dist/esm/http.js +71 -0
  41. package/dist/esm/http.js.map +1 -0
  42. package/dist/esm/index.js +19 -0
  43. package/dist/esm/index.js.map +1 -0
  44. package/dist/esm/resources/aml.js +84 -0
  45. package/dist/esm/resources/aml.js.map +1 -0
  46. package/dist/esm/resources/documents.js +166 -0
  47. package/dist/esm/resources/documents.js.map +1 -0
  48. package/dist/esm/resources/form-templates.js +113 -0
  49. package/dist/esm/resources/form-templates.js.map +1 -0
  50. package/dist/esm/resources/kyc/index.js +26 -0
  51. package/dist/esm/resources/kyc/index.js.map +1 -0
  52. package/dist/esm/resources/kyc/sessions.js +99 -0
  53. package/dist/esm/resources/kyc/sessions.js.map +1 -0
  54. package/dist/esm/resources/kyc/workflows.js +146 -0
  55. package/dist/esm/resources/kyc/workflows.js.map +1 -0
  56. package/dist/esm/resources/media.js +58 -0
  57. package/dist/esm/resources/media.js.map +1 -0
  58. package/dist/esm/schemas/index.js +2 -0
  59. package/dist/esm/schemas/index.js.map +1 -0
  60. package/dist/esm/schemas/kyc/workflow-steps.js +142 -0
  61. package/dist/esm/schemas/kyc/workflow-steps.js.map +1 -0
  62. package/dist/esm/service.js +127 -0
  63. package/dist/esm/service.js.map +1 -0
  64. package/dist/esm/session.js +375 -0
  65. package/dist/esm/session.js.map +1 -0
  66. package/dist/{types.js → esm/types.js} +11 -27
  67. package/dist/esm/types.js.map +1 -0
  68. package/dist/{webhooks.js → esm/webhooks.js} +10 -11
  69. package/dist/esm/webhooks.js.map +1 -0
  70. package/dist/{api.d.ts → types/api.d.ts} +297 -166
  71. package/dist/types/api.d.ts.map +1 -0
  72. package/dist/types/error.d.ts +24 -0
  73. package/dist/types/error.d.ts.map +1 -0
  74. package/dist/types/http.d.ts +17 -0
  75. package/dist/types/http.d.ts.map +1 -0
  76. package/dist/types/index.d.ts +15 -0
  77. package/dist/types/index.d.ts.map +1 -0
  78. package/dist/types/resources/aml.d.ts +79 -0
  79. package/dist/types/resources/aml.d.ts.map +1 -0
  80. package/dist/types/resources/documents.d.ts +153 -0
  81. package/dist/types/resources/documents.d.ts.map +1 -0
  82. package/dist/types/resources/form-templates.d.ts +104 -0
  83. package/dist/types/resources/form-templates.d.ts.map +1 -0
  84. package/dist/types/resources/kyc/index.d.ts +34 -0
  85. package/dist/types/resources/kyc/index.d.ts.map +1 -0
  86. package/dist/types/resources/kyc/sessions.d.ts +92 -0
  87. package/dist/types/resources/kyc/sessions.d.ts.map +1 -0
  88. package/dist/types/resources/kyc/workflows.d.ts +135 -0
  89. package/dist/types/resources/kyc/workflows.d.ts.map +1 -0
  90. package/dist/types/resources/media.d.ts +56 -0
  91. package/dist/types/resources/media.d.ts.map +1 -0
  92. package/dist/types/schemas/index.d.ts +3 -0
  93. package/dist/types/schemas/index.d.ts.map +1 -0
  94. package/dist/types/schemas/kyc/workflow-steps.d.ts +5113 -0
  95. package/dist/types/schemas/kyc/workflow-steps.d.ts.map +1 -0
  96. package/dist/types/service.d.ts +143 -0
  97. package/dist/types/service.d.ts.map +1 -0
  98. package/dist/types/session.d.ts +176 -0
  99. package/dist/types/session.d.ts.map +1 -0
  100. package/dist/{types.d.ts → types/types.d.ts} +100 -2
  101. package/dist/types/types.d.ts.map +1 -0
  102. package/dist/{webhooks.d.ts → types/webhooks.d.ts} +5 -5
  103. package/dist/types/webhooks.d.ts.map +1 -0
  104. package/package.json +26 -32
  105. package/dist/api.d.ts.map +0 -1
  106. package/dist/api.js +0 -22
  107. package/dist/api.js.map +0 -1
  108. package/dist/index.d.ts +0 -6
  109. package/dist/index.d.ts.map +0 -1
  110. package/dist/index.js +0 -5
  111. package/dist/index.js.map +0 -1
  112. package/dist/service.d.ts +0 -39
  113. package/dist/service.d.ts.map +0 -1
  114. package/dist/service.js +0 -150
  115. package/dist/service.js.map +0 -1
  116. package/dist/types.d.ts.map +0 -1
  117. package/dist/types.js.map +0 -1
  118. package/dist/webhooks.d.ts.map +0 -1
  119. package/dist/webhooks.js.map +0 -1
  120. package/docs/REFERENCE.md +0 -114
@@ -0,0 +1,71 @@
1
+ import { DossiersAPIError } from './error.js';
2
+ /** @internal Shared HTTP transport layer injected into every resource class. */
3
+ export class DossiersHttp {
4
+ constructor(apiKey, baseUrl, fetchImpl) {
5
+ this.apiKey = apiKey;
6
+ this.baseUrl = baseUrl;
7
+ this.fetchImpl = fetchImpl;
8
+ }
9
+ async request(method, path, opts = {}) {
10
+ const url = new URL(`${this.baseUrl}${path}`);
11
+ if (opts.query) {
12
+ for (const [key, value] of Object.entries(opts.query)) {
13
+ if (value === undefined || value === null)
14
+ continue;
15
+ if (Array.isArray(value)) {
16
+ for (const v of value)
17
+ url.searchParams.append(key, String(v));
18
+ }
19
+ else if (typeof value === 'object') {
20
+ url.searchParams.append(key, JSON.stringify(value));
21
+ }
22
+ else {
23
+ url.searchParams.append(key, String(value));
24
+ }
25
+ }
26
+ }
27
+ const headers = {
28
+ Authorization: `Bearer ${this.apiKey}`,
29
+ Accept: 'application/json',
30
+ };
31
+ let body;
32
+ if (opts.body !== undefined) {
33
+ headers['Content-Type'] = 'application/json';
34
+ body = JSON.stringify(opts.body);
35
+ }
36
+ const response = await this.fetchImpl(url.toString(), { method, headers, body });
37
+ const raw = await response.text();
38
+ const parsed = raw.length > 0 ? safeJsonParse(raw) : undefined;
39
+ if (!response.ok) {
40
+ const message = (parsed && typeof parsed === 'object' && 'message' in parsed
41
+ ? String(parsed.message)
42
+ : null) ?? `Dossiers API ${method} ${path} failed: ${response.status}`;
43
+ throw new DossiersAPIError(response.status, message, parsed ?? raw);
44
+ }
45
+ return parsed;
46
+ }
47
+ /**
48
+ * Opens a raw HTTP connection without parsing the response body.
49
+ * Used for SSE streams and binary file downloads.
50
+ */
51
+ stream(path, accept, init) {
52
+ return this.fetchImpl(`${this.baseUrl}${path}`, {
53
+ ...init,
54
+ method: 'GET',
55
+ headers: {
56
+ ...(init?.headers ?? {}),
57
+ Authorization: `Bearer ${this.apiKey}`,
58
+ Accept: accept,
59
+ },
60
+ });
61
+ }
62
+ }
63
+ function safeJsonParse(raw) {
64
+ try {
65
+ return JSON.parse(raw);
66
+ }
67
+ catch {
68
+ return raw;
69
+ }
70
+ }
71
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ // API types
2
+ export * from './api.js';
3
+ // Webhook event types & enums
4
+ export * from './types.js';
5
+ // Core service
6
+ export { DossiersAPIService, DossiersAPIError, DOSSIERS_API_BASE_URL } from './service.js';
7
+ // Webhook router
8
+ export { DossiersWebhookRouter } from './webhooks.js';
9
+ // Resource classes (for consumers who want to type method parameters/returns)
10
+ export { AmlResource } from './resources/aml.js';
11
+ export { DocumentsResource } from './resources/documents.js';
12
+ export { FormTemplatesResource } from './resources/form-templates.js';
13
+ export { MediaResource } from './resources/media.js';
14
+ export { KycResource, KycSessionsResource, KycWorkflowsResource } from './resources/kyc/index.js';
15
+ // Customer-facing KYC session client
16
+ export { DossiersKycSession } from './session.js';
17
+ // Zod schemas for runtime validation
18
+ export * as schemas from './schemas/index.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,cAAc,UAAU,CAAC;AAEzB,8BAA8B;AAC9B,cAAc,YAAY,CAAC;AAE3B,eAAe;AACf,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG3F,iBAAiB;AACjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,8EAA8E;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAElG,qCAAqC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,qCAAqC;AACrC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * AML (Anti-Money Laundering) screening and due-diligence methods.
3
+ *
4
+ * Access via `service.aml`.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * const hits = await service.aml.searchSanctions({ fullName: 'Jane Smith' });
9
+ * console.log(hits.totalHits);
10
+ * ```
11
+ */
12
+ export class AmlResource {
13
+ /** @internal */
14
+ constructor(http) {
15
+ this.http = http;
16
+ }
17
+ /**
18
+ * Search global sanctions lists (OFAC, UN, FCDO, DFAT, CASL, INTERPOL) for
19
+ * individuals or entities matching the provided name.
20
+ *
21
+ * Costs 5 credits per request.
22
+ *
23
+ * @param input - Search criteria including full name and optional filters.
24
+ * @returns Matching sanction records with source attribution.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * const results = await service.aml.searchSanctions({
29
+ * fullName: 'John Doe',
30
+ * sources: ['ofac', 'un'],
31
+ * countries: ['US'],
32
+ * });
33
+ * ```
34
+ */
35
+ searchSanctions(input) {
36
+ return this.http.request('POST', '/sanctions/search', { body: input });
37
+ }
38
+ /**
39
+ * Search PEP registries, sanctions lists, and adverse media databases for
40
+ * individuals matching the provided name. Returns detailed dossiers including
41
+ * risk scores, positions held, associates, and identification documents.
42
+ *
43
+ * @param input - Search criteria. Use `noCache: true` to force a fresh search.
44
+ * @returns An array of matching individual dossiers with risk scorecards.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * const dossiers = await service.aml.searchDossiers({
49
+ * fullName: 'Robert Jones',
50
+ * onlyShowHighRiskProfiles: true,
51
+ * });
52
+ * for (const d of dossiers) {
53
+ * console.log(d.fullName, d.riskScorecard?.riskCategory);
54
+ * }
55
+ * ```
56
+ */
57
+ searchDossiers(input) {
58
+ return this.http.request('POST', '/high-risk/search', { body: input });
59
+ }
60
+ /**
61
+ * Submit an individual for ongoing background screening against global
62
+ * sanctions lists, PEP registries, and adverse media databases.
63
+ *
64
+ * A webhook event is emitted when the screening completes or when new
65
+ * alerts are triggered.
66
+ *
67
+ * @param input - Individual details for screening.
68
+ * @returns A screening request ID for tracking status.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const { requestId } = await service.aml.createScreeningRequest({
73
+ * fullName: 'Alice Brown',
74
+ * externalId: 'cust_123',
75
+ * dateOfBirth: '1985-06-15',
76
+ * country: 'GB',
77
+ * });
78
+ * ```
79
+ */
80
+ createScreeningRequest(input) {
81
+ return this.http.request('POST', '/screening/request', { body: input });
82
+ }
83
+ }
84
+ //# sourceMappingURL=aml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aml.js","sourceRoot":"","sources":["../../../src/resources/aml.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IACpB,gBAAgB;IAChB,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,KAA0B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAAc,CAAC,KAAyB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,sBAAsB,CAClB,KAAgC;QAEhC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;CACJ"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Document processing methods — initiate, track, and retrieve AI-extracted
3
+ * data from uploaded documents.
4
+ *
5
+ * Access via `service.documents`.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const instance = await service.documents.initiate({
10
+ * processorId: 'INVOICE',
11
+ * files: [{ url: 'https://example.com/invoice.pdf', mimeType: 'application/pdf' }],
12
+ * });
13
+ * console.log(instance.instanceId);
14
+ * ```
15
+ */
16
+ export class DocumentsResource {
17
+ /** @internal */
18
+ constructor(http) {
19
+ this.http = http;
20
+ }
21
+ /**
22
+ * Initiate a new document processing job.
23
+ *
24
+ * By default, processing runs asynchronously in the background — subscribe
25
+ * to the SSE stream via {@link stream} or listen for webhook events to know
26
+ * when it completes. Set `backgroundProcessing: false` to wait synchronously.
27
+ *
28
+ * The generic parameter `TSchema` narrows the `result.schema` field to a
29
+ * processor-specific extraction schema for full type safety.
30
+ *
31
+ * @param input - Files, processor ID, optional cross-check context, and flags.
32
+ * @returns The created processing instance (result is `null` until completed).
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * // Typed extraction schema for Sri Lanka NIC
37
+ * type SriLankaIdSchema = {
38
+ * name: DocumentProcessingTransliteratedField;
39
+ * idNumber: DocumentProcessingExtractedField<string>;
40
+ * dateOfBirth: DocumentProcessingExtractedField<string>;
41
+ * };
42
+ *
43
+ * const instance = await service.documents.initiate<SriLankaIdSchema>({
44
+ * processorId: 'SRI_LANKA_ID',
45
+ * files: [{ base64Data: '...', mimeType: 'image/jpeg' }],
46
+ * inputData: { name: 'Nimal Perera' },
47
+ * });
48
+ * ```
49
+ */
50
+ initiate(input) {
51
+ return this.http.request('POST', '/document-processing', { body: input });
52
+ }
53
+ /**
54
+ * List document processing instances for your organization, with optional
55
+ * filtering and pagination.
56
+ *
57
+ * @param query - Optional filters: `processorId`, `status`, `limit`, `offset`.
58
+ * @returns A paginated list of instance summaries.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const { instances, count } = await service.documents.list({
63
+ * processorId: 'INVOICE',
64
+ * status: 'completed',
65
+ * limit: 20,
66
+ * });
67
+ * ```
68
+ */
69
+ list(query = {}) {
70
+ return this.http.request('GET', '/document-processing', { query });
71
+ }
72
+ /**
73
+ * List all available document processor types registered for your organization.
74
+ *
75
+ * @returns An array of processor descriptors including IDs and labels.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * const processors = await service.documents.listProcessors();
80
+ * processors.forEach(p => console.log(p.id, p.label));
81
+ * ```
82
+ */
83
+ listProcessors() {
84
+ return this.http.request('GET', '/document-processing/processors');
85
+ }
86
+ /**
87
+ * Retrieve the full details of a single document processing instance by ID.
88
+ *
89
+ * The generic parameter `TSchema` narrows `result.schema` for processor-specific
90
+ * type safety — use the same type you passed to {@link initiate}.
91
+ *
92
+ * @param id - The `instanceId` returned by {@link initiate}.
93
+ * @returns The full instance including result once processing is complete.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * const instance = await service.documents.get('inst_abc123');
98
+ * if (instance.status === 'completed') {
99
+ * console.log(instance.result?.normalizedData);
100
+ * }
101
+ * ```
102
+ */
103
+ get(id) {
104
+ return this.http.request('GET', `/document-processing/${encodeURIComponent(id)}`);
105
+ }
106
+ /**
107
+ * Retrieve the result of a specific processing stage within an instance.
108
+ * Useful for debugging or inspecting intermediate pipeline results.
109
+ *
110
+ * Stage IDs: `crop_and_detect_faces`, `pre_validate_and_extract`, `post_validation`.
111
+ *
112
+ * @param id - The `instanceId`.
113
+ * @param stageId - The stage ID to retrieve.
114
+ * @returns The stage status and extracted data.
115
+ *
116
+ * @example
117
+ * ```ts
118
+ * const stage = await service.documents.getStage('inst_abc123', 'post_validation');
119
+ * console.log(stage.status, stage.data.validation.passed);
120
+ * ```
121
+ */
122
+ getStage(id, stageId) {
123
+ return this.http.request('GET', `/document-processing/${encodeURIComponent(id)}/stages/${encodeURIComponent(stageId)}`);
124
+ }
125
+ /**
126
+ * Delete a document processing instance and all associated files.
127
+ *
128
+ * @param id - The `instanceId` to delete.
129
+ * @returns A success confirmation.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * const { success } = await service.documents.delete('inst_abc123');
134
+ * ```
135
+ */
136
+ delete(id) {
137
+ return this.http.request('DELETE', `/document-processing/${encodeURIComponent(id)}`);
138
+ }
139
+ /**
140
+ * Open a Server-Sent Events (SSE) stream for real-time stage progress updates
141
+ * on a document processing instance.
142
+ *
143
+ * Returns the raw `Response` — iterate over `response.body` using a
144
+ * `ReadableStream` reader to consume SSE events.
145
+ *
146
+ * @param id - The `instanceId` to stream events for.
147
+ * @param init - Optional fetch init options (e.g. `signal` for cancellation).
148
+ * @returns A live SSE `Response` stream.
149
+ *
150
+ * @example
151
+ * ```ts
152
+ * const res = await service.documents.stream('inst_abc123');
153
+ * const reader = res.body!.getReader();
154
+ * const decoder = new TextDecoder();
155
+ * while (true) {
156
+ * const { done, value } = await reader.read();
157
+ * if (done) break;
158
+ * console.log(decoder.decode(value));
159
+ * }
160
+ * ```
161
+ */
162
+ stream(id, init) {
163
+ return this.http.stream(`/document-processing/${encodeURIComponent(id)}/events`, 'text/event-stream', init);
164
+ }
165
+ }
166
+ //# sourceMappingURL=documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documents.js","sourceRoot":"","sources":["../../../src/resources/documents.ts"],"names":[],"mappings":"AAYA;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,iBAAiB;IAC1B,gBAAgB;IAChB,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,QAAQ,CACJ,KAAsC;QAEtC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,IAAI,CACA,QAA8C,EAAE;QAEhD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;OAUG;IACH,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iCAAiC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CACC,EAAU;QAEV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAe;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CACpB,KAAK,EACL,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,WAAW,kBAAkB,CAAC,OAAO,CAAC,EAAE,CACzF,CAAC;IACN,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,EAAU,EAAE,IAAkB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACnB,wBAAwB,kBAAkB,CAAC,EAAE,CAAC,SAAS,EACvD,mBAAmB,EACnB,IAAI,CACP,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Form template management — create and manage reusable form schemas for
3
+ * the `form_collection` KYC workflow step.
4
+ *
5
+ * Access via `service.formTemplates`.
6
+ *
7
+ * A form template defines the fields (text, select, file upload, etc.) that
8
+ * customers fill in during a form collection step. Templates can be referenced
9
+ * by `templateId` in the step's `input.config`, or fields can be defined inline
10
+ * on the step itself.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const template = await service.formTemplates.create({
15
+ * name: 'Employment Details',
16
+ * fields: [
17
+ * { id: 'employer', type: 'text', label: 'Employer Name', required: true },
18
+ * { id: 'salary', type: 'currency', label: 'Annual Salary', required: true },
19
+ * ],
20
+ * });
21
+ * ```
22
+ */
23
+ export class FormTemplatesResource {
24
+ /** @internal */
25
+ constructor(http) {
26
+ this.http = http;
27
+ }
28
+ /**
29
+ * Create a new form template.
30
+ *
31
+ * @param input - Template name, optional description, visibility, and field definitions.
32
+ * @returns The created form template.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * const template = await service.formTemplates.create({
37
+ * name: 'Address Collection',
38
+ * fields: [
39
+ * { id: 'street', type: 'text', label: 'Street Address', required: true },
40
+ * { id: 'city', type: 'text', label: 'City', required: true },
41
+ * { id: 'country', type: 'country', label: 'Country', required: true },
42
+ * ],
43
+ * });
44
+ * ```
45
+ */
46
+ create(input) {
47
+ return this.http.request('POST', '/form-templates', { body: input });
48
+ }
49
+ /**
50
+ * List form templates available to your organization, with optional
51
+ * search and pagination.
52
+ *
53
+ * @param query - Optional `searchQuery`, `limit`, and `offset`.
54
+ * @returns A paginated list of template summaries (fields omitted for brevity).
55
+ *
56
+ * @example
57
+ * ```ts
58
+ * const { templates, totalCount } = await service.formTemplates.list({
59
+ * searchQuery: 'address',
60
+ * limit: 10,
61
+ * });
62
+ * ```
63
+ */
64
+ list(query = {}) {
65
+ return this.http.request('GET', '/form-templates', { query });
66
+ }
67
+ /**
68
+ * Retrieve a single form template by ID, including all field definitions.
69
+ *
70
+ * @param id - The template ID.
71
+ * @returns The full template with fields.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * const template = await service.formTemplates.get('tmpl_abc123');
76
+ * template.fields.forEach(f => console.log(f.id, f.type));
77
+ * ```
78
+ */
79
+ get(id) {
80
+ return this.http.request('GET', `/form-templates/${encodeURIComponent(id)}`);
81
+ }
82
+ /**
83
+ * Update an existing form template.
84
+ *
85
+ * @param id - The template ID to update.
86
+ * @param input - Fields to update (all optional).
87
+ * @returns The updated template.
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * const updated = await service.formTemplates.update('tmpl_abc123', {
92
+ * name: 'Updated Address Form',
93
+ * });
94
+ * ```
95
+ */
96
+ update(id, input) {
97
+ return this.http.request('PUT', `/form-templates/${encodeURIComponent(id)}`, { body: input });
98
+ }
99
+ /**
100
+ * Delete a form template.
101
+ *
102
+ * @param id - The template ID to delete.
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * await service.formTemplates.delete('tmpl_abc123');
107
+ * ```
108
+ */
109
+ delete(id) {
110
+ return this.http.request('DELETE', `/form-templates/${encodeURIComponent(id)}`);
111
+ }
112
+ }
113
+ //# sourceMappingURL=form-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-templates.js","sourceRoot":"","sources":["../../../src/resources/form-templates.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,qBAAqB;IAC9B,gBAAgB;IAChB,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,KAA8B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,QAAgC,EAAE;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,GAAG,CAAC,EAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAU,EAAE,KAA8B;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,mBAAmB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;CACJ"}
@@ -0,0 +1,26 @@
1
+ import { KycSessionsResource } from './sessions.js';
2
+ import { KycWorkflowsResource } from './workflows.js';
3
+ export { KycSessionsResource } from './sessions.js';
4
+ export { KycWorkflowsResource } from './workflows.js';
5
+ /**
6
+ * KYC (Know Your Customer) namespace — sessions and workflow management.
7
+ *
8
+ * Access via `service.kyc`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Create a session using an existing workflow
13
+ * const { sessionUrl } = await service.kyc.sessions.create({ workflowId: 'wf_abc' });
14
+ *
15
+ * // Manage workflows
16
+ * const workflows = await service.kyc.workflows.list();
17
+ * ```
18
+ */
19
+ export class KycResource {
20
+ /** @internal */
21
+ constructor(http) {
22
+ this.sessions = new KycSessionsResource(http);
23
+ this.workflows = new KycWorkflowsResource(http);
24
+ }
25
+ }
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/resources/kyc/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,WAAW;IAapB,gBAAgB;IAChB,YAAY,IAAkB;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CACJ"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * KYC session management — create and manage customer verification sessions.
3
+ *
4
+ * Access via `service.kyc.sessions`.
5
+ *
6
+ * A KYC session represents a single customer verification journey. When created,
7
+ * the customer receives a `sessionUrl` they visit to complete the configured
8
+ * workflow steps (identity verification, liveness, form collection, etc.).
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const { session, sessionUrl, token } = await service.kyc.sessions.create({
13
+ * customer: { name: 'Nimal Perera', email: 'nimal@example.com' },
14
+ * workflowId: 'wf_abc123',
15
+ * });
16
+ * // Send sessionUrl to the customer
17
+ * ```
18
+ */
19
+ export class KycSessionsResource {
20
+ /** @internal */
21
+ constructor(http) {
22
+ this.http = http;
23
+ }
24
+ /**
25
+ * Create a new KYC session for a customer.
26
+ *
27
+ * If `customer.email` and `customer.name` are both provided, an invitation
28
+ * email with the session link is automatically sent to the customer.
29
+ *
30
+ * @param input - Session configuration: customer details, expiry, workflow ID.
31
+ * @returns The created session, a short-lived customer access `token`, and the `sessionUrl`.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const { session, sessionUrl } = await service.kyc.sessions.create({
36
+ * customer: { name: 'Alice Brown', email: 'alice@example.com', externalId: 'cust_001' },
37
+ * workflowId: 'wf_standard_kyc',
38
+ * expiresInMs: 86_400_000, // 24 hours
39
+ * });
40
+ * await sendEmail(session.customer.email, sessionUrl);
41
+ * ```
42
+ */
43
+ create(input) {
44
+ return this.http.request('POST', '/kyc-sessions', { body: input });
45
+ }
46
+ /**
47
+ * List KYC sessions for your organization with optional filtering and pagination.
48
+ *
49
+ * @param filters - Optional query filters: `searchQuery`, `checkpoint`, `status`,
50
+ * `isComplete`, `isInvalid`, date ranges, and sort/pagination options.
51
+ * @returns A paginated list of sessions with `totalCount`.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * const { sessions, totalCount } = await service.kyc.sessions.list({
56
+ * isComplete: true,
57
+ * sortBy: 'completedAt',
58
+ * sortOrder: 'desc',
59
+ * limit: 50,
60
+ * });
61
+ * ```
62
+ */
63
+ list(filters = {}) {
64
+ return this.http.request('GET', '/kyc-sessions', { query: filters });
65
+ }
66
+ /**
67
+ * Retrieve a single KYC session by ID.
68
+ *
69
+ * The response includes the full session state, per-step submission history,
70
+ * signed media URLs, and the admin decision record if one has been made.
71
+ *
72
+ * @param id - The session ID.
73
+ * @returns The full session output.
74
+ *
75
+ * @example
76
+ * ```ts
77
+ * const session = await service.kyc.sessions.get('ses_abc123');
78
+ * console.log(session.status); // 'complete' | 'in-progress' | ...
79
+ * ```
80
+ */
81
+ get(id) {
82
+ return this.http.request('GET', `/kyc-sessions/${encodeURIComponent(id)}`);
83
+ }
84
+ /**
85
+ * Delete a KYC session and all associated data.
86
+ *
87
+ * @param id - The session ID to delete.
88
+ * @returns A success confirmation.
89
+ *
90
+ * @example
91
+ * ```ts
92
+ * const { success } = await service.kyc.sessions.delete('ses_abc123');
93
+ * ```
94
+ */
95
+ delete(id) {
96
+ return this.http.request('DELETE', `/kyc-sessions/${encodeURIComponent(id)}`);
97
+ }
98
+ }
99
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../../../src/resources/kyc/sessions.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,mBAAmB;IAC5B,gBAAgB;IAChB,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,KAA0B;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,UAAgC,EAAE;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,EAAU;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;CACJ"}