@pensasystems/pensa-react-native 0.1.0-beta-2 → 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/PensaSdkReactNative.podspec +1 -1
- package/android/build.gradle +19 -3
- package/android/src/main/java/com/pensasdkreactnative/PensaSdkReactNativeModule.kt +117 -0
- package/ios/PensaSdkReactNative.mm +13 -0
- package/ios/PensaSdkReactNative.swift +111 -0
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +37 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +23 -0
- package/src/types.ts +42 -0
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
|
}
|
|
@@ -37,6 +37,19 @@ RCT_EXTERN_METHOD(showStoreChecklist:(NSString *)globalStoreId
|
|
|
37
37
|
withResolver:(RCTPromiseResolveBlock)resolve
|
|
38
38
|
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
39
39
|
|
|
40
|
+
RCT_EXTERN_METHOD(fetchScanStatuses:(NSArray *)scanIds
|
|
41
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
42
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
43
|
+
|
|
44
|
+
RCT_EXTERN_METHOD(fetchOnDemandReports:(nonnull NSNumber *)scanId
|
|
45
|
+
projectId:(nullable NSNumber *)projectId
|
|
46
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
47
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
48
|
+
|
|
49
|
+
RCT_EXTERN_METHOD(fetchProductImageBase64:(nonnull NSNumber *)productId
|
|
50
|
+
withResolver:(RCTPromiseResolveBlock)resolve
|
|
51
|
+
withRejecter:(RCTPromiseRejectBlock)reject)
|
|
52
|
+
|
|
40
53
|
+ (BOOL)requiresMainQueueSetup
|
|
41
54
|
{
|
|
42
55
|
return NO;
|
|
@@ -118,4 +118,115 @@ class PensaSdkReactNative: NSObject {
|
|
|
118
118
|
resolve(nil)
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
|
+
|
|
122
|
+
@objc(fetchScanStatuses:withResolver:withRejecter:)
|
|
123
|
+
func fetchScanStatuses(
|
|
124
|
+
scanIds: [NSNumber],
|
|
125
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
126
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
127
|
+
) {
|
|
128
|
+
let ids = scanIds.map { $0.intValue }
|
|
129
|
+
|
|
130
|
+
Pensa.shared.fetchScanStatuses(
|
|
131
|
+
scanIds: ids,
|
|
132
|
+
onSuccess: { statuses in
|
|
133
|
+
let mapped: [[String: Any]] = statuses.map { status in
|
|
134
|
+
var dict: [String: Any] = [:]
|
|
135
|
+
|
|
136
|
+
dict["id"] = status.id
|
|
137
|
+
dict["created"] = status.created ?? NSNull()
|
|
138
|
+
dict["fastStatus"] = status.fastStatus ?? NSNull()
|
|
139
|
+
dict["scanTimestamp"] = status.scanTimestamp ?? NSNull()
|
|
140
|
+
dict["scannerId"] = status.scannerId ?? NSNull()
|
|
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
|
+
|
|
153
|
+
return dict
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
resolve(mapped)
|
|
157
|
+
},
|
|
158
|
+
onError: { error in
|
|
159
|
+
reject("FETCH_SCAN_STATUSES_FAILED", error.localizedDescription, error)
|
|
160
|
+
}
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
|
|
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
|
+
var result: [String: Any] = [:]
|
|
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
|
+
]
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
result["facingsSeen"] = [
|
|
196
|
+
"productList": products
|
|
197
|
+
]
|
|
198
|
+
} else {
|
|
199
|
+
result["facingsSeen"] = NSNull()
|
|
200
|
+
}
|
|
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
|
+
|
|
210
|
+
resolve(result)
|
|
211
|
+
},
|
|
212
|
+
onError: { error in
|
|
213
|
+
reject("FETCH_ON_DEMAND_REPORTS_FAILED", error.localizedDescription, error)
|
|
214
|
+
}
|
|
215
|
+
)
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
@objc(fetchProductImageBase64:withResolver:withRejecter:)
|
|
219
|
+
func fetchProductImageBase64(productId: NSNumber,
|
|
220
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
221
|
+
reject: @escaping RCTPromiseRejectBlock) {
|
|
222
|
+
Pensa.shared.fetchProductImageBase64(
|
|
223
|
+
productId: productId.intValue,
|
|
224
|
+
onSuccess: { base64 in
|
|
225
|
+
resolve(base64)
|
|
226
|
+
},
|
|
227
|
+
onError: { error in
|
|
228
|
+
reject("FETCH_PRODUCT_IMAGE_BASE64_FAILED", error.localizedDescription, error)
|
|
229
|
+
}
|
|
230
|
+
)
|
|
231
|
+
}
|
|
121
232
|
}
|
package/lib/module/index.js
CHANGED
|
@@ -37,6 +37,15 @@ export const showStockingScreen = () => {
|
|
|
37
37
|
export const showStoreChecklist = (globalStoreId, guid, sectionKey) => {
|
|
38
38
|
return PensaSdkReactNative.showStoreChecklist(globalStoreId, guid, sectionKey);
|
|
39
39
|
};
|
|
40
|
+
export const fetchScanStatuses = scanIds => {
|
|
41
|
+
return PensaSdkReactNative.fetchScanStatuses(scanIds);
|
|
42
|
+
};
|
|
43
|
+
export const fetchOnDemandReports = (scanId, projectId) => {
|
|
44
|
+
return PensaSdkReactNative.fetchOnDemandReports(scanId, projectId ?? null);
|
|
45
|
+
};
|
|
46
|
+
export const fetchProductImageBase64 = productId => {
|
|
47
|
+
return PensaSdkReactNative.fetchProductImageBase64(productId);
|
|
48
|
+
};
|
|
40
49
|
export * from "./events.js";
|
|
41
50
|
export * from "./types.js";
|
|
42
51
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","PensaSdkReactNative","Proxy","get","Error","initPensa","config","isPensaStarted","showShelfScans","showProductScans","showStoreSearchView","showStoresScreen","showScanArea","scanId","storeId","globalStoreId","showStockingScreen","showStoreChecklist","guid","sectionKey"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","PensaSdkReactNative","Proxy","get","Error","initPensa","config","isPensaStarted","showShelfScans","showProductScans","showStoreSearchView","showStoresScreen","showScanArea","scanId","storeId","globalStoreId","showStockingScreen","showStoreChecklist","guid","sectionKey","fetchScanStatuses","scanIds","fetchOnDemandReports","projectId","fetchProductImageBase64","productId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAGtD,MAAMC,aAAa,GACjB,iFAAiF,GACjFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,mBAAmB,GAAGN,aAAa,CAACM,mBAAmB,GACzDN,aAAa,CAACM,mBAAmB,GACjC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEL,OAAO,MAAMQ,SAAS,GAAIC,MAIzB,IAAoB;EACnB,OAAOL,mBAAmB,CAACI,SAAS,CAACC,MAAM,CAAC;AAC9C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAwB;EACpD,OAAON,mBAAmB,CAACM,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAqB;EACjD,OAAOP,mBAAmB,CAACO,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOR,mBAAmB,CAACQ,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAqB;EACtD,OAAOT,mBAAmB,CAACS,mBAAmB,CAAC,CAAC;AAClD,CAAC;AAED,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAqB;EACnD,OAAOV,mBAAmB,CAACU,gBAAgB,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,MAAc,EACdC,OAAgB,EAChBC,aAAsB,KACJ;EAClB,OAAOd,mBAAmB,CAACW,YAAY,CACrCC,MAAM,EACNC,OAAO,IAAI,IAAI,EACfC,aAAa,IAAI,IACnB,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAqB;EACrD,OAAOf,mBAAmB,CAACe,kBAAkB,CAAC,CAAC;AACjD,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAGA,CAChCF,aAAqB,EACrBG,IAAa,EACbC,UAAmB,KACD;EAClB,OAAOlB,mBAAmB,CAACgB,kBAAkB,CAC3CF,aAAa,EACbG,IAAI,EACJC,UACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,iBAAiB,GAC5BC,OAAiB,IACc;EAC/B,OAAOpB,mBAAmB,CAACmB,iBAAiB,CAACC,OAAO,CAAC;AACvD,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAAGA,CAClCT,MAAc,EACdU,SAAkB,KACe;EACjC,OAAOtB,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IACf,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,uBAAuB,GAClCC,SAAiB,IACG;EACpB,OAAOxB,mBAAmB,CAACuB,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PensaOnDemandReport, PensaScanStatus } from './types';
|
|
1
2
|
export declare const initPensa: (config: {
|
|
2
3
|
clientId: string;
|
|
3
4
|
clientSecret: string;
|
|
@@ -11,6 +12,9 @@ export declare const showStoresScreen: () => Promise<void>;
|
|
|
11
12
|
export declare const showScanArea: (scanId: number, storeId?: number, globalStoreId?: string) => Promise<void>;
|
|
12
13
|
export declare const showStockingScreen: () => Promise<void>;
|
|
13
14
|
export declare const showStoreChecklist: (globalStoreId: string, guid?: string, sectionKey?: string) => Promise<void>;
|
|
15
|
+
export declare const fetchScanStatuses: (scanIds: number[]) => Promise<PensaScanStatus[]>;
|
|
16
|
+
export declare const fetchOnDemandReports: (scanId: number, projectId?: number) => Promise<PensaOnDemandReport>;
|
|
17
|
+
export declare const fetchProductImageBase64: (productId: number) => Promise<string>;
|
|
14
18
|
export * from './events';
|
|
15
19
|
export * from './types';
|
|
16
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmBpE,eAAO,MAAM,SAAS,GAAI,QAAQ;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KAAG,OAAO,CAAC,IAAI,CAEf,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,OAAO,CAEhD,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,OAAO,CAAC,IAAI,CAE7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,OAAO,CAAC,IAAI,CAElD,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,IAAI,CAE/C,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,gBAAgB,MAAM,KACrB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,IAAI,CAEjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,eAAe,MAAM,EACrB,OAAO,MAAM,EACb,aAAa,MAAM,KAClB,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EAAE,KAChB,OAAO,CAAC,eAAe,EAAE,CAE3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,YAAY,MAAM,KACjB,OAAO,CAAC,mBAAmB,CAK7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAClC,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAEhB,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -23,4 +23,41 @@ 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
|
+
};
|
|
30
|
+
export type PensaScanStatus = {
|
|
31
|
+
created: string | null;
|
|
32
|
+
fastStatus: string | null;
|
|
33
|
+
id: number;
|
|
34
|
+
metadata: PensaScanMetadata | null;
|
|
35
|
+
scanTimestamp: string | null;
|
|
36
|
+
scannerId: string | null;
|
|
37
|
+
status: string | null;
|
|
38
|
+
};
|
|
39
|
+
export type PensaOnDemandProduct = {
|
|
40
|
+
brand: string | null;
|
|
41
|
+
brandId: number | null;
|
|
42
|
+
category: string | null;
|
|
43
|
+
categoryId: number | null;
|
|
44
|
+
facings: number | null;
|
|
45
|
+
manufacturer: string | null;
|
|
46
|
+
manufacturerId: number | null;
|
|
47
|
+
product: string | null;
|
|
48
|
+
productId: number | null;
|
|
49
|
+
upc: string | null;
|
|
50
|
+
};
|
|
51
|
+
export type PensaOnDemandReportBucket = {
|
|
52
|
+
productList: PensaOnDemandProduct[];
|
|
53
|
+
};
|
|
54
|
+
export type PensaOnDemandReport = {
|
|
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;
|
|
62
|
+
};
|
|
26
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"}
|
|
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/index.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
import type { PensaOnDemandReport, PensaScanStatus } from './types';
|
|
2
3
|
|
|
3
4
|
const LINKING_ERROR =
|
|
4
5
|
`The package 'pensa-sdk-react-native' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -73,5 +74,27 @@ export const showStoreChecklist = (
|
|
|
73
74
|
);
|
|
74
75
|
};
|
|
75
76
|
|
|
77
|
+
export const fetchScanStatuses = (
|
|
78
|
+
scanIds: number[]
|
|
79
|
+
): Promise<PensaScanStatus[]> => {
|
|
80
|
+
return PensaSdkReactNative.fetchScanStatuses(scanIds);
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export const fetchOnDemandReports = (
|
|
84
|
+
scanId: number,
|
|
85
|
+
projectId?: number
|
|
86
|
+
): Promise<PensaOnDemandReport> => {
|
|
87
|
+
return PensaSdkReactNative.fetchOnDemandReports(
|
|
88
|
+
scanId,
|
|
89
|
+
projectId ?? null
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export const fetchProductImageBase64 = (
|
|
94
|
+
productId: number
|
|
95
|
+
): Promise<string> => {
|
|
96
|
+
return PensaSdkReactNative.fetchProductImageBase64(productId);
|
|
97
|
+
};
|
|
98
|
+
|
|
76
99
|
export * from './events';
|
|
77
100
|
export * from './types';
|
package/src/types.ts
CHANGED
|
@@ -27,3 +27,45 @@ export type PensaEventPayloads = {
|
|
|
27
27
|
onScanUploadFailed: OnScanUploadFailed;
|
|
28
28
|
onCantScanReported: OnCantScanReported;
|
|
29
29
|
};
|
|
30
|
+
|
|
31
|
+
export type PensaScanMetadata = {
|
|
32
|
+
guid: string | null;
|
|
33
|
+
serverUploadStarted: string | null;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export type PensaScanStatus = {
|
|
37
|
+
created: string | null;
|
|
38
|
+
fastStatus: string | null;
|
|
39
|
+
id: number;
|
|
40
|
+
metadata: PensaScanMetadata | null;
|
|
41
|
+
scanTimestamp: string | null;
|
|
42
|
+
scannerId: string | null;
|
|
43
|
+
status: string | null;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export type PensaOnDemandProduct = {
|
|
47
|
+
brand: string | null;
|
|
48
|
+
brandId: number | null;
|
|
49
|
+
category: string | null;
|
|
50
|
+
categoryId: number | null;
|
|
51
|
+
facings: number | null;
|
|
52
|
+
manufacturer: string | null;
|
|
53
|
+
manufacturerId: number | null;
|
|
54
|
+
product: string | null;
|
|
55
|
+
productId: number | null;
|
|
56
|
+
upc: string | null;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export type PensaOnDemandReportBucket = {
|
|
60
|
+
productList: PensaOnDemandProduct[];
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
export type PensaOnDemandReport = {
|
|
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;
|
|
71
|
+
};
|