react-native-persona 2.2.30 → 2.4.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 +45 -0
- package/README.md +5 -2
- package/RNPersonaInquiry2.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/withpersona/sdk2/reactnative/PersonaInquiryModule2.java +161 -3
- package/ios/PersonaInquiry2.swift +134 -120
- package/lib/commonjs/index.js +182 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +166 -3
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/index.d.ts +90 -1
- package/package.json +1 -1
- package/src/index.ts +191 -2
package/lib/commonjs/index.js
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Environment = void 0;
|
|
6
|
+
exports.Environment = exports.DocumentStepData = void 0;
|
|
7
7
|
Object.defineProperty(exports, "Fields", {
|
|
8
8
|
enumerable: true,
|
|
9
9
|
get: function () {
|
|
10
10
|
return _fields.Fields;
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
|
-
exports.InvalidTemplateVersion = exports.InvalidTemplateId = exports.InvalidInquiryId = exports.InvalidAccountId = exports.Inquiry = void 0;
|
|
13
|
+
exports.UiStepData = exports.ThemeSource = exports.SelfieStepData = exports.SelfieCaptureMethod = exports.InvalidTemplateVersion = exports.InvalidTemplateId = exports.InvalidInquiryId = exports.InvalidAccountId = exports.Inquiry = exports.GovernmentIdStepData = exports.GovernmentIdCaptureSide = exports.GovernmentIdCaptureMethod = void 0;
|
|
14
14
|
Object.defineProperty(exports, "Versions", {
|
|
15
15
|
enumerable: true,
|
|
16
16
|
get: function () {
|
|
@@ -113,6 +113,10 @@ function makeAccountId(candidate) {
|
|
|
113
113
|
|
|
114
114
|
|
|
115
115
|
let Environment;
|
|
116
|
+
/**
|
|
117
|
+
* An enum value which determines whether this sdk should use the theme values sent from the server.
|
|
118
|
+
*/
|
|
119
|
+
|
|
116
120
|
exports.Environment = Environment;
|
|
117
121
|
|
|
118
122
|
(function (Environment) {
|
|
@@ -120,6 +124,98 @@ exports.Environment = Environment;
|
|
|
120
124
|
Environment["PRODUCTION"] = "production";
|
|
121
125
|
})(Environment || (exports.Environment = Environment = {}));
|
|
122
126
|
|
|
127
|
+
let ThemeSource;
|
|
128
|
+
exports.ThemeSource = ThemeSource;
|
|
129
|
+
|
|
130
|
+
(function (ThemeSource) {
|
|
131
|
+
ThemeSource["SERVER"] = "server";
|
|
132
|
+
ThemeSource["CLIENT"] = "client";
|
|
133
|
+
})(ThemeSource || (exports.ThemeSource = ThemeSource = {}));
|
|
134
|
+
|
|
135
|
+
class DocumentStepData {
|
|
136
|
+
constructor() {
|
|
137
|
+
_defineProperty(this, "stepName", void 0);
|
|
138
|
+
|
|
139
|
+
_defineProperty(this, "documents", void 0);
|
|
140
|
+
|
|
141
|
+
this.stepName = "";
|
|
142
|
+
this.documents = [];
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
exports.DocumentStepData = DocumentStepData;
|
|
148
|
+
|
|
149
|
+
class GovernmentIdStepData {
|
|
150
|
+
constructor() {
|
|
151
|
+
_defineProperty(this, "stepName", void 0);
|
|
152
|
+
|
|
153
|
+
_defineProperty(this, "captures", void 0);
|
|
154
|
+
|
|
155
|
+
this.stepName = "";
|
|
156
|
+
this.captures = [];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
exports.GovernmentIdStepData = GovernmentIdStepData;
|
|
162
|
+
let GovernmentIdCaptureMethod;
|
|
163
|
+
exports.GovernmentIdCaptureMethod = GovernmentIdCaptureMethod;
|
|
164
|
+
|
|
165
|
+
(function (GovernmentIdCaptureMethod) {
|
|
166
|
+
GovernmentIdCaptureMethod["Manual"] = "Manual";
|
|
167
|
+
GovernmentIdCaptureMethod["Auto"] = "Auto";
|
|
168
|
+
GovernmentIdCaptureMethod["Upload"] = "Upload";
|
|
169
|
+
})(GovernmentIdCaptureMethod || (exports.GovernmentIdCaptureMethod = GovernmentIdCaptureMethod = {}));
|
|
170
|
+
|
|
171
|
+
let GovernmentIdCaptureSide;
|
|
172
|
+
exports.GovernmentIdCaptureSide = GovernmentIdCaptureSide;
|
|
173
|
+
|
|
174
|
+
(function (GovernmentIdCaptureSide) {
|
|
175
|
+
GovernmentIdCaptureSide["Front"] = "Front";
|
|
176
|
+
GovernmentIdCaptureSide["Back"] = "Back";
|
|
177
|
+
})(GovernmentIdCaptureSide || (exports.GovernmentIdCaptureSide = GovernmentIdCaptureSide = {}));
|
|
178
|
+
|
|
179
|
+
class SelfieStepData {
|
|
180
|
+
constructor() {
|
|
181
|
+
_defineProperty(this, "stepName", void 0);
|
|
182
|
+
|
|
183
|
+
_defineProperty(this, "centerCapture", void 0);
|
|
184
|
+
|
|
185
|
+
_defineProperty(this, "leftCapture", void 0);
|
|
186
|
+
|
|
187
|
+
_defineProperty(this, "rightCapture", void 0);
|
|
188
|
+
|
|
189
|
+
this.stepName = "";
|
|
190
|
+
this.centerCapture = null;
|
|
191
|
+
this.leftCapture = null;
|
|
192
|
+
this.rightCapture = null;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
exports.SelfieStepData = SelfieStepData;
|
|
198
|
+
let SelfieCaptureMethod;
|
|
199
|
+
exports.SelfieCaptureMethod = SelfieCaptureMethod;
|
|
200
|
+
|
|
201
|
+
(function (SelfieCaptureMethod) {
|
|
202
|
+
SelfieCaptureMethod["Manual"] = "Manual";
|
|
203
|
+
SelfieCaptureMethod["Auto"] = "Auto";
|
|
204
|
+
})(SelfieCaptureMethod || (exports.SelfieCaptureMethod = SelfieCaptureMethod = {}));
|
|
205
|
+
|
|
206
|
+
class UiStepData {
|
|
207
|
+
constructor() {
|
|
208
|
+
_defineProperty(this, "stepName", void 0);
|
|
209
|
+
|
|
210
|
+
_defineProperty(this, "componentParams", void 0);
|
|
211
|
+
|
|
212
|
+
this.stepName = "";
|
|
213
|
+
this.componentParams = {};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
exports.UiStepData = UiStepData;
|
|
123
219
|
const eventEmitter = new _reactNative.NativeEventEmitter(PersonaInquiry2);
|
|
124
220
|
|
|
125
221
|
class Inquiry {
|
|
@@ -136,8 +232,12 @@ class Inquiry {
|
|
|
136
232
|
|
|
137
233
|
_defineProperty(this, "sessionToken", void 0);
|
|
138
234
|
|
|
235
|
+
_defineProperty(this, "returnCollectedData", void 0);
|
|
236
|
+
|
|
139
237
|
_defineProperty(this, "iosThemeObject", void 0);
|
|
140
238
|
|
|
239
|
+
_defineProperty(this, "themeSource", void 0);
|
|
240
|
+
|
|
141
241
|
_defineProperty(this, "fields", void 0);
|
|
142
242
|
|
|
143
243
|
_defineProperty(this, "onComplete", void 0);
|
|
@@ -158,13 +258,15 @@ class Inquiry {
|
|
|
158
258
|
this.accountId = options.accountId;
|
|
159
259
|
this.environment = options.environment;
|
|
160
260
|
this.sessionToken = options.sessionToken;
|
|
161
|
-
this.fields = options.fields;
|
|
261
|
+
this.fields = options.fields;
|
|
262
|
+
this.returnCollectedData = options.returnCollectedData; // Callbacks
|
|
162
263
|
|
|
163
264
|
this.onComplete = options.onComplete;
|
|
164
265
|
this.onCanceled = options.onCanceled;
|
|
165
266
|
this.onError = options.onError; // Theme object
|
|
166
267
|
|
|
167
268
|
this.iosThemeObject = options.iosThemeObject;
|
|
269
|
+
this.themeSource = options.themeSource;
|
|
168
270
|
}
|
|
169
271
|
|
|
170
272
|
clearListeners() {
|
|
@@ -225,6 +327,8 @@ class Inquiry {
|
|
|
225
327
|
start() {
|
|
226
328
|
this.onCompleteListener = eventEmitter.addListener('onComplete', event => {
|
|
227
329
|
if (this.onComplete) {
|
|
330
|
+
var _event$collectedData;
|
|
331
|
+
|
|
228
332
|
let fields = {};
|
|
229
333
|
|
|
230
334
|
for (let key of Object.keys(event.fields || {})) {
|
|
@@ -254,7 +358,42 @@ class Inquiry {
|
|
|
254
358
|
}
|
|
255
359
|
}
|
|
256
360
|
|
|
257
|
-
|
|
361
|
+
let collectedData = null;
|
|
362
|
+
let stepData = (_event$collectedData = event.collectedData) === null || _event$collectedData === void 0 ? void 0 : _event$collectedData.stepData;
|
|
363
|
+
|
|
364
|
+
if (stepData != null) {
|
|
365
|
+
// Translate the step data from JSON to actual class objects
|
|
366
|
+
let translatedStepData = [];
|
|
367
|
+
|
|
368
|
+
for (let stepDatum of stepData) {
|
|
369
|
+
switch (stepDatum.type) {
|
|
370
|
+
case 'DocumentStepData':
|
|
371
|
+
translatedStepData.push(Object.assign(new DocumentStepData(), stepDatum));
|
|
372
|
+
break;
|
|
373
|
+
|
|
374
|
+
case 'GovernmentIdStepData':
|
|
375
|
+
translatedStepData.push(Object.assign(new GovernmentIdStepData(), stepDatum));
|
|
376
|
+
break;
|
|
377
|
+
|
|
378
|
+
case 'SelfieStepData':
|
|
379
|
+
translatedStepData.push(Object.assign(new SelfieStepData(), stepDatum));
|
|
380
|
+
break;
|
|
381
|
+
|
|
382
|
+
case 'UiStepData':
|
|
383
|
+
translatedStepData.push(Object.assign(new UiStepData(), stepDatum));
|
|
384
|
+
break;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
collectedData = {
|
|
389
|
+
stepData: translatedStepData
|
|
390
|
+
};
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
let extraData = {
|
|
394
|
+
collectedData: collectedData
|
|
395
|
+
};
|
|
396
|
+
this.onComplete(event.inquiryId, event.status, fields, extraData);
|
|
258
397
|
}
|
|
259
398
|
|
|
260
399
|
this.clearListeners();
|
|
@@ -275,6 +414,8 @@ class Inquiry {
|
|
|
275
414
|
environment: this.environment,
|
|
276
415
|
sessionToken: this.sessionToken,
|
|
277
416
|
fields: this.fields,
|
|
417
|
+
returnCollectedData: this.returnCollectedData,
|
|
418
|
+
themeSource: this.themeSource,
|
|
278
419
|
iosTheme: (0, _util.processThemeValues)(this.iosThemeObject || {})
|
|
279
420
|
});
|
|
280
421
|
}
|
|
@@ -298,6 +439,8 @@ class InquiryBuilder {
|
|
|
298
439
|
|
|
299
440
|
_defineProperty(this, "_iosThemeObject", void 0);
|
|
300
441
|
|
|
442
|
+
_defineProperty(this, "_themeSource", ThemeSource.SERVER);
|
|
443
|
+
|
|
301
444
|
_defineProperty(this, "_fields", void 0);
|
|
302
445
|
|
|
303
446
|
this._inquiryId = inquiryId;
|
|
@@ -322,9 +465,20 @@ class InquiryBuilder {
|
|
|
322
465
|
this._onError = callback;
|
|
323
466
|
return this;
|
|
324
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* @deprecated Use iosThemeToUse
|
|
470
|
+
*/
|
|
471
|
+
|
|
325
472
|
|
|
326
473
|
iosTheme(themeObject) {
|
|
327
474
|
this._iosThemeObject = themeObject;
|
|
475
|
+
this._themeSource = ThemeSource.CLIENT;
|
|
476
|
+
return this;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
iosThemeToUse(themeObject, themeSource) {
|
|
480
|
+
this._iosThemeObject = themeObject;
|
|
481
|
+
this._themeSource = themeSource;
|
|
328
482
|
return this;
|
|
329
483
|
}
|
|
330
484
|
|
|
@@ -336,6 +490,7 @@ class InquiryBuilder {
|
|
|
336
490
|
onCanceled: this._onCanceled,
|
|
337
491
|
onError: this._onError,
|
|
338
492
|
iosThemeObject: this._iosThemeObject,
|
|
493
|
+
themeSource: this._themeSource,
|
|
339
494
|
fields: this._fields
|
|
340
495
|
});
|
|
341
496
|
}
|
|
@@ -360,6 +515,8 @@ class TemplateBuilder {
|
|
|
360
515
|
|
|
361
516
|
_defineProperty(this, "_sessionToken", void 0);
|
|
362
517
|
|
|
518
|
+
_defineProperty(this, "_returnCollectedData", void 0);
|
|
519
|
+
|
|
363
520
|
_defineProperty(this, "_onComplete", void 0);
|
|
364
521
|
|
|
365
522
|
_defineProperty(this, "_onCanceled", void 0);
|
|
@@ -368,6 +525,8 @@ class TemplateBuilder {
|
|
|
368
525
|
|
|
369
526
|
_defineProperty(this, "_iosThemeObject", void 0);
|
|
370
527
|
|
|
528
|
+
_defineProperty(this, "_themeSource", ThemeSource.SERVER);
|
|
529
|
+
|
|
371
530
|
if (templateId != null) {
|
|
372
531
|
this._templateId = templateId;
|
|
373
532
|
} else if (templateVersion != null) {
|
|
@@ -379,6 +538,11 @@ class TemplateBuilder {
|
|
|
379
538
|
return this;
|
|
380
539
|
}
|
|
381
540
|
|
|
541
|
+
returnCollectedData(returnCollectedData) {
|
|
542
|
+
this._returnCollectedData = returnCollectedData;
|
|
543
|
+
return this;
|
|
544
|
+
}
|
|
545
|
+
|
|
382
546
|
referenceId(referenceId) {
|
|
383
547
|
this._accountId = undefined;
|
|
384
548
|
this._referenceId = referenceId;
|
|
@@ -420,9 +584,20 @@ class TemplateBuilder {
|
|
|
420
584
|
this._onError = callback;
|
|
421
585
|
return this;
|
|
422
586
|
}
|
|
587
|
+
/**
|
|
588
|
+
* @deprecated Use iosThemeToUse
|
|
589
|
+
*/
|
|
590
|
+
|
|
423
591
|
|
|
424
592
|
iosTheme(themeObject) {
|
|
425
593
|
this._iosThemeObject = themeObject;
|
|
594
|
+
this._themeSource = ThemeSource.CLIENT;
|
|
595
|
+
return this;
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
iosThemeToUse(themeObject, themeSource) {
|
|
599
|
+
this._iosThemeObject = themeObject;
|
|
600
|
+
this._themeSource = themeSource;
|
|
426
601
|
return this;
|
|
427
602
|
}
|
|
428
603
|
|
|
@@ -438,7 +613,9 @@ class TemplateBuilder {
|
|
|
438
613
|
onComplete: this._onComplete,
|
|
439
614
|
onCanceled: this._onCanceled,
|
|
440
615
|
onError: this._onError,
|
|
441
|
-
iosThemeObject: this._iosThemeObject
|
|
616
|
+
iosThemeObject: this._iosThemeObject,
|
|
617
|
+
themeSource: this._themeSource,
|
|
618
|
+
returnCollectedData: this._returnCollectedData
|
|
442
619
|
});
|
|
443
620
|
}
|
|
444
621
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.ts"],"names":["PersonaInquiry2","NativeModules","InvalidTemplateId","Error","InvalidTemplateVersion","InvalidInquiryId","InvalidAccountId","makeInquiryId","candidate","startsWith","makeTemplateId","makeTemplateVersion","makeAccountId","Environment","eventEmitter","NativeEventEmitter","Inquiry","constructor","options","templateId","inquiryId","referenceId","accountId","environment","sessionToken","fields","onComplete","onCanceled","onError","iosThemeObject","clearListeners","onCompleteListener","remove","onCanceledListener","onErrorListener","fromTemplate","TemplateBuilder","fromTemplateVersion","templateVersion","fromInquiry","InquiryBuilder","start","addListener","event","key","Object","keys","field","undefined","InquiryField","Unknown","type","Integer","Number","parseInt","value","Boolean","String","status","debugMessage","startInquiry","iosTheme","_inquiryId","_sessionToken","callback","_onComplete","_onCanceled","_onError","themeObject","_iosThemeObject","build","_fields","_templateId","_templateVersion","_accountId","_referenceId","_environment","InquiryBuilders"],"mappings":"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","sourcesContent":["import {\n EventSubscription,\n NativeEventEmitter,\n NativeModules,\n} from 'react-native';\nimport { processThemeValues } from './util';\nimport { Fields, InquiryField, RawInquiryField } from './fields';\n\nexport { Fields };\n\nimport { Versions } from './versions';\n\nexport { Versions };\n\nconst { PersonaInquiry2 } = NativeModules;\n\n// Using Opaque types + Smart Constructor enforces validation at\n// instantiation time for IDS\ndeclare const Unique: unique symbol;\nexport type Opaque<T, Tag> = T & { [Unique]: Tag };\n\ntype TemplateId = Opaque<string, 'TemplateId'>;\ntype TemplateVersion = Opaque<string, 'TemplateVersion'>;\ntype InquiryId = Opaque<string, 'InquiryId'>;\ntype AccountId = Opaque<string, 'AccountId'>;\n\nexport class InvalidTemplateId extends Error {}\n\nexport class InvalidTemplateVersion extends Error {}\n\nexport class InvalidInquiryId extends Error {}\n\nexport class InvalidAccountId extends Error {}\n\n/**\n * Run validations that the string is in proper Inquiry token format\n * and do a type conversion to InquiryId.\n *\n * @param candidate\n */\nfunction makeInquiryId(candidate: string): InquiryId {\n if (candidate.startsWith('inq_')) return candidate as InquiryId;\n\n throw new InvalidInquiryId(\n `Valid template IDs start with \"inq_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to TemplateId.\n *\n * @param candidate\n */\nfunction makeTemplateId(candidate: string): TemplateId {\n if (candidate.startsWith('itmpl_')) {\n return candidate as TemplateId;\n }\n\n throw new InvalidTemplateId(\n `Valid template IDs start with \"itmpl_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template Version token format\n * and do a type conversion to TemplateVersion.\n *\n * @param candidate\n */\nfunction makeTemplateVersion(candidate: string): TemplateVersion {\n if (candidate.startsWith('itmplv_')) {\n return candidate as TemplateVersion;\n }\n\n throw new InvalidTemplateVersion(\n `Valid template versions start with \"itmplv_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to AccountId.\n *\n * @param candidate\n */\nfunction makeAccountId(candidate: string): AccountId {\n if (candidate.startsWith('act_')) {\n return candidate as AccountId;\n }\n\n throw new InvalidAccountId(\n `Valid account IDs start with \"act_\". Received: ${candidate} `\n );\n}\n\n/**\n * String enum for environments. These strings will be parsed\n * on the native side bridge into Kotlin / Swift enums.\n */\nexport enum Environment {\n SANDBOX = 'sandbox',\n PRODUCTION = 'production',\n}\n\nexport interface InquiryOptions {\n templateId?: TemplateId;\n templateVersion?: TemplateVersion;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n sessionToken?: string;\n\n // Fields\n fields?: Fields;\n\n // Callbacks\n onComplete?: OnCompleteCallback;\n onCanceled?: OnCanceledCallback;\n onError?: OnErrorCallback;\n\n // Customization\n iosThemeObject?: Object | null;\n}\n\ntype OnCompleteCallback = (\n inquiryId: string,\n status: string,\n fields: Fields\n) => void;\n\ntype OnCanceledCallback = (inquiryId?: string, sessionToken?: string) => void;\n\ntype OnErrorCallback = (error: Error) => void;\n\nconst eventEmitter = new NativeEventEmitter(PersonaInquiry2);\n\nexport class Inquiry {\n templateId?: TemplateId;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n sessionToken?: string;\n\n iosThemeObject?: Object | null;\n fields?: Fields | null;\n\n private readonly onComplete?: OnCompleteCallback;\n private readonly onCanceled?: OnCanceledCallback;\n private readonly onError?: OnErrorCallback;\n\n private onCompleteListener?: EventSubscription;\n private onCanceledListener?: EventSubscription;\n private onErrorListener?: EventSubscription;\n\n constructor(options: InquiryOptions) {\n this.templateId = options.templateId;\n this.inquiryId = options.inquiryId;\n this.referenceId = options.referenceId;\n this.accountId = options.accountId;\n this.environment = options.environment;\n this.sessionToken = options.sessionToken;\n this.fields = options.fields;\n\n // Callbacks\n this.onComplete = options.onComplete;\n this.onCanceled = options.onCanceled;\n this.onError = options.onError;\n\n // Theme object\n this.iosThemeObject = options.iosThemeObject;\n }\n\n private clearListeners() {\n if (this.onCompleteListener) this.onCompleteListener.remove();\n if (this.onCanceledListener) this.onCanceledListener.remove();\n if (this.onErrorListener) this.onErrorListener.remove();\n }\n\n /**\n * Create an Inquiry flow builder based on a template ID.\n *\n * You can find your template ID on the Dashboard under Inquiries > Templates.\n * {@link https://app.withpersona.com/dashboard/inquiry-templates}\n *\n * @param templateId template ID from your Persona Dashboard\n * @return builder for the Inquiry flow\n */\n static fromTemplate(templateId: string) {\n return new TemplateBuilder(makeTemplateId(templateId), null);\n }\n\n /**\n * Create an Inquiry flow builder based on a template ID version.\n *\n * You can find your template ID version on the Dashboard under the\n * settings view of a specific template.\n * {@link https://app.withpersona.com/dashboard/inquiry-templates}\n *\n * @param templateVersion template version from your Persona Dashboard\n * @return builder for the Inquiry flow\n */\n static fromTemplateVersion(templateVersion: string) {\n return new TemplateBuilder(null, makeTemplateVersion(templateVersion));\n }\n\n /**\n * Create an Inquiry flow builder based on an inquiry ID.\n *\n * You will need to generate the inquiry ID on the server. To try it out, you can create an\n * inquiry from the Persona Dashboard under \"Inquiries\". Click on the \"Create Inquiry\" button\n * and copy the inquiry ID from the URL.\n * {@link https://app.withpersona.com/dashboard/inquiries}\n *\n * @param inquiryId inquiry ID from your server\n * @return builder for the Inquiry flow\n */\n static fromInquiry(inquiryId: string) {\n return new InquiryBuilder(makeInquiryId(inquiryId));\n }\n\n /**\n * Launch the Persona Inquiry.\n */\n start() {\n this.onCompleteListener = eventEmitter.addListener(\n 'onComplete',\n (event: {\n inquiryId: string;\n status: string;\n fields: Record<string, RawInquiryField>;\n }) => {\n if (this.onComplete) {\n let fields: Fields = {};\n for (let key of Object.keys(event.fields || {})) {\n let field = event.fields[key];\n if (field == undefined) {\n fields[key] = new InquiryField.Unknown('null');\n continue;\n }\n switch (field.type) {\n case 'integer':\n fields[key] = new InquiryField.Integer(\n Number.parseInt(field.value)\n );\n break;\n case 'boolean':\n fields[key] = new InquiryField.Boolean(field.value);\n break;\n case 'string':\n fields[key] = new InquiryField.String(field.value);\n break;\n default:\n fields[key] = new InquiryField.Unknown(field.type);\n break;\n }\n }\n this.onComplete(event.inquiryId, event.status, fields);\n }\n this.clearListeners();\n }\n );\n\n this.onCanceledListener = eventEmitter.addListener(\n 'onCanceled',\n (event: { inquiryId?: string; sessionToken?: string }) => {\n if (this.onCanceled)\n this.onCanceled(event.inquiryId, event.sessionToken);\n this.clearListeners();\n }\n );\n\n this.onErrorListener = eventEmitter.addListener(\n 'onError',\n (event: { debugMessage: string }) => {\n if (this.onError) this.onError(new Error(event.debugMessage));\n this.clearListeners();\n }\n );\n\n PersonaInquiry2.startInquiry({\n templateId: this.templateId,\n inquiryId: this.inquiryId,\n referenceId: this.referenceId,\n accountId: this.accountId,\n environment: this.environment,\n sessionToken: this.sessionToken,\n fields: this.fields,\n iosTheme: processThemeValues(this.iosThemeObject || {}),\n });\n }\n}\n\nclass InquiryBuilder {\n private _inquiryId: InquiryId;\n private _sessionToken?: string;\n\n // Callbacks\n private _onComplete?: OnCompleteCallback;\n private _onCanceled?: OnCanceledCallback;\n private _onError?: OnErrorCallback;\n private _iosThemeObject?: Object;\n private _fields?: Fields;\n\n constructor(inquiryId: InquiryId) {\n this._inquiryId = inquiryId;\n }\n\n sessionToken(sessionToken: string): InquiryBuilder {\n this._sessionToken = sessionToken;\n\n return this;\n }\n\n onComplete(callback: OnCompleteCallback): InquiryBuilder {\n this._onComplete = callback;\n\n return this;\n }\n\n onCanceled(callback: OnCanceledCallback): InquiryBuilder {\n this._onCanceled = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): InquiryBuilder {\n this._onError = callback;\n\n return this;\n }\n\n iosTheme(themeObject: Object): InquiryBuilder {\n this._iosThemeObject = themeObject;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n inquiryId: this._inquiryId,\n sessionToken: this._sessionToken,\n onComplete: this._onComplete,\n onCanceled: this._onCanceled,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n fields: this._fields,\n });\n }\n}\n\nclass TemplateBuilder {\n private readonly _templateId?: TemplateId;\n private readonly _templateVersion?: TemplateVersion;\n private _accountId?: AccountId;\n private _referenceId?: string;\n private _environment?: Environment;\n private _fields?: Fields;\n private _sessionToken?: string;\n\n // Callbacks\n private _onComplete?: OnCompleteCallback;\n private _onCanceled?: OnCanceledCallback;\n private _onError?: OnErrorCallback;\n\n // Customization\n private _iosThemeObject?: Object;\n\n constructor(\n templateId?: TemplateId | null,\n templateVersion?: TemplateVersion | null\n ) {\n if (templateId != null) {\n this._templateId = templateId;\n } else if (templateVersion != null) {\n this._templateVersion = templateVersion;\n } else {\n throw new InvalidTemplateId(\n `Either templateId or templateVersion needs to be set.`\n );\n }\n return this;\n }\n\n referenceId(referenceId: string): TemplateBuilder {\n this._accountId = undefined;\n this._referenceId = referenceId;\n\n return this;\n }\n\n accountId(accountId: string): TemplateBuilder {\n this._referenceId = undefined;\n this._accountId = makeAccountId(accountId);\n\n return this;\n }\n\n environment(environment: Environment): TemplateBuilder {\n this._environment = environment;\n\n return this;\n }\n\n sessionToken(sessionToken: string): TemplateBuilder {\n this._sessionToken = sessionToken;\n\n return this;\n }\n\n fields(fields: Fields): TemplateBuilder {\n this._fields = fields;\n\n return this;\n }\n\n onComplete(callback: OnCompleteCallback): TemplateBuilder {\n this._onComplete = callback;\n\n return this;\n }\n\n onCanceled(callback: OnCanceledCallback): TemplateBuilder {\n this._onCanceled = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): TemplateBuilder {\n this._onError = callback;\n\n return this;\n }\n\n iosTheme(themeObject: Object): TemplateBuilder {\n this._iosThemeObject = themeObject;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n templateId: this._templateId,\n templateVersion: this._templateVersion,\n accountId: this._accountId,\n referenceId: this._referenceId,\n environment: this._environment,\n sessionToken: this._sessionToken,\n fields: this._fields,\n onComplete: this._onComplete,\n onCanceled: this._onCanceled,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n });\n }\n}\n\n/**\n * @deprecated Use the `Inquiry` static methods instead\n */\nnamespace InquiryBuilders {\n /**\n * @deprecated Use {@link Inquiry#fromInquiry} instead\n */\n export function fromInquiry(inquiryId: string) {\n return Inquiry.fromInquiry(inquiryId);\n }\n\n /**\n * @deprecated Use {@link Inquiry#fromTemplate} instead\n */\n export function fromTemplate(templateId: string) {\n return Inquiry.fromTemplate(templateId);\n }\n\n /**\n * @deprecated Use {@link Inquiry#fromTemplateVersion} instead\n */\n export function fromTemplateVersion(templateVersion: string) {\n return Inquiry.fromTemplateVersion(templateVersion);\n }\n}\n\nexport default InquiryBuilders;\n"]}
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["PersonaInquiry2","NativeModules","InvalidTemplateId","Error","InvalidTemplateVersion","InvalidInquiryId","InvalidAccountId","makeInquiryId","candidate","startsWith","makeTemplateId","makeTemplateVersion","makeAccountId","Environment","ThemeSource","DocumentStepData","constructor","stepName","documents","GovernmentIdStepData","captures","GovernmentIdCaptureMethod","GovernmentIdCaptureSide","SelfieStepData","centerCapture","leftCapture","rightCapture","SelfieCaptureMethod","UiStepData","componentParams","eventEmitter","NativeEventEmitter","Inquiry","options","templateId","inquiryId","referenceId","accountId","environment","sessionToken","fields","returnCollectedData","onComplete","onCanceled","onError","iosThemeObject","themeSource","clearListeners","onCompleteListener","remove","onCanceledListener","onErrorListener","fromTemplate","TemplateBuilder","fromTemplateVersion","templateVersion","fromInquiry","InquiryBuilder","start","addListener","event","key","Object","keys","field","undefined","InquiryField","Unknown","type","Integer","Number","parseInt","value","Boolean","String","collectedData","stepData","translatedStepData","stepDatum","push","assign","extraData","status","debugMessage","startInquiry","iosTheme","SERVER","_inquiryId","_sessionToken","callback","_onComplete","_onCanceled","_onError","themeObject","_iosThemeObject","_themeSource","CLIENT","iosThemeToUse","build","_fields","_templateId","_templateVersion","_returnCollectedData","_accountId","_referenceId","_environment","InquiryBuilders"],"mappings":"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","sourcesContent":["import {\n EventSubscription,\n NativeEventEmitter,\n NativeModules,\n} from 'react-native';\nimport { processThemeValues } from './util';\nimport { Fields, InquiryField, RawInquiryField } from './fields';\n\nexport { Fields };\n\nimport { Versions } from './versions';\n\nexport { Versions };\n\nconst { PersonaInquiry2 } = NativeModules;\n\n// Using Opaque types + Smart Constructor enforces validation at\n// instantiation time for IDS\ndeclare const Unique: unique symbol;\nexport type Opaque<T, Tag> = T & { [Unique]: Tag };\n\ntype TemplateId = Opaque<string, 'TemplateId'>;\ntype TemplateVersion = Opaque<string, 'TemplateVersion'>;\ntype InquiryId = Opaque<string, 'InquiryId'>;\ntype AccountId = Opaque<string, 'AccountId'>;\n\nexport class InvalidTemplateId extends Error {}\n\nexport class InvalidTemplateVersion extends Error {}\n\nexport class InvalidInquiryId extends Error {}\n\nexport class InvalidAccountId extends Error {}\n\n/**\n * Run validations that the string is in proper Inquiry token format\n * and do a type conversion to InquiryId.\n *\n * @param candidate\n */\nfunction makeInquiryId(candidate: string): InquiryId {\n if (candidate.startsWith('inq_')) return candidate as InquiryId;\n\n throw new InvalidInquiryId(\n `Valid template IDs start with \"inq_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to TemplateId.\n *\n * @param candidate\n */\nfunction makeTemplateId(candidate: string): TemplateId {\n if (candidate.startsWith('itmpl_')) {\n return candidate as TemplateId;\n }\n\n throw new InvalidTemplateId(\n `Valid template IDs start with \"itmpl_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template Version token format\n * and do a type conversion to TemplateVersion.\n *\n * @param candidate\n */\nfunction makeTemplateVersion(candidate: string): TemplateVersion {\n if (candidate.startsWith('itmplv_')) {\n return candidate as TemplateVersion;\n }\n\n throw new InvalidTemplateVersion(\n `Valid template versions start with \"itmplv_\". Received: ${candidate} `\n );\n}\n\n/**\n * Run validations that the string is in proper Template token format\n * and do a type conversion to AccountId.\n *\n * @param candidate\n */\nfunction makeAccountId(candidate: string): AccountId {\n if (candidate.startsWith('act_')) {\n return candidate as AccountId;\n }\n\n throw new InvalidAccountId(\n `Valid account IDs start with \"act_\". Received: ${candidate} `\n );\n}\n\n/**\n * String enum for environments. These strings will be parsed\n * on the native side bridge into Kotlin / Swift enums.\n */\nexport enum Environment {\n SANDBOX = 'sandbox',\n PRODUCTION = 'production',\n}\n\n/**\n * An enum value which determines whether this sdk should use the theme values sent from the server.\n */\nexport enum ThemeSource {\n SERVER = 'server',\n /**\n * @deprecated Client side theming is deprecated, please configure your theme inside\n * the Persona Dashboard and use SERVER as the theme source.\n */\n CLIENT = 'client',\n}\n\nexport interface InquiryOptions {\n templateId?: TemplateId;\n templateVersion?: TemplateVersion;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n sessionToken?: string;\n returnCollectedData?: boolean;\n\n // Fields\n fields?: Fields;\n\n // Callbacks\n onComplete?: OnCompleteCallback;\n onCanceled?: OnCanceledCallback;\n onError?: OnErrorCallback;\n\n // Customization\n iosThemeObject?: Object | null;\n themeSource?: ThemeSource | null;\n}\n\ntype OnCompleteCallback = (\n inquiryId: string,\n status: string,\n fields: Fields,\n extraData: ExtraData,\n) => void;\n\n/**\n * Type for collected data that came directly from iOS/Android. \n * Needs to be translated to TS classes before returning.\n */\ninterface ExternalCollectedData {\n stepData: any[]\n}\n\nexport interface ExtraData {\n collectedData: CollectedData | null;\n}\nexport interface CollectedData {\n stepData: StepData[]\n}\n\nexport interface StepData {\n stepName: string;\n}\n \nexport class DocumentStepData implements StepData {\n stepName: string;\n documents: Document[];\n\n constructor() {\n this.stepName = \"\"\n this.documents = []\n }\n}\n \nexport interface Document {\n absoluteFilePath: string;\n}\n \nexport class GovernmentIdStepData implements StepData {\n stepName: string;\n captures: GovernmentIdCapture[];\n\n constructor() {\n this.stepName = \"\"\n this.captures = []\n }\n}\n\nexport interface GovernmentIdCapture {\n idClass: string;\n captureMethod: GovernmentIdCaptureMethod;\n side: GovernmentIdCaptureSide;\n frames: GovernmentIdCaptureFrames[];\n}\n\nexport enum GovernmentIdCaptureMethod {\n Manual = \"Manual\",\n Auto = \"Auto\",\n Upload = \"Upload\",\n}\n\nexport enum GovernmentIdCaptureSide {\n Front = \"Front\",\n Back = \"Back\",\n}\n\nexport interface GovernmentIdCaptureFrames {\n absoluteFilePath: string;\n}\n\nexport class SelfieStepData implements StepData {\n stepName: string;\n centerCapture: SelfieCapture | null;\n leftCapture: SelfieCapture | null;\n rightCapture: SelfieCapture | null;\n\n constructor() {\n this.stepName = \"\"\n this.centerCapture = null\n this.leftCapture = null\n this.rightCapture = null\n }\n}\n\nexport interface SelfieCapture {\n captureMethod: SelfieCaptureMethod;\n absoluteFilePath: string;\n}\n\nexport enum SelfieCaptureMethod {\n Manual = \"Manual\",\n Auto = \"Auto\",\n}\n\nexport class UiStepData implements StepData {\n stepName: string;\n componentParams: { [key: string]: any }\n\n constructor() {\n this.stepName = \"\"\n this.componentParams = {}\n }\n}\n\ntype OnCanceledCallback = (inquiryId?: string, sessionToken?: string) => void;\n\ntype OnErrorCallback = (error: Error) => void;\n\nconst eventEmitter = new NativeEventEmitter(PersonaInquiry2);\n\nexport class Inquiry {\n templateId?: TemplateId;\n inquiryId?: InquiryId;\n referenceId?: string;\n accountId?: AccountId;\n environment?: Environment;\n sessionToken?: string;\n returnCollectedData?: boolean;\n\n iosThemeObject?: Object | null;\n themeSource?: ThemeSource | null;\n fields?: Fields | null;\n\n private readonly onComplete?: OnCompleteCallback;\n private readonly onCanceled?: OnCanceledCallback;\n private readonly onError?: OnErrorCallback;\n\n private onCompleteListener?: EventSubscription;\n private onCanceledListener?: EventSubscription;\n private onErrorListener?: EventSubscription;\n\n constructor(options: InquiryOptions) {\n this.templateId = options.templateId;\n this.inquiryId = options.inquiryId;\n this.referenceId = options.referenceId;\n this.accountId = options.accountId;\n this.environment = options.environment;\n this.sessionToken = options.sessionToken;\n this.fields = options.fields;\n this.returnCollectedData = options.returnCollectedData;\n\n // Callbacks\n this.onComplete = options.onComplete;\n this.onCanceled = options.onCanceled;\n this.onError = options.onError;\n\n // Theme object\n this.iosThemeObject = options.iosThemeObject;\n this.themeSource = options.themeSource;\n }\n\n private clearListeners() {\n if (this.onCompleteListener) this.onCompleteListener.remove();\n if (this.onCanceledListener) this.onCanceledListener.remove();\n if (this.onErrorListener) this.onErrorListener.remove();\n }\n\n /**\n * Create an Inquiry flow builder based on a template ID.\n *\n * You can find your template ID on the Dashboard under Inquiries > Templates.\n * {@link https://app.withpersona.com/dashboard/inquiry-templates}\n *\n * @param templateId template ID from your Persona Dashboard\n * @return builder for the Inquiry flow\n */\n static fromTemplate(templateId: string) {\n return new TemplateBuilder(makeTemplateId(templateId), null);\n }\n\n /**\n * Create an Inquiry flow builder based on a template ID version.\n *\n * You can find your template ID version on the Dashboard under the\n * settings view of a specific template.\n * {@link https://app.withpersona.com/dashboard/inquiry-templates}\n *\n * @param templateVersion template version from your Persona Dashboard\n * @return builder for the Inquiry flow\n */\n static fromTemplateVersion(templateVersion: string) {\n return new TemplateBuilder(null, makeTemplateVersion(templateVersion));\n }\n\n /**\n * Create an Inquiry flow builder based on an inquiry ID.\n *\n * You will need to generate the inquiry ID on the server. To try it out, you can create an\n * inquiry from the Persona Dashboard under \"Inquiries\". Click on the \"Create Inquiry\" button\n * and copy the inquiry ID from the URL.\n * {@link https://app.withpersona.com/dashboard/inquiries}\n *\n * @param inquiryId inquiry ID from your server\n * @return builder for the Inquiry flow\n */\n static fromInquiry(inquiryId: string) {\n return new InquiryBuilder(makeInquiryId(inquiryId));\n }\n\n /**\n * Launch the Persona Inquiry.\n */\n start() {\n this.onCompleteListener = eventEmitter.addListener(\n 'onComplete',\n (event: {\n inquiryId: string;\n status: string;\n fields: Record<string, RawInquiryField>;\n collectedData: ExternalCollectedData | null;\n }) => {\n if (this.onComplete) {\n let fields: Fields = {};\n for (let key of Object.keys(event.fields || {})) {\n let field = event.fields[key];\n if (field == undefined) {\n fields[key] = new InquiryField.Unknown('null');\n continue;\n }\n switch (field.type) {\n case 'integer':\n fields[key] = new InquiryField.Integer(\n Number.parseInt(field.value)\n );\n break;\n case 'boolean':\n fields[key] = new InquiryField.Boolean(field.value);\n break;\n case 'string':\n fields[key] = new InquiryField.String(field.value);\n break;\n default:\n fields[key] = new InquiryField.Unknown(field.type);\n break;\n }\n }\n\n let collectedData: CollectedData | null = null\n\n let stepData = event.collectedData?.stepData\n if (stepData != null) {\n // Translate the step data from JSON to actual class objects\n let translatedStepData = []\n\n for (let stepDatum of stepData) {\n switch (stepDatum.type) {\n case 'DocumentStepData':\n translatedStepData.push(Object.assign(new DocumentStepData(), stepDatum))\n break;\n case 'GovernmentIdStepData':\n translatedStepData.push(Object.assign(new GovernmentIdStepData(), stepDatum))\n break;\n case 'SelfieStepData':\n translatedStepData.push(Object.assign(new SelfieStepData(), stepDatum))\n break;\n case 'UiStepData':\n translatedStepData.push(Object.assign(new UiStepData(), stepDatum))\n break;\n }\n }\n\n collectedData = {\n stepData: translatedStepData\n }\n }\n\n let extraData: ExtraData = {\n collectedData: collectedData\n }\n\n this.onComplete(event.inquiryId, event.status, fields, extraData);\n }\n this.clearListeners();\n }\n );\n\n this.onCanceledListener = eventEmitter.addListener(\n 'onCanceled',\n (event: { inquiryId?: string; sessionToken?: string }) => {\n if (this.onCanceled)\n this.onCanceled(event.inquiryId, event.sessionToken);\n this.clearListeners();\n }\n );\n\n this.onErrorListener = eventEmitter.addListener(\n 'onError',\n (event: { debugMessage: string }) => {\n if (this.onError) this.onError(new Error(event.debugMessage));\n this.clearListeners();\n }\n );\n\n PersonaInquiry2.startInquiry({\n templateId: this.templateId,\n inquiryId: this.inquiryId,\n referenceId: this.referenceId,\n accountId: this.accountId,\n environment: this.environment,\n sessionToken: this.sessionToken,\n fields: this.fields,\n returnCollectedData: this.returnCollectedData,\n themeSource: this.themeSource,\n iosTheme: processThemeValues(this.iosThemeObject || {}),\n });\n }\n}\n\nclass InquiryBuilder {\n private _inquiryId: InquiryId;\n private _sessionToken?: string;\n\n // Callbacks\n private _onComplete?: OnCompleteCallback;\n private _onCanceled?: OnCanceledCallback;\n private _onError?: OnErrorCallback;\n private _iosThemeObject?: Object;\n private _themeSource: ThemeSource = ThemeSource.SERVER;\n private _fields?: Fields;\n\n constructor(inquiryId: InquiryId) {\n this._inquiryId = inquiryId;\n }\n\n sessionToken(sessionToken: string): InquiryBuilder {\n this._sessionToken = sessionToken;\n\n return this;\n }\n\n onComplete(callback: OnCompleteCallback): InquiryBuilder {\n this._onComplete = callback;\n\n return this;\n }\n\n onCanceled(callback: OnCanceledCallback): InquiryBuilder {\n this._onCanceled = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): InquiryBuilder {\n this._onError = callback;\n\n return this;\n }\n\n /**\n * @deprecated Use iosThemeToUse\n */\n iosTheme(themeObject: Object): InquiryBuilder {\n this._iosThemeObject = themeObject;\n this._themeSource = ThemeSource.CLIENT;\n\n return this;\n }\n\n iosThemeToUse(themeObject: Object, themeSource: ThemeSource): InquiryBuilder {\n this._iosThemeObject = themeObject;\n this._themeSource = themeSource;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n inquiryId: this._inquiryId,\n sessionToken: this._sessionToken,\n onComplete: this._onComplete,\n onCanceled: this._onCanceled,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n themeSource: this._themeSource,\n fields: this._fields,\n });\n }\n}\n\nclass TemplateBuilder {\n private readonly _templateId?: TemplateId;\n private readonly _templateVersion?: TemplateVersion;\n private _accountId?: AccountId;\n private _referenceId?: string;\n private _environment?: Environment;\n private _fields?: Fields;\n private _sessionToken?: string;\n private _returnCollectedData?: boolean;\n\n // Callbacks\n private _onComplete?: OnCompleteCallback;\n private _onCanceled?: OnCanceledCallback;\n private _onError?: OnErrorCallback;\n\n // Customization\n private _iosThemeObject?: Object;\n private _themeSource: ThemeSource = ThemeSource.SERVER;\n\n constructor(\n templateId?: TemplateId | null,\n templateVersion?: TemplateVersion | null\n ) {\n if (templateId != null) {\n this._templateId = templateId;\n } else if (templateVersion != null) {\n this._templateVersion = templateVersion;\n } else {\n throw new InvalidTemplateId(\n `Either templateId or templateVersion needs to be set.`\n );\n }\n return this;\n }\n\n returnCollectedData(returnCollectedData: boolean) {\n this._returnCollectedData = returnCollectedData\n\n return this\n }\n\n referenceId(referenceId: string): TemplateBuilder {\n this._accountId = undefined;\n this._referenceId = referenceId;\n\n return this;\n }\n\n accountId(accountId: string): TemplateBuilder {\n this._referenceId = undefined;\n this._accountId = makeAccountId(accountId);\n\n return this;\n }\n\n environment(environment: Environment): TemplateBuilder {\n this._environment = environment;\n\n return this;\n }\n\n sessionToken(sessionToken: string): TemplateBuilder {\n this._sessionToken = sessionToken;\n\n return this;\n }\n\n fields(fields: Fields): TemplateBuilder {\n this._fields = fields;\n\n return this;\n }\n\n onComplete(callback: OnCompleteCallback): TemplateBuilder {\n this._onComplete = callback;\n\n return this;\n }\n\n onCanceled(callback: OnCanceledCallback): TemplateBuilder {\n this._onCanceled = callback;\n\n return this;\n }\n\n onError(callback: OnErrorCallback): TemplateBuilder {\n this._onError = callback;\n\n return this;\n }\n\n /**\n * @deprecated Use iosThemeToUse\n */\n iosTheme(themeObject: Object): TemplateBuilder {\n this._iosThemeObject = themeObject;\n this._themeSource = ThemeSource.CLIENT;\n\n return this;\n }\n\n iosThemeToUse(themeObject: Object, themeSource: ThemeSource): TemplateBuilder {\n this._iosThemeObject = themeObject;\n this._themeSource = themeSource;\n\n return this;\n }\n\n build(): Inquiry {\n return new Inquiry({\n templateId: this._templateId,\n templateVersion: this._templateVersion,\n accountId: this._accountId,\n referenceId: this._referenceId,\n environment: this._environment,\n sessionToken: this._sessionToken,\n fields: this._fields,\n onComplete: this._onComplete,\n onCanceled: this._onCanceled,\n onError: this._onError,\n iosThemeObject: this._iosThemeObject,\n themeSource: this._themeSource,\n returnCollectedData: this._returnCollectedData,\n });\n }\n}\n\n/**\n * @deprecated Use the `Inquiry` static methods instead\n */\nnamespace InquiryBuilders {\n /**\n * @deprecated Use {@link Inquiry#fromInquiry} instead\n */\n export function fromInquiry(inquiryId: string) {\n return Inquiry.fromInquiry(inquiryId);\n }\n\n /**\n * @deprecated Use {@link Inquiry#fromTemplate} instead\n */\n export function fromTemplate(templateId: string) {\n return Inquiry.fromTemplate(templateId);\n }\n\n /**\n * @deprecated Use {@link Inquiry#fromTemplateVersion} instead\n */\n export function fromTemplateVersion(templateVersion: string) {\n return Inquiry.fromTemplateVersion(templateVersion);\n }\n}\n\nexport default InquiryBuilders;\n"]}
|