@flareapp/core 2.10.0 → 2.11.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/dist/index.cjs CHANGED
@@ -26,7 +26,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  }) : target, mod));
27
27
 
28
28
  //#endregion
29
- const require_urlAttributes = require('./urlAttributes-B37JykP3.cjs');
29
+ const require_urlAttributes = require('./urlAttributes-Cinqzwjy.cjs');
30
30
  let error_stack_parser = require("error-stack-parser");
31
31
  error_stack_parser = __toESM(error_stack_parser);
32
32
 
@@ -618,6 +618,8 @@ const RESOURCE_PREFIXES = [
618
618
  "host.",
619
619
  "os.",
620
620
  "process.",
621
+ "device.",
622
+ "network.",
621
623
  "flare.framework.",
622
624
  "flare.language."
623
625
  ];
@@ -1861,6 +1863,73 @@ var Flare = class {
1861
1863
  }
1862
1864
  };
1863
1865
 
1866
+ //#endregion
1867
+ //#region src/device/DeviceInfoProvider.ts
1868
+ /** Default for platforms with no device info. */
1869
+ var NullDeviceInfoProvider = class {
1870
+ collect() {
1871
+ return {};
1872
+ }
1873
+ };
1874
+
1875
+ //#endregion
1876
+ //#region src/device/deviceInfoToAttributes.ts
1877
+ /** Map `DeviceInfo` to wire attributes: flat keys plus a `context.device` card. Shared by every SDK, so keys never drift. */
1878
+ function deviceInfoToAttributes(info) {
1879
+ const attrs = {};
1880
+ require_urlAttributes.setDefined(attrs, "os.name", info.os?.name);
1881
+ require_urlAttributes.setDefined(attrs, "os.version", info.os?.version);
1882
+ require_urlAttributes.setDefined(attrs, "process.runtime.name", info.runtime?.name);
1883
+ require_urlAttributes.setDefined(attrs, "process.runtime.version", info.runtime?.version);
1884
+ require_urlAttributes.setDefined(attrs, "device.type", info.device?.type);
1885
+ require_urlAttributes.setDefined(attrs, "device.model.name", info.device?.model);
1886
+ require_urlAttributes.setDefined(attrs, "device.memory_gb", info.device?.memoryGb);
1887
+ require_urlAttributes.setDefined(attrs, "device.cpu_cores", info.device?.cpuCores);
1888
+ require_urlAttributes.setDefined(attrs, "device.screen.width", info.device?.screen?.width);
1889
+ require_urlAttributes.setDefined(attrs, "device.screen.height", info.device?.screen?.height);
1890
+ require_urlAttributes.setDefined(attrs, "device.screen.scale", info.device?.screen?.scale);
1891
+ require_urlAttributes.setDefined(attrs, "network.effective_type", info.network?.effectiveType);
1892
+ require_urlAttributes.setDefined(attrs, "network.downlink_mbps", info.network?.downlinkMbps);
1893
+ require_urlAttributes.setDefined(attrs, "network.rtt_ms", info.network?.rttMs);
1894
+ require_urlAttributes.setDefined(attrs, "network.online", info.network?.online);
1895
+ require_urlAttributes.setDefined(attrs, "app.version", info.app?.version);
1896
+ require_urlAttributes.setDefined(attrs, "app.id", info.app?.id);
1897
+ const group = buildDeviceContextGroup(info);
1898
+ if (Object.keys(group).length > 0) attrs["context.device"] = group;
1899
+ return attrs;
1900
+ }
1901
+ /**
1902
+ * `context.device` card for the error UI. Rendered one level deep, so values stay scalar. Built only when
1903
+ * a device or network signal exists (an os-only Node report gets none).
1904
+ */
1905
+ function buildDeviceContextGroup(info) {
1906
+ if (!hasDeviceSignal(info.device) && !hasNetworkSignal(info.network)) return {};
1907
+ const group = {};
1908
+ const os = [info.os?.name, info.os?.version].filter((value) => value != null).join(" ");
1909
+ if (os) group.OS = os;
1910
+ require_urlAttributes.setDefined(group, "Model", info.device?.model);
1911
+ require_urlAttributes.setDefined(group, "Type", info.device?.type);
1912
+ const screen = info.device?.screen;
1913
+ if (screen?.width != null && screen?.height != null) group.Screen = screen.scale != null ? `${screen.width} × ${screen.height} @ ${screen.scale}x` : `${screen.width} × ${screen.height}`;
1914
+ if (info.device?.memoryGb != null) group.Memory = `${info.device.memoryGb} GB`;
1915
+ require_urlAttributes.setDefined(group, "CPU cores", info.device?.cpuCores);
1916
+ require_urlAttributes.setDefined(group, "Connection", info.network?.effectiveType);
1917
+ if (info.network?.downlinkMbps != null) group.Downlink = `${info.network.downlinkMbps} Mbps`;
1918
+ if (info.network?.rttMs != null) group.RTT = `${info.network.rttMs} ms`;
1919
+ require_urlAttributes.setDefined(group, "Online", info.network?.online);
1920
+ require_urlAttributes.setDefined(group, "App version", info.app?.version);
1921
+ require_urlAttributes.setDefined(group, "App ID", info.app?.id);
1922
+ require_urlAttributes.setDefined(group, "Language", info.locale?.language);
1923
+ require_urlAttributes.setDefined(group, "Timezone", info.locale?.timezone);
1924
+ return group;
1925
+ }
1926
+ function hasDeviceSignal(device) {
1927
+ return device != null && (device.type != null || device.model != null || device.memoryGb != null || device.cpuCores != null || device.screen?.width != null || device.screen?.height != null);
1928
+ }
1929
+ function hasNetworkSignal(network) {
1930
+ return network != null && (network.effectiveType != null || network.downlinkMbps != null || network.rttMs != null || network.online != null);
1931
+ }
1932
+
1864
1933
  //#endregion
1865
1934
  exports.Api = Api;
1866
1935
  exports.BrowserSpanEventType = BrowserSpanEventType;
@@ -1874,6 +1943,7 @@ exports.InMemoryActiveSpanHolder = InMemoryActiveSpanHolder;
1874
1943
  exports.Logger = Logger;
1875
1944
  exports.MAX_BREADCRUMB_URL_LENGTH = MAX_BREADCRUMB_URL_LENGTH;
1876
1945
  exports.NoopFlushScheduler = NoopFlushScheduler;
1946
+ exports.NullDeviceInfoProvider = NullDeviceInfoProvider;
1877
1947
  exports.NullFileReader = NullFileReader;
1878
1948
  exports.Scope = Scope;
1879
1949
  exports.SpanStatusCode = SpanStatusCode;
@@ -1882,6 +1952,7 @@ exports.USER_IDENTITY_KEYS = USER_IDENTITY_KEYS;
1882
1952
  exports.assert = require_urlAttributes.assert;
1883
1953
  exports.assertKey = require_urlAttributes.assertKey;
1884
1954
  exports.breadcrumbUrl = breadcrumbUrl;
1955
+ exports.buildDeviceContextGroup = buildDeviceContextGroup;
1885
1956
  exports.buildTraceparent = buildTraceparent;
1886
1957
  exports.buildTracesEnvelope = buildTracesEnvelope;
1887
1958
  exports.convertToError = require_urlAttributes.convertToError;
@@ -1889,6 +1960,7 @@ exports.createIdentityTagger = require_urlAttributes.createIdentityTagger;
1889
1960
  exports.createStackTrace = createStackTrace;
1890
1961
  exports.defaultNowNano = defaultNowNano;
1891
1962
  exports.describeRejectionReason = require_urlAttributes.describeRejectionReason;
1963
+ exports.deviceInfoToAttributes = deviceInfoToAttributes;
1892
1964
  exports.extractCode = require_urlAttributes.extractCode;
1893
1965
  exports.flatJsonStringify = require_urlAttributes.flatJsonStringify;
1894
1966
  exports.getCodeSnippet = getCodeSnippet;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as TracesSampler, A as BufferedLog, B as OtelLogRecord, D as AnyValue, E as assert, F as Framework, G as SdkInfo, H as OverriddenGrouping, I as Glow, J as SpanOptions, K as Span, L as KeyValue, M as Config, N as EntryPointHandler, O as AttributeValue, P as EntryPointType, Q as TracesEnvelope, R as LogsEnvelope, S as convertToError, T as assertKey, U as Report, V as OtelSpan, W as SamplingContext, X as SpanStatusCode, Y as SpanStatus, Z as StackFrame, _ as glowsToEvents, a as SafeCloneOptions, b as SdkTaggable, c as describeRejectionReason, d as redactObjectValues, et as User, f as redactUrlQuery, h as now, it as FrameworkName, j as BufferedSpan, k as Attributes, l as routeRejection, m as safeDecode, n as urlAttributes, nt as BrowserSpanType, o as safeClone, p as resolveDenylist, q as SpanEvent, r as toCustomContext, rt as SpanTypeName, s as RejectionReporter, tt as BrowserSpanEventType, u as DEFAULT_URL_DENYLIST, v as flatJsonStringify, x as createIdentityTagger, y as extractCode, z as MessageLevel } from "./urlAttributes-DW_i-YQ3.cjs";
1
+ import { $ as TracesEnvelope, A as Attributes, B as MessageLevel, C as convertToError, D as assert, E as assertKey, F as EntryPointType, G as SamplingContext, H as OtelSpan, I as Framework, J as SpanEvent, K as SdkInfo, L as Glow, M as BufferedSpan, N as Config, O as AnyValue, P as EntryPointHandler, Q as StackFrame, R as KeyValue, S as createIdentityTagger, U as OverriddenGrouping, V as OtelLogRecord, W as Report, X as SpanStatus, Y as SpanOptions, Z as SpanStatusCode, at as FrameworkName, b as extractCode, c as RejectionReporter, d as DEFAULT_URL_DENYLIST, et as TracesSampler, f as redactObjectValues, g as now, h as safeDecode, it as SpanTypeName, j as BufferedLog, k as AttributeValue, l as describeRejectionReason, m as resolveDenylist, n as urlAttributes, nt as BrowserSpanEventType, o as SafeCloneOptions, p as redactUrlQuery, q as Span, r as toCustomContext, rt as BrowserSpanType, s as safeClone, tt as User, u as routeRejection, v as glowsToEvents, x as SdkTaggable, y as flatJsonStringify, z as LogsEnvelope } from "./urlAttributes-D0zqStcw.cjs";
2
2
 
3
3
  //#region src/api/Api.d.ts
4
4
  declare class Api {
@@ -360,7 +360,66 @@ declare class NullFileReader implements FileReader {
360
360
  read(_url: string): Promise<string | null>;
361
361
  }
362
362
  //#endregion
363
+ //#region src/device/types.d.ts
364
+ /** Effective connection quality. The API never reports 5g: a 5g device reports '4g'. */
365
+ type EffectiveConnectionType = 'slow-2g' | '2g' | '3g' | '4g';
366
+ /** Normalised device info. Every field optional: each provider fills what it reads, the mapper drops the rest. */
367
+ type DeviceInfo = {
368
+ os?: {
369
+ name?: string;
370
+ version?: string;
371
+ };
372
+ runtime?: {
373
+ name?: string;
374
+ version?: string;
375
+ };
376
+ device?: {
377
+ type?: string;
378
+ model?: string;
379
+ memoryGb?: number;
380
+ cpuCores?: number;
381
+ screen?: {
382
+ width?: number;
383
+ height?: number;
384
+ scale?: number;
385
+ };
386
+ };
387
+ network?: {
388
+ effectiveType?: EffectiveConnectionType;
389
+ downlinkMbps?: number;
390
+ rttMs?: number;
391
+ online?: boolean;
392
+ };
393
+ app?: {
394
+ version?: string;
395
+ id?: string;
396
+ };
397
+ locale?: {
398
+ language?: string;
399
+ timezone?: string;
400
+ };
401
+ };
402
+ //#endregion
403
+ //#region src/device/DeviceInfoProvider.d.ts
404
+ /** The seam each platform implements to read device info. A `ContextCollector` maps it with `deviceInfoToAttributes`. */
405
+ interface DeviceInfoProvider {
406
+ collect(): DeviceInfo;
407
+ }
408
+ /** Default for platforms with no device info. */
409
+ declare class NullDeviceInfoProvider implements DeviceInfoProvider {
410
+ collect(): DeviceInfo;
411
+ }
412
+ //#endregion
413
+ //#region src/device/deviceInfoToAttributes.d.ts
414
+ /** Map `DeviceInfo` to wire attributes: flat keys plus a `context.device` card. Shared by every SDK, so keys never drift. */
415
+ declare function deviceInfoToAttributes(info: DeviceInfo): Attributes;
416
+ /**
417
+ * `context.device` card for the error UI. Rendered one level deep, so values stay scalar. Built only when
418
+ * a device or network signal exists (an os-only Node report gets none).
419
+ */
420
+ declare function buildDeviceContextGroup(info: DeviceInfo): Record<string, AttributeValue>;
421
+ //#endregion
363
422
  //#region src/stacktrace/createStackTrace.d.ts
364
423
  declare function createStackTrace(error: Error, debug: boolean, fileReader: FileReader): Promise<Array<StackFrame>>;
365
424
  //#endregion
366
- export { type ActiveSpanHolder, type AnyValue, Api, type AttributeValue, type Attributes, BrowserSpanEventType, BrowserSpanType, type BufferedLog, type BufferedSpan, type Config, type ContextCollector, DEFAULT_MAX_LIVE_TRACES, DEFAULT_URL_DENYLIST, type EntryPointHandler, type EntryPointType, type FileReader, Flare, type FlushFn, type FlushScheduler, type Framework, FrameworkName, GlobalScopeProvider, type Glow, InMemoryActiveSpanHolder, type KeyValue, Logger, type LoggerDeps, type LogsEnvelope, MAX_BREADCRUMB_URL_LENGTH, type MessageLevel, NoopFlushScheduler, NullFileReader, type OtelLogRecord, type OtelSpan, type OverriddenGrouping, type RejectionReporter, type Report, type SafeCloneOptions, type SamplingContext, Scope, type ScopeProvider, type SdkInfo, type SdkTaggable, type Span, type SpanEvent, type SpanLifecycleEvent, type SpanLifecycleListener, type SpanOptions, type SpanPhase, type SpanStatus, SpanStatusCode, type SpanTypeName, type StackFrame, Tracer, type TracerDeps, type TracesEnvelope, type TracesSampler, USER_IDENTITY_KEYS, type User, assert, assertKey, breadcrumbUrl, buildTraceparent, buildTracesEnvelope, convertToError, createIdentityTagger, createStackTrace, defaultNowNano, describeRejectionReason, extractCode, flatJsonStringify, getCodeSnippet, glowsToEvents, now, parseTraceparent, readLinesFromFile, recordBreadcrumb, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, spanId, toCustomContext, urlAttributes, userIdentityAttributes };
425
+ export { type ActiveSpanHolder, type AnyValue, Api, type AttributeValue, type Attributes, BrowserSpanEventType, BrowserSpanType, type BufferedLog, type BufferedSpan, type Config, type ContextCollector, DEFAULT_MAX_LIVE_TRACES, DEFAULT_URL_DENYLIST, type DeviceInfo, type DeviceInfoProvider, type EffectiveConnectionType, type EntryPointHandler, type EntryPointType, type FileReader, Flare, type FlushFn, type FlushScheduler, type Framework, FrameworkName, GlobalScopeProvider, type Glow, InMemoryActiveSpanHolder, type KeyValue, Logger, type LoggerDeps, type LogsEnvelope, MAX_BREADCRUMB_URL_LENGTH, type MessageLevel, NoopFlushScheduler, NullDeviceInfoProvider, NullFileReader, type OtelLogRecord, type OtelSpan, type OverriddenGrouping, type RejectionReporter, type Report, type SafeCloneOptions, type SamplingContext, Scope, type ScopeProvider, type SdkInfo, type SdkTaggable, type Span, type SpanEvent, type SpanLifecycleEvent, type SpanLifecycleListener, type SpanOptions, type SpanPhase, type SpanStatus, SpanStatusCode, type SpanTypeName, type StackFrame, Tracer, type TracerDeps, type TracesEnvelope, type TracesSampler, USER_IDENTITY_KEYS, type User, assert, assertKey, breadcrumbUrl, buildDeviceContextGroup, buildTraceparent, buildTracesEnvelope, convertToError, createIdentityTagger, createStackTrace, defaultNowNano, describeRejectionReason, deviceInfoToAttributes, extractCode, flatJsonStringify, getCodeSnippet, glowsToEvents, now, parseTraceparent, readLinesFromFile, recordBreadcrumb, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, spanId, toCustomContext, urlAttributes, userIdentityAttributes };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as TracesSampler, A as BufferedLog, B as OtelLogRecord, D as AnyValue, E as assert, F as Framework, G as SdkInfo, H as OverriddenGrouping, I as Glow, J as SpanOptions, K as Span, L as KeyValue, M as Config, N as EntryPointHandler, O as AttributeValue, P as EntryPointType, Q as TracesEnvelope, R as LogsEnvelope, S as convertToError, T as assertKey, U as Report, V as OtelSpan, W as SamplingContext, X as SpanStatusCode, Y as SpanStatus, Z as StackFrame, _ as glowsToEvents, a as SafeCloneOptions, b as SdkTaggable, c as describeRejectionReason, d as redactObjectValues, et as User, f as redactUrlQuery, h as now, it as FrameworkName, j as BufferedSpan, k as Attributes, l as routeRejection, m as safeDecode, n as urlAttributes, nt as BrowserSpanType, o as safeClone, p as resolveDenylist, q as SpanEvent, r as toCustomContext, rt as SpanTypeName, s as RejectionReporter, tt as BrowserSpanEventType, u as DEFAULT_URL_DENYLIST, v as flatJsonStringify, x as createIdentityTagger, y as extractCode, z as MessageLevel } from "./urlAttributes-CYsfTfi9.mjs";
1
+ import { $ as TracesEnvelope, A as Attributes, B as MessageLevel, C as convertToError, D as assert, E as assertKey, F as EntryPointType, G as SamplingContext, H as OtelSpan, I as Framework, J as SpanEvent, K as SdkInfo, L as Glow, M as BufferedSpan, N as Config, O as AnyValue, P as EntryPointHandler, Q as StackFrame, R as KeyValue, S as createIdentityTagger, U as OverriddenGrouping, V as OtelLogRecord, W as Report, X as SpanStatus, Y as SpanOptions, Z as SpanStatusCode, at as FrameworkName, b as extractCode, c as RejectionReporter, d as DEFAULT_URL_DENYLIST, et as TracesSampler, f as redactObjectValues, g as now, h as safeDecode, it as SpanTypeName, j as BufferedLog, k as AttributeValue, l as describeRejectionReason, m as resolveDenylist, n as urlAttributes, nt as BrowserSpanEventType, o as SafeCloneOptions, p as redactUrlQuery, q as Span, r as toCustomContext, rt as BrowserSpanType, s as safeClone, tt as User, u as routeRejection, v as glowsToEvents, x as SdkTaggable, y as flatJsonStringify, z as LogsEnvelope } from "./urlAttributes-DhkRD7pA.mjs";
2
2
 
3
3
  //#region src/api/Api.d.ts
4
4
  declare class Api {
@@ -360,7 +360,66 @@ declare class NullFileReader implements FileReader {
360
360
  read(_url: string): Promise<string | null>;
361
361
  }
362
362
  //#endregion
363
+ //#region src/device/types.d.ts
364
+ /** Effective connection quality. The API never reports 5g: a 5g device reports '4g'. */
365
+ type EffectiveConnectionType = 'slow-2g' | '2g' | '3g' | '4g';
366
+ /** Normalised device info. Every field optional: each provider fills what it reads, the mapper drops the rest. */
367
+ type DeviceInfo = {
368
+ os?: {
369
+ name?: string;
370
+ version?: string;
371
+ };
372
+ runtime?: {
373
+ name?: string;
374
+ version?: string;
375
+ };
376
+ device?: {
377
+ type?: string;
378
+ model?: string;
379
+ memoryGb?: number;
380
+ cpuCores?: number;
381
+ screen?: {
382
+ width?: number;
383
+ height?: number;
384
+ scale?: number;
385
+ };
386
+ };
387
+ network?: {
388
+ effectiveType?: EffectiveConnectionType;
389
+ downlinkMbps?: number;
390
+ rttMs?: number;
391
+ online?: boolean;
392
+ };
393
+ app?: {
394
+ version?: string;
395
+ id?: string;
396
+ };
397
+ locale?: {
398
+ language?: string;
399
+ timezone?: string;
400
+ };
401
+ };
402
+ //#endregion
403
+ //#region src/device/DeviceInfoProvider.d.ts
404
+ /** The seam each platform implements to read device info. A `ContextCollector` maps it with `deviceInfoToAttributes`. */
405
+ interface DeviceInfoProvider {
406
+ collect(): DeviceInfo;
407
+ }
408
+ /** Default for platforms with no device info. */
409
+ declare class NullDeviceInfoProvider implements DeviceInfoProvider {
410
+ collect(): DeviceInfo;
411
+ }
412
+ //#endregion
413
+ //#region src/device/deviceInfoToAttributes.d.ts
414
+ /** Map `DeviceInfo` to wire attributes: flat keys plus a `context.device` card. Shared by every SDK, so keys never drift. */
415
+ declare function deviceInfoToAttributes(info: DeviceInfo): Attributes;
416
+ /**
417
+ * `context.device` card for the error UI. Rendered one level deep, so values stay scalar. Built only when
418
+ * a device or network signal exists (an os-only Node report gets none).
419
+ */
420
+ declare function buildDeviceContextGroup(info: DeviceInfo): Record<string, AttributeValue>;
421
+ //#endregion
363
422
  //#region src/stacktrace/createStackTrace.d.ts
364
423
  declare function createStackTrace(error: Error, debug: boolean, fileReader: FileReader): Promise<Array<StackFrame>>;
365
424
  //#endregion
366
- export { type ActiveSpanHolder, type AnyValue, Api, type AttributeValue, type Attributes, BrowserSpanEventType, BrowserSpanType, type BufferedLog, type BufferedSpan, type Config, type ContextCollector, DEFAULT_MAX_LIVE_TRACES, DEFAULT_URL_DENYLIST, type EntryPointHandler, type EntryPointType, type FileReader, Flare, type FlushFn, type FlushScheduler, type Framework, FrameworkName, GlobalScopeProvider, type Glow, InMemoryActiveSpanHolder, type KeyValue, Logger, type LoggerDeps, type LogsEnvelope, MAX_BREADCRUMB_URL_LENGTH, type MessageLevel, NoopFlushScheduler, NullFileReader, type OtelLogRecord, type OtelSpan, type OverriddenGrouping, type RejectionReporter, type Report, type SafeCloneOptions, type SamplingContext, Scope, type ScopeProvider, type SdkInfo, type SdkTaggable, type Span, type SpanEvent, type SpanLifecycleEvent, type SpanLifecycleListener, type SpanOptions, type SpanPhase, type SpanStatus, SpanStatusCode, type SpanTypeName, type StackFrame, Tracer, type TracerDeps, type TracesEnvelope, type TracesSampler, USER_IDENTITY_KEYS, type User, assert, assertKey, breadcrumbUrl, buildTraceparent, buildTracesEnvelope, convertToError, createIdentityTagger, createStackTrace, defaultNowNano, describeRejectionReason, extractCode, flatJsonStringify, getCodeSnippet, glowsToEvents, now, parseTraceparent, readLinesFromFile, recordBreadcrumb, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, spanId, toCustomContext, urlAttributes, userIdentityAttributes };
425
+ export { type ActiveSpanHolder, type AnyValue, Api, type AttributeValue, type Attributes, BrowserSpanEventType, BrowserSpanType, type BufferedLog, type BufferedSpan, type Config, type ContextCollector, DEFAULT_MAX_LIVE_TRACES, DEFAULT_URL_DENYLIST, type DeviceInfo, type DeviceInfoProvider, type EffectiveConnectionType, type EntryPointHandler, type EntryPointType, type FileReader, Flare, type FlushFn, type FlushScheduler, type Framework, FrameworkName, GlobalScopeProvider, type Glow, InMemoryActiveSpanHolder, type KeyValue, Logger, type LoggerDeps, type LogsEnvelope, MAX_BREADCRUMB_URL_LENGTH, type MessageLevel, NoopFlushScheduler, NullDeviceInfoProvider, NullFileReader, type OtelLogRecord, type OtelSpan, type OverriddenGrouping, type RejectionReporter, type Report, type SafeCloneOptions, type SamplingContext, Scope, type ScopeProvider, type SdkInfo, type SdkTaggable, type Span, type SpanEvent, type SpanLifecycleEvent, type SpanLifecycleListener, type SpanOptions, type SpanPhase, type SpanStatus, SpanStatusCode, type SpanTypeName, type StackFrame, Tracer, type TracerDeps, type TracesEnvelope, type TracesSampler, USER_IDENTITY_KEYS, type User, assert, assertKey, breadcrumbUrl, buildDeviceContextGroup, buildTraceparent, buildTracesEnvelope, convertToError, createIdentityTagger, createStackTrace, defaultNowNano, describeRejectionReason, deviceInfoToAttributes, extractCode, flatJsonStringify, getCodeSnippet, glowsToEvents, now, parseTraceparent, readLinesFromFile, recordBreadcrumb, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, spanId, toCustomContext, urlAttributes, userIdentityAttributes };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { D as CLIENT_VERSION, E as assert, O as KEY, S as convertToError, T as assertKey, _ as TRUNCATED, a as routeRejection, b as extractCode, c as redactUrlQuery, d as now, f as timelineEvents, g as MAX_TRAVERSAL_DEPTH, h as safeClone, i as describeRejectionReason, k as SOURCEMAP_VERSION, l as resolveDenylist, m as flatJsonStringify, n as urlAttributes, o as DEFAULT_URL_DENYLIST, p as glowsToEvents, r as toCustomContext, s as redactObjectValues, u as safeDecode, v as createTraversalBudget, x as createIdentityTagger, y as spendNode } from "./urlAttributes-DeDN7qtu.mjs";
1
+ import { A as SOURCEMAP_VERSION, C as convertToError, D as assert, E as assertKey, O as CLIENT_VERSION, S as createIdentityTagger, _ as MAX_TRAVERSAL_DEPTH, a as describeRejectionReason, b as spendNode, c as redactObjectValues, d as safeDecode, f as now, g as safeClone, h as flatJsonStringify, i as setDefined, k as KEY, l as redactUrlQuery, m as glowsToEvents, n as urlAttributes, o as routeRejection, p as timelineEvents, r as toCustomContext, s as DEFAULT_URL_DENYLIST, u as resolveDenylist, v as TRUNCATED, x as extractCode, y as createTraversalBudget } from "./urlAttributes-DmpMd_4O.mjs";
2
2
  import ErrorStackParser from "error-stack-parser";
3
3
 
4
4
  //#region src/framework.ts
@@ -589,6 +589,8 @@ const RESOURCE_PREFIXES = [
589
589
  "host.",
590
590
  "os.",
591
591
  "process.",
592
+ "device.",
593
+ "network.",
592
594
  "flare.framework.",
593
595
  "flare.language."
594
596
  ];
@@ -1833,4 +1835,71 @@ var Flare = class {
1833
1835
  };
1834
1836
 
1835
1837
  //#endregion
1836
- export { Api, BrowserSpanEventType, BrowserSpanType, DEFAULT_MAX_LIVE_TRACES, DEFAULT_URL_DENYLIST, Flare, FrameworkName, GlobalScopeProvider, InMemoryActiveSpanHolder, Logger, MAX_BREADCRUMB_URL_LENGTH, NoopFlushScheduler, NullFileReader, Scope, SpanStatusCode, Tracer, USER_IDENTITY_KEYS, assert, assertKey, breadcrumbUrl, buildTraceparent, buildTracesEnvelope, convertToError, createIdentityTagger, createStackTrace, defaultNowNano, describeRejectionReason, extractCode, flatJsonStringify, getCodeSnippet, glowsToEvents, now, parseTraceparent, readLinesFromFile, recordBreadcrumb, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, spanId, toCustomContext, urlAttributes, userIdentityAttributes };
1838
+ //#region src/device/DeviceInfoProvider.ts
1839
+ /** Default for platforms with no device info. */
1840
+ var NullDeviceInfoProvider = class {
1841
+ collect() {
1842
+ return {};
1843
+ }
1844
+ };
1845
+
1846
+ //#endregion
1847
+ //#region src/device/deviceInfoToAttributes.ts
1848
+ /** Map `DeviceInfo` to wire attributes: flat keys plus a `context.device` card. Shared by every SDK, so keys never drift. */
1849
+ function deviceInfoToAttributes(info) {
1850
+ const attrs = {};
1851
+ setDefined(attrs, "os.name", info.os?.name);
1852
+ setDefined(attrs, "os.version", info.os?.version);
1853
+ setDefined(attrs, "process.runtime.name", info.runtime?.name);
1854
+ setDefined(attrs, "process.runtime.version", info.runtime?.version);
1855
+ setDefined(attrs, "device.type", info.device?.type);
1856
+ setDefined(attrs, "device.model.name", info.device?.model);
1857
+ setDefined(attrs, "device.memory_gb", info.device?.memoryGb);
1858
+ setDefined(attrs, "device.cpu_cores", info.device?.cpuCores);
1859
+ setDefined(attrs, "device.screen.width", info.device?.screen?.width);
1860
+ setDefined(attrs, "device.screen.height", info.device?.screen?.height);
1861
+ setDefined(attrs, "device.screen.scale", info.device?.screen?.scale);
1862
+ setDefined(attrs, "network.effective_type", info.network?.effectiveType);
1863
+ setDefined(attrs, "network.downlink_mbps", info.network?.downlinkMbps);
1864
+ setDefined(attrs, "network.rtt_ms", info.network?.rttMs);
1865
+ setDefined(attrs, "network.online", info.network?.online);
1866
+ setDefined(attrs, "app.version", info.app?.version);
1867
+ setDefined(attrs, "app.id", info.app?.id);
1868
+ const group = buildDeviceContextGroup(info);
1869
+ if (Object.keys(group).length > 0) attrs["context.device"] = group;
1870
+ return attrs;
1871
+ }
1872
+ /**
1873
+ * `context.device` card for the error UI. Rendered one level deep, so values stay scalar. Built only when
1874
+ * a device or network signal exists (an os-only Node report gets none).
1875
+ */
1876
+ function buildDeviceContextGroup(info) {
1877
+ if (!hasDeviceSignal(info.device) && !hasNetworkSignal(info.network)) return {};
1878
+ const group = {};
1879
+ const os = [info.os?.name, info.os?.version].filter((value) => value != null).join(" ");
1880
+ if (os) group.OS = os;
1881
+ setDefined(group, "Model", info.device?.model);
1882
+ setDefined(group, "Type", info.device?.type);
1883
+ const screen = info.device?.screen;
1884
+ if (screen?.width != null && screen?.height != null) group.Screen = screen.scale != null ? `${screen.width} × ${screen.height} @ ${screen.scale}x` : `${screen.width} × ${screen.height}`;
1885
+ if (info.device?.memoryGb != null) group.Memory = `${info.device.memoryGb} GB`;
1886
+ setDefined(group, "CPU cores", info.device?.cpuCores);
1887
+ setDefined(group, "Connection", info.network?.effectiveType);
1888
+ if (info.network?.downlinkMbps != null) group.Downlink = `${info.network.downlinkMbps} Mbps`;
1889
+ if (info.network?.rttMs != null) group.RTT = `${info.network.rttMs} ms`;
1890
+ setDefined(group, "Online", info.network?.online);
1891
+ setDefined(group, "App version", info.app?.version);
1892
+ setDefined(group, "App ID", info.app?.id);
1893
+ setDefined(group, "Language", info.locale?.language);
1894
+ setDefined(group, "Timezone", info.locale?.timezone);
1895
+ return group;
1896
+ }
1897
+ function hasDeviceSignal(device) {
1898
+ return device != null && (device.type != null || device.model != null || device.memoryGb != null || device.cpuCores != null || device.screen?.width != null || device.screen?.height != null);
1899
+ }
1900
+ function hasNetworkSignal(network) {
1901
+ return network != null && (network.effectiveType != null || network.downlinkMbps != null || network.rttMs != null || network.online != null);
1902
+ }
1903
+
1904
+ //#endregion
1905
+ export { Api, BrowserSpanEventType, BrowserSpanType, DEFAULT_MAX_LIVE_TRACES, DEFAULT_URL_DENYLIST, Flare, FrameworkName, GlobalScopeProvider, InMemoryActiveSpanHolder, Logger, MAX_BREADCRUMB_URL_LENGTH, NoopFlushScheduler, NullDeviceInfoProvider, NullFileReader, Scope, SpanStatusCode, Tracer, USER_IDENTITY_KEYS, assert, assertKey, breadcrumbUrl, buildDeviceContextGroup, buildTraceparent, buildTracesEnvelope, convertToError, createIdentityTagger, createStackTrace, defaultNowNano, describeRejectionReason, deviceInfoToAttributes, extractCode, flatJsonStringify, getCodeSnippet, glowsToEvents, now, parseTraceparent, readLinesFromFile, recordBreadcrumb, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, spanId, toCustomContext, urlAttributes, userIdentityAttributes };
@@ -1,6 +1,6 @@
1
1
 
2
2
  //#region src/env/index.ts
3
- const CLIENT_VERSION = typeof process !== "undefined" && true ? "2.10.0" : "?";
3
+ const CLIENT_VERSION = typeof process !== "undefined" && true ? "2.11.0" : "?";
4
4
  const KEY = typeof FLARE_JS_KEY === "undefined" ? "" : FLARE_JS_KEY;
5
5
  const SOURCEMAP_VERSION = typeof FLARE_SOURCEMAP_VERSION === "undefined" ? "" : FLARE_SOURCEMAP_VERSION;
6
6
 
@@ -351,6 +351,13 @@ function routeRejection(reporter, reason) {
351
351
  Promise.resolve(reporter.reportUnhandledRejection(describeRejectionReason(reason))).catch(() => {});
352
352
  }
353
353
 
354
+ //#endregion
355
+ //#region src/util/setDefined.ts
356
+ /** Assign the value only when it is neither undefined nor null. */
357
+ function setDefined(target, key, value) {
358
+ if (value !== void 0 && value !== null) target[key] = value;
359
+ }
360
+
354
361
  //#endregion
355
362
  //#region src/util/toCustomContext.ts
356
363
  /** Wraps a framework payload as the `context.custom` attribute a report expects. */
@@ -534,6 +541,12 @@ Object.defineProperty(exports, 'safeDecode', {
534
541
  return safeDecode;
535
542
  }
536
543
  });
544
+ Object.defineProperty(exports, 'setDefined', {
545
+ enumerable: true,
546
+ get: function () {
547
+ return setDefined;
548
+ }
549
+ });
537
550
  Object.defineProperty(exports, 'spendNode', {
538
551
  enumerable: true,
539
552
  get: function () {
@@ -437,6 +437,10 @@ type SafeCloneOptions = {
437
437
  */
438
438
  declare function safeClone(value: unknown, options: SafeCloneOptions): unknown;
439
439
  //#endregion
440
+ //#region src/util/setDefined.d.ts
441
+ /** Assign the value only when it is neither undefined nor null. */
442
+ declare function setDefined(target: Attributes, key: string, value: AttributeValue | undefined): void;
443
+ //#endregion
440
444
  //#region src/util/statelessRegExp.d.ts
441
445
  /**
442
446
  * A `/g` or `/y` regex carries `lastIndex` between `test()` calls, so every other call misses. Returns
@@ -463,4 +467,4 @@ declare const MAX_URL_LENGTH = 2048;
463
467
  */
464
468
  declare function urlAttributes(url: string, denylist?: RegExp): Attributes;
465
469
  //#endregion
466
- export { TracesSampler as $, BufferedLog as A, OtelLogRecord as B, ProfileComponentsOption as C, AnyValue as D, assert as E, Framework as F, SdkInfo as G, OverriddenGrouping as H, Glow as I, SpanOptions as J, Span as K, KeyValue as L, Config as M, EntryPointHandler as N, AttributeValue as O, EntryPointType as P, TracesEnvelope as Q, LogsEnvelope as R, convertToError as S, assertKey as T, Report as U, OtelSpan as V, SamplingContext as W, SpanStatusCode as X, SpanStatus as Y, StackFrame as Z, glowsToEvents as _, SafeCloneOptions as a, SdkTaggable as b, describeRejectionReason as c, redactObjectValues as d, User as et, redactUrlQuery as f, timelineEvents as g, now as h, withoutStatefulFlags as i, FrameworkName as it, BufferedSpan as j, Attributes as k, routeRejection as l, safeDecode as m, urlAttributes as n, BrowserSpanType as nt, safeClone as o, resolveDenylist as p, SpanEvent as q, toCustomContext as r, SpanTypeName as rt, RejectionReporter as s, MAX_URL_LENGTH as t, BrowserSpanEventType as tt, DEFAULT_URL_DENYLIST as u, flatJsonStringify as v, createComponentMatcher as w, createIdentityTagger as x, extractCode as y, MessageLevel as z };
470
+ export { TracesEnvelope as $, Attributes as A, MessageLevel as B, convertToError as C, assert as D, assertKey as E, EntryPointType as F, SamplingContext as G, OtelSpan as H, Framework as I, SpanEvent as J, SdkInfo as K, Glow as L, BufferedSpan as M, Config as N, AnyValue as O, EntryPointHandler as P, StackFrame as Q, KeyValue as R, createIdentityTagger as S, createComponentMatcher as T, OverriddenGrouping as U, OtelLogRecord as V, Report as W, SpanStatus as X, SpanOptions as Y, SpanStatusCode as Z, timelineEvents as _, setDefined as a, FrameworkName as at, extractCode as b, RejectionReporter as c, DEFAULT_URL_DENYLIST as d, TracesSampler as et, redactObjectValues as f, now as g, safeDecode as h, withoutStatefulFlags as i, SpanTypeName as it, BufferedLog as j, AttributeValue as k, describeRejectionReason as l, resolveDenylist as m, urlAttributes as n, BrowserSpanEventType as nt, SafeCloneOptions as o, redactUrlQuery as p, Span as q, toCustomContext as r, BrowserSpanType as rt, safeClone as s, MAX_URL_LENGTH as t, User as tt, routeRejection as u, glowsToEvents as v, ProfileComponentsOption as w, SdkTaggable as x, flatJsonStringify as y, LogsEnvelope as z };
@@ -437,6 +437,10 @@ type SafeCloneOptions = {
437
437
  */
438
438
  declare function safeClone(value: unknown, options: SafeCloneOptions): unknown;
439
439
  //#endregion
440
+ //#region src/util/setDefined.d.ts
441
+ /** Assign the value only when it is neither undefined nor null. */
442
+ declare function setDefined(target: Attributes, key: string, value: AttributeValue | undefined): void;
443
+ //#endregion
440
444
  //#region src/util/statelessRegExp.d.ts
441
445
  /**
442
446
  * A `/g` or `/y` regex carries `lastIndex` between `test()` calls, so every other call misses. Returns
@@ -463,4 +467,4 @@ declare const MAX_URL_LENGTH = 2048;
463
467
  */
464
468
  declare function urlAttributes(url: string, denylist?: RegExp): Attributes;
465
469
  //#endregion
466
- export { TracesSampler as $, BufferedLog as A, OtelLogRecord as B, ProfileComponentsOption as C, AnyValue as D, assert as E, Framework as F, SdkInfo as G, OverriddenGrouping as H, Glow as I, SpanOptions as J, Span as K, KeyValue as L, Config as M, EntryPointHandler as N, AttributeValue as O, EntryPointType as P, TracesEnvelope as Q, LogsEnvelope as R, convertToError as S, assertKey as T, Report as U, OtelSpan as V, SamplingContext as W, SpanStatusCode as X, SpanStatus as Y, StackFrame as Z, glowsToEvents as _, SafeCloneOptions as a, SdkTaggable as b, describeRejectionReason as c, redactObjectValues as d, User as et, redactUrlQuery as f, timelineEvents as g, now as h, withoutStatefulFlags as i, FrameworkName as it, BufferedSpan as j, Attributes as k, routeRejection as l, safeDecode as m, urlAttributes as n, BrowserSpanType as nt, safeClone as o, resolveDenylist as p, SpanEvent as q, toCustomContext as r, SpanTypeName as rt, RejectionReporter as s, MAX_URL_LENGTH as t, BrowserSpanEventType as tt, DEFAULT_URL_DENYLIST as u, flatJsonStringify as v, createComponentMatcher as w, createIdentityTagger as x, extractCode as y, MessageLevel as z };
470
+ export { TracesEnvelope as $, Attributes as A, MessageLevel as B, convertToError as C, assert as D, assertKey as E, EntryPointType as F, SamplingContext as G, OtelSpan as H, Framework as I, SpanEvent as J, SdkInfo as K, Glow as L, BufferedSpan as M, Config as N, AnyValue as O, EntryPointHandler as P, StackFrame as Q, KeyValue as R, createIdentityTagger as S, createComponentMatcher as T, OverriddenGrouping as U, OtelLogRecord as V, Report as W, SpanStatus as X, SpanOptions as Y, SpanStatusCode as Z, timelineEvents as _, setDefined as a, FrameworkName as at, extractCode as b, RejectionReporter as c, DEFAULT_URL_DENYLIST as d, TracesSampler as et, redactObjectValues as f, now as g, safeDecode as h, withoutStatefulFlags as i, SpanTypeName as it, BufferedLog as j, AttributeValue as k, describeRejectionReason as l, resolveDenylist as m, urlAttributes as n, BrowserSpanEventType as nt, SafeCloneOptions as o, redactUrlQuery as p, Span as q, toCustomContext as r, BrowserSpanType as rt, safeClone as s, MAX_URL_LENGTH as t, User as tt, routeRejection as u, glowsToEvents as v, ProfileComponentsOption as w, SdkTaggable as x, flatJsonStringify as y, LogsEnvelope as z };
@@ -1,5 +1,5 @@
1
1
  //#region src/env/index.ts
2
- const CLIENT_VERSION = typeof process !== "undefined" && true ? "2.10.0" : "?";
2
+ const CLIENT_VERSION = typeof process !== "undefined" && true ? "2.11.0" : "?";
3
3
  const KEY = typeof FLARE_JS_KEY === "undefined" ? "" : FLARE_JS_KEY;
4
4
  const SOURCEMAP_VERSION = typeof FLARE_SOURCEMAP_VERSION === "undefined" ? "" : FLARE_SOURCEMAP_VERSION;
5
5
 
@@ -350,6 +350,13 @@ function routeRejection(reporter, reason) {
350
350
  Promise.resolve(reporter.reportUnhandledRejection(describeRejectionReason(reason))).catch(() => {});
351
351
  }
352
352
 
353
+ //#endregion
354
+ //#region src/util/setDefined.ts
355
+ /** Assign the value only when it is neither undefined nor null. */
356
+ function setDefined(target, key, value) {
357
+ if (value !== void 0 && value !== null) target[key] = value;
358
+ }
359
+
353
360
  //#endregion
354
361
  //#region src/util/toCustomContext.ts
355
362
  /** Wraps a framework payload as the `context.custom` attribute a report expects. */
@@ -389,4 +396,4 @@ function urlAttributes(url, denylist = DEFAULT_URL_DENYLIST) {
389
396
  }
390
397
 
391
398
  //#endregion
392
- export { createComponentMatcher as C, CLIENT_VERSION as D, assert as E, KEY as O, convertToError as S, assertKey as T, TRUNCATED as _, routeRejection as a, extractCode as b, redactUrlQuery as c, now as d, timelineEvents as f, MAX_TRAVERSAL_DEPTH as g, safeClone as h, describeRejectionReason as i, SOURCEMAP_VERSION as k, resolveDenylist as l, flatJsonStringify as m, urlAttributes as n, DEFAULT_URL_DENYLIST as o, glowsToEvents as p, toCustomContext as r, redactObjectValues as s, MAX_URL_LENGTH as t, safeDecode as u, createTraversalBudget as v, withoutStatefulFlags as w, createIdentityTagger as x, spendNode as y };
399
+ export { SOURCEMAP_VERSION as A, convertToError as C, assert as D, assertKey as E, CLIENT_VERSION as O, createIdentityTagger as S, withoutStatefulFlags as T, MAX_TRAVERSAL_DEPTH as _, describeRejectionReason as a, spendNode as b, redactObjectValues as c, safeDecode as d, now as f, safeClone as g, flatJsonStringify as h, setDefined as i, KEY as k, redactUrlQuery as l, glowsToEvents as m, urlAttributes as n, routeRejection as o, timelineEvents as p, toCustomContext as r, DEFAULT_URL_DENYLIST as s, MAX_URL_LENGTH as t, resolveDenylist as u, TRUNCATED as v, createComponentMatcher as w, extractCode as x, createTraversalBudget as y };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_urlAttributes = require('../urlAttributes-B37JykP3.cjs');
2
+ const require_urlAttributes = require('../urlAttributes-Cinqzwjy.cjs');
3
3
 
4
4
  exports.DEFAULT_URL_DENYLIST = require_urlAttributes.DEFAULT_URL_DENYLIST;
5
5
  exports.MAX_URL_LENGTH = require_urlAttributes.MAX_URL_LENGTH;
@@ -19,6 +19,7 @@ exports.resolveDenylist = require_urlAttributes.resolveDenylist;
19
19
  exports.routeRejection = require_urlAttributes.routeRejection;
20
20
  exports.safeClone = require_urlAttributes.safeClone;
21
21
  exports.safeDecode = require_urlAttributes.safeDecode;
22
+ exports.setDefined = require_urlAttributes.setDefined;
22
23
  exports.timelineEvents = require_urlAttributes.timelineEvents;
23
24
  exports.toCustomContext = require_urlAttributes.toCustomContext;
24
25
  exports.urlAttributes = require_urlAttributes.urlAttributes;
@@ -1,2 +1,2 @@
1
- import { C as ProfileComponentsOption, E as assert, S as convertToError, T as assertKey, _ as glowsToEvents, a as SafeCloneOptions, b as SdkTaggable, c as describeRejectionReason, d as redactObjectValues, f as redactUrlQuery, g as timelineEvents, h as now, i as withoutStatefulFlags, l as routeRejection, m as safeDecode, n as urlAttributes, o as safeClone, p as resolveDenylist, r as toCustomContext, s as RejectionReporter, t as MAX_URL_LENGTH, u as DEFAULT_URL_DENYLIST, v as flatJsonStringify, w as createComponentMatcher, x as createIdentityTagger, y as extractCode } from "../urlAttributes-DW_i-YQ3.cjs";
2
- export { DEFAULT_URL_DENYLIST, MAX_URL_LENGTH, ProfileComponentsOption, RejectionReporter, SafeCloneOptions, SdkTaggable, assert, assertKey, convertToError, createComponentMatcher, createIdentityTagger, describeRejectionReason, extractCode, flatJsonStringify, glowsToEvents, now, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, timelineEvents, toCustomContext, urlAttributes, withoutStatefulFlags };
1
+ import { C as convertToError, D as assert, E as assertKey, S as createIdentityTagger, T as createComponentMatcher, _ as timelineEvents, a as setDefined, b as extractCode, c as RejectionReporter, d as DEFAULT_URL_DENYLIST, f as redactObjectValues, g as now, h as safeDecode, i as withoutStatefulFlags, l as describeRejectionReason, m as resolveDenylist, n as urlAttributes, o as SafeCloneOptions, p as redactUrlQuery, r as toCustomContext, s as safeClone, t as MAX_URL_LENGTH, u as routeRejection, v as glowsToEvents, w as ProfileComponentsOption, x as SdkTaggable, y as flatJsonStringify } from "../urlAttributes-D0zqStcw.cjs";
2
+ export { DEFAULT_URL_DENYLIST, MAX_URL_LENGTH, ProfileComponentsOption, RejectionReporter, SafeCloneOptions, SdkTaggable, assert, assertKey, convertToError, createComponentMatcher, createIdentityTagger, describeRejectionReason, extractCode, flatJsonStringify, glowsToEvents, now, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, setDefined, timelineEvents, toCustomContext, urlAttributes, withoutStatefulFlags };
@@ -1,2 +1,2 @@
1
- import { C as ProfileComponentsOption, E as assert, S as convertToError, T as assertKey, _ as glowsToEvents, a as SafeCloneOptions, b as SdkTaggable, c as describeRejectionReason, d as redactObjectValues, f as redactUrlQuery, g as timelineEvents, h as now, i as withoutStatefulFlags, l as routeRejection, m as safeDecode, n as urlAttributes, o as safeClone, p as resolveDenylist, r as toCustomContext, s as RejectionReporter, t as MAX_URL_LENGTH, u as DEFAULT_URL_DENYLIST, v as flatJsonStringify, w as createComponentMatcher, x as createIdentityTagger, y as extractCode } from "../urlAttributes-CYsfTfi9.mjs";
2
- export { DEFAULT_URL_DENYLIST, MAX_URL_LENGTH, ProfileComponentsOption, RejectionReporter, SafeCloneOptions, SdkTaggable, assert, assertKey, convertToError, createComponentMatcher, createIdentityTagger, describeRejectionReason, extractCode, flatJsonStringify, glowsToEvents, now, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, timelineEvents, toCustomContext, urlAttributes, withoutStatefulFlags };
1
+ import { C as convertToError, D as assert, E as assertKey, S as createIdentityTagger, T as createComponentMatcher, _ as timelineEvents, a as setDefined, b as extractCode, c as RejectionReporter, d as DEFAULT_URL_DENYLIST, f as redactObjectValues, g as now, h as safeDecode, i as withoutStatefulFlags, l as describeRejectionReason, m as resolveDenylist, n as urlAttributes, o as SafeCloneOptions, p as redactUrlQuery, r as toCustomContext, s as safeClone, t as MAX_URL_LENGTH, u as routeRejection, v as glowsToEvents, w as ProfileComponentsOption, x as SdkTaggable, y as flatJsonStringify } from "../urlAttributes-DhkRD7pA.mjs";
2
+ export { DEFAULT_URL_DENYLIST, MAX_URL_LENGTH, ProfileComponentsOption, RejectionReporter, SafeCloneOptions, SdkTaggable, assert, assertKey, convertToError, createComponentMatcher, createIdentityTagger, describeRejectionReason, extractCode, flatJsonStringify, glowsToEvents, now, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, setDefined, timelineEvents, toCustomContext, urlAttributes, withoutStatefulFlags };
@@ -1,3 +1,3 @@
1
- import { C as createComponentMatcher, E as assert, S as convertToError, T as assertKey, a as routeRejection, b as extractCode, c as redactUrlQuery, d as now, f as timelineEvents, h as safeClone, i as describeRejectionReason, l as resolveDenylist, m as flatJsonStringify, n as urlAttributes, o as DEFAULT_URL_DENYLIST, p as glowsToEvents, r as toCustomContext, s as redactObjectValues, t as MAX_URL_LENGTH, u as safeDecode, w as withoutStatefulFlags, x as createIdentityTagger } from "../urlAttributes-DeDN7qtu.mjs";
1
+ import { C as convertToError, D as assert, E as assertKey, S as createIdentityTagger, T as withoutStatefulFlags, a as describeRejectionReason, c as redactObjectValues, d as safeDecode, f as now, g as safeClone, h as flatJsonStringify, i as setDefined, l as redactUrlQuery, m as glowsToEvents, n as urlAttributes, o as routeRejection, p as timelineEvents, r as toCustomContext, s as DEFAULT_URL_DENYLIST, t as MAX_URL_LENGTH, u as resolveDenylist, w as createComponentMatcher, x as extractCode } from "../urlAttributes-DmpMd_4O.mjs";
2
2
 
3
- export { DEFAULT_URL_DENYLIST, MAX_URL_LENGTH, assert, assertKey, convertToError, createComponentMatcher, createIdentityTagger, describeRejectionReason, extractCode, flatJsonStringify, glowsToEvents, now, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, timelineEvents, toCustomContext, urlAttributes, withoutStatefulFlags };
3
+ export { DEFAULT_URL_DENYLIST, MAX_URL_LENGTH, assert, assertKey, convertToError, createComponentMatcher, createIdentityTagger, describeRejectionReason, extractCode, flatJsonStringify, glowsToEvents, now, redactObjectValues, redactUrlQuery, resolveDenylist, routeRejection, safeClone, safeDecode, setDefined, timelineEvents, toCustomContext, urlAttributes, withoutStatefulFlags };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flareapp/core",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "description": "Environment-agnostic core for the Flare JS SDK",
5
5
  "homepage": "https://flareapp.io",
6
6
  "bugs": {