@luciq/react-native 18.2.0-14799-SNAPSHOT → 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 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 Instabug 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).
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 Instabug Android SDK to v19.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).
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 Instabug 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).
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 Instabug 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).
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 Instabug to Luciq.
47
+ - SDK rebranded from Luciq to Luciq.
package/RNLuciq.podspec CHANGED
@@ -16,6 +16,6 @@ Pod::Spec.new do |s|
16
16
  s.source_files = "ios/**/*.{h,m,mm}"
17
17
 
18
18
  s.dependency 'React-Core'
19
- # use_luciq!(s)
20
- s.dependency 'Luciq'
19
+ use_luciq!(s)
20
+
21
21
  end
@@ -57,7 +57,7 @@ android {
57
57
  minSdkVersion getExtOrDefault('minSdkVersion').toInteger()
58
58
  targetSdkVersion getExtOrDefault('targetSdkVersion').toInteger()
59
59
  versionCode 1
60
- versionName "15.0.1"
60
+ versionName "19.0.0"
61
61
  multiDexEnabled true
62
62
  ndk {
63
63
  abiFilters "armeabi-v7a", "x86"
@@ -1,5 +1,5 @@
1
1
  project.ext.luciq = [
2
- version: '18.2.0'
2
+ version: '19.0.0'
3
3
  ]
4
4
 
5
5
  dependencies {
@@ -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
- def jsProjectDir = rootDir.parentFile
47
- def luciqDir = new File(['node', '-p', 'require.resolve("@luciq/react-native/package.json")'].execute(null, rootDir).text.trim()).getParentFile()
46
+ if (!sourceMapFile) {
47
+ project.logger.warn "⚠️ Source map file not found. Skipping sourcemap upload."
48
+ return
49
+ }
48
50
 
49
- def tokenJsFile = new File(luciqDir, 'scripts/find-token.js')
50
- def inferredToken = executeNodeScript(tokenJsFile, jsProjectDir)
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 = resolveVar('App Token', 'LUCIQ_APP_TOKEN', inferredToken)
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
- throw new GradleException("Unable to infer Luciq token from script: ${tokenShellFile.absolutePath}")
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 = resolveVar('Version Name', 'LUCIQ_VERSION_NAME', defaultVersionName)
60
- def versionCode = resolveVar('Version Code', 'LUCIQ_VERSION_CODE', defaultVersionCode)
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.error "Failed to upload source map file.\n" +
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:18.2.0",
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:18.2.0",
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:18.2.0",
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\": \"^18.2.0\"",
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': '^18.2.0'",
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:18.2.0",
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:18.2.0",
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:18.2.0",
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\": \"^18.2.0\"",
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': '^18.2.0'",
30
+ "replacement": "'@luciq/react-native': '^19.0.0'",
31
31
  "isRegex": true
32
32
  }
33
33
  ],
@@ -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;
@@ -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;
@@ -21,4 +21,6 @@
21
21
  - (void)startUITrace:(NSString *)name;
22
22
  - (void)endUITrace;
23
23
 
24
+ - (void)setScreenRenderingEnabled:(BOOL)isEnabled;
25
+
24
26
  @end
@@ -85,7 +85,10 @@ RCT_EXPORT_METHOD(endUITrace) {
85
85
  [LCQAPM endUITrace];
86
86
  }
87
87
 
88
-
88
+ // Enables or disables screen render.
89
+ RCT_EXPORT_METHOD(setScreenRenderingEnabled:(BOOL)isEnabled) {
90
+ LCQAPM.screenRenderingEnabled = isEnabled;
91
+ }
89
92
 
90
93
 
91
94
 
package/ios/native.rb CHANGED
@@ -1,4 +1,4 @@
1
- $luciq= { :version => '19.1.0' }
1
+ $luciq= { :version => '19.2.0' }
2
2
 
3
3
  def use_luciq! (spec = nil)
4
4
  version = $luciq[:version]
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": "18.2.0-14799-SNAPSHOT",
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",
@@ -43,6 +43,7 @@
43
43
  },
44
44
  "devDependencies": {
45
45
  "@apollo/client": "^3.7.0",
46
+ "@instabug/danger-plugin-coverage": "Instabug/danger-plugin-coverage",
46
47
  "@react-native-community/eslint-config": "^3.1.0",
47
48
  "@react-navigation/native": "^6.1.7",
48
49
  "@rollup/plugin-commonjs": "^25.0.3",
@@ -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
+ };
@@ -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;