@servicetitan/journey 2.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/__test-utils__/test-runtime.d.ts.map +1 -1
- package/dist/__test-utils__/test-runtime.js +9 -2
- package/dist/__test-utils__/test-runtime.js.map +1 -1
- package/dist/__tests__/core/sanitize.test.d.ts +2 -0
- package/dist/__tests__/core/sanitize.test.d.ts.map +1 -0
- package/dist/__tests__/hardening.test.d.ts +2 -0
- package/dist/__tests__/hardening.test.d.ts.map +1 -0
- package/dist/__tests__/integrations/host-mfe.test.d.ts +2 -0
- package/dist/__tests__/integrations/host-mfe.test.d.ts.map +1 -0
- package/dist/__tests__/integrations/use-journey-step.test.d.ts +2 -0
- package/dist/__tests__/integrations/use-journey-step.test.d.ts.map +1 -0
- package/dist/config.d.ts +57 -13
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +87 -24
- package/dist/config.js.map +1 -1
- package/dist/core/abort-error.d.ts +4 -0
- package/dist/core/abort-error.d.ts.map +1 -0
- package/dist/core/abort-error.js +22 -0
- package/dist/core/abort-error.js.map +1 -0
- package/dist/core/api.d.ts +22 -9
- package/dist/core/api.d.ts.map +1 -1
- package/dist/core/api.js +77 -30
- package/dist/core/api.js.map +1 -1
- package/dist/core/endpoint-policy.d.ts +14 -4
- package/dist/core/endpoint-policy.d.ts.map +1 -1
- package/dist/core/endpoint-policy.js +32 -1
- package/dist/core/endpoint-policy.js.map +1 -1
- package/dist/core/index.d.ts +4 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/limits.d.ts +29 -0
- package/dist/core/limits.d.ts.map +1 -0
- package/dist/core/limits.js +63 -0
- package/dist/core/limits.js.map +1 -0
- package/dist/core/request-policy.d.ts +39 -0
- package/dist/core/request-policy.d.ts.map +1 -0
- package/dist/core/request-policy.js +18 -0
- package/dist/core/request-policy.js.map +1 -0
- package/dist/core/runtime.d.ts +65 -15
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +403 -126
- package/dist/core/runtime.js.map +1 -1
- package/dist/core/sanitize.d.ts +23 -0
- package/dist/core/sanitize.d.ts.map +1 -0
- package/dist/core/sanitize.js +143 -0
- package/dist/core/sanitize.js.map +1 -0
- package/dist/core/step-tag.d.ts +25 -6
- package/dist/core/step-tag.d.ts.map +1 -1
- package/dist/core/step-tag.js +56 -10
- package/dist/core/step-tag.js.map +1 -1
- package/dist/core/types.d.ts +73 -25
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +4 -1
- package/dist/core/types.js.map +1 -1
- package/dist/global.d.ts +91 -13
- package/dist/global.d.ts.map +1 -1
- package/dist/global.js +235 -25
- package/dist/global.js.map +1 -1
- package/dist/index.d.ts +7 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/integrations/axios.d.ts +5 -1
- package/dist/integrations/axios.d.ts.map +1 -1
- package/dist/integrations/axios.js +146 -34
- package/dist/integrations/axios.js.map +1 -1
- package/dist/integrations/fetch.d.ts +3 -2
- package/dist/integrations/fetch.d.ts.map +1 -1
- package/dist/integrations/fetch.js +105 -26
- package/dist/integrations/fetch.js.map +1 -1
- package/dist/integrations/http-report.d.ts +27 -0
- package/dist/integrations/http-report.d.ts.map +1 -0
- package/dist/integrations/http-report.js +123 -0
- package/dist/integrations/http-report.js.map +1 -0
- package/dist/integrations/jquery/index.d.ts +8 -4
- package/dist/integrations/jquery/index.d.ts.map +1 -1
- package/dist/integrations/jquery/index.js +26 -8
- package/dist/integrations/jquery/index.js.map +1 -1
- package/dist/integrations/jquery/instrument.d.ts +14 -5
- package/dist/integrations/jquery/instrument.d.ts.map +1 -1
- package/dist/integrations/jquery/instrument.js +111 -29
- package/dist/integrations/jquery/instrument.js.map +1 -1
- package/dist/integrations/react/context.d.ts +4 -1
- package/dist/integrations/react/context.d.ts.map +1 -1
- package/dist/integrations/react/context.js +4 -1
- package/dist/integrations/react/context.js.map +1 -1
- package/dist/integrations/react/scope.d.ts +14 -3
- package/dist/integrations/react/scope.d.ts.map +1 -1
- package/dist/integrations/react/scope.js +46 -8
- package/dist/integrations/react/scope.js.map +1 -1
- package/dist/integrations/react/stable-config-keys.d.ts +6 -0
- package/dist/integrations/react/stable-config-keys.d.ts.map +1 -0
- package/dist/integrations/react/stable-config-keys.js +21 -0
- package/dist/integrations/react/stable-config-keys.js.map +1 -0
- package/dist/integrations/react/use-journey-step.d.ts +11 -0
- package/dist/integrations/react/use-journey-step.d.ts.map +1 -0
- package/dist/integrations/react/use-journey-step.js +19 -0
- package/dist/integrations/react/use-journey-step.js.map +1 -0
- package/dist/integrations/request-key.d.ts +8 -3
- package/dist/integrations/request-key.d.ts.map +1 -1
- package/dist/integrations/request-key.js +10 -9
- package/dist/integrations/request-key.js.map +1 -1
- package/dist/integrations/soft-skip.d.ts +7 -0
- package/dist/integrations/soft-skip.d.ts.map +1 -0
- package/dist/integrations/soft-skip.js +30 -0
- package/dist/integrations/soft-skip.js.map +1 -0
- package/dist/sinks/console.d.ts.map +1 -1
- package/dist/sinks/console.js +2 -1
- package/dist/sinks/console.js.map +1 -1
- package/dist/sinks/datadog.d.ts +1 -1
- package/dist/sinks/datadog.d.ts.map +1 -1
- package/dist/sinks/datadog.js +16 -20
- package/dist/sinks/datadog.js.map +1 -1
- package/package.json +2 -2
- package/src/__test-utils__/test-runtime.ts +9 -2
- package/src/__tests__/config.test.ts +150 -31
- package/src/__tests__/core/ambient.test.ts +16 -10
- package/src/__tests__/core/api.test.ts +7 -7
- package/src/__tests__/core/define-journey.test.ts +28 -11
- package/src/__tests__/core/requests.test.ts +49 -31
- package/src/__tests__/core/runtime.test.ts +67 -20
- package/src/__tests__/core/sanitize.test.ts +69 -0
- package/src/__tests__/core/step.test.ts +132 -36
- package/src/__tests__/core/timeouts.test.ts +69 -4
- package/src/__tests__/global.test.ts +44 -3
- package/src/__tests__/hardening.test.ts +613 -0
- package/src/__tests__/integrations/axios.test.ts +247 -27
- package/src/__tests__/integrations/expose-app-journey.test.ts +9 -3
- package/src/__tests__/integrations/fetch.test.ts +153 -19
- package/src/__tests__/integrations/host-mfe.test.ts +548 -0
- package/src/__tests__/integrations/jquery.test.ts +209 -34
- package/src/__tests__/integrations/scope.test.tsx +160 -2
- package/src/__tests__/integrations/use-journey-step.test.tsx +43 -0
- package/src/__tests__/sinks/console.test.ts +9 -4
- package/src/__tests__/sinks/datadog.test.ts +47 -0
- package/src/config.ts +162 -38
- package/src/core/abort-error.ts +24 -0
- package/src/core/api.ts +83 -33
- package/src/core/endpoint-policy.ts +46 -4
- package/src/core/index.ts +12 -4
- package/src/core/limits.ts +73 -0
- package/src/core/request-policy.ts +66 -0
- package/src/core/runtime.ts +507 -133
- package/src/core/sanitize.ts +177 -0
- package/src/core/step-tag.ts +82 -12
- package/src/core/types.ts +79 -25
- package/src/global.ts +312 -42
- package/src/index.ts +17 -17
- package/src/integrations/axios.ts +183 -45
- package/src/integrations/fetch.ts +125 -39
- package/src/integrations/http-report.ts +184 -0
- package/src/integrations/jquery/index.ts +34 -10
- package/src/integrations/jquery/instrument.ts +126 -42
- package/src/integrations/react/context.ts +4 -1
- package/src/integrations/react/scope.tsx +59 -9
- package/src/integrations/react/stable-config-keys.ts +28 -0
- package/src/integrations/react/use-journey-step.ts +31 -0
- package/src/integrations/request-key.ts +18 -10
- package/src/integrations/soft-skip.ts +35 -0
- package/src/sinks/console.ts +2 -1
- package/src/sinks/datadog.ts +23 -29
package/dist/core/runtime.d.ts
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
1
|
+
import { type SlowRequestConfig } from './endpoint-policy';
|
|
2
|
+
import type { RequestPolicyConfig } from './request-policy';
|
|
3
|
+
import { type JourneyDef, type JourneyEngine, type JourneyEvent, type JourneySink, type JourneyState, type JourneyStepOptions, type JourneyStepTarget, type Outcome, type StepHandle, type StepRecord, type TagValue } from './types';
|
|
3
4
|
/** @internal Private — not part of the public package API. */
|
|
4
5
|
export interface JourneyRuntimeOptions {
|
|
6
|
+
/**
|
|
7
|
+
* DevTools label for this engine copy (`__stJourney.getDebugState().runtimes`).
|
|
8
|
+
* Auto-assigned `runtime-N` from the current `__stJourney` registration count
|
|
9
|
+
* when omitted at `registerJourneyRuntime`.
|
|
10
|
+
*/
|
|
11
|
+
id?: string;
|
|
5
12
|
/** Initial sinks. Defaults to `[]` — package bootstrap installs Datadog on the module runtime. */
|
|
6
13
|
sinks?: readonly JourneySink[];
|
|
7
|
-
|
|
14
|
+
slowRequests?: SlowRequestConfig;
|
|
15
|
+
/** Cap recorded steps; default 50. */
|
|
16
|
+
maxSteps?: number;
|
|
17
|
+
/** Default timeout when JourneyDef.timeoutMs is omitted. 0 disables idle countdown. */
|
|
18
|
+
defaultJourneyIdleMs?: number;
|
|
8
19
|
}
|
|
9
20
|
/** @internal Read-only snapshot for DevTools (`__stJourney.getDebugState`; empty unless debugging). */
|
|
10
21
|
export interface JourneyRuntimeDebugSnapshot {
|
|
22
|
+
id: string;
|
|
11
23
|
openJourneys: readonly {
|
|
12
24
|
name: string;
|
|
13
25
|
team: string;
|
|
@@ -22,12 +34,20 @@ export interface JourneyRuntimeDebugSnapshot {
|
|
|
22
34
|
outcome: 'good' | 'bad';
|
|
23
35
|
durationMs: number;
|
|
24
36
|
reason?: string;
|
|
37
|
+
attributedRequestKeys?: readonly string[];
|
|
25
38
|
}[];
|
|
26
39
|
}[];
|
|
27
40
|
activeStep: {
|
|
28
41
|
journey: string;
|
|
29
42
|
name: string;
|
|
30
43
|
} | null;
|
|
44
|
+
/** Which shared policy knobs this runtime overrode (false = inherit global). */
|
|
45
|
+
policyOverlay: {
|
|
46
|
+
slowRequests: boolean;
|
|
47
|
+
httpAbortedRequests: boolean;
|
|
48
|
+
httpClientErrorRequests: boolean;
|
|
49
|
+
autoAttributeRequests: boolean;
|
|
50
|
+
};
|
|
31
51
|
}
|
|
32
52
|
/**
|
|
33
53
|
* @internal Private — not part of the public package API.
|
|
@@ -36,25 +56,45 @@ export interface JourneyRuntimeDebugSnapshot {
|
|
|
36
56
|
* bind to the module runtime. Prefer `resetJourney()` in tests.
|
|
37
57
|
*/
|
|
38
58
|
export interface JourneyRuntime {
|
|
39
|
-
|
|
40
|
-
|
|
59
|
+
/** DevTools id for this engine copy. Auto `runtime-N` when registered without an id. */
|
|
60
|
+
readonly id: string;
|
|
61
|
+
getSlowRequests(): SlowRequestConfig;
|
|
62
|
+
setSlowRequests(next: SlowRequestConfig): void;
|
|
63
|
+
getMaxSteps(): number;
|
|
64
|
+
setMaxSteps(next: number): void;
|
|
65
|
+
getDefaultJourneyIdleMs(): number;
|
|
66
|
+
setDefaultJourneyIdleMs(next: number): void;
|
|
41
67
|
setSinks(next: readonly JourneySink[]): void;
|
|
68
|
+
/** First `configureJourney({ sinks })` on this runtime wins. Returns false if already set. */
|
|
69
|
+
trySetConfiguredSinks(next: readonly JourneySink[]): boolean;
|
|
42
70
|
addSink(sink: JourneySink): void;
|
|
43
71
|
emit(payload: JourneyEvent): void;
|
|
72
|
+
setPolicyOverlay(next: {
|
|
73
|
+
slowRequests?: SlowRequestConfig;
|
|
74
|
+
httpAbortedRequests?: RequestPolicyConfig;
|
|
75
|
+
httpClientErrorRequests?: RequestPolicyConfig;
|
|
76
|
+
autoAttributeRequests?: boolean;
|
|
77
|
+
}): void;
|
|
78
|
+
getAutoAttributeRequests(): boolean;
|
|
79
|
+
getHttpAbortedRequestsPolicy(): RequestPolicyConfig;
|
|
80
|
+
getHttpClientErrorRequestsPolicy(): RequestPolicyConfig;
|
|
44
81
|
getOpenJourney(name: string): JourneyState | undefined;
|
|
45
82
|
/** @internal DevTools snapshot of open journeys / ambient step. */
|
|
46
83
|
getDebugSnapshot(): JourneyRuntimeDebugSnapshot;
|
|
47
|
-
|
|
84
|
+
firstOpenJourneyName(names: readonly string[]): string | null;
|
|
48
85
|
setJourneyTags(name: string | null, tags: Record<string, TagValue>): void;
|
|
49
|
-
startJourney(
|
|
50
|
-
|
|
51
|
-
failJourney(name: string, reason: string): void;
|
|
86
|
+
startJourney(config: JourneyDef): void;
|
|
87
|
+
failJourney(journey: JourneyState, reason: string): void;
|
|
52
88
|
completeJourney(name: string | null, tags?: Record<string, TagValue>): void;
|
|
53
|
-
|
|
54
|
-
|
|
89
|
+
completeJourneyState(journey: JourneyState, tags?: Record<string, TagValue>): void;
|
|
90
|
+
excludeJourney(journey: JourneyState): void;
|
|
91
|
+
updateOpenJourney(config: JourneyDef): void;
|
|
92
|
+
activeJourneyStep(): StepRecord | null;
|
|
55
93
|
journeyStep<T>(journey: JourneyStepTarget, stepName: string, fn: (step: StepHandle) => T | Promise<T>, opts?: JourneyStepOptions): Promise<T>;
|
|
56
94
|
journeyMountStep<T>(journey: JourneyStepTarget, stepName: string, fn: (step: StepHandle) => T | Promise<T>, opts?: JourneyStepOptions): Promise<T>;
|
|
57
|
-
reportBackendRequest(step:
|
|
95
|
+
reportBackendRequest(step: StepRecord | undefined, status: number | undefined, durationMs: number, requestKey: string): void;
|
|
96
|
+
/** True when this request key is ignored for the step's journey (never changes verdict). */
|
|
97
|
+
shouldIgnoreRequest(journey: JourneyState, key: string): boolean;
|
|
58
98
|
/** Close open journeys, clear ambient steps, restore default timeouts/sinks. */
|
|
59
99
|
reset(options?: JourneyRuntimeOptions): void;
|
|
60
100
|
}
|
|
@@ -70,9 +110,19 @@ export declare function createJourneyRuntime(options?: JourneyRuntimeOptions): J
|
|
|
70
110
|
*/
|
|
71
111
|
export declare const moduleRuntime: JourneyRuntime;
|
|
72
112
|
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
|
|
113
|
+
* True when this bundle can fail/exclude/report the journey: stamped engine, or
|
|
114
|
+
* this runtime's own unstamped object. False for a foreign older-copy journey.
|
|
115
|
+
*/
|
|
116
|
+
export declare function canRouteHttpToJourney(journey: JourneyState): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* @internal Prefer the creating engine on a journey (MFE `step.stamp()` on a host transport).
|
|
119
|
+
* Falls back to this bundle's module runtime only when this runtime owns the object.
|
|
120
|
+
* Unstamped foreign journeys (older package copies) are a no-op so a same-named
|
|
121
|
+
* host journey is not deleted from this map.
|
|
122
|
+
*/
|
|
123
|
+
export declare function resolveJourneyEngine(journey: JourneyState): JourneyEngine;
|
|
124
|
+
/**
|
|
125
|
+
* @internal Reset the module engine (open journeys, ambient steps, sinks, slow-request thresholds).
|
|
76
126
|
* Intended for tests — call in `beforeEach` / `afterEach` instead of manual cleanup.
|
|
77
127
|
*/
|
|
78
128
|
export declare function resetJourney(options?: JourneyRuntimeOptions): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"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"}
|