lig-scanner-expo-sdk 0.5.0 → 0.5.1
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/CLAUDE.md +9 -3
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/build.gradle +2 -2
- package/ios/LigScannerExpoSdkModule.swift +117 -119
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/.project +28 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/react-native-gradle-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/settings-plugin/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/settings-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/shared/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/shared/bin/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/shared-testutil/.project +34 -0
- package/lig-scanner-test/node_modules/@react-native/gradle-plugin/shared-testutil/bin/.project +34 -0
- package/lig-scanner-test/node_modules/expo/android/.project +28 -0
- package/lig-scanner-test/node_modules/expo-constants/android/.project +28 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/bin/expo-autolinking-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/bin/expo-autolinking-plugin-shared/.project +28 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/bin/expo-autolinking-settings-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/expo-autolinking-plugin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/expo-autolinking-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/expo-autolinking-plugin-shared/.project +28 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/expo-autolinking-settings-plugin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-autolinking/android/expo-gradle-plugin/expo-autolinking-settings-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-core/android/.project +28 -0
- package/lig-scanner-test/node_modules/expo-modules-core/expo-module-gradle-plugin/.project +34 -0
- package/lig-scanner-test/node_modules/expo-modules-core/expo-module-gradle-plugin/bin/.project +34 -0
- package/lig-scanner-test/node_modules/lig-scanner-expo-sdk/android/.project +28 -0
- package/lig-scanner-test/node_modules/react-native-edge-to-edge/android/.project +28 -0
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -12,7 +12,7 @@ This is `lig-scanner-expo-sdk`, an Expo module SDK wrapper for the LiG Scanner l
|
|
|
12
12
|
- **Core TypeScript API**: `src/` contains the main module interface and high-level components
|
|
13
13
|
- **Native module interface**: `LigScannerExpoSdkModule.ts` declares native methods (initialize, startScanning, stopScanning, showARPlayer)
|
|
14
14
|
- **Native iOS implementation**: `ios/` (Swift) with LiG Scanner engine integration
|
|
15
|
-
- **Native Android implementation**: `android/` (Kotlin) with corresponding functionality
|
|
15
|
+
- **Native Android implementation**: `android/` (Kotlin) with corresponding functionality
|
|
16
16
|
- **Example app**: `example/App.tsx` demonstrates both integrated and manual usage patterns
|
|
17
17
|
|
|
18
18
|
### Key Components Architecture
|
|
@@ -60,6 +60,12 @@ npm run open:ios
|
|
|
60
60
|
|
|
61
61
|
# Open Android project in Android Studio
|
|
62
62
|
npm run open:android
|
|
63
|
+
|
|
64
|
+
# Run example app on iOS (requires iOS simulator or device)
|
|
65
|
+
npm run ios
|
|
66
|
+
|
|
67
|
+
# Run example app on Android (requires Android emulator or device)
|
|
68
|
+
npm run android
|
|
63
69
|
```
|
|
64
70
|
|
|
65
71
|
## Development Patterns
|
|
@@ -69,7 +75,7 @@ The SDK uses a state machine pattern managed by `LigScannerManager`:
|
|
|
69
75
|
- `initializing` → `ready` → `scanning` → `ligtag_ready` (success path)
|
|
70
76
|
- Error states: `error_device`, `error_auth`, `error_other`
|
|
71
77
|
|
|
72
|
-
### Event System Architecture
|
|
78
|
+
### Event System Architecture
|
|
73
79
|
- **Native Events**: `onLigtagFound`, `onStatusReported`, `onARReady`, `onARError`, `onARClosed`, `onGameEvent`
|
|
74
80
|
- **Manager Events**: `stateChange`, `tagUpdate`, `tagReady`, `error`
|
|
75
81
|
- **Hook Integration**: State changes automatically trigger React re-renders
|
|
@@ -93,4 +99,4 @@ The `example/App.tsx` demonstrates two complete integration approaches:
|
|
|
93
99
|
|
|
94
100
|
- `expo-module.config.json`: Defines Apple/Android platforms, native module class names, and required permissions (camera)
|
|
95
101
|
- `tsconfig.json`: Extends expo-module-scripts base config, outputs to `build/`
|
|
96
|
-
- Platform permissions: Camera access required for both iOS (NSCameraUsageDescription) and Android (android.permission.CAMERA)
|
|
102
|
+
- Platform permissions: Camera access required for both iOS (NSCameraUsageDescription) and Android (android.permission.CAMERA)
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
package/android/build.gradle
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
apply plugin: 'com.android.library'
|
|
2
2
|
|
|
3
3
|
group = 'tw.com.lig.scanner.rn.expo'
|
|
4
|
-
version = '0.1
|
|
4
|
+
version = '0.5.1'
|
|
5
5
|
|
|
6
6
|
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
7
7
|
apply from: expoModulesCorePlugin
|
|
@@ -46,7 +46,7 @@ android {
|
|
|
46
46
|
namespace "tw.com.lig.scanner.rn.expo"
|
|
47
47
|
defaultConfig {
|
|
48
48
|
versionCode 1
|
|
49
|
-
versionName "0.1
|
|
49
|
+
versionName "0.5.1"
|
|
50
50
|
}
|
|
51
51
|
lintOptions {
|
|
52
52
|
abortOnError false
|
|
@@ -6,8 +6,9 @@ import UIKit
|
|
|
6
6
|
public class LigScannerExpoSdkModule: Module {
|
|
7
7
|
private var isScanning = false
|
|
8
8
|
private var isInitialized = false
|
|
9
|
+
private var shouldStartWhenReady = false
|
|
9
10
|
private let scanner = LiGScanner.shared
|
|
10
|
-
private var lastDetectedTag:
|
|
11
|
+
private var lastDetectedTag: LigTag?
|
|
11
12
|
private var hasListeners = false
|
|
12
13
|
|
|
13
14
|
// Each module class must implement the definition function. The definition consists of components
|
|
@@ -71,24 +72,35 @@ public class LigScannerExpoSdkModule: Module {
|
|
|
71
72
|
|
|
72
73
|
AsyncFunction("startScanning") { (promise: Promise) in
|
|
73
74
|
guard self.isInitialized else {
|
|
75
|
+
self.shouldStartWhenReady = true
|
|
74
76
|
promise.reject("NOT_INITIALIZED", "Scanner not initialized. Call initialize() first.")
|
|
75
77
|
return
|
|
76
78
|
}
|
|
77
|
-
|
|
79
|
+
|
|
78
80
|
guard !self.isScanning else {
|
|
79
81
|
promise.resolve("Already scanning")
|
|
80
82
|
return
|
|
81
83
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
84
|
+
|
|
85
|
+
Task {
|
|
86
|
+
do {
|
|
87
|
+
try await self.scanner.start()
|
|
88
|
+
await MainActor.run {
|
|
89
|
+
self.isScanning = true
|
|
90
|
+
|
|
91
|
+
self.sendEvent("onStatusReported", [
|
|
92
|
+
"status": "SCANNING",
|
|
93
|
+
"value": 2
|
|
94
|
+
])
|
|
95
|
+
|
|
96
|
+
promise.resolve("Scanning started")
|
|
97
|
+
}
|
|
98
|
+
} catch {
|
|
99
|
+
await MainActor.run {
|
|
100
|
+
promise.reject("START_FAILED", "Failed to start scanner: \(error)")
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
92
104
|
}
|
|
93
105
|
|
|
94
106
|
AsyncFunction("stopScanning") { (promise: Promise) in
|
|
@@ -150,58 +162,82 @@ public class LigScannerExpoSdkModule: Module {
|
|
|
150
162
|
}
|
|
151
163
|
|
|
152
164
|
// MARK: - Helper Methods
|
|
153
|
-
|
|
165
|
+
|
|
154
166
|
private func initializeScanner(_ productKey: String, _ promise: Promise) {
|
|
155
|
-
self.isInitialized = true
|
|
156
|
-
|
|
157
167
|
// Set up delegate
|
|
158
168
|
self.scanner.delegate = self
|
|
159
|
-
|
|
169
|
+
|
|
160
170
|
self.sendEvent("onStatusReported", [
|
|
161
171
|
"status": "INITIALIZING",
|
|
162
172
|
"value": 0
|
|
163
173
|
])
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
+
|
|
175
|
+
Task {
|
|
176
|
+
do {
|
|
177
|
+
// Initialize LiGScanner SDK (async/await)
|
|
178
|
+
try await self.scanner.initialize(productKey: productKey)
|
|
179
|
+
|
|
180
|
+
await MainActor.run {
|
|
181
|
+
self.isInitialized = true
|
|
182
|
+
|
|
183
|
+
self.sendEvent("onStatusReported", [
|
|
184
|
+
"status": "INITIALIZED",
|
|
185
|
+
"value": 1
|
|
186
|
+
])
|
|
187
|
+
|
|
188
|
+
// Start scanning if it was requested before initialization completed
|
|
189
|
+
if self.shouldStartWhenReady {
|
|
190
|
+
self.shouldStartWhenReady = false
|
|
191
|
+
Task {
|
|
192
|
+
do {
|
|
193
|
+
try await self.scanner.start()
|
|
194
|
+
await MainActor.run {
|
|
195
|
+
self.isScanning = true
|
|
196
|
+
self.sendEvent("onStatusReported", [
|
|
197
|
+
"status": "SCANNING",
|
|
198
|
+
"value": 2
|
|
199
|
+
])
|
|
200
|
+
}
|
|
201
|
+
} catch {
|
|
202
|
+
// Handle start error silently
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
promise.resolve("Scanner initialized")
|
|
208
|
+
}
|
|
209
|
+
} catch {
|
|
210
|
+
await MainActor.run {
|
|
211
|
+
self.isInitialized = false
|
|
212
|
+
promise.reject("INIT_FAILED", "Failed to initialize scanner: \(error)")
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
174
216
|
}
|
|
175
217
|
}
|
|
176
218
|
|
|
177
219
|
// MARK: - LiGScannerDelegate
|
|
178
220
|
|
|
179
221
|
extension LigScannerExpoSdkModule: LiGScannerDelegate {
|
|
180
|
-
public func
|
|
181
|
-
guard let tag =
|
|
182
|
-
|
|
222
|
+
public func ligScanner(_ scanner: LiGScanner, didFind ligTag: LigTag?) {
|
|
223
|
+
guard let tag = ligTag else { return }
|
|
224
|
+
|
|
183
225
|
// Store the tag for AR player
|
|
184
226
|
lastDetectedTag = tag
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// Map
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
// Map LigTag to match Android's onLightIDFound format exactly
|
|
188
230
|
var eventData: [String: Any] = [
|
|
189
231
|
"x": Double(tag.coordinateX),
|
|
190
232
|
"y": Double(tag.coordinateY),
|
|
191
233
|
"isReady": tag.isReady,
|
|
192
|
-
"isDetected": tag.
|
|
234
|
+
"isDetected": tag.detected,
|
|
193
235
|
"deviceId": tag.deviceId,
|
|
194
|
-
"status":
|
|
236
|
+
"status": mapStatusFromBooleans(detected: tag.detected, decoded: tag.decoded, validPose: tag.validPose, isReady: tag.isReady)
|
|
195
237
|
]
|
|
196
|
-
|
|
197
|
-
// Add timing data if detected
|
|
198
|
-
if tag.isDetected {
|
|
199
|
-
eventData["detectionTime"] = Int(tag.detectionTime)
|
|
200
|
-
eventData["decodedTime"] = Int(tag.decodedTime)
|
|
201
|
-
}
|
|
202
|
-
|
|
238
|
+
|
|
203
239
|
// Add position data for all detected tags (needed for AR coordinate system setup)
|
|
204
|
-
if tag.
|
|
240
|
+
if tag.detected {
|
|
205
241
|
eventData["rotation"] = [
|
|
206
242
|
"x": Double(tag.rotation.x),
|
|
207
243
|
"y": Double(tag.rotation.y),
|
|
@@ -212,126 +248,88 @@ extension LigScannerExpoSdkModule: LiGScannerDelegate {
|
|
|
212
248
|
"y": Double(tag.translation.y),
|
|
213
249
|
"z": Double(tag.translation.z)
|
|
214
250
|
]
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
"
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
// Add accessToken for AR cloud authentication
|
|
221
|
-
eventData["accessToken"] = tag.accessToken
|
|
222
|
-
|
|
251
|
+
// Add accessToken for AR cloud authentication (now optional)
|
|
252
|
+
if let accessToken = tag.accessToken {
|
|
253
|
+
eventData["accessToken"] = accessToken
|
|
254
|
+
}
|
|
255
|
+
|
|
223
256
|
// Add transform matrix for direct AR coordinate system setup
|
|
224
|
-
let transform = tag.transform
|
|
257
|
+
let transform = tag.transform()
|
|
225
258
|
let transformArray: [Double] = [
|
|
226
|
-
Double(transform.columns.0.x), Double(transform.columns.0.y),
|
|
259
|
+
Double(transform.columns.0.x), Double(transform.columns.0.y),
|
|
227
260
|
Double(transform.columns.0.z), Double(transform.columns.0.w),
|
|
228
|
-
Double(transform.columns.1.x), Double(transform.columns.1.y),
|
|
261
|
+
Double(transform.columns.1.x), Double(transform.columns.1.y),
|
|
229
262
|
Double(transform.columns.1.z), Double(transform.columns.1.w),
|
|
230
|
-
Double(transform.columns.2.x), Double(transform.columns.2.y),
|
|
263
|
+
Double(transform.columns.2.x), Double(transform.columns.2.y),
|
|
231
264
|
Double(transform.columns.2.z), Double(transform.columns.2.w),
|
|
232
|
-
Double(transform.columns.3.x), Double(transform.columns.3.y),
|
|
265
|
+
Double(transform.columns.3.x), Double(transform.columns.3.y),
|
|
233
266
|
Double(transform.columns.3.z), Double(transform.columns.3.w)
|
|
234
267
|
]
|
|
235
268
|
eventData["transform"] = transformArray
|
|
236
269
|
}
|
|
237
|
-
|
|
270
|
+
|
|
238
271
|
sendEvent("onLigtagFound", eventData)
|
|
239
272
|
}
|
|
240
273
|
|
|
241
|
-
public func
|
|
242
|
-
|
|
274
|
+
public func ligScanner(_ scanner: LiGScannerKit.LiGScanner, didReport status: LiGScannerKit.StatusCode) {
|
|
275
|
+
|
|
243
276
|
// Handle specific status codes
|
|
244
277
|
switch status {
|
|
245
|
-
case .
|
|
278
|
+
case .deviceIsSupported, .authenticationOK, .scannerStopped:
|
|
246
279
|
// These are positive status updates, not errors
|
|
247
280
|
sendEvent("onStatusReported", [
|
|
248
|
-
"status":
|
|
281
|
+
"status": mapStatusCodeToString(status),
|
|
249
282
|
"value": status.rawValue,
|
|
250
283
|
"isError": false
|
|
251
284
|
])
|
|
252
|
-
|
|
253
|
-
case .
|
|
285
|
+
|
|
286
|
+
case .authenticationFailed:
|
|
254
287
|
// Reset initialization state to allow retry
|
|
255
288
|
self.isInitialized = false
|
|
256
289
|
sendEvent("onStatusReported", [
|
|
257
|
-
"status": "
|
|
290
|
+
"status": "AUTHENTICATION_FAILED",
|
|
258
291
|
"value": status.rawValue,
|
|
259
292
|
"isError": true,
|
|
260
|
-
"error": "
|
|
293
|
+
"error": "Authentication failed"
|
|
261
294
|
])
|
|
262
|
-
|
|
295
|
+
|
|
263
296
|
default:
|
|
264
297
|
sendEvent("onStatusReported", [
|
|
265
|
-
"status": "
|
|
298
|
+
"status": status.description.uppercased().replacingOccurrences(of: " ", with: "_"),
|
|
266
299
|
"value": status.rawValue,
|
|
267
300
|
"isError": true,
|
|
268
|
-
"error":
|
|
301
|
+
"error": status.description
|
|
269
302
|
])
|
|
270
303
|
// Log error but don't send events to avoid alert dialogs
|
|
271
304
|
// Handle other scanner errors silently
|
|
272
305
|
}
|
|
273
306
|
}
|
|
274
307
|
|
|
275
|
-
private func
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
@unknown default: return "UNKNOWN_STATUS"
|
|
308
|
+
private func mapStatusFromBooleans(detected: Bool, decoded: Bool, validPose: Bool, isReady: Bool) -> String {
|
|
309
|
+
if isReady {
|
|
310
|
+
return "READY"
|
|
311
|
+
} else if !detected {
|
|
312
|
+
return "NOT_DETECTED"
|
|
313
|
+
} else if !decoded {
|
|
314
|
+
return "NOT_DECODED"
|
|
315
|
+
} else if !validPose {
|
|
316
|
+
return "INVALID_POSITION"
|
|
317
|
+
} else {
|
|
318
|
+
return "UNKNOWN_STATUS"
|
|
287
319
|
}
|
|
288
320
|
}
|
|
289
|
-
|
|
290
|
-
private func
|
|
291
|
-
switch
|
|
292
|
-
case .correct: return "TAG_DETECTED"
|
|
293
|
-
case .initErrorNotSupport: return "INIT_ERROR_NOT_SUPPORT"
|
|
294
|
-
case .permissionLack: return "PERMISSION_LACK"
|
|
321
|
+
|
|
322
|
+
private func mapStatusCodeToString(_ status: StatusCode) -> String {
|
|
323
|
+
switch status {
|
|
295
324
|
case .notInitialized: return "NOT_INITIALIZED"
|
|
296
|
-
case .
|
|
297
|
-
case .cameraNotAvailable: return "CAMERA_NOT_AVAILABLE"
|
|
298
|
-
case .deviceNotSupported: return "DEVICE_NOT_SUPPORTED"
|
|
299
|
-
case .cameraAccessException: return "CAMERA_ACCESS_EXCEPTION"
|
|
300
|
-
case .internetAnomaly: return "INTERNET_ANOMALY"
|
|
301
|
-
case .lackInternetPermission: return "LACK_INTERNET_PERMISSION"
|
|
302
|
-
case .lackAccessWifiStatePermission: return "LACK_ACCESS_WIFI_STATE_PERMISSION"
|
|
303
|
-
case .lackCameraPermission: return "LACK_CAMERA_PERMISSION"
|
|
304
|
-
case .lackExternalStoragePermission: return "LACK_EXTERNAL_STORAGE_PERMISSION"
|
|
305
|
-
case .lackReadPhoneStatePermission: return "LACK_READ_PHONE_STATE_PERMISSION"
|
|
306
|
-
case .lackAccessNetworkStatePermission: return "LACK_ACCESS_NETWORK_STATE_PERMISSION"
|
|
307
|
-
case .serverAnomaly: return "SERVER_ANOMALY"
|
|
308
|
-
case .tokenExpired: return "TOKEN_EXPIRED"
|
|
309
|
-
case .configurationError: return "CONFIGURATION_ERROR"
|
|
325
|
+
case .noSupportDevice: return "DEVICE_NOT_SUPPORTED"
|
|
310
326
|
case .deviceIsSupported: return "DEVICE_IS_SUPPORTED"
|
|
311
|
-
case .deviceStatusUnknown: return "DEVICE_STATUS_UNKNOWN"
|
|
312
327
|
case .authenticationOK: return "AUTHENTICATION_OK"
|
|
313
328
|
case .authenticationFailed: return "AUTHENTICATION_FAILED"
|
|
314
329
|
case .authenticationTimeout: return "AUTHENTICATION_TIMEOUT"
|
|
315
|
-
case .authenticationInterrupted: return "AUTHENTICATION_INTERRUPTED"
|
|
316
|
-
case .initializationComplete: return "INITIALIZATION_COMPLETE"
|
|
317
|
-
case .alreadyInitialized: return "ALREADY_INITIALIZED"
|
|
318
|
-
case .invalidProductKey: return "INVALID_PRODUCT_KEY"
|
|
319
|
-
case .cameraPermissionDenied: return "CAMERA_PERMISSION_DENIED"
|
|
320
|
-
case .cameraConfigurationFailed: return "CAMERA_CONFIGURATION_FAILED"
|
|
321
|
-
case .processingFailed: return "PROCESSING_FAILED"
|
|
322
|
-
case .insufficientLighting: return "INSUFFICIENT_LIGHTING"
|
|
323
|
-
case .cameraFocusFailed: return "CAMERA_FOCUS_FAILED"
|
|
324
|
-
case .networkError: return "NETWORK_ERROR"
|
|
325
|
-
case .invalidServerResponse: return "INVALID_SERVER_RESPONSE"
|
|
326
|
-
case .invalidConfiguration: return "INVALID_CONFIGURATION"
|
|
327
|
-
case .encryptionFailed: return "ENCRYPTION_FAILED"
|
|
328
|
-
case .decryptionFailed: return "DECRYPTION_FAILED"
|
|
329
330
|
case .scannerStopped: return "SCANNER_STOPPED"
|
|
330
|
-
case .
|
|
331
|
-
|
|
332
|
-
case .internalError: return "INTERNAL_ERROR"
|
|
333
|
-
case .unknown: return "UNKNOWN"
|
|
334
|
-
@unknown default: return "UNKNOWN_STATUS_\(error.rawValue)"
|
|
331
|
+
case .serverAnomaly: return "SERVER_ANOMALY"
|
|
332
|
+
@unknown default: return status.description.uppercased().replacingOccurrences(of: " ", with: "_")
|
|
335
333
|
}
|
|
336
334
|
}
|
|
337
335
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>gradle-plugin-root-gradle-plugin</name>
|
|
4
|
+
<comment>Project gradle-plugin-root-gradle-plugin created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
</buildSpec>
|
|
14
|
+
<natures>
|
|
15
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
16
|
+
</natures>
|
|
17
|
+
<filteredResources>
|
|
18
|
+
<filter>
|
|
19
|
+
<id>1757519691947</id>
|
|
20
|
+
<name></name>
|
|
21
|
+
<type>30</type>
|
|
22
|
+
<matcher>
|
|
23
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
24
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
25
|
+
</matcher>
|
|
26
|
+
</filter>
|
|
27
|
+
</filteredResources>
|
|
28
|
+
</projectDescription>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>react-native-gradle-plugin</name>
|
|
4
|
+
<comment>Project react-native-gradle-plugin created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
|
+
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1757519691950</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
34
|
+
</projectDescription>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>react-native-gradle-plugin</name>
|
|
4
|
+
<comment>Project react-native-gradle-plugin created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
|
+
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1757519691950</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
34
|
+
</projectDescription>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>settings-plugin</name>
|
|
4
|
+
<comment>Project settings-plugin created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
|
+
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1757519691953</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
34
|
+
</projectDescription>
|
package/lig-scanner-test/node_modules/@react-native/gradle-plugin/settings-plugin/bin/.project
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>settings-plugin</name>
|
|
4
|
+
<comment>Project settings-plugin created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
|
+
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1757519691953</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
34
|
+
</projectDescription>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>shared</name>
|
|
4
|
+
<comment>Project shared created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
|
+
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1757519691954</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
34
|
+
</projectDescription>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>shared</name>
|
|
4
|
+
<comment>Project shared created by Buildship.</comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>org.eclipse.jdt.core.javabuilder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>org.eclipse.jdt.core.javanature</nature>
|
|
21
|
+
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
|
|
22
|
+
</natures>
|
|
23
|
+
<filteredResources>
|
|
24
|
+
<filter>
|
|
25
|
+
<id>1757519691954</id>
|
|
26
|
+
<name></name>
|
|
27
|
+
<type>30</type>
|
|
28
|
+
<matcher>
|
|
29
|
+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
|
30
|
+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
|
31
|
+
</matcher>
|
|
32
|
+
</filter>
|
|
33
|
+
</filteredResources>
|
|
34
|
+
</projectDescription>
|