@grafana/faro-react 1.0.0-beta1
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/LICENSE +201 -0
- package/README.md +112 -0
- package/dist/cjs/errorBoundary/FaroErrorBoundary.d.ts +14 -0
- package/dist/cjs/errorBoundary/FaroErrorBoundary.js +85 -0
- package/dist/cjs/errorBoundary/FaroErrorBoundary.js.map +1 -0
- package/dist/cjs/errorBoundary/const.d.ts +2 -0
- package/dist/cjs/errorBoundary/const.js +8 -0
- package/dist/cjs/errorBoundary/const.js.map +1 -0
- package/dist/cjs/errorBoundary/index.d.ts +4 -0
- package/dist/cjs/errorBoundary/index.js +10 -0
- package/dist/cjs/errorBoundary/index.js.map +1 -0
- package/dist/cjs/errorBoundary/types.d.ts +19 -0
- package/dist/cjs/errorBoundary/types.js +3 -0
- package/dist/cjs/errorBoundary/types.js.map +1 -0
- package/dist/cjs/errorBoundary/withFaroErrorBoundary.d.ts +3 -0
- package/dist/cjs/errorBoundary/withFaroErrorBoundary.js +31 -0
- package/dist/cjs/errorBoundary/withFaroErrorBoundary.js.map +1 -0
- package/dist/cjs/index.d.ts +11 -0
- package/dist/cjs/index.js +101 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/instrumentation.d.ts +9 -0
- package/dist/cjs/instrumentation.js +37 -0
- package/dist/cjs/instrumentation.js.map +1 -0
- package/dist/cjs/profiler/FaroProfiler.d.ts +24 -0
- package/dist/cjs/profiler/FaroProfiler.js +135 -0
- package/dist/cjs/profiler/FaroProfiler.js.map +1 -0
- package/dist/cjs/profiler/index.d.ts +3 -0
- package/dist/cjs/profiler/index.js +8 -0
- package/dist/cjs/profiler/index.js.map +1 -0
- package/dist/cjs/profiler/withFaroProfiler.d.ts +3 -0
- package/dist/cjs/profiler/withFaroProfiler.js +31 -0
- package/dist/cjs/profiler/withFaroProfiler.js.map +1 -0
- package/dist/cjs/router/index.d.ts +7 -0
- package/dist/cjs/router/index.js +15 -0
- package/dist/cjs/router/index.js.map +1 -0
- package/dist/cjs/router/initialize.d.ts +3 -0
- package/dist/cjs/router/initialize.js +24 -0
- package/dist/cjs/router/initialize.js.map +1 -0
- package/dist/cjs/router/types.d.ts +21 -0
- package/dist/cjs/router/types.js +16 -0
- package/dist/cjs/router/types.js.map +1 -0
- package/dist/cjs/router/v4v5/FaroRoute.d.ts +3 -0
- package/dist/cjs/router/v4v5/FaroRoute.js +26 -0
- package/dist/cjs/router/v4v5/FaroRoute.js.map +1 -0
- package/dist/cjs/router/v4v5/activeEvent.d.ts +5 -0
- package/dist/cjs/router/v4v5/activeEvent.js +25 -0
- package/dist/cjs/router/v4v5/activeEvent.js.map +1 -0
- package/dist/cjs/router/v4v5/dependencies.d.ts +9 -0
- package/dist/cjs/router/v4v5/dependencies.js +16 -0
- package/dist/cjs/router/v4v5/dependencies.js.map +1 -0
- package/dist/cjs/router/v4v5/index.d.ts +4 -0
- package/dist/cjs/router/v4v5/index.js +10 -0
- package/dist/cjs/router/v4v5/index.js.map +1 -0
- package/dist/cjs/router/v4v5/initialize.d.ts +3 -0
- package/dist/cjs/router/v4v5/initialize.js +30 -0
- package/dist/cjs/router/v4v5/initialize.js.map +1 -0
- package/dist/cjs/router/v4v5/types.d.ts +16 -0
- package/dist/cjs/router/v4v5/types.js +3 -0
- package/dist/cjs/router/v4v5/types.js.map +1 -0
- package/dist/cjs/router/v6/FaroRoutes.d.ts +3 -0
- package/dist/cjs/router/v6/FaroRoutes.js +39 -0
- package/dist/cjs/router/v6/FaroRoutes.js.map +1 -0
- package/dist/cjs/router/v6/dependencies.d.ts +11 -0
- package/dist/cjs/router/v6/dependencies.js +19 -0
- package/dist/cjs/router/v6/dependencies.js.map +1 -0
- package/dist/cjs/router/v6/index.d.ts +4 -0
- package/dist/cjs/router/v6/index.js +10 -0
- package/dist/cjs/router/v6/index.js.map +1 -0
- package/dist/cjs/router/v6/initialize.d.ts +3 -0
- package/dist/cjs/router/v6/initialize.js +15 -0
- package/dist/cjs/router/v6/initialize.js.map +1 -0
- package/dist/cjs/router/v6/types.d.ts +35 -0
- package/dist/cjs/router/v6/types.js +3 -0
- package/dist/cjs/router/v6/types.js.map +1 -0
- package/dist/cjs/router/v6/utils.d.ts +4 -0
- package/dist/cjs/router/v6/utils.js +40 -0
- package/dist/cjs/router/v6/utils.js.map +1 -0
- package/dist/cjs/types.d.ts +12 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/const.d.ts +1 -0
- package/dist/cjs/utils/const.js +5 -0
- package/dist/cjs/utils/const.js.map +1 -0
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.js +14 -0
- package/dist/cjs/utils/index.js.map +1 -0
- package/dist/cjs/utils/reactVersion.d.ts +7 -0
- package/dist/cjs/utils/reactVersion.js +24 -0
- package/dist/cjs/utils/reactVersion.js.map +1 -0
- package/dist/esm/errorBoundary/FaroErrorBoundary.d.ts +14 -0
- package/dist/esm/errorBoundary/FaroErrorBoundary.js +63 -0
- package/dist/esm/errorBoundary/FaroErrorBoundary.js.map +1 -0
- package/dist/esm/errorBoundary/const.d.ts +2 -0
- package/dist/esm/errorBoundary/const.js +5 -0
- package/dist/esm/errorBoundary/const.js.map +1 -0
- package/dist/esm/errorBoundary/index.d.ts +4 -0
- package/dist/esm/errorBoundary/index.js +4 -0
- package/dist/esm/errorBoundary/index.js.map +1 -0
- package/dist/esm/errorBoundary/types.d.ts +19 -0
- package/dist/esm/errorBoundary/types.js +2 -0
- package/dist/esm/errorBoundary/types.js.map +1 -0
- package/dist/esm/errorBoundary/withFaroErrorBoundary.d.ts +3 -0
- package/dist/esm/errorBoundary/withFaroErrorBoundary.js +13 -0
- package/dist/esm/errorBoundary/withFaroErrorBoundary.js.map +1 -0
- package/dist/esm/index.d.ts +11 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/instrumentation.d.ts +9 -0
- package/dist/esm/instrumentation.js +14 -0
- package/dist/esm/instrumentation.js.map +1 -0
- package/dist/esm/profiler/FaroProfiler.d.ts +24 -0
- package/dist/esm/profiler/FaroProfiler.js +86 -0
- package/dist/esm/profiler/FaroProfiler.js.map +1 -0
- package/dist/esm/profiler/index.d.ts +3 -0
- package/dist/esm/profiler/index.js +3 -0
- package/dist/esm/profiler/index.js.map +1 -0
- package/dist/esm/profiler/withFaroProfiler.d.ts +3 -0
- package/dist/esm/profiler/withFaroProfiler.js +13 -0
- package/dist/esm/profiler/withFaroProfiler.js.map +1 -0
- package/dist/esm/router/index.d.ts +7 -0
- package/dist/esm/router/index.js +5 -0
- package/dist/esm/router/index.js.map +1 -0
- package/dist/esm/router/initialize.d.ts +3 -0
- package/dist/esm/router/initialize.js +20 -0
- package/dist/esm/router/initialize.js.map +1 -0
- package/dist/esm/router/types.d.ts +21 -0
- package/dist/esm/router/types.js +13 -0
- package/dist/esm/router/types.js.map +1 -0
- package/dist/esm/router/v4v5/FaroRoute.d.ts +3 -0
- package/dist/esm/router/v4v5/FaroRoute.js +11 -0
- package/dist/esm/router/v4v5/FaroRoute.js.map +1 -0
- package/dist/esm/router/v4v5/activeEvent.d.ts +5 -0
- package/dist/esm/router/v4v5/activeEvent.js +19 -0
- package/dist/esm/router/v4v5/activeEvent.js.map +1 -0
- package/dist/esm/router/v4v5/dependencies.d.ts +9 -0
- package/dist/esm/router/v4v5/dependencies.js +14 -0
- package/dist/esm/router/v4v5/dependencies.js.map +1 -0
- package/dist/esm/router/v4v5/index.d.ts +4 -0
- package/dist/esm/router/v4v5/index.js +4 -0
- package/dist/esm/router/v4v5/index.js.map +1 -0
- package/dist/esm/router/v4v5/initialize.d.ts +3 -0
- package/dist/esm/router/v4v5/initialize.js +23 -0
- package/dist/esm/router/v4v5/initialize.js.map +1 -0
- package/dist/esm/router/v4v5/types.d.ts +16 -0
- package/dist/esm/router/v4v5/types.js +2 -0
- package/dist/esm/router/v4v5/types.js.map +1 -0
- package/dist/esm/router/v6/FaroRoutes.d.ts +3 -0
- package/dist/esm/router/v6/FaroRoutes.js +24 -0
- package/dist/esm/router/v6/FaroRoutes.js.map +1 -0
- package/dist/esm/router/v6/dependencies.d.ts +11 -0
- package/dist/esm/router/v6/dependencies.js +20 -0
- package/dist/esm/router/v6/dependencies.js.map +1 -0
- package/dist/esm/router/v6/index.d.ts +4 -0
- package/dist/esm/router/v6/index.js +4 -0
- package/dist/esm/router/v6/index.js.map +1 -0
- package/dist/esm/router/v6/initialize.d.ts +3 -0
- package/dist/esm/router/v6/initialize.js +8 -0
- package/dist/esm/router/v6/initialize.js.map +1 -0
- package/dist/esm/router/v6/types.d.ts +35 -0
- package/dist/esm/router/v6/types.js +2 -0
- package/dist/esm/router/v6/types.js.map +1 -0
- package/dist/esm/router/v6/utils.d.ts +4 -0
- package/dist/esm/router/v6/utils.js +35 -0
- package/dist/esm/router/v6/utils.js.map +1 -0
- package/dist/esm/types.d.ts +12 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/const.d.ts +1 -0
- package/dist/esm/utils/const.js +2 -0
- package/dist/esm/utils/const.js.map +1 -0
- package/dist/esm/utils/index.d.ts +2 -0
- package/dist/esm/utils/index.js +3 -0
- package/dist/esm/utils/index.js.map +1 -0
- package/dist/esm/utils/reactVersion.d.ts +7 -0
- package/dist/esm/utils/reactVersion.js +19 -0
- package/dist/esm/utils/reactVersion.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { FaroErrorBoundary, faroErrorBoundaryInitialState, withFaroErrorBoundary } from './errorBoundary';
|
|
2
|
+
export { ReactIntegration } from './instrumentation';
|
|
3
|
+
export { FaroProfiler, withFaroProfiler } from './profiler';
|
|
4
|
+
export { FaroRoute, FaroRoutes, NavigationType, ReactRouterVersion, setReactRouterV4V5SSRDependencies, setReactRouterV6SSRDependencies, } from './router';
|
|
5
|
+
export { getMajorReactVersion, isReactVersionAtLeast, isReactVersionAtLeast16, isReactVersionAtLeast17, isReactVersionAtLeast18, reactVersion, reactVersionMajor, } from './utils';
|
|
6
|
+
export { faro, allLogLevels, BaseExtension, BaseInstrumentation, BaseTransport, browserMeta, buildStackFrame, ConsoleInstrumentation, ConsoleTransport, Conventions, createInternalLogger, createPromiseBuffer, createSession, deepEqual, defaultExceptionType, defaultEventDomain, defaultGlobalObjectKey, defaultInternalLoggerLevel, defaultLogLevel, defaultMetas, ErrorsInstrumentation, FetchTransport, getCurrentTimestamp, getDataFromSafariExtensions, getInternalFaroFromGlobalObject, getStackFramesFromError, getTransportBody, getWebInstrumentations, globalObject, initializeFaro, internalGlobalObjectKey, isArray, isBoolean, isDomError, isDomException, isElement, isElementDefined, isError, isErrorDefined, isErrorEvent, isEvent, isEventDefined, isFunction, isInstanceOf, isInt, isInternalFaroOnGlobalObject, isMap, isMapDefined, isNull, isNumber, isObject, isPrimitive, isRegExp, isString, isSymbol, isSyntheticEvent, isThenable, isToString, isTypeof, isUndefined, InternalLoggerLevel, LogLevel, makeCoreConfig, noop, pageMeta, parseStacktrace, setInternalFaroOnGlobalObject, TransportItemType, transportItemTypeToBodyKey, VERSION, WebVitalsInstrumentation, } from '@grafana/faro-web-sdk';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAS1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG5D,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,iCAAiC,EACjC,+BAA+B,GAChC,MAAM,UAAU,CAAC;AAqBlB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,OAAO,EACP,SAAS,EACT,UAAU,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,OAAO,EACP,cAAc,EACd,UAAU,EACV,YAAY,EACZ,KAAK,EACL,4BAA4B,EAC5B,KAAK,EACL,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,6BAA6B,EAC7B,iBAAiB,EACjB,0BAA0B,EAC1B,OAAO,EACP,wBAAwB,GACzB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseInstrumentation } from '@grafana/faro-web-sdk';
|
|
2
|
+
import type { ReactIntegrationConfig } from './types';
|
|
3
|
+
export declare class ReactIntegration extends BaseInstrumentation {
|
|
4
|
+
private config;
|
|
5
|
+
name: string;
|
|
6
|
+
version: string;
|
|
7
|
+
constructor(config?: ReactIntegrationConfig);
|
|
8
|
+
initialize(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseInstrumentation, VERSION } from '@grafana/faro-web-sdk';
|
|
2
|
+
import { initializeReactRouterInstrumentation } from './router';
|
|
3
|
+
export class ReactIntegration extends BaseInstrumentation {
|
|
4
|
+
constructor(config = {}) {
|
|
5
|
+
super();
|
|
6
|
+
this.config = config;
|
|
7
|
+
this.name = '@grafana/faro-react';
|
|
8
|
+
this.version = VERSION;
|
|
9
|
+
}
|
|
10
|
+
initialize() {
|
|
11
|
+
initializeReactRouterInstrumentation(this.config, this.faro);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErE,OAAO,EAAE,oCAAoC,EAAE,MAAM,UAAU,CAAC;AAGhE,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IAIvD,YAAoB,SAAiC,EAAE;QACrD,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAA6B;QAHvD,SAAI,GAAG,qBAAqB,CAAC;QAC7B,YAAO,GAAG,OAAO,CAAC;IAIlB,CAAC;IAED,UAAU;QACR,oCAAoC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Span } from '@opentelemetry/api';
|
|
2
|
+
import { Component } from 'react';
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
|
+
export interface FaroProfilerProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
name: string;
|
|
7
|
+
updateProps: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export declare class FaroProfiler extends Component<FaroProfilerProps> {
|
|
10
|
+
protected mountSpan: Span | undefined;
|
|
11
|
+
protected mountSpanEndTime: number | undefined;
|
|
12
|
+
protected updateSpan: Span | undefined;
|
|
13
|
+
private get isOtelInitialized();
|
|
14
|
+
private get otel();
|
|
15
|
+
private get tracer();
|
|
16
|
+
private createSpan;
|
|
17
|
+
private createChildSpan;
|
|
18
|
+
constructor(props: FaroProfilerProps);
|
|
19
|
+
componentDidMount(): void;
|
|
20
|
+
shouldComponentUpdate({ updateProps }: FaroProfilerProps): boolean;
|
|
21
|
+
componentDidUpdate(): void;
|
|
22
|
+
componentWillUnmount(): void;
|
|
23
|
+
render(): ReactNode;
|
|
24
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
import { faro, VERSION } from '@grafana/faro-web-sdk';
|
|
3
|
+
export class FaroProfiler extends Component {
|
|
4
|
+
constructor(props) {
|
|
5
|
+
var _a;
|
|
6
|
+
super(props);
|
|
7
|
+
this.mountSpan = undefined;
|
|
8
|
+
this.mountSpanEndTime = undefined;
|
|
9
|
+
this.updateSpan = undefined;
|
|
10
|
+
if (this.isOtelInitialized) {
|
|
11
|
+
this.mountSpan = this.createSpan('componentMount');
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
(_a = faro.internalLogger) === null || _a === void 0 ? void 0 : _a.error('The Faro React Profiler requires tracing instrumentation. Please enable it in the "instrumentations" section of your config.');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
get isOtelInitialized() {
|
|
18
|
+
var _a;
|
|
19
|
+
return !!((_a = faro.api) === null || _a === void 0 ? void 0 : _a.isOTELInitialized());
|
|
20
|
+
}
|
|
21
|
+
get otel() {
|
|
22
|
+
var _a;
|
|
23
|
+
return (_a = faro.api) === null || _a === void 0 ? void 0 : _a.getOTEL();
|
|
24
|
+
}
|
|
25
|
+
get tracer() {
|
|
26
|
+
var _a;
|
|
27
|
+
return (_a = this.otel) === null || _a === void 0 ? void 0 : _a.trace.getTracer('@grafana/faro-react', VERSION);
|
|
28
|
+
}
|
|
29
|
+
createSpan(spanName, options) {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
const span = this.tracer.startSpan(spanName, {
|
|
32
|
+
startTime: options === null || options === void 0 ? void 0 : options.startTime,
|
|
33
|
+
attributes: Object.assign({ 'react.component.name': this.props.name }, ((_a = options === null || options === void 0 ? void 0 : options.attributes) !== null && _a !== void 0 ? _a : {})),
|
|
34
|
+
});
|
|
35
|
+
(_b = this.otel) === null || _b === void 0 ? void 0 : _b.trace.setSpan(this.otel.context.active(), span);
|
|
36
|
+
if (options === null || options === void 0 ? void 0 : options.endTime) {
|
|
37
|
+
span.end(options.endTime);
|
|
38
|
+
}
|
|
39
|
+
return span;
|
|
40
|
+
}
|
|
41
|
+
createChildSpan(spanName, parent, options) {
|
|
42
|
+
var _a;
|
|
43
|
+
let span;
|
|
44
|
+
(_a = this.otel) === null || _a === void 0 ? void 0 : _a.context.with(this.otel.trace.setSpan(this.otel.context.active(), parent), () => {
|
|
45
|
+
span = this.createSpan(spanName, options);
|
|
46
|
+
});
|
|
47
|
+
return span;
|
|
48
|
+
}
|
|
49
|
+
componentDidMount() {
|
|
50
|
+
if (this.isOtelInitialized && this.mountSpan) {
|
|
51
|
+
this.mountSpanEndTime = Date.now();
|
|
52
|
+
this.mountSpan.end(this.mountSpanEndTime);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
shouldComponentUpdate({ updateProps }) {
|
|
56
|
+
if (this.isOtelInitialized && this.mountSpan && updateProps !== this.props.updateProps) {
|
|
57
|
+
const changedProps = Object.keys(updateProps).filter((key) => updateProps[key] !== this.props.updateProps[key]);
|
|
58
|
+
if (changedProps.length > 0) {
|
|
59
|
+
this.updateSpan = this.createChildSpan('componentUpdate', this.mountSpan, {
|
|
60
|
+
attributes: {
|
|
61
|
+
'react.component.changed_props': changedProps,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
componentDidUpdate() {
|
|
69
|
+
if (this.isOtelInitialized && this.updateSpan) {
|
|
70
|
+
this.updateSpan.end();
|
|
71
|
+
this.updateSpan = undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
componentWillUnmount() {
|
|
75
|
+
if (this.isOtelInitialized && this.mountSpan) {
|
|
76
|
+
this.createChildSpan('componentRender', this.mountSpan, {
|
|
77
|
+
startTime: this.mountSpanEndTime,
|
|
78
|
+
endTime: Date.now(),
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
render() {
|
|
83
|
+
return this.props.children;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=FaroProfiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaroProfiler.js","sourceRoot":"","sources":["../../../src/profiler/FaroProfiler.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIlC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAQtD,MAAM,OAAO,YAAa,SAAQ,SAA4B;IAoD5D,YAAY,KAAwB;;QAClC,KAAK,CAAC,KAAK,CAAC,CAAC;QApDL,cAAS,GAAqB,SAAS,CAAC;QACxC,qBAAgB,GAAuB,SAAS,CAAC;QACjD,eAAU,GAAqB,SAAS,CAAC;QAoDjD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;SACpD;aAAM;YACL,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CACxB,8HAA8H,CAC/H,CAAC;SACH;IACH,CAAC;IAzDD,IAAY,iBAAiB;;QAC3B,OAAO,CAAC,CAAC,CAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,iBAAiB,EAAE,CAAA,CAAC;IACzC,CAAC;IAED,IAAY,IAAI;;QACd,OAAO,MAAA,IAAI,CAAC,GAAG,0CAAE,OAAO,EAAG,CAAC;IAC9B,CAAC;IAED,IAAY,MAAM;;QAChB,OAAO,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAE,CAAC;IACrE,CAAC;IAEO,UAAU,CAChB,QAAgB,EAChB,OAA2E;;QAE3E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3C,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS;YAC7B,UAAU,kBACR,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IACpC,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,EAAE,CAAC,CAC/B;SACF,CAAC,CAAC;QAEH,MAAA,IAAI,CAAC,IAAI,0CAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;QAE3D,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE;YACpB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CACrB,QAAgB,EAChB,MAAY,EACZ,OAA2E;;QAE3E,IAAI,IAAU,CAAC;QAEf,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE;YACxF,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,OAAO,IAAK,CAAC;IACf,CAAC;IAcQ,iBAAiB;QACxB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;SAC3C;IACH,CAAC;IAEQ,qBAAqB,CAAC,EAAE,WAAW,EAAqB;QAC/D,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,IAAI,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YACtF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAAE;oBACxE,UAAU,EAAE;wBACV,+BAA+B,EAAE,YAAY;qBAC9C;iBACF,CAAC,CAAC;aACJ;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,kBAAkB;QACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;SAC7B;IACH,CAAC;IAEQ,oBAAoB;QAC3B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;YAC5C,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAAE;gBACtD,SAAS,EAAE,IAAI,CAAC,gBAAgB;gBAChC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;aACpB,CAAC,CAAC;SACJ;IACH,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/profiler/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
3
|
+
import { unknownString } from '../utils';
|
|
4
|
+
import { FaroProfiler } from './FaroProfiler';
|
|
5
|
+
export function withFaroProfiler(WrappedComponent, options) {
|
|
6
|
+
var _a, _b, _c;
|
|
7
|
+
const componentDisplayName = (_c = (_b = (_a = options === null || options === void 0 ? void 0 : options.name) !== null && _a !== void 0 ? _a : WrappedComponent.displayName) !== null && _b !== void 0 ? _b : WrappedComponent.name) !== null && _c !== void 0 ? _c : unknownString;
|
|
8
|
+
const Component = (props) => (_jsx(FaroProfiler, Object.assign({ name: componentDisplayName, updateProps: props }, { children: _jsx(WrappedComponent, Object.assign({}, props)) })));
|
|
9
|
+
Component.displayName = `faroProfiler(${componentDisplayName})`;
|
|
10
|
+
hoistNonReactStatics(Component, WrappedComponent);
|
|
11
|
+
return Component;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=withFaroProfiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withFaroProfiler.js","sourceRoot":"","sources":["../../../src/profiler/withFaroProfiler.tsx"],"names":[],"mappings":";AAAA,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,UAAU,gBAAgB,CAC9B,gBAAkC,EAClC,OAAgD;;IAEhD,MAAM,oBAAoB,GAAG,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,gBAAgB,CAAC,WAAW,mCAAI,gBAAgB,CAAC,IAAI,mCAAI,aAAa,CAAC;IAErH,MAAM,SAAS,GAAU,CAAC,KAAQ,EAAE,EAAE,CAAC,CACrC,KAAC,YAAY,kBAAC,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,KAAK,gBAC1D,KAAC,gBAAgB,oBAAK,KAAK,EAAI,IAClB,CAChB,CAAC;IAEF,SAAS,CAAC,WAAW,GAAG,gBAAgB,oBAAoB,GAAG,CAAC;IAEhE,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAElD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { initializeReactRouterInstrumentation } from './initialize';
|
|
2
|
+
export { NavigationType, ReactRouterVersion } from './types';
|
|
3
|
+
export type { ReactRouterLocation, ReactRouterHistory } from './types';
|
|
4
|
+
export { FaroRoute, setReactRouterV4V5SSRDependencies } from './v4v5';
|
|
5
|
+
export type { ReactRouterV4V5ActiveEvent, ReactRouterV4V5Dependencies, ReactRouterV4V5RouteShape } from './v4v5';
|
|
6
|
+
export { FaroRoutes, setReactRouterV6SSRDependencies } from './v6';
|
|
7
|
+
export type { ReactRouterV6CreateRoutesFromChildren, ReactRouterV6Dependencies, ReactRouterV6MatchRoutes, ReactRouterV6Params, ReactRouterV6RouteMatch, ReactRouterV6RouteObject, ReactRouterV6RoutesProps, ReactRouterV6RoutesShape, ReactRouterV6UseLocation, ReactRouterV6UseNavigationType, } from './v6';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { initializeReactRouterInstrumentation } from './initialize';
|
|
2
|
+
export { NavigationType, ReactRouterVersion } from './types';
|
|
3
|
+
export { FaroRoute, setReactRouterV4V5SSRDependencies } from './v4v5';
|
|
4
|
+
export { FaroRoutes, setReactRouterV6SSRDependencies } from './v6';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/router/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oCAAoC,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,iCAAiC,EAAE,MAAM,QAAQ,CAAC;AAGtE,OAAO,EAAE,UAAU,EAAE,+BAA+B,EAAE,MAAM,MAAM,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ReactRouterVersion } from './types';
|
|
2
|
+
import { initializeReactRouterV4V5Instrumentation } from './v4v5';
|
|
3
|
+
import { initializeReactRouterV6Instrumentation } from './v6';
|
|
4
|
+
export function initializeReactRouterInstrumentation(config, faro) {
|
|
5
|
+
var _a;
|
|
6
|
+
switch ((_a = config.router) === null || _a === void 0 ? void 0 : _a.version) {
|
|
7
|
+
case ReactRouterVersion.V6:
|
|
8
|
+
faro.internalLogger.debug('Initializing React Router V6 instrumentation');
|
|
9
|
+
initializeReactRouterV6Instrumentation(config.router.dependencies, faro);
|
|
10
|
+
break;
|
|
11
|
+
case ReactRouterVersion.V5:
|
|
12
|
+
case ReactRouterVersion.V4:
|
|
13
|
+
faro.internalLogger.debug(`Initializing React Router ${config.router.version} instrumentation`);
|
|
14
|
+
initializeReactRouterV4V5Instrumentation(config.router.dependencies, faro);
|
|
15
|
+
break;
|
|
16
|
+
default:
|
|
17
|
+
faro.internalLogger.debug('Skipping initialization of React Router instrumentation');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../src/router/initialize.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,wCAAwC,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,EAAE,sCAAsC,EAAE,MAAM,MAAM,CAAC;AAE9D,MAAM,UAAU,oCAAoC,CAAC,MAA8B,EAAE,IAAU;;IAC7F,QAAQ,MAAA,MAAM,CAAC,MAAM,0CAAE,OAAO,EAAE;QAC9B,KAAK,kBAAkB,CAAC,EAAE;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC1E,sCAAsC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACzE,MAAM;QAER,KAAK,kBAAkB,CAAC,EAAE,CAAC;QAC3B,KAAK,kBAAkB,CAAC,EAAE;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;YAChG,wCAAwC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM;QAER;YACE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;KACxF;AACH,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ReactRouterLocation<S extends any = unknown> {
|
|
2
|
+
hash: string;
|
|
3
|
+
key: string;
|
|
4
|
+
pathname: string;
|
|
5
|
+
search: string;
|
|
6
|
+
state: S;
|
|
7
|
+
}
|
|
8
|
+
export interface ReactRouterHistory extends Record<string, any> {
|
|
9
|
+
listen?: (cb: (location: ReactRouterLocation, action: NavigationType) => void) => void;
|
|
10
|
+
location?: ReactRouterLocation;
|
|
11
|
+
}
|
|
12
|
+
export declare enum ReactRouterVersion {
|
|
13
|
+
V4 = "v4",
|
|
14
|
+
V5 = "v5",
|
|
15
|
+
V6 = "v6"
|
|
16
|
+
}
|
|
17
|
+
export declare enum NavigationType {
|
|
18
|
+
Pop = "POP",
|
|
19
|
+
Push = "PUSH",
|
|
20
|
+
Replace = "REPLACE"
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var ReactRouterVersion;
|
|
2
|
+
(function (ReactRouterVersion) {
|
|
3
|
+
ReactRouterVersion["V4"] = "v4";
|
|
4
|
+
ReactRouterVersion["V5"] = "v5";
|
|
5
|
+
ReactRouterVersion["V6"] = "v6";
|
|
6
|
+
})(ReactRouterVersion || (ReactRouterVersion = {}));
|
|
7
|
+
export var NavigationType;
|
|
8
|
+
(function (NavigationType) {
|
|
9
|
+
NavigationType["Pop"] = "POP";
|
|
10
|
+
NavigationType["Push"] = "PUSH";
|
|
11
|
+
NavigationType["Replace"] = "REPLACE";
|
|
12
|
+
})(NavigationType || (NavigationType = {}));
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/router/types.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,+BAAS,CAAA;IACT,+BAAS,CAAA;IACT,+BAAS,CAAA;AACX,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,6BAAW,CAAA;IACX,+BAAa,CAAA;IACb,qCAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { setActiveEventRoute } from './activeEvent';
|
|
3
|
+
import { Route } from './dependencies';
|
|
4
|
+
export function FaroRoute(props) {
|
|
5
|
+
var _a;
|
|
6
|
+
if ((_a = props === null || props === void 0 ? void 0 : props.computedMatch) === null || _a === void 0 ? void 0 : _a.isExact) {
|
|
7
|
+
setActiveEventRoute(props.computedMatch.path);
|
|
8
|
+
}
|
|
9
|
+
return _jsx(Route, Object.assign({}, props));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=FaroRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaroRoute.js","sourceRoot":"","sources":["../../../../src/router/v4v5/FaroRoute.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,MAAM,UAAU,SAAS,CAAC,KAAgC;;IACxD,IAAI,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,0CAAE,OAAO,EAAE;QACjC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC/C;IAED,OAAO,KAAC,KAAK,oBAAK,KAAK,EAAI,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ReactRouterV4V5ActiveEvent } from './types';
|
|
2
|
+
export declare let activeEvent: ReactRouterV4V5ActiveEvent | undefined;
|
|
3
|
+
export declare function createNewActiveEvent(url: string): ReactRouterV4V5ActiveEvent;
|
|
4
|
+
export declare function setActiveEventRoute(route: string): void;
|
|
5
|
+
export declare function sendActiveEvent(): void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { faro } from './dependencies';
|
|
2
|
+
export let activeEvent = undefined;
|
|
3
|
+
export function createNewActiveEvent(url) {
|
|
4
|
+
activeEvent = {
|
|
5
|
+
url,
|
|
6
|
+
route: '',
|
|
7
|
+
};
|
|
8
|
+
return activeEvent;
|
|
9
|
+
}
|
|
10
|
+
export function setActiveEventRoute(route) {
|
|
11
|
+
if (activeEvent) {
|
|
12
|
+
activeEvent.route = route;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export function sendActiveEvent() {
|
|
16
|
+
faro.api.pushEvent('routeChange', activeEvent, undefined, { skipDedupe: true });
|
|
17
|
+
activeEvent = undefined;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=activeEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activeEvent.js","sourceRoot":"","sources":["../../../../src/router/v4v5/activeEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,MAAM,CAAC,IAAI,WAAW,GAA2C,SAAS,CAAC;AAE3E,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,WAAW,GAAG;QACZ,GAAG;QACH,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,IAAI,WAAW,EAAE;QACf,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3B;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhF,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Faro } from '@grafana/faro-web-sdk';
|
|
2
|
+
import type { ReactRouterHistory } from '../types';
|
|
3
|
+
import type { ReactRouterV4V5Dependencies, ReactRouterV4V5RouteShape } from './types';
|
|
4
|
+
export declare let isInitialized: boolean;
|
|
5
|
+
export declare let faro: Faro;
|
|
6
|
+
export declare let history: ReactRouterHistory;
|
|
7
|
+
export declare let Route: ReactRouterV4V5RouteShape;
|
|
8
|
+
export declare function setDependencies(dependencies: ReactRouterV4V5Dependencies, newFaro: Faro): void;
|
|
9
|
+
export declare function setReactRouterV4V5SSRDependencies(newDependencies: Pick<ReactRouterV4V5Dependencies, 'Route'>): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export let isInitialized = false;
|
|
2
|
+
export let faro;
|
|
3
|
+
export let history;
|
|
4
|
+
export let Route;
|
|
5
|
+
export function setDependencies(dependencies, newFaro) {
|
|
6
|
+
isInitialized = true;
|
|
7
|
+
faro = newFaro;
|
|
8
|
+
history = dependencies.history;
|
|
9
|
+
Route = dependencies.Route;
|
|
10
|
+
}
|
|
11
|
+
export function setReactRouterV4V5SSRDependencies(newDependencies) {
|
|
12
|
+
Route = newDependencies.Route;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/router/v4v5/dependencies.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC;AACjC,MAAM,CAAC,IAAI,IAAU,CAAC;AACtB,MAAM,CAAC,IAAI,OAA2B,CAAC;AACvC,MAAM,CAAC,IAAI,KAAgC,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,YAAyC,EAAE,OAAa;IACtF,aAAa,GAAG,IAAI,CAAC;IAErB,IAAI,GAAG,OAAO,CAAC;IACf,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IAC/B,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,eAA2D;IAC3G,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { setReactRouterV4V5SSRDependencies } from './dependencies';
|
|
2
|
+
export { FaroRoute } from './FaroRoute';
|
|
3
|
+
export { initializeReactRouterV4V5Instrumentation } from './initialize';
|
|
4
|
+
export type { ReactRouterV4V5ActiveEvent, ReactRouterV4V5Dependencies, ReactRouterV4V5RouteShape } from './types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/router/v4v5/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,wCAAwC,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
2
|
+
import { globalObject } from '@grafana/faro-web-sdk';
|
|
3
|
+
import { NavigationType } from '../types';
|
|
4
|
+
import { createNewActiveEvent, sendActiveEvent } from './activeEvent';
|
|
5
|
+
import { setDependencies } from './dependencies';
|
|
6
|
+
import { FaroRoute } from './FaroRoute';
|
|
7
|
+
export function initializeReactRouterV4V5Instrumentation(dependencies, faro) {
|
|
8
|
+
var _a, _b, _c, _d;
|
|
9
|
+
const Route = dependencies.Route;
|
|
10
|
+
const componentDisplayName = (_a = Route.displayName) !== null && _a !== void 0 ? _a : Route.name;
|
|
11
|
+
FaroRoute.displayName = `faroRoute(${componentDisplayName})`;
|
|
12
|
+
hoistNonReactStatics(FaroRoute, Route);
|
|
13
|
+
setDependencies(dependencies, faro);
|
|
14
|
+
createNewActiveEvent((_b = globalObject.location) === null || _b === void 0 ? void 0 : _b.href);
|
|
15
|
+
(_d = (_c = dependencies.history).listen) === null || _d === void 0 ? void 0 : _d.call(_c, (_location, action) => {
|
|
16
|
+
var _a;
|
|
17
|
+
if (action === NavigationType.Push || action === NavigationType.Pop) {
|
|
18
|
+
sendActiveEvent();
|
|
19
|
+
createNewActiveEvent((_a = globalObject.location) === null || _a === void 0 ? void 0 : _a.href);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/router/v4v5/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,UAAU,wCAAwC,CAAC,YAAyC,EAAE,IAAU;;IAC5G,MAAM,KAAK,GAAG,YAAY,CAAC,KAA0B,CAAC;IACtD,MAAM,oBAAoB,GAAG,MAAA,KAAK,CAAC,WAAW,mCAAI,KAAK,CAAC,IAAI,CAAC;IAC5D,SAA+B,CAAC,WAAW,GAAG,aAAa,oBAAoB,GAAG,CAAC;IACpF,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAEvC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAEpC,oBAAoB,CAAC,MAAA,YAAY,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;IAElD,MAAA,MAAA,YAAY,CAAC,OAAO,EAAC,MAAM,mDAAG,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE;;QAClD,IAAI,MAAM,KAAK,cAAc,CAAC,IAAI,IAAI,MAAM,KAAK,cAAc,CAAC,GAAG,EAAE;YACnE,eAAe,EAAE,CAAC;YAElB,oBAAoB,CAAC,MAAA,YAAY,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;SACnD;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactRouterHistory } from '../types';
|
|
2
|
+
export declare type ReactRouterV4V5RouteShape = any;
|
|
3
|
+
export interface ReactRouterV4V5RouteProps extends Record<string, any> {
|
|
4
|
+
computedMatch?: {
|
|
5
|
+
isExact: boolean;
|
|
6
|
+
path: string;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export interface ReactRouterV4V5Dependencies {
|
|
10
|
+
history: ReactRouterHistory;
|
|
11
|
+
Route: ReactRouterV4V5RouteShape;
|
|
12
|
+
}
|
|
13
|
+
export interface ReactRouterV4V5ActiveEvent extends Record<string, string> {
|
|
14
|
+
url: string;
|
|
15
|
+
route: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/router/v4v5/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useMemo } from 'react';
|
|
3
|
+
import { globalObject } from '@grafana/faro-web-sdk';
|
|
4
|
+
import { NavigationType } from '../types';
|
|
5
|
+
import { createRoutesFromChildren, faro, isInitialized, Routes, useLocation, useNavigationType } from './dependencies';
|
|
6
|
+
import { getRouteFromLocation } from './utils';
|
|
7
|
+
export function FaroRoutes(props) {
|
|
8
|
+
var _a;
|
|
9
|
+
const location = useLocation === null || useLocation === void 0 ? void 0 : useLocation();
|
|
10
|
+
const navigationType = useNavigationType === null || useNavigationType === void 0 ? void 0 : useNavigationType();
|
|
11
|
+
const routes = useMemo(() => { var _a; return (_a = createRoutesFromChildren === null || createRoutesFromChildren === void 0 ? void 0 : createRoutesFromChildren(props.children)) !== null && _a !== void 0 ? _a : []; }, [props.children]);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
var _a;
|
|
14
|
+
if (isInitialized && (navigationType === NavigationType.Push || navigationType === NavigationType.Pop)) {
|
|
15
|
+
faro.api.pushEvent('routeChange', {
|
|
16
|
+
url: (_a = globalObject.location) === null || _a === void 0 ? void 0 : _a.href,
|
|
17
|
+
route: getRouteFromLocation(routes, location),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}, [location, navigationType, routes]);
|
|
21
|
+
const ActualRoutes = (_a = props.routesComponent) !== null && _a !== void 0 ? _a : Routes;
|
|
22
|
+
return _jsx(ActualRoutes, Object.assign({}, props));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=FaroRoutes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaroRoutes.js","sourceRoot":"","sources":["../../../../src/router/v6/FaroRoutes.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvH,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,UAAU,UAAU,CAAC,KAA+B;;IACxD,MAAM,QAAQ,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,EAAI,CAAC;IACjC,MAAM,cAAc,GAAG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,EAAI,CAAC;IAE7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAG,KAAK,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAA,EAAA,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjG,SAAS,CAAC,GAAG,EAAE;;QACb,IAAI,aAAa,IAAI,CAAC,cAAc,KAAK,cAAc,CAAC,IAAI,IAAI,cAAc,KAAK,cAAc,CAAC,GAAG,CAAC,EAAE;YACtG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE;gBAChC,GAAG,EAAE,MAAA,YAAY,CAAC,QAAQ,0CAAE,IAAI;gBAChC,KAAK,EAAE,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC;aAC9C,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,MAAA,KAAK,CAAC,eAAe,mCAAI,MAAM,CAAC;IAErD,OAAO,KAAC,YAAY,oBAAK,KAAK,EAAI,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Faro } from '@grafana/faro-web-sdk';
|
|
2
|
+
import type { ReactRouterV6CreateRoutesFromChildren, ReactRouterV6Dependencies, ReactRouterV6MatchRoutes, ReactRouterV6RoutesShape, ReactRouterV6UseLocation, ReactRouterV6UseNavigationType } from './types';
|
|
3
|
+
export declare let isInitialized: boolean;
|
|
4
|
+
export declare let faro: Faro;
|
|
5
|
+
export declare let createRoutesFromChildren: ReactRouterV6CreateRoutesFromChildren;
|
|
6
|
+
export declare let matchRoutes: ReactRouterV6MatchRoutes;
|
|
7
|
+
export declare let Routes: ReactRouterV6RoutesShape;
|
|
8
|
+
export declare let useLocation: ReactRouterV6UseLocation;
|
|
9
|
+
export declare let useNavigationType: ReactRouterV6UseNavigationType;
|
|
10
|
+
export declare function setDependencies(newDependencies: ReactRouterV6Dependencies, newFaro: Faro): void;
|
|
11
|
+
export declare function setReactRouterV6SSRDependencies(newDependencies: Pick<ReactRouterV6Dependencies, 'Routes'>): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export let isInitialized = false;
|
|
2
|
+
export let faro;
|
|
3
|
+
export let createRoutesFromChildren;
|
|
4
|
+
export let matchRoutes;
|
|
5
|
+
export let Routes;
|
|
6
|
+
export let useLocation;
|
|
7
|
+
export let useNavigationType;
|
|
8
|
+
export function setDependencies(newDependencies, newFaro) {
|
|
9
|
+
isInitialized = true;
|
|
10
|
+
faro = newFaro;
|
|
11
|
+
createRoutesFromChildren = newDependencies.createRoutesFromChildren;
|
|
12
|
+
matchRoutes = newDependencies.matchRoutes;
|
|
13
|
+
Routes = newDependencies.Routes;
|
|
14
|
+
useLocation = newDependencies.useLocation;
|
|
15
|
+
useNavigationType = newDependencies.useNavigationType;
|
|
16
|
+
}
|
|
17
|
+
export function setReactRouterV6SSRDependencies(newDependencies) {
|
|
18
|
+
Routes = newDependencies.Routes;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../../../src/router/v6/dependencies.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,IAAI,aAAa,GAAG,KAAK,CAAC;AACjC,MAAM,CAAC,IAAI,IAAU,CAAC;AACtB,MAAM,CAAC,IAAI,wBAA+D,CAAC;AAC3E,MAAM,CAAC,IAAI,WAAqC,CAAC;AACjD,MAAM,CAAC,IAAI,MAAgC,CAAC;AAC5C,MAAM,CAAC,IAAI,WAAqC,CAAC;AACjD,MAAM,CAAC,IAAI,iBAAiD,CAAC;AAE7D,MAAM,UAAU,eAAe,CAAC,eAA0C,EAAE,OAAa;IACvF,aAAa,GAAG,IAAI,CAAC;IAErB,IAAI,GAAG,OAAO,CAAC;IACf,wBAAwB,GAAG,eAAe,CAAC,wBAAwB,CAAC;IACpE,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;IAC1C,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAChC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;IAC1C,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,eAA0D;IACxG,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { setReactRouterV6SSRDependencies } from './dependencies';
|
|
2
|
+
export { FaroRoutes } from './FaroRoutes';
|
|
3
|
+
export { initializeReactRouterV6Instrumentation } from './initialize';
|
|
4
|
+
export type { ReactRouterV6CreateRoutesFromChildren, ReactRouterV6Dependencies, ReactRouterV6MatchRoutes, ReactRouterV6Params, ReactRouterV6RouteMatch, ReactRouterV6RouteObject, ReactRouterV6RoutesProps, ReactRouterV6RoutesShape, ReactRouterV6UseLocation, ReactRouterV6UseNavigationType, } from './types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/router/v6/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,sCAAsC,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
2
|
+
import { setDependencies } from './dependencies';
|
|
3
|
+
import { FaroRoutes } from './FaroRoutes';
|
|
4
|
+
export function initializeReactRouterV6Instrumentation(dependencies, faro) {
|
|
5
|
+
hoistNonReactStatics(FaroRoutes, dependencies.Routes);
|
|
6
|
+
setDependencies(dependencies, faro);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=initialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/router/v6/initialize.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAI3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,UAAU,sCAAsC,CAAC,YAAuC,EAAE,IAAU;IACxG,oBAAoB,CAAC,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtD,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import type { ReactRouterLocation } from '../types';
|
|
3
|
+
export interface ReactRouterV6RouteObject {
|
|
4
|
+
caseSensitive?: boolean;
|
|
5
|
+
children?: ReactRouterV6RouteObject[];
|
|
6
|
+
element?: ReactNode;
|
|
7
|
+
index?: boolean;
|
|
8
|
+
path?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ReactRouterV6RoutesProps {
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
location?: Partial<ReactRouterLocation> | string;
|
|
13
|
+
routesComponent?: ReactRouterV6RoutesShape;
|
|
14
|
+
}
|
|
15
|
+
export declare type ReactRouterV6Params<Key extends string = string> = {
|
|
16
|
+
readonly [key in Key]: string | undefined;
|
|
17
|
+
};
|
|
18
|
+
export interface ReactRouterV6RouteMatch<ParamKey extends string = string> {
|
|
19
|
+
params: ReactRouterV6Params<ParamKey>;
|
|
20
|
+
pathname: string;
|
|
21
|
+
pathnameBase: string;
|
|
22
|
+
route: ReactRouterV6RouteObject;
|
|
23
|
+
}
|
|
24
|
+
export declare type ReactRouterV6CreateRoutesFromChildren = (children: ReactNode) => ReactRouterV6RouteObject[];
|
|
25
|
+
export declare type ReactRouterV6MatchRoutes = (routes: ReactRouterV6RouteObject[], location: Partial<ReactRouterLocation> | string, basename?: string) => ReactRouterV6RouteMatch[] | null;
|
|
26
|
+
export declare type ReactRouterV6RoutesShape = (props: ReactRouterV6RoutesProps) => ReactElement | null;
|
|
27
|
+
export declare type ReactRouterV6UseLocation = () => ReactRouterLocation;
|
|
28
|
+
export declare type ReactRouterV6UseNavigationType = () => 'POP' | 'PUSH' | 'REPLACE';
|
|
29
|
+
export interface ReactRouterV6Dependencies {
|
|
30
|
+
createRoutesFromChildren: ReactRouterV6CreateRoutesFromChildren;
|
|
31
|
+
matchRoutes: ReactRouterV6MatchRoutes;
|
|
32
|
+
Routes: ReactRouterV6RoutesShape;
|
|
33
|
+
useLocation: ReactRouterV6UseLocation;
|
|
34
|
+
useNavigationType: ReactRouterV6UseNavigationType;
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/router/v6/types.ts"],"names":[],"mappings":""}
|