@barrysolomon/mobile-react-native 0.3.1-alpha → 0.4.0-alpha
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/README.md +4 -4
- package/android/build.gradle +1 -1
- package/android/gradle.properties +2 -2
- package/android/src/main/java/com/dash0/mobile/reactnative/OTelMobileCallSink.kt +2 -2
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -1
- package/package.json +1 -1
- package/src/index.ts +5 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ existing native Android (`otel-android-mobile`) and iOS (`otel-ios-mobile`)
|
|
|
5
5
|
SDKs — native owns buffering, policy evaluation, OTLP export, and crash
|
|
6
6
|
recovery. JS stays thin.
|
|
7
7
|
|
|
8
|
-
**Version:** `0.
|
|
8
|
+
**Version:** `0.4.0-alpha`, published under the `alpha` dist-tag.
|
|
9
9
|
|
|
10
10
|
**Status:** Validated end-to-end in Dash0. All 4 platforms (Android native,
|
|
11
11
|
iOS native, RN Android, RN iOS) have a UAT matrix of 12/12 cells green.
|
|
@@ -17,7 +17,7 @@ iOS native, RN Android, RN iOS) have a UAT matrix of 12/12 cells green.
|
|
|
17
17
|
# resolves the OLD 0.1.0-alpha — always pin the dist-tag or version):
|
|
18
18
|
npm install @barrysolomon/mobile-react-native@alpha
|
|
19
19
|
# or pin the exact version:
|
|
20
|
-
# npm install @barrysolomon/mobile-react-native@0.
|
|
20
|
+
# npm install @barrysolomon/mobile-react-native@0.4.0-alpha
|
|
21
21
|
|
|
22
22
|
cd ios && pod install
|
|
23
23
|
```
|
|
@@ -25,13 +25,13 @@ cd ios && pod install
|
|
|
25
25
|
This JS package wraps the native SDKs; install those too:
|
|
26
26
|
|
|
27
27
|
- **iOS** — add the Swift Package `https://github.com/barrysolomon/mobile-otel`
|
|
28
|
-
at tag `v0.
|
|
28
|
+
at tag `v0.4.0-alpha` to your app target, then copy
|
|
29
29
|
`OTelMobileCallSink.swift` (+ `BoundedLiveSpanStore.swift`) from this package
|
|
30
30
|
into your app target and call
|
|
31
31
|
`Dash0MobileModule.installSink { OTelMobileCallSink() }`. The pod intentionally
|
|
32
32
|
excludes the sink because it depends on the SwiftPM SDK delivered on the app
|
|
33
33
|
side.
|
|
34
|
-
- **Android** — `io.opentelemetry.android:mobile:0.
|
|
34
|
+
- **Android** — `io.opentelemetry.android:mobile:0.4.0-alpha` from GitHub
|
|
35
35
|
Packages (`https://maven.pkg.github.com/barrysolomon/mobile-otel`). As of
|
|
36
36
|
0.2.0-alpha the full module set (`mobile-core` + all
|
|
37
37
|
`mobile-instrumentation-*` modules) publishes there, so the dependency tree
|
package/android/build.gradle
CHANGED
|
@@ -97,7 +97,7 @@ ext.reactAndroidVersion = project.findProperty('Dash0Mobile_reactAndroidVersion'
|
|
|
97
97
|
// dependency strings (which silently drifted to 0.1.0-alpha vs the published
|
|
98
98
|
// 0.2.0-alpha and broke clean-.m2 CI while passing on caches that still had the
|
|
99
99
|
// old artifact).
|
|
100
|
-
ext.dash0SdkVersion = project.findProperty('Dash0Mobile_sdkVersion') ?: '0.
|
|
100
|
+
ext.dash0SdkVersion = project.findProperty('Dash0Mobile_sdkVersion') ?: '0.4.0-alpha'
|
|
101
101
|
|
|
102
102
|
dependencies {
|
|
103
103
|
implementation "com.facebook.react:react-android:$reactAndroidVersion"
|
|
@@ -11,9 +11,9 @@ org.gradle.jvmargs=-Xmx2g -Dfile.encoding=UTF-8
|
|
|
11
11
|
Dash0Mobile_standaloneTestBuild=true
|
|
12
12
|
|
|
13
13
|
# Version of the native Android SDK (io.opentelemetry.android:mobile) this module
|
|
14
|
-
# depends on. MUST match the version the repo publishes (currently 0.
|
|
14
|
+
# depends on. MUST match the version the repo publishes (currently 0.4.0-alpha).
|
|
15
15
|
# Single source of truth, read by build.gradle's dash0SdkVersion.
|
|
16
|
-
Dash0Mobile_sdkVersion=0.
|
|
16
|
+
Dash0Mobile_sdkVersion=0.4.0-alpha
|
|
17
17
|
|
|
18
18
|
# Pin the Kotlin version the module's build.gradle reads (it defaults to
|
|
19
19
|
# 2.1.20 and honors this property) so stdlib matches the compiler the
|
|
@@ -180,7 +180,7 @@ internal class OTelMobileCallSink(
|
|
|
180
180
|
|
|
181
181
|
override fun flushWindow(minutes: Int) {
|
|
182
182
|
try {
|
|
183
|
-
OTelMobile.getLoggerProvider().
|
|
183
|
+
OTelMobile.getLoggerProvider().flushWindow(minutes)
|
|
184
184
|
} catch (_: Throwable) {
|
|
185
185
|
// Bridge contract: flush failures must not surface as JS promise
|
|
186
186
|
// rejections. The SDK's own retry/disk-buffer path handles
|
|
@@ -210,7 +210,7 @@ internal class OTelMobileCallSink(
|
|
|
210
210
|
*/
|
|
211
211
|
override fun forceFlush() {
|
|
212
212
|
try {
|
|
213
|
-
OTelMobile.getLoggerProvider().
|
|
213
|
+
OTelMobile.getLoggerProvider().forceFlush()
|
|
214
214
|
} catch (_: Throwable) {
|
|
215
215
|
// Best-effort: a forceFlush failure on the FATAL path must
|
|
216
216
|
// never throw out of the dispatcher (we'd lose the rest of
|
package/lib/index.d.ts
CHANGED
|
@@ -24,9 +24,13 @@ export declare const Dash0Mobile: {
|
|
|
24
24
|
span<T>(name: string, fn: (handle: SpanHandle) => Promise<T> | T, attributes?: Attributes): Promise<T>;
|
|
25
25
|
recordMetric(name: string, value: number, instrumentType?: "counter" | "histogram" | "gauge", attributes?: Attributes): void;
|
|
26
26
|
flushWindow(minutes: number): Promise<void>;
|
|
27
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
27
28
|
startJourney(name: string): Promise<string | null>;
|
|
29
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
28
30
|
endJourney(journeyId: string): Promise<void>;
|
|
31
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
29
32
|
captureScreenshot(trigger?: string): Promise<void>;
|
|
33
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
30
34
|
captureWireframe(trigger?: string): Promise<void>;
|
|
31
35
|
shutdown(): Promise<void>;
|
|
32
36
|
};
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EACV,UAAU,EAEV,uBAAuB,EAEvB,cAAc,EACd,QAAQ,EAER,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,qCAAqC,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAClE,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1D,GAAG,IAAI,IAAI,CAAC;CACb;AA8ED,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD;AAyCD,eAAO,MAAM,WAAW;kBACF,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;cAoFrC,MAAM,eAAc,UAAU,aAAiB,cAAc,GAAO,IAAI;oBAwBlE,MAAM,eAAc,UAAU,aAAiB,QAAQ,GAAgB,UAAU;SAsDtF,CAAC,QACJ,MAAM,MACR,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,eAC7B,UAAU,GACtB,OAAO,CAAC,CAAC,CAAC;uBAeL,MAAM,SACL,MAAM,mBACG,SAAS,GAAG,WAAW,GAAG,OAAO,eACrC,UAAU,GACrB,IAAI;yBAYoB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EACV,UAAU,EAEV,uBAAuB,EAEvB,cAAc,EACd,QAAQ,EAER,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,EAAE,qCAAqC,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IAClE,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1D,GAAG,IAAI,IAAI,CAAC;CACb;AA8ED,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD;AAyCD,eAAO,MAAM,WAAW;kBACF,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;cAoFrC,MAAM,eAAc,UAAU,aAAiB,cAAc,GAAO,IAAI;oBAwBlE,MAAM,eAAc,UAAU,aAAiB,QAAQ,GAAgB,UAAU;SAsDtF,CAAC,QACJ,MAAM,MACR,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,eAC7B,UAAU,GACtB,OAAO,CAAC,CAAC,CAAC;uBAeL,MAAM,SACL,MAAM,mBACG,SAAS,GAAG,WAAW,GAAG,OAAO,eACrC,UAAU,GACrB,IAAI;yBAYoB,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjD,4FAA4F;uBACnE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOxD,4FAA4F;0BAChE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlD,4FAA4F;gCAC3D,MAAM,GAAc,OAAO,CAAC,IAAI,CAAC;IAOlE,4FAA4F;+BAC5D,MAAM,GAAc,OAAO,CAAC,IAAI,CAAC;gBAO/C,OAAO,CAAC,IAAI,CAAC;CAgBhC,CAAC;AA6EF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI,GAAG,IAAI,CAElF;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
|
package/lib/index.js
CHANGED
|
@@ -105,7 +105,7 @@ function resolveNative() {
|
|
|
105
105
|
// callers and correlate issues to a specific bridge release. Keep this in
|
|
106
106
|
// sync with package.json on each release.
|
|
107
107
|
const DISTRO_NAME = 'dash0-react-native';
|
|
108
|
-
const DISTRO_VERSION = '0.
|
|
108
|
+
const DISTRO_VERSION = '0.4.0-alpha';
|
|
109
109
|
function resolveReactNativeVersion() {
|
|
110
110
|
try {
|
|
111
111
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
@@ -315,6 +315,7 @@ export const Dash0Mobile = {
|
|
|
315
315
|
// Thin passthrough to native `OTelMobile.startJourney/endJourney`. The
|
|
316
316
|
// native side creates the journey span and triggers screenshot + wireframe
|
|
317
317
|
// captures at start/end boundaries.
|
|
318
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
318
319
|
async startJourney(name) {
|
|
319
320
|
if (!started)
|
|
320
321
|
return null;
|
|
@@ -323,6 +324,7 @@ export const Dash0Mobile = {
|
|
|
323
324
|
return null;
|
|
324
325
|
return native.startJourney(name);
|
|
325
326
|
},
|
|
327
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
326
328
|
async endJourney(journeyId) {
|
|
327
329
|
if (!started)
|
|
328
330
|
return;
|
|
@@ -331,6 +333,7 @@ export const Dash0Mobile = {
|
|
|
331
333
|
return;
|
|
332
334
|
await native.endJourney(journeyId);
|
|
333
335
|
},
|
|
336
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
334
337
|
async captureScreenshot(trigger = 'manual') {
|
|
335
338
|
if (!started)
|
|
336
339
|
return;
|
|
@@ -339,6 +342,7 @@ export const Dash0Mobile = {
|
|
|
339
342
|
return;
|
|
340
343
|
await native.captureScreenshot(trigger);
|
|
341
344
|
},
|
|
345
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
342
346
|
async captureWireframe(trigger = 'manual') {
|
|
343
347
|
if (!started)
|
|
344
348
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barrysolomon/mobile-react-native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-alpha",
|
|
4
4
|
"description": "Dash0 Mobile Observability SDK for React Native (JS/TS bridge). For native iOS use the Swift Package at https://github.com/barrysolomon/mobile-otel. For native Android use io.opentelemetry.android:mobile on GitHub Packages.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
package/src/index.ts
CHANGED
|
@@ -142,7 +142,7 @@ function resolveNative(): NativeDash0MobileModule | null {
|
|
|
142
142
|
// callers and correlate issues to a specific bridge release. Keep this in
|
|
143
143
|
// sync with package.json on each release.
|
|
144
144
|
const DISTRO_NAME = 'dash0-react-native';
|
|
145
|
-
const DISTRO_VERSION = '0.
|
|
145
|
+
const DISTRO_VERSION = '0.4.0-alpha';
|
|
146
146
|
|
|
147
147
|
function resolveReactNativeVersion(): string | undefined {
|
|
148
148
|
try {
|
|
@@ -364,6 +364,7 @@ export const Dash0Mobile = {
|
|
|
364
364
|
// native side creates the journey span and triggers screenshot + wireframe
|
|
365
365
|
// captures at start/end boundaries.
|
|
366
366
|
|
|
367
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
367
368
|
async startJourney(name: string): Promise<string | null> {
|
|
368
369
|
if (!started) return null;
|
|
369
370
|
const native = resolveNative();
|
|
@@ -371,6 +372,7 @@ export const Dash0Mobile = {
|
|
|
371
372
|
return native.startJourney(name);
|
|
372
373
|
},
|
|
373
374
|
|
|
375
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
374
376
|
async endJourney(journeyId: string): Promise<void> {
|
|
375
377
|
if (!started) return;
|
|
376
378
|
const native = resolveNative();
|
|
@@ -378,6 +380,7 @@ export const Dash0Mobile = {
|
|
|
378
380
|
await native.endJourney(journeyId);
|
|
379
381
|
},
|
|
380
382
|
|
|
383
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
381
384
|
async captureScreenshot(trigger: string = 'manual'): Promise<void> {
|
|
382
385
|
if (!started) return;
|
|
383
386
|
const native = resolveNative();
|
|
@@ -385,6 +388,7 @@ export const Dash0Mobile = {
|
|
|
385
388
|
await native.captureScreenshot(trigger);
|
|
386
389
|
},
|
|
387
390
|
|
|
391
|
+
/** @experimental Incubating API (docs/API_STABILITY.md) — may change in a minor release. */
|
|
388
392
|
async captureWireframe(trigger: string = 'manual'): Promise<void> {
|
|
389
393
|
if (!started) return;
|
|
390
394
|
const native = resolveNative();
|