@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.
@@ -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.8"
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(scanIds: [NSNumber],
124
- resolve: @escaping RCTPromiseResolveBlock,
125
- reject: @escaping RCTPromiseRejectBlock) {
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
- dict["captureType"] = status.captureType ?? NSNull()
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 as Any
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(scanId: NSNumber,
161
- projectId: NSNumber?,
162
- resolve: @escaping RCTPromiseResolveBlock,
163
- reject: @escaping RCTPromiseRejectBlock) {
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
- print("report: \(report) result: \(result)")
171
-
172
- if let bucket = report.itemsSeen {
173
- let products: [[String: Any]] = bucket.productList.map { product in
174
- var dict: [String: Any] = [:]
175
- dict["brand"] = product.brand ?? NSNull()
176
- dict["brandId"] = product.brandId as Any
177
- dict["category"] = product.category ?? NSNull()
178
- dict["categoryId"] = product.categoryId as Any
179
- dict["manufacturer"] = product.manufacturer ?? NSNull()
180
- dict["manufacturerId"] = product.manufacturerId as Any
181
- dict["product"] = product.product ?? NSNull()
182
- dict["productId"] = product.productId as Any
183
- dict["upc"] = product.upc ?? NSNull()
184
- return dict
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
- result["itemsSeen"] = ["productList": products]
194
+
195
+ result["facingsSeen"] = [
196
+ "productList": products
197
+ ]
187
198
  } else {
188
- result["itemsSeen"] = NSNull()
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
- imageCaptureQuality: string | null;
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: number | null;
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
- itemsSeen: PensaOnDemandReportBucket | null;
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,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,+BAA+B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,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,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,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC7C,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",
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
- imageCaptureQuality: string | null;
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: number | null;
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
- itemsSeen: PensaOnDemandReportBucket | null;
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
  };