@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.
- package/README.md +697 -46
- package/dist/cjs/api.js +34 -0
- package/dist/cjs/api.js.map +1 -0
- package/dist/cjs/error.js +29 -0
- package/dist/cjs/error.js.map +1 -0
- package/dist/cjs/http.js +75 -0
- package/dist/cjs/http.js.map +1 -0
- package/dist/cjs/index.js +48 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/resources/aml.js +88 -0
- package/dist/cjs/resources/aml.js.map +1 -0
- package/dist/cjs/resources/documents.js +170 -0
- package/dist/cjs/resources/documents.js.map +1 -0
- package/dist/cjs/resources/form-templates.js +117 -0
- package/dist/cjs/resources/form-templates.js.map +1 -0
- package/dist/cjs/resources/kyc/index.js +32 -0
- package/dist/cjs/resources/kyc/index.js.map +1 -0
- package/dist/cjs/resources/kyc/sessions.js +103 -0
- package/dist/cjs/resources/kyc/sessions.js.map +1 -0
- package/dist/cjs/resources/kyc/workflows.js +150 -0
- package/dist/cjs/resources/kyc/workflows.js.map +1 -0
- package/dist/cjs/resources/media.js +62 -0
- package/dist/cjs/resources/media.js.map +1 -0
- package/dist/cjs/schemas/index.js +9 -0
- package/dist/cjs/schemas/index.js.map +1 -0
- package/dist/cjs/schemas/kyc/workflow-steps.js +145 -0
- package/dist/cjs/schemas/kyc/workflow-steps.js.map +1 -0
- package/dist/cjs/service.js +132 -0
- package/dist/cjs/service.js.map +1 -0
- package/dist/cjs/session.js +379 -0
- package/dist/cjs/session.js.map +1 -0
- package/dist/cjs/types.js +36 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/webhooks.js +93 -0
- package/dist/cjs/webhooks.js.map +1 -0
- package/dist/esm/api.js +33 -0
- package/dist/esm/api.js.map +1 -0
- package/dist/esm/error.js +25 -0
- package/dist/esm/error.js.map +1 -0
- package/dist/esm/http.js +71 -0
- package/dist/esm/http.js.map +1 -0
- package/dist/esm/index.js +19 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/resources/aml.js +84 -0
- package/dist/esm/resources/aml.js.map +1 -0
- package/dist/esm/resources/documents.js +166 -0
- package/dist/esm/resources/documents.js.map +1 -0
- package/dist/esm/resources/form-templates.js +113 -0
- package/dist/esm/resources/form-templates.js.map +1 -0
- package/dist/esm/resources/kyc/index.js +26 -0
- package/dist/esm/resources/kyc/index.js.map +1 -0
- package/dist/esm/resources/kyc/sessions.js +99 -0
- package/dist/esm/resources/kyc/sessions.js.map +1 -0
- package/dist/esm/resources/kyc/workflows.js +146 -0
- package/dist/esm/resources/kyc/workflows.js.map +1 -0
- package/dist/esm/resources/media.js +58 -0
- package/dist/esm/resources/media.js.map +1 -0
- package/dist/esm/schemas/index.js +2 -0
- package/dist/esm/schemas/index.js.map +1 -0
- package/dist/esm/schemas/kyc/workflow-steps.js +142 -0
- package/dist/esm/schemas/kyc/workflow-steps.js.map +1 -0
- package/dist/esm/service.js +127 -0
- package/dist/esm/service.js.map +1 -0
- package/dist/esm/session.js +375 -0
- package/dist/esm/session.js.map +1 -0
- package/dist/{types.js → esm/types.js} +11 -27
- package/dist/esm/types.js.map +1 -0
- package/dist/{webhooks.js → esm/webhooks.js} +10 -11
- package/dist/esm/webhooks.js.map +1 -0
- package/dist/{api.d.ts → types/api.d.ts} +297 -166
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/error.d.ts +24 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/http.d.ts +17 -0
- package/dist/types/http.d.ts.map +1 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/resources/aml.d.ts +79 -0
- package/dist/types/resources/aml.d.ts.map +1 -0
- package/dist/types/resources/documents.d.ts +153 -0
- package/dist/types/resources/documents.d.ts.map +1 -0
- package/dist/types/resources/form-templates.d.ts +104 -0
- package/dist/types/resources/form-templates.d.ts.map +1 -0
- package/dist/types/resources/kyc/index.d.ts +34 -0
- package/dist/types/resources/kyc/index.d.ts.map +1 -0
- package/dist/types/resources/kyc/sessions.d.ts +92 -0
- package/dist/types/resources/kyc/sessions.d.ts.map +1 -0
- package/dist/types/resources/kyc/workflows.d.ts +135 -0
- package/dist/types/resources/kyc/workflows.d.ts.map +1 -0
- package/dist/types/resources/media.d.ts +56 -0
- package/dist/types/resources/media.d.ts.map +1 -0
- package/dist/types/schemas/index.d.ts +3 -0
- package/dist/types/schemas/index.d.ts.map +1 -0
- package/dist/types/schemas/kyc/workflow-steps.d.ts +5113 -0
- package/dist/types/schemas/kyc/workflow-steps.d.ts.map +1 -0
- package/dist/types/service.d.ts +143 -0
- package/dist/types/service.d.ts.map +1 -0
- package/dist/types/session.d.ts +176 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/{types.d.ts → types/types.d.ts} +100 -2
- package/dist/types/types.d.ts.map +1 -0
- package/dist/{webhooks.d.ts → types/webhooks.d.ts} +5 -5
- package/dist/types/webhooks.d.ts.map +1 -0
- package/package.json +26 -32
- package/dist/api.d.ts.map +0 -1
- package/dist/api.js +0 -22
- package/dist/api.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +0 -1
- package/dist/service.d.ts +0 -39
- package/dist/service.d.ts.map +0 -1
- package/dist/service.js +0 -150
- package/dist/service.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/webhooks.d.ts.map +0 -1
- package/dist/webhooks.js.map +0 -1
- package/docs/REFERENCE.md +0 -114
package/dist/esm/http.js
ADDED
|
@@ -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"}
|