@luciq/react-native 18.2.0 → 19.0.0
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/CHANGELOG.md +17 -5
- package/android/build.gradle +1 -1
- package/android/native.gradle +1 -1
- package/android/sourcemaps.gradle +41 -12
- package/android/src/main/java/ai/luciq/reactlibrary/RNLuciqAPMModule.java +20 -1
- package/bin/config/migration-config.json +5 -5
- package/cli/config/migration-config.json +5 -5
- package/dist/modules/APM.d.ts +5 -0
- package/dist/modules/APM.js +7 -0
- package/dist/native/NativeAPM.d.ts +1 -0
- package/ios/RNLuciq/LuciqAPMBridge.h +2 -0
- package/ios/RNLuciq/LuciqAPMBridge.m +4 -1
- package/ios/native.rb +1 -1
- package/package.json +1 -1
- package/src/modules/APM.ts +8 -0
- package/src/native/NativeAPM.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [19.0.0](https://github.com/luciqai/luciq-reactnative-sdk/compare/v19.0.0...dev)
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- Add support for Screen Rendering ([#4](https://github.com/luciqai/luciq-reactnative-sdk/pull/4)).
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Bump Luciq iOS SDK to v19.2.0 ([#4](https://github.com/luciqai/luciq-reactnative-sdk/pull/4)). [See release notes](https://github.com/luciqai/Luciq-iOS-sdk/releases/tag/19.2.0).
|
|
12
|
+
|
|
13
|
+
- Bump Luciq Android SDK to v19.0.0 ([#4](https://github.com/luciqai/luciq-reactnative-sdk/pull/4)). [See release notes](https://github.com/luciqai/Luciq-Android-sdk/releases/tag/v19.0.0).
|
|
14
|
+
|
|
3
15
|
## [18.2.0](https://github.com/luciqai/luciq-reactnative-sdk/compare/v18.2.0...18.0.1)
|
|
4
16
|
|
|
5
17
|
### Changed
|
|
6
18
|
|
|
7
|
-
- Bump
|
|
19
|
+
- Bump Luciq iOS SDK to v18.2.0 ([#11](https://github.com/luciqai/luciq-reactnative-sdk/pull/11)). [See release notes](https://github.com/luciqai/Luciq-iOS-sdk/releases/tag/18.2.0).
|
|
8
20
|
|
|
9
|
-
- Bump
|
|
21
|
+
- Bump Luciq Android SDK to v18.1.0 ([#11](https://github.com/luciqai/luciq-reactnative-sdk/pull/11)). [See release notes](https://github.com/luciqai/Luciq-Android-sdk/releases/tag/v19.1.0).
|
|
10
22
|
|
|
11
23
|
### Added
|
|
12
24
|
|
|
@@ -22,9 +34,9 @@
|
|
|
22
34
|
|
|
23
35
|
### Changed
|
|
24
36
|
|
|
25
|
-
- Bump
|
|
37
|
+
- Bump Luciq iOS SDK to v18.0.1 ([#6](https://github.com/luciqai/luciq-reactnative-sdk/pull/7)). [See release notes](https://github.com/luciqai/Luciq-iOS-sdk/releases/tag/18.0.1).
|
|
26
38
|
|
|
27
|
-
- Bump
|
|
39
|
+
- Bump Luciq Android SDK to v18.0.1 ([#6](https://github.com/luciqai/luciq-reactnative-sdk/pull/7)). [See release notes](https://github.com/luciqai/Luciq-Android-sdk/releases/tag/v18.0.1).
|
|
28
40
|
|
|
29
41
|
### Fixed
|
|
30
42
|
|
|
@@ -32,4 +44,4 @@
|
|
|
32
44
|
|
|
33
45
|
## [18.0.0](https://github.com/luciqai/luciq-reactnative-sdk/compare/v18.0.0...dev) (September 24, 2025)
|
|
34
46
|
|
|
35
|
-
- SDK rebranded from
|
|
47
|
+
- SDK rebranded from Luciq to Luciq.
|
package/android/build.gradle
CHANGED
|
@@ -57,7 +57,7 @@ android {
|
|
|
57
57
|
minSdkVersion getExtOrDefault('minSdkVersion').toInteger()
|
|
58
58
|
targetSdkVersion getExtOrDefault('targetSdkVersion').toInteger()
|
|
59
59
|
versionCode 1
|
|
60
|
-
versionName "
|
|
60
|
+
versionName "19.0.0"
|
|
61
61
|
multiDexEnabled true
|
|
62
62
|
ndk {
|
|
63
63
|
abiFilters "armeabi-v7a", "x86"
|
package/android/native.gradle
CHANGED
|
@@ -43,21 +43,53 @@ Task createUploadSourcemapsTask(String flavor, String defaultVersionName, String
|
|
|
43
43
|
def appDir = appProject.projectDir
|
|
44
44
|
def sourceMapFile = getSourceMapFile(appDir, flavor,task)
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
if (!sourceMapFile) {
|
|
47
|
+
project.logger.warn "⚠️ Source map file not found. Skipping sourcemap upload."
|
|
48
|
+
return
|
|
49
|
+
}
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
def jsProjectDir = rootDir.parentFile
|
|
52
|
+
def luciqPackagePath = ['node', '-p', 'require.resolve("@luciq/react-native/package.json")'].execute(null, rootDir).text.trim()
|
|
53
|
+
if (!luciqPackagePath) {
|
|
54
|
+
project.logger.warn "⚠️ Unable to resolve @luciq/react-native package path. Skipping sourcemap upload."
|
|
55
|
+
return
|
|
56
|
+
}
|
|
57
|
+
def luciqPackageFile = new File(luciqPackagePath)
|
|
58
|
+
if (!luciqPackageFile.exists()) {
|
|
59
|
+
project.logger.warn "⚠️ Luciq package file not found at: ${luciqPackagePath}. Skipping sourcemap upload."
|
|
60
|
+
return
|
|
61
|
+
}
|
|
62
|
+
def luciqDir = luciqPackageFile.getParentFile()
|
|
63
|
+
if (!luciqDir || !luciqDir.exists()) {
|
|
64
|
+
project.logger.warn "⚠️ Luciq directory not found. Package path: ${luciqPackagePath}. Skipping sourcemap upload."
|
|
65
|
+
return
|
|
66
|
+
}
|
|
51
67
|
|
|
68
|
+
def tokenJsFile = new File(luciqDir, 'scripts/find-token.js')
|
|
69
|
+
def inferredToken = executeNodeScript(tokenJsFile, jsProjectDir)
|
|
52
70
|
|
|
53
|
-
def appToken
|
|
71
|
+
def appToken
|
|
72
|
+
try {
|
|
73
|
+
appToken = resolveVar('App Token', 'LUCIQ_APP_TOKEN', inferredToken)
|
|
74
|
+
} catch (Exception e) {
|
|
75
|
+
project.logger.warn "⚠️ ${e.message}. Skipping sourcemap upload."
|
|
76
|
+
return
|
|
77
|
+
}
|
|
54
78
|
|
|
55
79
|
if (!appToken) {
|
|
56
|
-
|
|
80
|
+
project.logger.warn "⚠️ Unable to infer Luciq token from script: ${tokenJsFile.absolutePath}. Skipping sourcemap upload."
|
|
81
|
+
return
|
|
57
82
|
}
|
|
58
83
|
|
|
59
|
-
def versionName
|
|
60
|
-
def versionCode
|
|
84
|
+
def versionName
|
|
85
|
+
def versionCode
|
|
86
|
+
try {
|
|
87
|
+
versionName = resolveVar('Version Name', 'LUCIQ_VERSION_NAME', defaultVersionName)
|
|
88
|
+
versionCode = resolveVar('Version Code', 'LUCIQ_VERSION_CODE', defaultVersionCode)
|
|
89
|
+
} catch (Exception e) {
|
|
90
|
+
project.logger.warn "⚠️ ${e.message}. Skipping sourcemap upload."
|
|
91
|
+
return
|
|
92
|
+
}
|
|
61
93
|
|
|
62
94
|
println "📦 Uploading with versionName=${versionName}, versionCode=${versionCode}, appToken=${appToken.take(5)}..."
|
|
63
95
|
|
|
@@ -75,10 +107,7 @@ Task createUploadSourcemapsTask(String flavor, String defaultVersionName, String
|
|
|
75
107
|
commandLine(*osCompatibility, *args)
|
|
76
108
|
}
|
|
77
109
|
} catch (exception) {
|
|
78
|
-
project.logger.
|
|
79
|
-
"Reason: ${exception.message}"
|
|
80
|
-
throw exception
|
|
81
|
-
|
|
110
|
+
project.logger.warn "⚠️ Failed to upload source map file. Reason: ${exception.message}. Build will continue."
|
|
82
111
|
}
|
|
83
112
|
}
|
|
84
113
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
|
|
2
2
|
package ai.luciq.reactlibrary;
|
|
3
3
|
|
|
4
|
+
import static ai.luciq.reactlibrary.utils.LuciqUtil.getMethod;
|
|
5
|
+
|
|
4
6
|
import android.os.SystemClock;
|
|
5
7
|
import android.util.Log;
|
|
6
8
|
|
|
@@ -18,7 +20,6 @@ import ai.luciq.reactlibrary.utils.EventEmitterModule;
|
|
|
18
20
|
import ai.luciq.reactlibrary.utils.MainThreadHandler;
|
|
19
21
|
|
|
20
22
|
import java.lang.reflect.Method;
|
|
21
|
-
|
|
22
23
|
import java.util.HashMap;
|
|
23
24
|
|
|
24
25
|
import javax.annotation.Nonnull;
|
|
@@ -389,4 +390,22 @@ public class RNLuciqAPMModule extends EventEmitterModule {
|
|
|
389
390
|
e.printStackTrace();
|
|
390
391
|
}
|
|
391
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* Enables or disables screen rendering
|
|
395
|
+
*
|
|
396
|
+
* @param isEnabled boolean indicating enabled or disabled.
|
|
397
|
+
*/
|
|
398
|
+
@ReactMethod
|
|
399
|
+
public void setScreenRenderingEnabled(boolean isEnabled) {
|
|
400
|
+
MainThreadHandler.runOnMainThread(new Runnable() {
|
|
401
|
+
@Override
|
|
402
|
+
public void run() {
|
|
403
|
+
try {
|
|
404
|
+
APM.setScreenRenderingEnabled(isEnabled);
|
|
405
|
+
} catch (Exception e) {
|
|
406
|
+
e.printStackTrace();
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
}
|
|
392
411
|
}
|
|
@@ -7,27 +7,27 @@
|
|
|
7
7
|
"searchReplace": [
|
|
8
8
|
{
|
|
9
9
|
"search": "com\\.instabug\\.library:instabug:[0-9]+\\.[0-9]+\\.[0-9]+",
|
|
10
|
-
"replacement": "ai.luciq.library:luciq:
|
|
10
|
+
"replacement": "ai.luciq.library:luciq:19.0.0",
|
|
11
11
|
"isRegex": true
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"search": "com\\.instabug\\.library:instabug:[0-9]+\\.[0-9]+\\.[0-9]+-.*",
|
|
15
|
-
"replacement": "ai.luciq.library:luciq:
|
|
15
|
+
"replacement": "ai.luciq.library:luciq:19.0.0",
|
|
16
16
|
"isRegex": true
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"search": "com\\.instabug\\.library:instabug:[0-9]+\\.[0-9]+\\.[0-9]+-SNAPSHOT",
|
|
20
|
-
"replacement": "ai.luciq.library:luciq:
|
|
20
|
+
"replacement": "ai.luciq.library:luciq:19.0.0",
|
|
21
21
|
"isRegex": true
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"search": "\"instabug-react-native\":\\s*\"[^\"]+\"",
|
|
25
|
-
"replacement": "\"@luciq/react-native\": \"^
|
|
25
|
+
"replacement": "\"@luciq/react-native\": \"^19.0.0\"",
|
|
26
26
|
"isRegex": true
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"search": "'instabug-react-native':\\s*'[^']+'",
|
|
30
|
-
"replacement": "'@luciq/react-native': '^
|
|
30
|
+
"replacement": "'@luciq/react-native': '^19.0.0'",
|
|
31
31
|
"isRegex": true
|
|
32
32
|
}
|
|
33
33
|
],
|
|
@@ -7,27 +7,27 @@
|
|
|
7
7
|
"searchReplace": [
|
|
8
8
|
{
|
|
9
9
|
"search": "com\\.instabug\\.library:instabug:[0-9]+\\.[0-9]+\\.[0-9]+",
|
|
10
|
-
"replacement": "ai.luciq.library:luciq:
|
|
10
|
+
"replacement": "ai.luciq.library:luciq:19.0.0",
|
|
11
11
|
"isRegex": true
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"search": "com\\.instabug\\.library:instabug:[0-9]+\\.[0-9]+\\.[0-9]+-.*",
|
|
15
|
-
"replacement": "ai.luciq.library:luciq:
|
|
15
|
+
"replacement": "ai.luciq.library:luciq:19.0.0",
|
|
16
16
|
"isRegex": true
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"search": "com\\.instabug\\.library:instabug:[0-9]+\\.[0-9]+\\.[0-9]+-SNAPSHOT",
|
|
20
|
-
"replacement": "ai.luciq.library:luciq:
|
|
20
|
+
"replacement": "ai.luciq.library:luciq:19.0.0",
|
|
21
21
|
"isRegex": true
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"search": "\"instabug-react-native\":\\s*\"[^\"]+\"",
|
|
25
|
-
"replacement": "\"@luciq/react-native\": \"^
|
|
25
|
+
"replacement": "\"@luciq/react-native\": \"^19.0.0\"",
|
|
26
26
|
"isRegex": true
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"search": "'instabug-react-native':\\s*'[^']+'",
|
|
30
|
-
"replacement": "'@luciq/react-native': '^
|
|
30
|
+
"replacement": "'@luciq/react-native': '^19.0.0'",
|
|
31
31
|
"isRegex": true
|
|
32
32
|
}
|
|
33
33
|
],
|
package/dist/modules/APM.d.ts
CHANGED
|
@@ -75,3 +75,8 @@ export declare const endUITrace: () => void;
|
|
|
75
75
|
* Used for internal testing.
|
|
76
76
|
*/
|
|
77
77
|
export declare const _lcqSleep: () => void;
|
|
78
|
+
/**
|
|
79
|
+
* Enables or disables Screen Render feature
|
|
80
|
+
* @param isEnabled
|
|
81
|
+
*/
|
|
82
|
+
export declare const setScreenRenderingEnabled: (isEnabled: boolean) => void;
|
package/dist/modules/APM.js
CHANGED
|
@@ -102,3 +102,10 @@ export const endUITrace = () => {
|
|
|
102
102
|
export const _lcqSleep = () => {
|
|
103
103
|
NativeAPM.lcqSleep();
|
|
104
104
|
};
|
|
105
|
+
/**
|
|
106
|
+
* Enables or disables Screen Render feature
|
|
107
|
+
* @param isEnabled
|
|
108
|
+
*/
|
|
109
|
+
export const setScreenRenderingEnabled = (isEnabled) => {
|
|
110
|
+
NativeAPM.setScreenRenderingEnabled(isEnabled);
|
|
111
|
+
};
|
|
@@ -13,6 +13,7 @@ export interface ApmNativeModule extends NativeModule {
|
|
|
13
13
|
startUITrace(name: string): void;
|
|
14
14
|
endUITrace(): void;
|
|
15
15
|
lcqSleep(): void;
|
|
16
|
+
setScreenRenderingEnabled(isEnabled: boolean): void;
|
|
16
17
|
}
|
|
17
18
|
export declare const NativeAPM: ApmNativeModule;
|
|
18
19
|
export declare const emitter: NativeEventEmitter;
|
package/ios/native.rb
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luciq/react-native",
|
|
3
3
|
"description": "Luciq is the Agentic Observability Platform built for Mobile.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "19.0.0",
|
|
5
5
|
"author": "Luciq (https://luciq.ai)",
|
|
6
6
|
"repository": "github:luciqai/luciq-reactnative-sdk",
|
|
7
7
|
"homepage": "https://www.luciq.ai/platforms/react-native",
|
package/src/modules/APM.ts
CHANGED
|
@@ -115,3 +115,11 @@ export const endUITrace = () => {
|
|
|
115
115
|
export const _lcqSleep = () => {
|
|
116
116
|
NativeAPM.lcqSleep();
|
|
117
117
|
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Enables or disables Screen Render feature
|
|
121
|
+
* @param isEnabled
|
|
122
|
+
*/
|
|
123
|
+
export const setScreenRenderingEnabled = (isEnabled: boolean) => {
|
|
124
|
+
NativeAPM.setScreenRenderingEnabled(isEnabled);
|
|
125
|
+
};
|
package/src/native/NativeAPM.ts
CHANGED
|
@@ -44,6 +44,9 @@ export interface ApmNativeModule extends NativeModule {
|
|
|
44
44
|
startUITrace(name: string): void;
|
|
45
45
|
endUITrace(): void;
|
|
46
46
|
lcqSleep(): void;
|
|
47
|
+
|
|
48
|
+
// Screen Rendering //
|
|
49
|
+
setScreenRenderingEnabled(isEnabled: boolean): void;
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
export const NativeAPM = NativeModules.LCQAPM;
|