@pensasystems/pensa-react-native 0.1.0-beta-14 → 0.1.0-beta-16

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.
@@ -15,11 +15,11 @@ Pod::Spec.new do |s|
15
15
 
16
16
  s.source_files = "ios/**/*.{h,m,mm,swift}"
17
17
 
18
- if respond_to?(:install_modules_dependencies, true)
18
+ if respond_to?(:instcall_modules_dependencies, true)
19
19
  install_modules_dependencies(s)
20
20
  else
21
21
  s.dependency "React-Core"
22
22
  end
23
23
 
24
- s.dependency "PensaSdk", "~> 1.1.2"
24
+ s.dependency "PensaSdk", "~> 1.1.3"
25
25
  end
@@ -7,15 +7,7 @@ buildscript {
7
7
  google()
8
8
  mavenCentral()
9
9
  maven {
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
- }
10
+ url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
19
11
  }
20
12
  }
21
13
 
@@ -83,15 +75,7 @@ repositories {
83
75
  mavenCentral()
84
76
  google()
85
77
  maven {
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
- }
78
+ url = uri("https://sdk.pensasystems.net/pensa-sdk-android")
95
79
  }
96
80
  }
97
81
 
@@ -99,7 +83,7 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
99
83
 
100
84
  dependencies {
101
85
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5'
102
- implementation "com.pensasystems:pensasdk:1.0.19"
86
+ implementation "com.pensasystems:pensasdk:1.0.22"
103
87
  implementation "com.facebook.react:react-android"
104
88
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
105
89
  }
@@ -11,6 +11,7 @@ import com.facebook.react.bridge.ReadableType
11
11
  import com.pensasystems.pensasdk.PensaSdk
12
12
  import com.pensasystems.pensasdk.PensaSdkConfiguration
13
13
  import com.pensasystems.pensasdk.model.PensaReportType
14
+ import com.pensasystems.pensasdk.model.PensaShelfItem
14
15
 
15
16
  class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
16
17
  ReactContextBaseJavaModule(reactContext) {
@@ -215,9 +216,13 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
215
216
  }
216
217
 
217
218
  @ReactMethod
218
- fun fetchOnDemandReports(scanId: Int, projectId: Int?, reportTypes: ReadableArray?, promise: Promise) {
219
+ fun fetchOnDemandReports(
220
+ scanId: Int,
221
+ projectId: Int?,
222
+ reportTypes: ReadableArray?,
223
+ promise: Promise
224
+ ) {
219
225
  try {
220
-
221
226
  val finalReportTypes = parseReportTypes(reportTypes)
222
227
 
223
228
  PensaSdk.fetchOnDemandReports(
@@ -225,98 +230,65 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
225
230
  projectId = projectId,
226
231
  reportTypes = finalReportTypes,
227
232
  onSuccess = { report ->
228
-
229
233
  val result = Arguments.createMap()
230
234
 
231
- report.facingsSeen?.let { bucket ->
232
- val productsArray = Arguments.createArray()
233
- bucket.productList.forEach { product ->
234
- val p = Arguments.createMap()
235
- p.putString("brand", product.brand)
236
-
237
- val brandId = product.brandId
238
- if (brandId != null) p.putInt("brandId", brandId) else p.putNull("brandId")
239
-
240
- p.putString("category", product.category)
241
-
242
- val categoryId = product.categoryId
243
- if (categoryId != null) p.putInt("categoryId", categoryId) else p.putNull("categoryId")
244
-
245
- val expectedFacings = product.expectedFacings
246
- if (expectedFacings != null) p.putInt("expectedFacings", expectedFacings) else p.putNull("expectedFacings")
235
+ fun toProductMap(p: com.pensasystems.pensasdk.model.PensaOnDemandProduct) =
236
+ Arguments.createMap().apply {
237
+ putString("brand", p.brand)
238
+ p.brandId?.let { putInt("brandId", it) } ?: putNull("brandId")
247
239
 
248
- val facings = product.facings
249
- if (facings != null) p.putInt("facings", facings) else p.putNull("facings")
240
+ putString("category", p.category)
241
+ p.categoryId?.let { putInt("categoryId", it) } ?: putNull("categoryId")
250
242
 
251
- p.putString("manufacturer", product.manufacturer)
243
+ p.expectedFacings?.let { putInt("expectedFacings", it) } ?: putNull("expectedFacings")
244
+ p.facings?.let { putInt("facings", it) } ?: putNull("facings")
252
245
 
253
- val manufacturerId = product.manufacturerId
254
- if (manufacturerId != null) p.putInt("manufacturerId", manufacturerId) else p.putNull("manufacturerId")
246
+ putString("manufacturer", p.manufacturer)
247
+ p.manufacturerId?.let { putInt("manufacturerId", it) } ?: putNull("manufacturerId")
255
248
 
256
- p.putString("product", product.product)
249
+ putString("product", p.product)
250
+ p.productId?.let { putInt("productId", it) } ?: putNull("productId")
257
251
 
258
- val productId = product.productId
259
- if (productId != null) p.putInt("productId", productId) else p.putNull("productId")
260
-
261
- p.putString("upc", product.upc)
262
-
263
- productsArray.pushMap(p)
252
+ putString("upc", p.upc)
264
253
  }
265
- val bucketMap = Arguments.createMap()
266
- bucketMap.putArray("productList", productsArray)
267
- result.putMap("facingsSeen", bucketMap)
268
- } ?: result.putNull("facingsSeen")
269
-
270
- report.itemsSeen?.let { bucket ->
271
- val productsArray = Arguments.createArray()
272
- bucket.productList.forEach { product ->
273
- val p = Arguments.createMap()
274
- p.putString("brand", product.brand)
275
-
276
- val brandId = product.brandId
277
- if (brandId != null) p.putInt("brandId", brandId) else p.putNull("brandId")
278
-
279
- p.putString("category", product.category)
280
254
 
281
- val categoryId = product.categoryId
282
- if (categoryId != null) p.putInt("categoryId", categoryId) else p.putNull("categoryId")
283
-
284
- val facings = product.facings
285
- if (facings != null) p.putInt("facings", facings) else p.putNull("facings")
286
-
287
- p.putString("manufacturer", product.manufacturer)
288
-
289
- val manufacturerId = product.manufacturerId
290
- if (manufacturerId != null) p.putInt("manufacturerId", manufacturerId) else p.putNull("manufacturerId")
291
-
292
- p.putString("product", product.product)
293
-
294
- val productId = product.productId
295
- if (productId != null) p.putInt("productId", productId) else p.putNull("productId")
255
+ fun toBucketMap(b: com.pensasystems.pensasdk.model.PensaOnDemandReportBucket) =
256
+ Arguments.createMap().apply {
257
+ val arr = Arguments.createArray()
258
+ b.productList.forEach { arr.pushMap(toProductMap(it)) }
259
+ putArray("productList", arr)
260
+ }
296
261
 
297
- p.putString("upc", product.upc)
262
+ fun putBucket(key: String, bucket: com.pensasystems.pensasdk.model.PensaOnDemandReportBucket?) {
263
+ if (bucket == null) result.putNull(key) else result.putMap(key, toBucketMap(bucket))
264
+ }
298
265
 
299
- productsArray.pushMap(p)
266
+ // Fill only requested
267
+ finalReportTypes.distinct().forEach { t ->
268
+ when (t) {
269
+ PensaReportType.FACINGS_SEEN -> putBucket("facingsSeen", report.facingsSeen)
270
+ PensaReportType.FULL_FACINGS -> putBucket("fullFacings", report.fullFacings)
271
+ PensaReportType.FULL_FACINGS_AND_PRODUCT_POSITIONS ->
272
+ putBucket("fullFacingsAndProductPositions", report.fullFacingsAndProductPositions)
273
+ PensaReportType.ITEMS_SEEN -> putBucket("itemsSeen", report.itemsSeen)
274
+ PensaReportType.NEW_PRODUCTS -> putBucket("newProducts", report.newProducts)
275
+ PensaReportType.NEW_PRODUCT_PACKAGING -> putBucket("newProductPackaging", report.newProductPackaging)
276
+ PensaReportType.NO_OOS -> putBucket("noOos", report.noOos)
277
+ PensaReportType.OOS -> putBucket("oos", report.oos)
278
+ PensaReportType.PRODUCT_POSITIONS -> putBucket("productPositions", report.productPositions)
279
+ PensaReportType.SCAN_FAILED -> putBucket("scanFailed", report.scanFailed)
280
+ PensaReportType.SCAN_REJECTED -> putBucket("scanRejected", report.scanRejected)
281
+ PensaReportType.SCAN_SKIPPED -> putBucket("scanSkipped", report.scanSkipped)
300
282
  }
301
- val bucketMap = Arguments.createMap()
302
- bucketMap.putArray("productList", productsArray)
303
- result.putMap("itemsSeen", bucketMap)
304
- } ?: result.putNull("itemsSeen")
305
-
306
- val projectIdVal = report.projectId
307
- if (projectIdVal != null) result.putInt("projectId", projectIdVal) else result.putNull("projectId")
283
+ }
308
284
 
285
+ // Other fields
286
+ report.projectId?.let { result.putInt("projectId", it) } ?: result.putNull("projectId")
309
287
  result.putString("projectName", report.projectName)
310
-
311
- val projectReportIdVal = report.projectReportId
312
- if (projectReportIdVal != null) result.putInt("projectReportId", projectReportIdVal) else result.putNull("projectReportId")
313
-
288
+ report.projectReportId?.let { result.putInt("projectReportId", it) } ?: result.putNull("projectReportId")
314
289
  result.putString("projectReportName", report.projectReportName)
315
290
  result.putString("realogramSignedUrl", report.realogramSignedUrl)
316
-
317
- val shelfIdVal = report.shelfId
318
- if (shelfIdVal != null) result.putInt("shelfId", shelfIdVal) else result.putNull("shelfId")
319
-
291
+ report.shelfId?.let { result.putInt("shelfId", it) } ?: result.putNull("shelfId")
320
292
  result.putString("shelfName", report.shelfName)
321
293
  result.putString("status", report.status)
322
294
 
@@ -354,6 +326,32 @@ class PensaSdkReactNativeModule(reactContext: ReactApplicationContext) :
354
326
  }
355
327
  }
356
328
 
329
+ @ReactMethod
330
+ fun fetchShelves(globalStoreId: String, promise: Promise) {
331
+ try {
332
+ PensaSdk.fetchShelves(
333
+ globalStoreId = globalStoreId,
334
+ onSuccess = { shelves ->
335
+ val result = Arguments.createArray()
336
+
337
+ shelves.forEach { shelf ->
338
+ val map = Arguments.createMap()
339
+ map.putInt("id", shelf.id)
340
+ map.putString("name", shelf.name)
341
+ result.pushMap(map)
342
+ }
343
+
344
+ promise.resolve(result)
345
+ },
346
+ onError = { error ->
347
+ promise.reject("FETCH_SHELVES_FAILED", error)
348
+ }
349
+ )
350
+ } catch (e: Exception) {
351
+ promise.reject("FETCH_SHELVES_EXCEPTION", e)
352
+ }
353
+ }
354
+
357
355
  // Helpers
358
356
 
359
357
  private fun parseReportTypes(reportTypes: ReadableArray?): List<PensaReportType> {
@@ -37,6 +37,10 @@ RCT_EXTERN_METHOD(showStoreChecklist:(NSString *)globalStoreId
37
37
  withResolver:(RCTPromiseResolveBlock)resolve
38
38
  withRejecter:(RCTPromiseRejectBlock)reject)
39
39
 
40
+ RCT_EXTERN_METHOD(fetchShelves:(NSString *)globalStoreId
41
+ withResolver:(RCTPromiseResolveBlock)resolve
42
+ withRejecter:(RCTPromiseRejectBlock)reject)
43
+
40
44
  @end
41
45
 
42
46
  @interface RCT_EXTERN_MODULE(PensaEventEmitter, RCTEventEmitter)
@@ -52,6 +52,10 @@ RCT_EXTERN_METHOD(fetchProductImageBase64:(nonnull NSNumber *)productId
52
52
  withResolver:(RCTPromiseResolveBlock)resolve
53
53
  withRejecter:(RCTPromiseRejectBlock)reject)
54
54
 
55
+ RCT_EXTERN_METHOD(fetchShelves:(NSString *)globalStoreId
56
+ withResolver:(RCTPromiseResolveBlock)resolve
57
+ withRejecter:(RCTPromiseRejectBlock)reject)
58
+
55
59
  + (BOOL)requiresMainQueueSetup
56
60
  {
57
61
  return NO;
@@ -265,4 +265,26 @@ class PensaSdkReactNative: NSObject {
265
265
  }
266
266
  )
267
267
  }
268
+
269
+ @objc(fetchShelves:withResolver:withRejecter:)
270
+ func fetchShelves(globalStoreId: NSString,
271
+ resolve: @escaping RCTPromiseResolveBlock,
272
+ reject: @escaping RCTPromiseRejectBlock) {
273
+ Pensa.shared.fetchShelves(
274
+ globalStoreId: globalStoreId as String,
275
+ onSuccess: { shelves in
276
+ let mapped: [[String: Any]] = shelves.map { shelf in
277
+ [
278
+ "id": shelf.id,
279
+ "name": shelf.name ?? NSNull()
280
+ ]
281
+ }
282
+
283
+ resolve(mapped)
284
+ },
285
+ onError: { error in
286
+ reject("FETCH_SHELVES_FAILED", error.localizedDescription, error)
287
+ }
288
+ )
289
+ }
268
290
  }
@@ -48,6 +48,9 @@ export const fetchOnDemandReports = (scanId, projectId, reportTypes) => {
48
48
  export const fetchProductImageBase64 = productId => {
49
49
  return PensaSdkReactNative.fetchProductImageBase64(productId);
50
50
  };
51
+ export const fetchShelves = globalStoreId => {
52
+ return PensaSdkReactNative.fetchShelves(globalStoreId);
53
+ };
51
54
  export * from "./events.js";
52
55
  export * from "./types.js";
53
56
  export { PensaReportType } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","PensaReportType","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","reportTypes","finalReportTypes","length","ITEMS_SEEN","fetchProductImageBase64","productId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,SAASC,eAAe,QAAQ,YAAS;AAEzC,MAAMC,aAAa,GACjB,iFAAiF,GACjFF,QAAQ,CAACG,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,mBAAmB,GAAGP,aAAa,CAACO,mBAAmB,GACzDP,aAAa,CAACO,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,EAClBC,WAA+B,KACE;EACjC,MAAMC,gBAAgB,GACpBD,WAAW,IAAIA,WAAW,CAACE,MAAM,GAAG,CAAC,GACjCF,WAAW,GACX,CAAC5B,eAAe,CAAC+B,UAAU,CAAC;EAElC,OAAO1B,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IAAI,EACjBE,gBACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,uBAAuB,GAAIC,SAAiB,IAAsB;EAC7E,OAAO5B,mBAAmB,CAAC2B,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS;AACvB,SAASjC,eAAe,QAAQ,YAAS","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","PensaReportType","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","reportTypes","finalReportTypes","length","ITEMS_SEEN","fetchProductImageBase64","productId","fetchShelves"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,SAASC,eAAe,QAAQ,YAAS;AAEzC,MAAMC,aAAa,GACjB,iFAAiF,GACjFF,QAAQ,CAACG,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,mBAAmB,GAAGP,aAAa,CAACO,mBAAmB,GACzDP,aAAa,CAACO,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,EAClBC,WAA+B,KACE;EACjC,MAAMC,gBAAgB,GACpBD,WAAW,IAAIA,WAAW,CAACE,MAAM,GAAG,CAAC,GACjCF,WAAW,GACX,CAAC5B,eAAe,CAAC+B,UAAU,CAAC;EAElC,OAAO1B,mBAAmB,CAACqB,oBAAoB,CAC7CT,MAAM,EACNU,SAAS,IAAI,IAAI,EACjBE,gBACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,uBAAuB,GAAIC,SAAiB,IAAsB;EAC7E,OAAO5B,mBAAmB,CAAC2B,uBAAuB,CAACC,SAAS,CAAC;AAC/D,CAAC;AAED,OAAO,MAAMC,YAAY,GACvBf,aAAqB,IACS;EAC9B,OAAOd,mBAAmB,CAAC6B,YAAY,CAACf,aAAa,CAAC;AACxD,CAAC;AAED,cAAc,aAAU;AACxB,cAAc,YAAS;AACvB,SAASnB,eAAe,QAAQ,YAAS","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { PensaOnDemandReport, PensaScanStatus } from './types';
1
+ import type { PensaOnDemandReport, PensaScanStatus, PensaShelfItem } from './types';
2
2
  import { PensaReportType } from './types';
3
3
  export declare const initPensa: (config: {
4
4
  clientId: string;
@@ -16,6 +16,7 @@ export declare const showStoreChecklist: (globalStoreId: string, guid?: string,
16
16
  export declare const fetchScanStatuses: (scanIds: number[]) => Promise<PensaScanStatus[]>;
17
17
  export declare const fetchOnDemandReports: (scanId: number, projectId?: number, reportTypes?: PensaReportType[]) => Promise<PensaOnDemandReport>;
18
18
  export declare const fetchProductImageBase64: (productId: number) => Promise<string>;
19
+ export declare const fetchShelves: (globalStoreId: string) => Promise<PensaShelfItem[]>;
19
20
  export * from './events';
20
21
  export * from './types';
21
22
  export { PensaReportType } from './types';
@@ -1 +1 @@
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;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmB1C,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,EAClB,cAAc,eAAe,EAAE,KAC9B,OAAO,CAAC,mBAAmB,CAW7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAEzE,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmB1C,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,EAClB,cAAc,eAAe,EAAE,KAC9B,OAAO,CAAC,mBAAmB,CAW7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAEzE,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,eAAe,MAAM,KACpB,OAAO,CAAC,cAAc,EAAE,CAE1B,CAAC;AAEF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC"}
@@ -88,4 +88,8 @@ export declare enum PensaReportType {
88
88
  SCAN_REJECTED = "SCAN_REJECTED",
89
89
  SCAN_SKIPPED = "SCAN_SKIPPED"
90
90
  }
91
+ export type PensaShelfItem = {
92
+ id: number;
93
+ name: string | null;
94
+ };
91
95
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pensasystems/pensa-react-native",
3
- "version": "0.1.0-beta-14",
3
+ "version": "0.1.0-beta-16",
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",
@@ -68,7 +68,6 @@
68
68
  "@release-it/conventional-changelog": "^9.0.2",
69
69
  "@types/jest": "^29.5.5",
70
70
  "@types/react": "^19.0.0",
71
- "commitlint": "^19.6.1",
72
71
  "del-cli": "^5.1.0",
73
72
  "eslint": "^9.22.0",
74
73
  "eslint-config-prettier": "^10.1.1",
package/src/index.tsx CHANGED
@@ -1,5 +1,5 @@
1
1
  import { NativeModules, Platform } from 'react-native';
2
- import type { PensaOnDemandReport, PensaScanStatus } from './types';
2
+ import type { PensaOnDemandReport, PensaScanStatus, PensaShelfItem } from './types';
3
3
  import { PensaReportType } from './types';
4
4
 
5
5
  const LINKING_ERROR =
@@ -102,6 +102,12 @@ export const fetchProductImageBase64 = (productId: number): Promise<string> => {
102
102
  return PensaSdkReactNative.fetchProductImageBase64(productId);
103
103
  };
104
104
 
105
+ export const fetchShelves = (
106
+ globalStoreId: string
107
+ ): Promise<PensaShelfItem[]> => {
108
+ return PensaSdkReactNative.fetchShelves(globalStoreId);
109
+ };
110
+
105
111
  export * from './events';
106
112
  export * from './types';
107
113
  export { PensaReportType } from './types';
package/src/types.ts CHANGED
@@ -98,3 +98,8 @@ export enum PensaReportType {
98
98
  SCAN_REJECTED = 'SCAN_REJECTED',
99
99
  SCAN_SKIPPED = 'SCAN_SKIPPED',
100
100
  }
101
+
102
+ export type PensaShelfItem = {
103
+ id: number;
104
+ name: string | null;
105
+ };