react-native-persona 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/{RNPersonaInquiry.podspec → RNPersonaInquiry2.podspec} +2 -2
- package/android/README.md +14 -0
- package/android/build.gradle +22 -98
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/com/withpersona/{sdk/reactnative/PersonaInquiryModule.java → sdk2/reactnative/PersonaInquiryModule2.java} +16 -12
- package/android/src/main/java/com/withpersona/{sdk/reactnative/PersonaInquiryPackage.java → sdk2/reactnative/PersonaInquiryPackage2.java} +3 -3
- package/android/src/main/java/com/withpersona/{sdk → sdk2}/reactnative/exceptions/InvalidConfiguration.java +1 -1
- package/android/src/main/res/values/theme.xml +2 -3
- package/ios/{PersonaInquiry.swift → PersonaInquiry2.swift} +13 -13
- package/ios/PersonaInquiryBridge.m +1 -1
- package/lib/commonjs/fields.js +141 -0
- package/lib/commonjs/fields.js.map +1 -0
- package/lib/commonjs/index.js +413 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/util.js +36 -0
- package/lib/commonjs/util.js.map +1 -0
- package/lib/module/fields.js +132 -0
- package/lib/module/fields.js.map +1 -0
- package/lib/module/index.js +380 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/util.js +29 -0
- package/lib/module/util.js.map +1 -0
- package/{generatedTypes/persona-tools/config.d.ts → lib/typescript/persona-tools/Config.d.ts} +0 -0
- package/{generatedTypes → lib/typescript}/persona-tools/Theme.d.ts +0 -0
- package/{generatedTypes → lib/typescript}/persona-tools/index.d.ts +0 -0
- package/{generatedTypes → lib/typescript}/persona-tools/lib/AndroidResourcePrinter.d.ts +2 -2
- package/{generatedTypes → lib/typescript}/persona-tools/lib/prompts.d.ts +0 -0
- package/{generatedTypes → lib/typescript}/persona-tools/tools/AndroidThemeGenerator.d.ts +0 -0
- package/{generatedTypes → lib/typescript}/persona-tools/tools/IosThemeInstructions.d.ts +0 -0
- package/{generatedTypes → lib/typescript}/src/fields.d.ts +0 -0
- package/{generatedTypes → lib/typescript}/src/index.d.ts +6 -5
- package/{generatedTypes → lib/typescript}/src/util.d.ts +0 -0
- package/package.json +73 -17
- package/persona-tools/{config.ts → Config.ts} +7 -7
- package/persona-tools/Theme.ts +107 -107
- package/persona-tools/index.ts +9 -9
- package/persona-tools/lib/AndroidResourcePrinter.ts +4 -4
- package/persona-tools/tools/AndroidThemeGenerator.ts +18 -18
- package/persona-tools/tools/IosThemeInstructions.ts +8 -8
- package/src/fields.ts +7 -7
- package/src/index.ts +24 -23
- package/src/util.ts +2 -2
- package/generatedTypes/persona-tools/lib/AndroidResourcePrinter.spec.d.ts +0 -1
- package/generatedTypes/src/fields.spec.d.ts +0 -1
- package/generatedTypes/src/util.spec.d.ts +0 -1
- package/jest.config.js +0 -10
- package/persona-tools/Theme.js +0 -186
- package/persona-tools/config.js +0 -72
- package/persona-tools/index.js +0 -30
- package/persona-tools/lib/AndroidResourcePrinter.js +0 -573
- package/persona-tools/lib/AndroidResourcePrinter.spec.js +0 -914
- package/persona-tools/lib/AndroidResourcePrinter.spec.ts +0 -952
- package/persona-tools/lib/prompts.js +0 -39
- package/persona-tools/tools/AndroidThemeGenerator.js +0 -55
- package/persona-tools/tools/IosThemeInstructions.js +0 -34
- package/src/fields.js +0 -88
- package/src/fields.spec.js +0 -18
- package/src/fields.spec.ts +0 -17
- package/src/index.js +0 -271
- package/src/util.js +0 -29
- package/src/util.spec.js +0 -17
- package/src/util.spec.ts +0 -22
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { NativeEventEmitter, NativeModules } from 'react-native';
|
|
4
|
+
import { processThemeValues } from './util';
|
|
5
|
+
import { Fields, InquiryField } from './fields';
|
|
6
|
+
export { Fields };
|
|
7
|
+
const {
|
|
8
|
+
PersonaInquiry2
|
|
9
|
+
} = NativeModules; // Using Opaque types + Smart Constructor enforces validation at
|
|
10
|
+
// instantiation time for IDS
|
|
11
|
+
|
|
12
|
+
export class InvalidTemplateId extends Error {}
|
|
13
|
+
export class InvalidTemplateVersion extends Error {}
|
|
14
|
+
export class InvalidInquiryId extends Error {}
|
|
15
|
+
export class InvalidAccountId extends Error {}
|
|
16
|
+
/**
|
|
17
|
+
* Run validations that the string is in proper Inquiry token format
|
|
18
|
+
* and do a type conversion to InquiryId.
|
|
19
|
+
*
|
|
20
|
+
* @param candidate
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
function makeInquiryId(candidate) {
|
|
24
|
+
if (candidate.startsWith('inq_')) return candidate;
|
|
25
|
+
throw new InvalidInquiryId(`Valid template IDs start with "inq_". Received: ${candidate} `);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Run validations that the string is in proper Template token format
|
|
29
|
+
* and do a type conversion to TemplateId.
|
|
30
|
+
*
|
|
31
|
+
* @param candidate
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
function makeTemplateId(candidate) {
|
|
36
|
+
if (candidate.startsWith('itmpl_')) {
|
|
37
|
+
return candidate;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
throw new InvalidTemplateId(`Valid template IDs start with "itmpl_". Received: ${candidate} `);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Run validations that the string is in proper Template Version token format
|
|
44
|
+
* and do a type conversion to TemplateVersion.
|
|
45
|
+
*
|
|
46
|
+
* @param candidate
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
function makeTemplateVersion(candidate) {
|
|
51
|
+
if (candidate.startsWith('itmplv_')) {
|
|
52
|
+
return candidate;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
throw new InvalidTemplateVersion(`Valid template versions start with "itmplv_". Received: ${candidate} `);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Run validations that the string is in proper Template token format
|
|
59
|
+
* and do a type conversion to AccountId.
|
|
60
|
+
*
|
|
61
|
+
* @param candidate
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
function makeAccountId(candidate) {
|
|
66
|
+
if (candidate.startsWith('act_')) {
|
|
67
|
+
return candidate;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
throw new InvalidAccountId(`Valid account IDs start with "act_". Received: ${candidate} `);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* String enum for environments. These strings will be parsed
|
|
74
|
+
* on the native side bridge into Kotlin / Swift enums.
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
export let Environment;
|
|
79
|
+
|
|
80
|
+
(function (Environment) {
|
|
81
|
+
Environment["SANDBOX"] = "sandbox";
|
|
82
|
+
Environment["PRODUCTION"] = "production";
|
|
83
|
+
})(Environment || (Environment = {}));
|
|
84
|
+
|
|
85
|
+
const eventEmitter = new NativeEventEmitter(PersonaInquiry2);
|
|
86
|
+
export class Inquiry {
|
|
87
|
+
constructor(options) {
|
|
88
|
+
_defineProperty(this, "templateId", void 0);
|
|
89
|
+
|
|
90
|
+
_defineProperty(this, "inquiryId", void 0);
|
|
91
|
+
|
|
92
|
+
_defineProperty(this, "referenceId", void 0);
|
|
93
|
+
|
|
94
|
+
_defineProperty(this, "accountId", void 0);
|
|
95
|
+
|
|
96
|
+
_defineProperty(this, "environment", void 0);
|
|
97
|
+
|
|
98
|
+
_defineProperty(this, "sessionToken", void 0);
|
|
99
|
+
|
|
100
|
+
_defineProperty(this, "iosThemeObject", void 0);
|
|
101
|
+
|
|
102
|
+
_defineProperty(this, "fields", void 0);
|
|
103
|
+
|
|
104
|
+
_defineProperty(this, "onComplete", void 0);
|
|
105
|
+
|
|
106
|
+
_defineProperty(this, "onCanceled", void 0);
|
|
107
|
+
|
|
108
|
+
_defineProperty(this, "onError", void 0);
|
|
109
|
+
|
|
110
|
+
_defineProperty(this, "onCompleteListener", void 0);
|
|
111
|
+
|
|
112
|
+
_defineProperty(this, "onCanceledListener", void 0);
|
|
113
|
+
|
|
114
|
+
_defineProperty(this, "onErrorListener", void 0);
|
|
115
|
+
|
|
116
|
+
this.templateId = options.templateId;
|
|
117
|
+
this.inquiryId = options.inquiryId;
|
|
118
|
+
this.referenceId = options.referenceId;
|
|
119
|
+
this.accountId = options.accountId;
|
|
120
|
+
this.environment = options.environment;
|
|
121
|
+
this.sessionToken = options.sessionToken;
|
|
122
|
+
this.fields = options.fields; // Callbacks
|
|
123
|
+
|
|
124
|
+
this.onComplete = options.onComplete;
|
|
125
|
+
this.onCanceled = options.onCanceled;
|
|
126
|
+
this.onError = options.onError; // Theme object
|
|
127
|
+
|
|
128
|
+
this.iosThemeObject = options.iosThemeObject;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
clearListeners() {
|
|
132
|
+
if (this.onCompleteListener) this.onCompleteListener.remove();
|
|
133
|
+
if (this.onCanceledListener) this.onCanceledListener.remove();
|
|
134
|
+
if (this.onErrorListener) this.onErrorListener.remove();
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
start() {
|
|
138
|
+
this.onCompleteListener = eventEmitter.addListener('onComplete', event => {
|
|
139
|
+
if (this.onComplete) {
|
|
140
|
+
let fields = {};
|
|
141
|
+
|
|
142
|
+
for (let key of Object.keys(event.fields || {})) {
|
|
143
|
+
let field = event.fields[key];
|
|
144
|
+
|
|
145
|
+
if (field == undefined) {
|
|
146
|
+
fields[key] = new InquiryField.Unknown('null');
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
switch (field.type) {
|
|
151
|
+
case 'integer':
|
|
152
|
+
fields[key] = new InquiryField.Integer(Number.parseInt(field.value));
|
|
153
|
+
break;
|
|
154
|
+
|
|
155
|
+
case 'boolean':
|
|
156
|
+
fields[key] = new InquiryField.Boolean(field.value);
|
|
157
|
+
break;
|
|
158
|
+
|
|
159
|
+
case 'string':
|
|
160
|
+
fields[key] = new InquiryField.String(field.value);
|
|
161
|
+
break;
|
|
162
|
+
|
|
163
|
+
default:
|
|
164
|
+
fields[key] = new InquiryField.Unknown(field.type);
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
this.onComplete(event.inquiryId, event.status, fields);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
this.clearListeners();
|
|
173
|
+
});
|
|
174
|
+
this.onCanceledListener = eventEmitter.addListener('onCanceled', event => {
|
|
175
|
+
if (this.onCanceled) this.onCanceled(event.inquiryId, event.sessionToken);
|
|
176
|
+
this.clearListeners();
|
|
177
|
+
});
|
|
178
|
+
this.onErrorListener = eventEmitter.addListener('onError', event => {
|
|
179
|
+
if (this.onError) this.onError(new Error(event.debugMessage));
|
|
180
|
+
this.clearListeners();
|
|
181
|
+
});
|
|
182
|
+
PersonaInquiry2.startInquiry({
|
|
183
|
+
templateId: this.templateId,
|
|
184
|
+
inquiryId: this.inquiryId,
|
|
185
|
+
referenceId: this.referenceId,
|
|
186
|
+
accountId: this.accountId,
|
|
187
|
+
environment: this.environment,
|
|
188
|
+
sessionToken: this.sessionToken,
|
|
189
|
+
fields: this.fields,
|
|
190
|
+
iosTheme: processThemeValues(this.iosThemeObject || {})
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
class InquiryBuilder {
|
|
197
|
+
// Callbacks
|
|
198
|
+
constructor(inquiryId) {
|
|
199
|
+
_defineProperty(this, "_inquiryId", void 0);
|
|
200
|
+
|
|
201
|
+
_defineProperty(this, "_sessionToken", void 0);
|
|
202
|
+
|
|
203
|
+
_defineProperty(this, "_onComplete", void 0);
|
|
204
|
+
|
|
205
|
+
_defineProperty(this, "_onCanceled", void 0);
|
|
206
|
+
|
|
207
|
+
_defineProperty(this, "_onError", void 0);
|
|
208
|
+
|
|
209
|
+
_defineProperty(this, "_iosThemeObject", void 0);
|
|
210
|
+
|
|
211
|
+
_defineProperty(this, "_fields", void 0);
|
|
212
|
+
|
|
213
|
+
this._inquiryId = inquiryId;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
sessionToken(sessionToken) {
|
|
217
|
+
this._sessionToken = sessionToken;
|
|
218
|
+
return this;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
onComplete(callback) {
|
|
222
|
+
this._onComplete = callback;
|
|
223
|
+
return this;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
onCanceled(callback) {
|
|
227
|
+
this._onCanceled = callback;
|
|
228
|
+
return this;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
onError(callback) {
|
|
232
|
+
this._onError = callback;
|
|
233
|
+
return this;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
iosTheme(themeObject) {
|
|
237
|
+
this._iosThemeObject = themeObject;
|
|
238
|
+
return this;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
build() {
|
|
242
|
+
return new Inquiry({
|
|
243
|
+
inquiryId: this._inquiryId,
|
|
244
|
+
sessionToken: this._sessionToken,
|
|
245
|
+
onComplete: this._onComplete,
|
|
246
|
+
onCanceled: this._onCanceled,
|
|
247
|
+
onError: this._onError,
|
|
248
|
+
iosThemeObject: this._iosThemeObject,
|
|
249
|
+
fields: this._fields
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
class TemplateBuilder {
|
|
256
|
+
// Callbacks
|
|
257
|
+
// Customization
|
|
258
|
+
constructor(templateId, templateVersion) {
|
|
259
|
+
_defineProperty(this, "_templateId", void 0);
|
|
260
|
+
|
|
261
|
+
_defineProperty(this, "_templateVersion", void 0);
|
|
262
|
+
|
|
263
|
+
_defineProperty(this, "_accountId", void 0);
|
|
264
|
+
|
|
265
|
+
_defineProperty(this, "_referenceId", void 0);
|
|
266
|
+
|
|
267
|
+
_defineProperty(this, "_environment", void 0);
|
|
268
|
+
|
|
269
|
+
_defineProperty(this, "_fields", void 0);
|
|
270
|
+
|
|
271
|
+
_defineProperty(this, "_sessionToken", void 0);
|
|
272
|
+
|
|
273
|
+
_defineProperty(this, "_onComplete", void 0);
|
|
274
|
+
|
|
275
|
+
_defineProperty(this, "_onCanceled", void 0);
|
|
276
|
+
|
|
277
|
+
_defineProperty(this, "_onError", void 0);
|
|
278
|
+
|
|
279
|
+
_defineProperty(this, "_iosThemeObject", void 0);
|
|
280
|
+
|
|
281
|
+
if (templateId != null) {
|
|
282
|
+
this._templateId = templateId;
|
|
283
|
+
} else if (templateVersion != null) {
|
|
284
|
+
this._templateVersion = templateVersion;
|
|
285
|
+
} else {
|
|
286
|
+
throw new InvalidTemplateId(`Either templateId or templateVersion needs to be set.`);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
return this;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
referenceId(referenceId) {
|
|
293
|
+
this._accountId = undefined;
|
|
294
|
+
this._referenceId = referenceId;
|
|
295
|
+
return this;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
accountId(accountId) {
|
|
299
|
+
this._referenceId = undefined;
|
|
300
|
+
this._accountId = makeAccountId(accountId);
|
|
301
|
+
return this;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
environment(environment) {
|
|
305
|
+
this._environment = environment;
|
|
306
|
+
return this;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
sessionToken(sessionToken) {
|
|
310
|
+
this._sessionToken = sessionToken;
|
|
311
|
+
return this;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
fields(fields) {
|
|
315
|
+
this._fields = fields;
|
|
316
|
+
return this;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
onComplete(callback) {
|
|
320
|
+
this._onComplete = callback;
|
|
321
|
+
return this;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
onCanceled(callback) {
|
|
325
|
+
this._onCanceled = callback;
|
|
326
|
+
return this;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
onError(callback) {
|
|
330
|
+
this._onError = callback;
|
|
331
|
+
return this;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
iosTheme(themeObject) {
|
|
335
|
+
this._iosThemeObject = themeObject;
|
|
336
|
+
return this;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
build() {
|
|
340
|
+
return new Inquiry({
|
|
341
|
+
templateId: this._templateId,
|
|
342
|
+
templateVersion: this._templateVersion,
|
|
343
|
+
accountId: this._accountId,
|
|
344
|
+
referenceId: this._referenceId,
|
|
345
|
+
environment: this._environment,
|
|
346
|
+
sessionToken: this._sessionToken,
|
|
347
|
+
fields: this._fields,
|
|
348
|
+
onComplete: this._onComplete,
|
|
349
|
+
onCanceled: this._onCanceled,
|
|
350
|
+
onError: this._onError,
|
|
351
|
+
iosThemeObject: this._iosThemeObject
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
let InquiryBuilders;
|
|
358
|
+
|
|
359
|
+
(function (_InquiryBuilders) {
|
|
360
|
+
function fromInquiry(inquiryId) {
|
|
361
|
+
return new InquiryBuilder(makeInquiryId(inquiryId));
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
_InquiryBuilders.fromInquiry = fromInquiry;
|
|
365
|
+
|
|
366
|
+
function fromTemplate(templateId) {
|
|
367
|
+
return new TemplateBuilder(makeTemplateId(templateId), null);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
_InquiryBuilders.fromTemplate = fromTemplate;
|
|
371
|
+
|
|
372
|
+
function fromTemplateVersion(templateVersion) {
|
|
373
|
+
return new TemplateBuilder(null, makeTemplateVersion(templateVersion));
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
_InquiryBuilders.fromTemplateVersion = fromTemplateVersion;
|
|
377
|
+
})(InquiryBuilders || (InquiryBuilders = {}));
|
|
378
|
+
|
|
379
|
+
export default InquiryBuilders;
|
|
380
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["NativeEventEmitter","NativeModules","processThemeValues","Fields","InquiryField","PersonaInquiry2","InvalidTemplateId","Error","InvalidTemplateVersion","InvalidInquiryId","InvalidAccountId","makeInquiryId","candidate","startsWith","makeTemplateId","makeTemplateVersion","makeAccountId","Environment","eventEmitter","Inquiry","constructor","options","templateId","inquiryId","referenceId","accountId","environment","sessionToken","fields","onComplete","onCanceled","onError","iosThemeObject","clearListeners","onCompleteListener","remove","onCanceledListener","onErrorListener","start","addListener","event","key","Object","keys","field","undefined","Unknown","type","Integer","Number","parseInt","value","Boolean","String","status","debugMessage","startInquiry","iosTheme","InquiryBuilder","_inquiryId","_sessionToken","callback","_onComplete","_onCanceled","_onError","themeObject","_iosThemeObject","build","_fields","TemplateBuilder","templateVersion","_templateId","_templateVersion","_accountId","_referenceId","_environment","fromInquiry","fromTemplate","fromTemplateVersion","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';\nexport { Fields };\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 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\nnamespace InquiryBuilders {\n export function fromInquiry(inquiryId: string) {\n return new InquiryBuilder(makeInquiryId(inquiryId));\n }\n\n export function fromTemplate(templateId: string) {\n return new TemplateBuilder(makeTemplateId(templateId), null);\n }\n\n export function fromTemplateVersion(templateVersion: string) {\n return new TemplateBuilder(null, makeTemplateVersion(templateVersion));\n }\n}\n\nexport default InquiryBuilders;\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
const HEX_REGEX = /^[a-fA-F0-9]{6}$/;
|
|
2
|
+
export function processThemeValues(themeObject) {
|
|
3
|
+
const result = {};
|
|
4
|
+
|
|
5
|
+
for (const [key, value] of Object.entries(themeObject)) {
|
|
6
|
+
if (value === null) {
|
|
7
|
+
continue;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (key.includes('Color')) {
|
|
11
|
+
let colorValue = value;
|
|
12
|
+
|
|
13
|
+
if (value[0] === '#') {
|
|
14
|
+
colorValue = value.slice(1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (HEX_REGEX.test(colorValue)) {
|
|
18
|
+
result[key] = `#${colorValue}`;
|
|
19
|
+
} else {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
} else {
|
|
23
|
+
result[key] = value.toString();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["util.ts"],"names":["HEX_REGEX","processThemeValues","themeObject","result","key","value","Object","entries","includes","colorValue","slice","test","toString"],"mappings":"AAAA,MAAMA,SAAS,GAAG,kBAAlB;AACA,OAAO,SAASC,kBAAT,CAA4BC,WAA5B,EAAiD;AACtD,QAAMC,MAAiC,GAAG,EAA1C;;AACA,OAAK,MAAM,CAACC,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeL,WAAf,CAA3B,EAAwD;AACtD,QAAIG,KAAK,KAAK,IAAd,EAAoB;AAClB;AACD;;AAED,QAAID,GAAG,CAACI,QAAJ,CAAa,OAAb,CAAJ,EAA2B;AACzB,UAAIC,UAAU,GAAGJ,KAAjB;;AACA,UAAIA,KAAK,CAAC,CAAD,CAAL,KAAa,GAAjB,EAAsB;AACpBI,QAAAA,UAAU,GAAGJ,KAAK,CAACK,KAAN,CAAY,CAAZ,CAAb;AACD;;AAED,UAAIV,SAAS,CAACW,IAAV,CAAeF,UAAf,CAAJ,EAAgC;AAC9BN,QAAAA,MAAM,CAACC,GAAD,CAAN,GAAe,IAAGK,UAAW,EAA7B;AACD,OAFD,MAEO;AACL;AACD;AACF,KAXD,MAWO;AACLN,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcC,KAAK,CAACO,QAAN,EAAd;AACD;AACF;;AAED,SAAOT,MAAP;AACD","sourcesContent":["const HEX_REGEX = /^[a-fA-F0-9]{6}$/;\nexport function processThemeValues(themeObject: Object) {\n const result: { [key: string]: string } = {};\n for (const [key, value] of Object.entries(themeObject)) {\n if (value === null) {\n continue;\n }\n\n if (key.includes('Color')) {\n let colorValue = value;\n if (value[0] === '#') {\n colorValue = value.slice(1);\n }\n\n if (HEX_REGEX.test(colorValue)) {\n result[key] = `#${colorValue}`;\n } else {\n continue;\n }\n } else {\n result[key] = value.toString();\n }\n }\n\n return result;\n}\n"]}
|
package/{generatedTypes/persona-tools/config.d.ts → lib/typescript/persona-tools/Config.d.ts}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AndroidThemeObject } from "../Theme";
|
|
2
|
-
import { XMLBuilder } from "xmlbuilder2/lib/interfaces";
|
|
1
|
+
import type { AndroidThemeObject } from "../Theme";
|
|
2
|
+
import type { XMLBuilder } from "xmlbuilder2/lib/interfaces";
|
|
3
3
|
declare class AndroidResourcePrinter {
|
|
4
4
|
theme: AndroidThemeObject;
|
|
5
5
|
root: XMLBuilder;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { Fields } from
|
|
1
|
+
import { Fields } from './fields';
|
|
2
|
+
export { Fields };
|
|
2
3
|
declare const Unique: unique symbol;
|
|
3
4
|
export declare type Opaque<T, Tag> = T & {
|
|
4
5
|
[Unique]: Tag;
|
|
5
6
|
};
|
|
6
|
-
declare type TemplateId = Opaque<string,
|
|
7
|
-
declare type TemplateVersion = Opaque<string,
|
|
8
|
-
declare type InquiryId = Opaque<string,
|
|
9
|
-
declare type AccountId = Opaque<string,
|
|
7
|
+
declare type TemplateId = Opaque<string, 'TemplateId'>;
|
|
8
|
+
declare type TemplateVersion = Opaque<string, 'TemplateVersion'>;
|
|
9
|
+
declare type InquiryId = Opaque<string, 'InquiryId'>;
|
|
10
|
+
declare type AccountId = Opaque<string, 'AccountId'>;
|
|
10
11
|
export declare class InvalidTemplateId extends Error {
|
|
11
12
|
}
|
|
12
13
|
export declare class InvalidTemplateVersion extends Error {
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-persona",
|
|
3
3
|
"title": "React Native Persona",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"description": "Launch a mobile native implementation of the Persona inquiry flow from React Native.",
|
|
6
|
-
"main": "
|
|
6
|
+
"main": "lib/commonjs/index",
|
|
7
|
+
"module": "lib/module/index",
|
|
8
|
+
"types": "lib/typescript/src/index.d.ts",
|
|
9
|
+
"react-native": "src/index",
|
|
10
|
+
"source": "src/index",
|
|
7
11
|
"bin": {
|
|
8
12
|
"persona-tool": "./bin/persona-tool"
|
|
9
13
|
},
|
|
10
14
|
"scripts": {
|
|
11
|
-
"
|
|
12
|
-
"
|
|
15
|
+
"test": "jest",
|
|
16
|
+
"typescript": "tsc --noEmit",
|
|
17
|
+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
18
|
+
"prepare": "bob build",
|
|
19
|
+
"example": "yarn --cwd example",
|
|
20
|
+
"pods": "cd example && pod-install --quiet",
|
|
21
|
+
"bootstrap": "yarn example && yarn && yarn pods"
|
|
13
22
|
},
|
|
14
23
|
"files": [
|
|
15
|
-
"android/build.gradle",
|
|
16
|
-
"android/gradle*",
|
|
17
|
-
"android/src",
|
|
18
|
-
"ios",
|
|
19
24
|
"src",
|
|
20
|
-
"
|
|
25
|
+
"lib",
|
|
26
|
+
"android",
|
|
27
|
+
"ios",
|
|
21
28
|
"bin",
|
|
22
29
|
"persona-tools",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
30
|
+
"RNPersonaInquiry2.podspec",
|
|
31
|
+
"!lib/typescript/example",
|
|
32
|
+
"!android/build",
|
|
33
|
+
"!ios/build",
|
|
34
|
+
"!**/__tests__",
|
|
35
|
+
"!**/__fixtures__",
|
|
36
|
+
"!**/__mocks__"
|
|
27
37
|
],
|
|
28
38
|
"keywords": [
|
|
29
39
|
"react-native",
|
|
@@ -34,24 +44,31 @@
|
|
|
34
44
|
"name": "Persona Identities, Inc.",
|
|
35
45
|
"email": "support@withpersona.com"
|
|
36
46
|
},
|
|
47
|
+
"homepage": "https://docs.withpersona.com/docs/react-native-sdk-v1-integration",
|
|
37
48
|
"license": "MIT",
|
|
38
49
|
"licenseFilename": "LICENSE",
|
|
39
50
|
"readmeFilename": "README.md",
|
|
40
51
|
"peerDependencies": {
|
|
41
|
-
"react": "
|
|
42
|
-
"react-native": "
|
|
52
|
+
"react": "*",
|
|
53
|
+
"react-native": "*"
|
|
43
54
|
},
|
|
44
55
|
"devDependencies": {
|
|
56
|
+
"@react-native-community/eslint-config": "^2.0.0",
|
|
45
57
|
"@types/cli-table": "^0.3.0",
|
|
46
58
|
"@types/inquirer": "^6.5.0",
|
|
47
59
|
"@types/jest": "^26.0.14",
|
|
48
60
|
"@types/node": "^13.13.4",
|
|
49
61
|
"@types/object-path": "^0.11.0",
|
|
50
62
|
"@types/react-native": "^0.62.0",
|
|
63
|
+
"eslint": "^7.2.0",
|
|
64
|
+
"eslint-config-prettier": "^7.0.0",
|
|
65
|
+
"eslint-plugin-prettier": "^3.1.3",
|
|
51
66
|
"jest": "^26.6.3",
|
|
67
|
+
"pod-install": "^0.1.0",
|
|
52
68
|
"prettier": "^2.3.2",
|
|
53
|
-
"react": "
|
|
54
|
-
"react-native": "
|
|
69
|
+
"react": "16.13.0",
|
|
70
|
+
"react-native": "^0.63.4",
|
|
71
|
+
"react-native-builder-bob": "^0.18.2",
|
|
55
72
|
"ts-jest": "^26.4.4",
|
|
56
73
|
"typescript": "^4.3.5"
|
|
57
74
|
},
|
|
@@ -64,5 +81,44 @@
|
|
|
64
81
|
"object-path": "^0.11.8",
|
|
65
82
|
"pkg-up": "^3.1.0",
|
|
66
83
|
"xmlbuilder2": "^2.1.2"
|
|
84
|
+
},
|
|
85
|
+
"jest": {
|
|
86
|
+
"preset": "react-native",
|
|
87
|
+
"modulePathIgnorePatterns": [
|
|
88
|
+
"<rootDir>/example/node_modules",
|
|
89
|
+
"<rootDir>/lib/"
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
"eslintConfig": {
|
|
93
|
+
"root": true,
|
|
94
|
+
"extends": [
|
|
95
|
+
"@react-native-community",
|
|
96
|
+
"prettier"
|
|
97
|
+
],
|
|
98
|
+
"rules": {
|
|
99
|
+
"prettier/prettier": [
|
|
100
|
+
"error",
|
|
101
|
+
{
|
|
102
|
+
"quoteProps": "consistent",
|
|
103
|
+
"singleQuote": true,
|
|
104
|
+
"tabWidth": 2,
|
|
105
|
+
"trailingComma": "es5",
|
|
106
|
+
"useTabs": false
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"eslintIgnore": [
|
|
112
|
+
"node_modules/",
|
|
113
|
+
"lib/"
|
|
114
|
+
],
|
|
115
|
+
"react-native-builder-bob": {
|
|
116
|
+
"source": "src",
|
|
117
|
+
"output": "lib",
|
|
118
|
+
"targets": [
|
|
119
|
+
"commonjs",
|
|
120
|
+
"module",
|
|
121
|
+
"typescript"
|
|
122
|
+
]
|
|
67
123
|
}
|
|
68
124
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { cosmiconfig } from
|
|
2
|
-
import chalk from
|
|
3
|
-
import { ANDROID_THEME_CONFIG_KEY, IOS_THEME_CONFIG_KEY } from
|
|
1
|
+
import { cosmiconfig } from 'cosmiconfig';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { ANDROID_THEME_CONFIG_KEY, IOS_THEME_CONFIG_KEY } from './Theme';
|
|
4
4
|
|
|
5
5
|
export interface ConfigObject {
|
|
6
6
|
androidTheme: { [key: string]: string | null | undefined };
|
|
@@ -14,7 +14,7 @@ class Configuration {
|
|
|
14
14
|
if (this.config) return this.config;
|
|
15
15
|
|
|
16
16
|
try {
|
|
17
|
-
const explorer = cosmiconfig(
|
|
17
|
+
const explorer = cosmiconfig('persona', { packageProp: 'persona' });
|
|
18
18
|
const result = await explorer.search();
|
|
19
19
|
if (result == null) {
|
|
20
20
|
return null;
|
|
@@ -48,7 +48,7 @@ class Configuration {
|
|
|
48
48
|
Missing configuration.
|
|
49
49
|
|
|
50
50
|
In order to use this tool, it must be configured using a ${chalk.yellow(
|
|
51
|
-
|
|
51
|
+
'persona'
|
|
52
52
|
)} object within
|
|
53
53
|
your package.json.
|
|
54
54
|
|
|
@@ -60,12 +60,12 @@ To get started, paste the following configuration into your package.json
|
|
|
60
60
|
"persona": {
|
|
61
61
|
"androidTheme": {
|
|
62
62
|
` +
|
|
63
|
-
androidThemeLines.join(
|
|
63
|
+
androidThemeLines.join(',\n') +
|
|
64
64
|
`
|
|
65
65
|
},
|
|
66
66
|
"iosTheme": {
|
|
67
67
|
` +
|
|
68
|
-
iosThemeLines.join(
|
|
68
|
+
iosThemeLines.join(',\n') +
|
|
69
69
|
`
|
|
70
70
|
}
|
|
71
71
|
}
|