@pensasystems/pensa-react-native 0.1.0-beta-3 → 0.1.0-beta-4
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/android/build.gradle +19 -3
- package/android/src/main/java/com/pensasdkreactnative/PensaSdkReactNativeModule.kt +117 -0
- package/ios/PensaSdkReactNative.swift +56 -37
- package/lib/typescript/src/types.d.ts +14 -12
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/types.ts +15 -12
package/android/build.gradle
CHANGED
|
@@ -7,7 +7,15 @@ buildscript {
|
|
|
7
7
|
google()
|
|
8
8
|
mavenCentral()
|
|
9
9
|
maven {
|
|
10
|
-
url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
|
|
10
|
+
//url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
|
|
11
|
+
url = uri("https://pensasystems.jfrog.io/artifactory/pensa-dev-maven-sdk-android-virtual/")
|
|
12
|
+
credentials {
|
|
13
|
+
username = "ci-cd-service"
|
|
14
|
+
password = "GChhw(Ywq&-qu1@@"
|
|
15
|
+
}
|
|
16
|
+
authentication {
|
|
17
|
+
basic(BasicAuthentication)
|
|
18
|
+
}
|
|
11
19
|
}
|
|
12
20
|
}
|
|
13
21
|
|
|
@@ -75,7 +83,15 @@ repositories {
|
|
|
75
83
|
mavenCentral()
|
|
76
84
|
google()
|
|
77
85
|
maven {
|
|
78
|
-
url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
|
|
86
|
+
//url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
|
|
87
|
+
url = uri("https://pensasystems.jfrog.io/artifactory/pensa-dev-maven-sdk-android-virtual/")
|
|
88
|
+
credentials {
|
|
89
|
+
username = "ci-cd-service"
|
|
90
|
+
password = "GChhw(Ywq&-qu1@@"
|
|
91
|
+
}
|
|
92
|
+
authentication {
|
|
93
|
+
basic(BasicAuthentication)
|
|
94
|
+
}
|
|
79
95
|
}
|
|
80
96
|
}
|
|
81
97
|
|
|
@@ -83,7 +99,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
|
83
99
|
|
|
84
100
|
dependencies {
|
|
85
101
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
|
|
86
|
-
implementation "com.pensasystems:pensasdk:1.0.
|
|
102
|
+
implementation "com.pensasystems:pensasdk:1.0.13"
|
|
87
103
|
implementation "com.facebook.react:react-android"
|
|
88
104
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
89
105
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
package com.pensasdkreactnative
|
|
2
2
|
|
|
3
|
+
import com.facebook.react.bridge.Arguments
|
|
3
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
5
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
5
6
|
import com.facebook.react.bridge.ReactMethod
|
|
6
7
|
import com.facebook.react.bridge.Promise
|
|
8
|
+
import com.facebook.react.bridge.ReadableArray
|
|
7
9
|
import com.facebook.react.bridge.ReadableMap
|
|
8
10
|
import com.pensasystems.pensasdk.PensaSdk
|
|
9
11
|
import com.pensasystems.pensasdk.PensaSdkConfiguration
|
|
@@ -169,4 +171,119 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
169
171
|
promise.reject("NO_ACTIVITY", "Current activity is null")
|
|
170
172
|
}
|
|
171
173
|
}
|
|
174
|
+
|
|
175
|
+
@ReactMethod
|
|
176
|
+
fun fetchScanStatuses(scanIds: ReadableArray, promise: Promise) {
|
|
177
|
+
try {
|
|
178
|
+
val ids = mutableListOf<Int>()
|
|
179
|
+
for (i in 0 until scanIds.size()) {
|
|
180
|
+
ids.add(scanIds.getInt(i))
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
PensaSdk.fetchScanStatuses(
|
|
184
|
+
scanIds = ids,
|
|
185
|
+
onSuccess = { statuses ->
|
|
186
|
+
val rnList = statuses.map { status ->
|
|
187
|
+
val map = Arguments.createMap()
|
|
188
|
+
map.putInt("id", status.id)
|
|
189
|
+
map.putString("created", status.created)
|
|
190
|
+
map.putString("fastStatus", status.fastStatus)
|
|
191
|
+
map.putString("scanTimestamp", status.scanTimestamp)
|
|
192
|
+
map.putString("scannerId", status.scannerId)
|
|
193
|
+
map.putString("status", status.status)
|
|
194
|
+
|
|
195
|
+
val metadata = Arguments.createMap()
|
|
196
|
+
metadata.putString("guid", status.metadata?.guid)
|
|
197
|
+
metadata.putString("serverUploadStarted", status.metadata?.serverUploadStarted)
|
|
198
|
+
map.putMap("metadata", metadata)
|
|
199
|
+
|
|
200
|
+
map
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
val result = Arguments.createArray()
|
|
204
|
+
rnList.forEach { result.pushMap(it) }
|
|
205
|
+
promise.resolve(result)
|
|
206
|
+
|
|
207
|
+
},
|
|
208
|
+
onError = { error ->
|
|
209
|
+
promise.reject("FETCH_SCAN_STATUSES_FAILED", error)
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
} catch (e: Exception) {
|
|
213
|
+
promise.reject("FETCH_SCAN_STATUSES_EXCEPTION", e)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
@ReactMethod
|
|
218
|
+
fun fetchOnDemandReports(scanId: Int, projectId: Int?, promise: Promise) {
|
|
219
|
+
try {
|
|
220
|
+
PensaSdk.fetchOnDemandReports(
|
|
221
|
+
scanId = scanId,
|
|
222
|
+
projectId = projectId,
|
|
223
|
+
onSuccess = { report ->
|
|
224
|
+
val result = Arguments.createMap()
|
|
225
|
+
|
|
226
|
+
report.facingsSeen?.let { bucket ->
|
|
227
|
+
val productsArray = Arguments.createArray()
|
|
228
|
+
bucket.productList.forEach { product ->
|
|
229
|
+
val p = Arguments.createMap()
|
|
230
|
+
p.putString("brand", product.brand)
|
|
231
|
+
p.putInt("brandId", product.brandId ?: 0)
|
|
232
|
+
p.putString("category", product.category)
|
|
233
|
+
p.putInt("categoryId", product.categoryId ?: 0)
|
|
234
|
+
p.putInt("facings", product.facings ?: 0)
|
|
235
|
+
p.putString("manufacturer", product.manufacturer)
|
|
236
|
+
p.putInt("manufacturerId", product.manufacturerId ?: 0)
|
|
237
|
+
p.putString("product", product.product)
|
|
238
|
+
p.putInt("productId", product.productId ?: 0)
|
|
239
|
+
p.putString("upc", product.upc)
|
|
240
|
+
productsArray.pushMap(p)
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
val bucketMap = Arguments.createMap()
|
|
244
|
+
bucketMap.putArray("productList", productsArray)
|
|
245
|
+
result.putMap("facingsSeen", bucketMap)
|
|
246
|
+
|
|
247
|
+
} ?: result.putNull("facingsSeen")
|
|
248
|
+
|
|
249
|
+
result.putInt("projectId", report.projectId ?: 0)
|
|
250
|
+
result.putString("projectName", report.projectName)
|
|
251
|
+
result.putInt("projectReportId", report.projectReportId ?: 0)
|
|
252
|
+
result.putString("projectReportName", report.projectReportName)
|
|
253
|
+
result.putInt("shelfId", report.shelfId ?: 0)
|
|
254
|
+
result.putString("shelfName", report.shelfName)
|
|
255
|
+
|
|
256
|
+
promise.resolve(result)
|
|
257
|
+
},
|
|
258
|
+
onError = { error ->
|
|
259
|
+
promise.reject("FETCH_ON_DEMAND_REPORTS_FAILED", error)
|
|
260
|
+
}
|
|
261
|
+
)
|
|
262
|
+
} catch (e: Exception) {
|
|
263
|
+
promise.reject("ON_DEMAND_EXCEPTION", e)
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
@ReactMethod
|
|
268
|
+
fun fetchProductImageBase64(productId: Int, promise: Promise) {
|
|
269
|
+
try {
|
|
270
|
+
val activity = reactApplicationContext.currentActivity
|
|
271
|
+
if (activity != null) {
|
|
272
|
+
PensaSdk.fetchProductImageBase64(
|
|
273
|
+
context = activity,
|
|
274
|
+
productId = productId,
|
|
275
|
+
onSuccess = { base64 ->
|
|
276
|
+
promise.resolve(base64)
|
|
277
|
+
},
|
|
278
|
+
onError = { error ->
|
|
279
|
+
promise.reject("FETCH_PRODUCT_IMAGE_FAILED", error)
|
|
280
|
+
}
|
|
281
|
+
)
|
|
282
|
+
} else {
|
|
283
|
+
promise.reject("NO_ACTIVITY", "Current activity is null")
|
|
284
|
+
}
|
|
285
|
+
} catch (e: Exception) {
|
|
286
|
+
promise.reject("FETCH_PRODUCT_IMAGE_EXCEPTION", e)
|
|
287
|
+
}
|
|
288
|
+
}
|
|
172
289
|
}
|
|
@@ -120,9 +120,11 @@ class PensaSdkReactNative: NSObject {
|
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
@objc(fetchScanStatuses:withResolver:withRejecter:)
|
|
123
|
-
func fetchScanStatuses(
|
|
124
|
-
|
|
125
|
-
|
|
123
|
+
func fetchScanStatuses(
|
|
124
|
+
scanIds: [NSNumber],
|
|
125
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
126
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
127
|
+
) {
|
|
126
128
|
let ids = scanIds.map { $0.intValue }
|
|
127
129
|
|
|
128
130
|
Pensa.shared.fetchScanStatuses(
|
|
@@ -130,24 +132,27 @@ class PensaSdkReactNative: NSObject {
|
|
|
130
132
|
onSuccess: { statuses in
|
|
131
133
|
let mapped: [[String: Any]] = statuses.map { status in
|
|
132
134
|
var dict: [String: Any] = [:]
|
|
133
|
-
|
|
135
|
+
|
|
136
|
+
dict["id"] = status.id
|
|
134
137
|
dict["created"] = status.created ?? NSNull()
|
|
135
138
|
dict["fastStatus"] = status.fastStatus ?? NSNull()
|
|
136
|
-
dict["frameHeight"] = status.frameHeight as Any
|
|
137
|
-
dict["frameWidth"] = status.frameWidth as Any
|
|
138
|
-
dict["hasOutOfServiceSegment"] = status.hasOutOfServiceSegment as Any
|
|
139
|
-
dict["id"] = status.id
|
|
140
|
-
dict["imageCaptureQuality"] = status.imageCaptureQuality ?? NSNull()
|
|
141
|
-
dict["publish"] = status.publish as Any
|
|
142
|
-
dict["scanAreaId"] = status.scanAreaId as Any
|
|
143
|
-
dict["scanMetadataGuid"] = status.scanMetadataGuid ?? NSNull()
|
|
144
|
-
dict["scanMetadataServerUploadStarted"] = status.scanMetadataServerUploadStarted ?? NSNull()
|
|
145
139
|
dict["scanTimestamp"] = status.scanTimestamp ?? NSNull()
|
|
146
|
-
dict["scannerId"] = status.scannerId
|
|
147
|
-
dict["shelfScanPeriodId"] = status.shelfScanPeriodId as Any
|
|
140
|
+
dict["scannerId"] = status.scannerId ?? NSNull()
|
|
148
141
|
dict["status"] = status.status ?? NSNull()
|
|
142
|
+
|
|
143
|
+
// metadata
|
|
144
|
+
if let metadata = status.metadata {
|
|
145
|
+
dict["metadata"] = [
|
|
146
|
+
"guid": metadata.guid ?? NSNull(),
|
|
147
|
+
"serverUploadStarted": metadata.serverUploadStarted ?? NSNull()
|
|
148
|
+
]
|
|
149
|
+
} else {
|
|
150
|
+
dict["metadata"] = NSNull()
|
|
151
|
+
}
|
|
152
|
+
|
|
149
153
|
return dict
|
|
150
154
|
}
|
|
155
|
+
|
|
151
156
|
resolve(mapped)
|
|
152
157
|
},
|
|
153
158
|
onError: { error in
|
|
@@ -157,37 +162,51 @@ class PensaSdkReactNative: NSObject {
|
|
|
157
162
|
}
|
|
158
163
|
|
|
159
164
|
@objc(fetchOnDemandReports:projectId:withResolver:withRejecter:)
|
|
160
|
-
func fetchOnDemandReports(
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
165
|
+
func fetchOnDemandReports(
|
|
166
|
+
scanId: NSNumber,
|
|
167
|
+
projectId: NSNumber?,
|
|
168
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
169
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
170
|
+
) {
|
|
171
|
+
|
|
164
172
|
Pensa.shared.fetchOnDemandReports(
|
|
165
173
|
scanId: scanId.intValue,
|
|
166
174
|
projectId: projectId?.intValue,
|
|
167
175
|
onSuccess: { report in
|
|
168
176
|
var result: [String: Any] = [:]
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
177
|
+
|
|
178
|
+
// facingsSeen bucket
|
|
179
|
+
if let bucket = report.facingsSeen {
|
|
180
|
+
let products = bucket.productList.map { product -> [String: Any] in
|
|
181
|
+
return [
|
|
182
|
+
"brand": product.brand ?? NSNull(),
|
|
183
|
+
"brandId": product.brandId as Any,
|
|
184
|
+
"category": product.category ?? NSNull(),
|
|
185
|
+
"categoryId": product.categoryId as Any,
|
|
186
|
+
"facings": product.facings as Any,
|
|
187
|
+
"manufacturer": product.manufacturer ?? NSNull(),
|
|
188
|
+
"manufacturerId": product.manufacturerId as Any,
|
|
189
|
+
"product": product.product ?? NSNull(),
|
|
190
|
+
"productId": product.productId as Any,
|
|
191
|
+
"upc": product.upc ?? NSNull()
|
|
192
|
+
]
|
|
185
193
|
}
|
|
186
|
-
|
|
194
|
+
|
|
195
|
+
result["facingsSeen"] = [
|
|
196
|
+
"productList": products
|
|
197
|
+
]
|
|
187
198
|
} else {
|
|
188
|
-
result["
|
|
199
|
+
result["facingsSeen"] = NSNull()
|
|
189
200
|
}
|
|
190
201
|
|
|
202
|
+
// Scalar fields
|
|
203
|
+
result["projectId"] = report.projectId as Any
|
|
204
|
+
result["projectName"] = report.projectName ?? NSNull()
|
|
205
|
+
result["projectReportId"] = report.projectReportId as Any
|
|
206
|
+
result["projectReportName"] = report.projectReportName ?? NSNull()
|
|
207
|
+
result["shelfId"] = report.shelfId as Any
|
|
208
|
+
result["shelfName"] = report.shelfName ?? NSNull()
|
|
209
|
+
|
|
191
210
|
resolve(result)
|
|
192
211
|
},
|
|
193
212
|
onError: { error in
|
|
@@ -23,22 +23,17 @@ export type PensaEventPayloads = {
|
|
|
23
23
|
onScanUploadFailed: OnScanUploadFailed;
|
|
24
24
|
onCantScanReported: OnCantScanReported;
|
|
25
25
|
};
|
|
26
|
+
export type PensaScanMetadata = {
|
|
27
|
+
guid: string | null;
|
|
28
|
+
serverUploadStarted: string | null;
|
|
29
|
+
};
|
|
26
30
|
export type PensaScanStatus = {
|
|
27
|
-
captureType: string | null;
|
|
28
31
|
created: string | null;
|
|
29
32
|
fastStatus: string | null;
|
|
30
|
-
frameHeight: number | null;
|
|
31
|
-
frameWidth: number | null;
|
|
32
|
-
hasOutOfServiceSegment: boolean | null;
|
|
33
33
|
id: number;
|
|
34
|
-
|
|
35
|
-
publish: boolean | null;
|
|
36
|
-
scanAreaId: number | null;
|
|
37
|
-
scanMetadataGuid: string | null;
|
|
38
|
-
scanMetadataServerUploadStarted: string | null;
|
|
34
|
+
metadata: PensaScanMetadata | null;
|
|
39
35
|
scanTimestamp: string | null;
|
|
40
|
-
scannerId:
|
|
41
|
-
shelfScanPeriodId: number | null;
|
|
36
|
+
scannerId: string | null;
|
|
42
37
|
status: string | null;
|
|
43
38
|
};
|
|
44
39
|
export type PensaOnDemandProduct = {
|
|
@@ -46,6 +41,7 @@ export type PensaOnDemandProduct = {
|
|
|
46
41
|
brandId: number | null;
|
|
47
42
|
category: string | null;
|
|
48
43
|
categoryId: number | null;
|
|
44
|
+
facings: number | null;
|
|
49
45
|
manufacturer: string | null;
|
|
50
46
|
manufacturerId: number | null;
|
|
51
47
|
product: string | null;
|
|
@@ -56,6 +52,12 @@ export type PensaOnDemandReportBucket = {
|
|
|
56
52
|
productList: PensaOnDemandProduct[];
|
|
57
53
|
};
|
|
58
54
|
export type PensaOnDemandReport = {
|
|
59
|
-
|
|
55
|
+
facingsSeen: PensaOnDemandReportBucket | null;
|
|
56
|
+
projectId: number | null;
|
|
57
|
+
projectName: string | null;
|
|
58
|
+
projectReportId: number | null;
|
|
59
|
+
projectReportName: string | null;
|
|
60
|
+
shelfId: number | null;
|
|
61
|
+
shelfName: string | null;
|
|
60
62
|
};
|
|
61
63
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0BAA0B,EAAE,0BAA0B,CAAC;IACvD,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pensasystems/pensa-react-native",
|
|
3
|
-
"version": "0.1.0-beta-
|
|
3
|
+
"version": "0.1.0-beta-4",
|
|
4
4
|
"description": "The Pensa Mobile App SDK is a developer toolkit designed to simplify adding Pensa’s capabilities to your mobile applications. It provides pre-built libraries, tools, and APIs to accelerate development and integration, offering streamlined SDK integration, easy initialization, and comprehensive functionality. With the Pensa SDK, you can enhance your app’s features or seamlessly integrate with other services for a cohesive user experience.",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/module/index.js",
|
package/src/types.ts
CHANGED
|
@@ -28,22 +28,18 @@ export type PensaEventPayloads = {
|
|
|
28
28
|
onCantScanReported: OnCantScanReported;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
+
export type PensaScanMetadata = {
|
|
32
|
+
guid: string | null;
|
|
33
|
+
serverUploadStarted: string | null;
|
|
34
|
+
};
|
|
35
|
+
|
|
31
36
|
export type PensaScanStatus = {
|
|
32
|
-
captureType: string | null;
|
|
33
37
|
created: string | null;
|
|
34
38
|
fastStatus: string | null;
|
|
35
|
-
frameHeight: number | null;
|
|
36
|
-
frameWidth: number | null;
|
|
37
|
-
hasOutOfServiceSegment: boolean | null;
|
|
38
39
|
id: number;
|
|
39
|
-
|
|
40
|
-
publish: boolean | null;
|
|
41
|
-
scanAreaId: number | null;
|
|
42
|
-
scanMetadataGuid: string | null;
|
|
43
|
-
scanMetadataServerUploadStarted: string | null;
|
|
40
|
+
metadata: PensaScanMetadata | null;
|
|
44
41
|
scanTimestamp: string | null;
|
|
45
|
-
scannerId:
|
|
46
|
-
shelfScanPeriodId: number | null;
|
|
42
|
+
scannerId: string | null;
|
|
47
43
|
status: string | null;
|
|
48
44
|
};
|
|
49
45
|
|
|
@@ -52,6 +48,7 @@ export type PensaOnDemandProduct = {
|
|
|
52
48
|
brandId: number | null;
|
|
53
49
|
category: string | null;
|
|
54
50
|
categoryId: number | null;
|
|
51
|
+
facings: number | null;
|
|
55
52
|
manufacturer: string | null;
|
|
56
53
|
manufacturerId: number | null;
|
|
57
54
|
product: string | null;
|
|
@@ -64,5 +61,11 @@ export type PensaOnDemandReportBucket = {
|
|
|
64
61
|
};
|
|
65
62
|
|
|
66
63
|
export type PensaOnDemandReport = {
|
|
67
|
-
|
|
64
|
+
facingsSeen: PensaOnDemandReportBucket | null;
|
|
65
|
+
projectId: number | null;
|
|
66
|
+
projectName: string | null;
|
|
67
|
+
projectReportId: number | null;
|
|
68
|
+
projectReportName: string | null;
|
|
69
|
+
shelfId: number | null;
|
|
70
|
+
shelfName: string | null;
|
|
68
71
|
};
|