@pensasystems/pensa-react-native 0.1.0-beta-3 → 0.1.0-beta-5
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/PensaSdkReactNative.podspec +1 -1
- package/android/build.gradle +19 -3
- package/android/src/main/java/com/pensasdkreactnative/PensaSdkReactNativeModule.kt +117 -0
- package/ios/PensaSdkReactNative.swift +77 -48
- 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 as Any?) ?? NSNull(),
|
|
147
|
+
"serverUploadStarted": (metadata.serverUploadStarted as Any?) ?? 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
|
|
@@ -156,45 +161,69 @@ class PensaSdkReactNative: NSObject {
|
|
|
156
161
|
)
|
|
157
162
|
}
|
|
158
163
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
164
|
+
@objc(fetchOnDemandReports:projectId:withResolver:withRejecter:)
|
|
165
|
+
func fetchOnDemandReports(
|
|
166
|
+
scanId: NSNumber,
|
|
167
|
+
projectId: NSNumber?,
|
|
168
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
169
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
170
|
+
) {
|
|
171
|
+
|
|
172
|
+
Pensa.shared.fetchOnDemandReports(
|
|
173
|
+
scanId: scanId.intValue,
|
|
174
|
+
projectId: projectId?.intValue,
|
|
175
|
+
onSuccess: { report in
|
|
176
|
+
|
|
177
|
+
func rn(_ value: Any?) -> Any { value ?? NSNull() }
|
|
178
|
+
|
|
179
|
+
var result: [String: Any] = [
|
|
180
|
+
"shelfId": rn(report.shelfId),
|
|
181
|
+
"shelfName": rn(report.shelfName)
|
|
182
|
+
]
|
|
183
|
+
|
|
184
|
+
if let item = report.facingsSeen {
|
|
185
|
+
var itemDict: [String: Any] = [
|
|
186
|
+
"projectId": rn(item.projectId),
|
|
187
|
+
"projectName": rn(item.projectName),
|
|
188
|
+
"projectReportId": rn(item.projectReportId),
|
|
189
|
+
"projectReportName": rn(item.projectReportName)
|
|
190
|
+
]
|
|
191
|
+
|
|
192
|
+
if let bucket = item.report {
|
|
173
193
|
let products: [[String: Any]] = bucket.productList.map { product in
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
194
|
+
return [
|
|
195
|
+
"brand": rn(product.brand),
|
|
196
|
+
"brandId": rn(product.brandId),
|
|
197
|
+
"category": rn(product.category),
|
|
198
|
+
"categoryId": rn(product.categoryId),
|
|
199
|
+
"facings": rn(product.facings),
|
|
200
|
+
"manufacturer": rn(product.manufacturer),
|
|
201
|
+
"manufacturerId": rn(product.manufacturerId),
|
|
202
|
+
"product": rn(product.product),
|
|
203
|
+
"productId": rn(product.productId),
|
|
204
|
+
"upc": rn(product.upc)
|
|
205
|
+
]
|
|
185
206
|
}
|
|
186
|
-
|
|
207
|
+
|
|
208
|
+
itemDict["report"] = [
|
|
209
|
+
"productList": products
|
|
210
|
+
]
|
|
187
211
|
} else {
|
|
188
|
-
|
|
212
|
+
itemDict["report"] = NSNull()
|
|
189
213
|
}
|
|
190
214
|
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
|
|
215
|
+
result["facingsSeen"] = itemDict
|
|
216
|
+
} else {
|
|
217
|
+
result["facingsSeen"] = NSNull()
|
|
195
218
|
}
|
|
196
|
-
|
|
197
|
-
|
|
219
|
+
|
|
220
|
+
resolve(result)
|
|
221
|
+
},
|
|
222
|
+
onError: { error in
|
|
223
|
+
reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
|
|
224
|
+
}
|
|
225
|
+
)
|
|
226
|
+
}
|
|
198
227
|
|
|
199
228
|
@objc(fetchProductImageBase64:withResolver:withRejecter:)
|
|
200
229
|
func fetchProductImageBase64(productId: NSNumber,
|
|
@@ -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-5",
|
|
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
|
};
|