react-native-persona 2.7.0 → 2.7.2
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/RNPersonaInquiry2.podspec +2 -2
- package/android/build.gradle +8 -12
- package/android/gradle.properties +0 -1
- package/android/src/main/java/com/withpersona/sdk2/reactnative/PersonaInquiryModule2.java +7 -0
- package/ios/PersonaInquiry2.swift +10 -3
- package/lib/commonjs/fields.js +9 -44
- package/lib/commonjs/fields.js.map +1 -1
- package/lib/commonjs/index.js +73 -206
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/persona-tool/AndroidResourcePrinter.js +48 -83
- package/lib/commonjs/persona-tool/AndroidResourcePrinter.js.map +1 -1
- package/lib/commonjs/persona-tool/Config.js +3 -20
- package/lib/commonjs/persona-tool/Config.js.map +1 -1
- package/lib/commonjs/persona-tool/Theme.js +12 -36
- package/lib/commonjs/persona-tool/Theme.js.map +1 -1
- package/lib/commonjs/persona-tool/index.js +0 -10
- package/lib/commonjs/persona-tool/index.js.map +1 -1
- package/lib/commonjs/persona-tool/prompts.js +0 -6
- package/lib/commonjs/persona-tool/prompts.js.map +1 -1
- package/lib/commonjs/persona-tool/tools/AndroidThemeGenerator.js +2 -27
- package/lib/commonjs/persona-tool/tools/AndroidThemeGenerator.js.map +1 -1
- package/lib/commonjs/persona-tool/tools/IosThemeInstructions.js +0 -10
- package/lib/commonjs/persona-tool/tools/IosThemeInstructions.js.map +1 -1
- package/lib/commonjs/util.js +0 -6
- package/lib/commonjs/util.js.map +1 -1
- package/lib/commonjs/versions.js +0 -5
- package/lib/commonjs/versions.js.map +1 -1
- package/lib/module/fields.js +9 -43
- package/lib/module/fields.js.map +1 -1
- package/lib/module/index.js +70 -177
- package/lib/module/index.js.map +1 -1
- package/lib/module/persona-tool/AndroidResourcePrinter.js +48 -82
- package/lib/module/persona-tool/AndroidResourcePrinter.js.map +1 -1
- package/lib/module/persona-tool/Config.js +3 -15
- package/lib/module/persona-tool/Config.js.map +1 -1
- package/lib/module/persona-tool/Theme.js +10 -28
- package/lib/module/persona-tool/Theme.js.map +1 -1
- package/lib/module/persona-tool/index.js +0 -5
- package/lib/module/persona-tool/index.js.map +1 -1
- package/lib/module/persona-tool/prompts.js.map +1 -1
- package/lib/module/persona-tool/tools/AndroidThemeGenerator.js +2 -8
- package/lib/module/persona-tool/tools/AndroidThemeGenerator.js.map +1 -1
- package/lib/module/persona-tool/tools/IosThemeInstructions.js +0 -5
- package/lib/module/persona-tool/tools/IosThemeInstructions.js.map +1 -1
- package/lib/module/util.js +0 -5
- package/lib/module/util.js.map +1 -1
- package/lib/module/versions.js +0 -1
- package/lib/module/versions.js.map +1 -1
- package/lib/typescript/fields.d.ts +2 -2
- package/lib/typescript/index.d.ts +14 -8
- package/lib/typescript/persona-tool/Theme.d.ts +3 -3
- package/package.json +2 -2
- package/src/index.ts +20 -0
|
@@ -25,11 +25,11 @@ Pod::Spec.new do |s|
|
|
|
25
25
|
|
|
26
26
|
s.default_subspec = 'Core'
|
|
27
27
|
s.subspec 'Core' do |ss|
|
|
28
|
-
ss.dependency 'PersonaInquirySDK2', '2.12.
|
|
28
|
+
ss.dependency 'PersonaInquirySDK2', '2.12.5'
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
s.subspec 'Nfc' do |ss|
|
|
32
|
-
ss.dependency 'PersonaNfc', '2.12.
|
|
32
|
+
ss.dependency 'PersonaNfc', '2.12.5'
|
|
33
33
|
ss.dependency 'OpenSSL-Universal', '1.1.180'
|
|
34
34
|
end
|
|
35
35
|
end
|
package/android/build.gradle
CHANGED
|
@@ -7,7 +7,6 @@ buildscript {
|
|
|
7
7
|
repositories {
|
|
8
8
|
google()
|
|
9
9
|
mavenCentral()
|
|
10
|
-
jcenter()
|
|
11
10
|
}
|
|
12
11
|
|
|
13
12
|
dependencies {
|
|
@@ -24,6 +23,7 @@ def safeExtGet(prop, fallback) {
|
|
|
24
23
|
|
|
25
24
|
android {
|
|
26
25
|
compileSdkVersion safeExtGet('compileSdkVersion', DEFAULT_COMPILE_SDK_VERSION)
|
|
26
|
+
namespace = "com.withpersona.sdk.reactnative"
|
|
27
27
|
defaultConfig {
|
|
28
28
|
minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
|
|
29
29
|
targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
|
|
@@ -43,29 +43,25 @@ android {
|
|
|
43
43
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
44
44
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
45
45
|
}
|
|
46
|
+
dexOptions {
|
|
47
|
+
preDexLibraries = false
|
|
48
|
+
}
|
|
46
49
|
}
|
|
47
50
|
|
|
48
51
|
repositories {
|
|
49
|
-
mavenLocal()
|
|
50
|
-
maven {
|
|
51
|
-
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
52
|
-
url("$rootDir/../node_modules/react-native/android")
|
|
53
|
-
}
|
|
54
52
|
google()
|
|
53
|
+
mavenLocal()
|
|
55
54
|
mavenCentral()
|
|
56
|
-
jcenter()
|
|
57
55
|
maven {
|
|
58
56
|
url "https://sdk.withpersona.com/android/releases"
|
|
57
|
+
url 'https://jitpack.io'
|
|
59
58
|
}
|
|
60
|
-
google()
|
|
61
|
-
mavenCentral()
|
|
62
|
-
maven { url 'https://jitpack.io' }
|
|
63
59
|
}
|
|
64
60
|
|
|
65
61
|
dependencies {
|
|
66
62
|
//noinspection GradleDynamicVersion
|
|
67
|
-
|
|
63
|
+
implementation("com.facebook.react:react-android")
|
|
68
64
|
|
|
69
65
|
// NB: be sure to bump `nfc-impl` in example/android/app/build.gradle as well
|
|
70
|
-
implementation 'com.withpersona.sdk2:inquiry:2.
|
|
66
|
+
implementation 'com.withpersona.sdk2:inquiry:2.10.4'
|
|
71
67
|
}
|
|
@@ -15,6 +15,7 @@ import com.facebook.react.bridge.ReadableMap;
|
|
|
15
15
|
import com.facebook.react.bridge.WritableArray;
|
|
16
16
|
import com.facebook.react.bridge.WritableMap;
|
|
17
17
|
import com.facebook.react.modules.core.DeviceEventManagerModule;
|
|
18
|
+
import com.withpersona.sdk.reactnative.R;
|
|
18
19
|
import com.withpersona.sdk2.inquiry.ClientThemeSource;
|
|
19
20
|
import com.withpersona.sdk2.inquiry.Environment;
|
|
20
21
|
import com.withpersona.sdk2.inquiry.Fields;
|
|
@@ -54,6 +55,7 @@ public class PersonaInquiryModule2 extends ReactContextBaseJavaModule
|
|
|
54
55
|
private static final String RETURN_COLLECTED_DATA = "returnCollectedData";
|
|
55
56
|
private static final String THEME_SOURCE = "themeSource";
|
|
56
57
|
private static final String ROUTING_COUNTRY = "routingCountry";
|
|
58
|
+
private static final String LOCALE = "locale";
|
|
57
59
|
|
|
58
60
|
private final ReactApplicationContext reactContext;
|
|
59
61
|
|
|
@@ -346,6 +348,11 @@ public class PersonaInquiryModule2 extends ReactContextBaseJavaModule
|
|
|
346
348
|
builder = builder.routingCountry(routingCountry);
|
|
347
349
|
}
|
|
348
350
|
|
|
351
|
+
String locale = options.hasKey(LOCALE) ? options.getString(LOCALE) : null;
|
|
352
|
+
if (locale != null) {
|
|
353
|
+
builder = builder.locale(locale);
|
|
354
|
+
}
|
|
355
|
+
|
|
349
356
|
ReadableMap fields = options.hasKey(FIELDS) ? options.getMap(FIELDS) : null;
|
|
350
357
|
|
|
351
358
|
if (fields != null) {
|
|
@@ -51,6 +51,7 @@ class PersonaInquiry2: RCTEventEmitter {
|
|
|
51
51
|
let fieldsObject = options["fields"] as? [String: [String: Any]]
|
|
52
52
|
let returnCollectedData = options["returnCollectedData"] as? Bool ?? false
|
|
53
53
|
let routingCountry = options["routingCountry"] as? String
|
|
54
|
+
let locale = options["locale"] as? String
|
|
54
55
|
|
|
55
56
|
var nfcAdapter: InquiryNfcAdapter? = nil
|
|
56
57
|
#if canImport(PersonaNfc)
|
|
@@ -65,6 +66,7 @@ class PersonaInquiry2: RCTEventEmitter {
|
|
|
65
66
|
.nfcAdapter(nfcAdapter)
|
|
66
67
|
.collectionDelegate(returnCollectedData ? self : nil)
|
|
67
68
|
.routingCountry(routingCountry)
|
|
69
|
+
.locale(locale)
|
|
68
70
|
.build()
|
|
69
71
|
} else if let templateId {
|
|
70
72
|
inquiry = Inquiry.from(templateId: templateId, delegate: self)
|
|
@@ -76,6 +78,7 @@ class PersonaInquiry2: RCTEventEmitter {
|
|
|
76
78
|
.nfcAdapter(nfcAdapter)
|
|
77
79
|
.collectionDelegate(returnCollectedData ? self : nil)
|
|
78
80
|
.routingCountry(routingCountry)
|
|
81
|
+
.locale(locale)
|
|
79
82
|
.build()
|
|
80
83
|
} else if let templateVersion {
|
|
81
84
|
inquiry = Inquiry.from(templateVersion: templateVersion, delegate: self)
|
|
@@ -87,6 +90,7 @@ class PersonaInquiry2: RCTEventEmitter {
|
|
|
87
90
|
.nfcAdapter(nfcAdapter)
|
|
88
91
|
.collectionDelegate(returnCollectedData ? self : nil)
|
|
89
92
|
.routingCountry(routingCountry)
|
|
93
|
+
.locale(locale)
|
|
90
94
|
.build()
|
|
91
95
|
}
|
|
92
96
|
|
|
@@ -579,7 +583,8 @@ extension PersonaInquiry2 {
|
|
|
579
583
|
let loadingAnimationAssetPath = Bundle(for: PersonaInquiry2.self).path(forResource: loadingAnimationAssetName, ofType: "json") {
|
|
580
584
|
let customLoadingAnimationAsset = InquiryTheme.AnimationAsset(
|
|
581
585
|
path: loadingAnimationAssetPath,
|
|
582
|
-
size: CGSize(width: loadingAnimationAssetWidth, height: loadingAnimationAssetHeight)
|
|
586
|
+
size: CGSize(width: loadingAnimationAssetWidth, height: loadingAnimationAssetHeight),
|
|
587
|
+
loopMode: .loop
|
|
583
588
|
)
|
|
584
589
|
|
|
585
590
|
theme.loadingAnimation = customLoadingAnimationAsset
|
|
@@ -591,7 +596,8 @@ extension PersonaInquiry2 {
|
|
|
591
596
|
let processingAnimationAssetPath = Bundle(for: PersonaInquiry2.self).path(forResource: processingAnimationAssetName, ofType: "json") {
|
|
592
597
|
let customProcessingAnimationAsset = InquiryTheme.AnimationAsset(
|
|
593
598
|
path: processingAnimationAssetPath,
|
|
594
|
-
size: CGSize(width: processingAnimationAssetWidth, height: processingAnimationAssetHeight)
|
|
599
|
+
size: CGSize(width: processingAnimationAssetWidth, height: processingAnimationAssetHeight),
|
|
600
|
+
loopMode: .loop
|
|
595
601
|
)
|
|
596
602
|
|
|
597
603
|
theme.processingAnimation = customProcessingAnimationAsset
|
|
@@ -603,7 +609,8 @@ extension PersonaInquiry2 {
|
|
|
603
609
|
let path = Bundle(for: PersonaInquiry2.self).path(forResource: assetName, ofType: "json") {
|
|
604
610
|
let customAsset = InquiryTheme.AnimationAsset(
|
|
605
611
|
path: path,
|
|
606
|
-
size: CGSize(width: width, height: height)
|
|
612
|
+
size: CGSize(width: width, height: height),
|
|
613
|
+
loopMode: .loop
|
|
607
614
|
)
|
|
608
615
|
|
|
609
616
|
theme.selfieAsset = customAsset
|
package/lib/commonjs/fields.js
CHANGED
|
@@ -4,138 +4,103 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.InquiryField = exports.Fields = void 0;
|
|
7
|
-
|
|
8
|
-
function
|
|
9
|
-
|
|
7
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
9
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
10
10
|
let InquiryField;
|
|
11
11
|
exports.InquiryField = InquiryField;
|
|
12
|
-
|
|
13
12
|
(function (_InquiryField) {
|
|
14
13
|
class Integer {
|
|
15
14
|
constructor(value) {
|
|
16
15
|
_defineProperty(this, "type", 'integer');
|
|
17
|
-
|
|
18
16
|
_defineProperty(this, "value", void 0);
|
|
19
|
-
|
|
20
17
|
this.value = value;
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
}
|
|
24
|
-
|
|
25
20
|
_InquiryField.Integer = Integer;
|
|
26
|
-
|
|
27
21
|
class String {
|
|
28
22
|
constructor(value) {
|
|
29
23
|
_defineProperty(this, "type", 'string');
|
|
30
|
-
|
|
31
24
|
_defineProperty(this, "value", void 0);
|
|
32
|
-
|
|
33
25
|
this.value = value;
|
|
34
26
|
}
|
|
35
|
-
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
_InquiryField.String = String;
|
|
39
|
-
|
|
40
29
|
class Boolean {
|
|
41
30
|
constructor(value) {
|
|
42
31
|
_defineProperty(this, "type", 'boolean');
|
|
43
|
-
|
|
44
32
|
_defineProperty(this, "value", void 0);
|
|
45
|
-
|
|
46
33
|
this.value = value;
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
}
|
|
50
|
-
|
|
51
36
|
_InquiryField.Boolean = Boolean;
|
|
52
|
-
|
|
53
37
|
class Unknown {
|
|
54
38
|
constructor(type) {
|
|
55
39
|
_defineProperty(this, "type", void 0);
|
|
56
|
-
|
|
57
40
|
this.type = type;
|
|
58
41
|
}
|
|
59
|
-
|
|
60
42
|
}
|
|
61
|
-
|
|
62
43
|
_InquiryField.Unknown = Unknown;
|
|
63
|
-
|
|
64
44
|
function parse(_ref) {
|
|
65
45
|
let {
|
|
66
46
|
type,
|
|
67
47
|
value
|
|
68
48
|
} = _ref;
|
|
69
|
-
|
|
70
49
|
if (value == null) {
|
|
71
50
|
return null;
|
|
72
51
|
}
|
|
73
|
-
|
|
74
52
|
switch (type) {
|
|
75
53
|
case 'integer':
|
|
76
54
|
return new InquiryField.Integer(Number.parseInt(value));
|
|
77
|
-
|
|
78
55
|
case 'string':
|
|
79
56
|
return new InquiryField.String(value);
|
|
80
|
-
|
|
81
57
|
case 'boolean':
|
|
82
58
|
return new InquiryField.Boolean(JSON.parse(value));
|
|
83
|
-
|
|
84
59
|
case 'unknown':
|
|
85
60
|
return new InquiryField.Unknown(value);
|
|
86
|
-
|
|
87
61
|
default:
|
|
88
62
|
return new InquiryField.Unknown(type);
|
|
89
63
|
}
|
|
90
64
|
}
|
|
91
|
-
|
|
92
65
|
_InquiryField.parse = parse;
|
|
93
66
|
})(InquiryField || (exports.InquiryField = InquiryField = {}));
|
|
94
|
-
|
|
95
67
|
let Fields;
|
|
96
68
|
exports.Fields = Fields;
|
|
97
|
-
|
|
98
69
|
(function (_Fields) {
|
|
99
70
|
function builder() {
|
|
100
71
|
return new Fields.Builder();
|
|
101
72
|
}
|
|
102
|
-
|
|
103
73
|
_Fields.builder = builder;
|
|
104
|
-
|
|
105
74
|
class Builder {
|
|
106
75
|
constructor() {
|
|
107
76
|
_defineProperty(this, "_fields", void 0);
|
|
108
|
-
|
|
109
77
|
this._fields = {};
|
|
110
78
|
}
|
|
111
|
-
|
|
112
79
|
integer(fieldKey, value) {
|
|
113
|
-
this._fields = {
|
|
80
|
+
this._fields = {
|
|
81
|
+
...this._fields,
|
|
114
82
|
[fieldKey]: new InquiryField.Integer(value)
|
|
115
83
|
};
|
|
116
84
|
return this;
|
|
117
85
|
}
|
|
118
|
-
|
|
119
86
|
boolean(fieldKey, value) {
|
|
120
|
-
this._fields = {
|
|
87
|
+
this._fields = {
|
|
88
|
+
...this._fields,
|
|
121
89
|
[fieldKey]: new InquiryField.Boolean(value)
|
|
122
90
|
};
|
|
123
91
|
return this;
|
|
124
92
|
}
|
|
125
|
-
|
|
126
93
|
string(fieldKey, value) {
|
|
127
|
-
this._fields = {
|
|
94
|
+
this._fields = {
|
|
95
|
+
...this._fields,
|
|
128
96
|
[fieldKey]: new InquiryField.String(value)
|
|
129
97
|
};
|
|
130
98
|
return this;
|
|
131
99
|
}
|
|
132
|
-
|
|
133
100
|
build() {
|
|
134
101
|
return this._fields;
|
|
135
102
|
}
|
|
136
|
-
|
|
137
103
|
}
|
|
138
|
-
|
|
139
104
|
_Fields.Builder = Builder;
|
|
140
105
|
})(Fields || (exports.Fields = Fields = {}));
|
|
141
106
|
//# sourceMappingURL=fields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["InquiryField","exports","_InquiryField","Integer","constructor","value","_defineProperty","String","Boolean","Unknown","type","parse","_ref","Number","parseInt","JSON","Fields","_Fields","builder","Builder","_fields","integer","fieldKey","boolean","string","build"],"sources":["fields.ts"],"sourcesContent":["interface InquiryField {\n readonly type: string;\n}\n\nexport type RawInquiryField = {\n type: string;\n value?: any;\n};\n\nexport namespace InquiryField {\n export class Integer implements InquiryField {\n readonly type: string = 'integer';\n readonly value?: number;\n\n constructor(value?: number) {\n this.value = value;\n }\n }\n\n export class String implements InquiryField {\n readonly type: string = 'string';\n readonly value?: string;\n\n constructor(value?: string) {\n this.value = value;\n }\n }\n\n export class Boolean implements InquiryField {\n readonly type: string = 'boolean';\n readonly value?: boolean;\n\n constructor(value?: boolean) {\n this.value = value;\n }\n }\n\n export class Unknown implements InquiryField {\n readonly type: string;\n\n constructor(type: string) {\n this.type = type;\n }\n }\n\n export function parse({ type, value }: RawInquiryField): InquiryField | null {\n if (value == null) {\n return null;\n }\n switch (type) {\n case 'integer':\n return new InquiryField.Integer(Number.parseInt(value));\n case 'string':\n return new InquiryField.String(value);\n case 'boolean':\n return new InquiryField.Boolean(JSON.parse(value));\n case 'unknown':\n return new InquiryField.Unknown(value);\n default:\n return new InquiryField.Unknown(type);\n }\n }\n}\n\nexport type Fields = Record<string, InquiryField | null>;\n\nexport namespace Fields {\n export function builder(): Builder {\n return new Fields.Builder();\n }\n\n export class Builder {\n private _fields: Record<string, InquiryField>;\n\n constructor() {\n this._fields = {};\n }\n\n public integer(fieldKey: string, value?: number) {\n this._fields = {\n ...this._fields,\n [fieldKey]: new InquiryField.Integer(value),\n };\n\n return this;\n }\n\n public boolean(fieldKey: string, value?: boolean) {\n this._fields = {\n ...this._fields,\n [fieldKey]: new InquiryField.Boolean(value),\n };\n\n return this;\n }\n\n public string(fieldKey: string, value?: string) {\n this._fields = {\n ...this._fields,\n [fieldKey]: new InquiryField.String(value),\n };\n\n return this;\n }\n\n public build(): Fields {\n return this._fields;\n }\n }\n}\n"],"mappings":"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"}
|