@walkeros/web-destination-fullstory 3.4.0-next-1776749829492
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 +74 -0
- package/dist/dev.d.mts +228 -0
- package/dist/dev.d.ts +228 -0
- package/dist/dev.js +1 -0
- package/dist/dev.js.map +1 -0
- package/dist/dev.mjs +1 -0
- package/dist/dev.mjs.map +1 -0
- package/dist/examples/index.d.mts +180 -0
- package/dist/examples/index.d.ts +180 -0
- package/dist/examples/index.js +309 -0
- package/dist/examples/index.mjs +287 -0
- package/dist/index.browser.js +1 -0
- package/dist/index.d.mts +101 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.es5.js +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -0
- package/dist/walkerOS.json +1082 -0
- package/package.json +79 -0
package/README.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# @walkeros/web-destination-fullstory
|
|
2
|
+
|
|
3
|
+
FullStory web destination for [walkerOS](https://github.com/elbwalker/walkerOS).
|
|
4
|
+
Forwards events to FullStory via the official `@fullstory/browser` SDK v2 with
|
|
5
|
+
support for custom events, user/page properties, identity, and consent.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @walkeros/web-destination-fullstory
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"destinations": {
|
|
18
|
+
"fullstory": {
|
|
19
|
+
"package": "@walkeros/web-destination-fullstory",
|
|
20
|
+
"config": {
|
|
21
|
+
"consent": { "analytics": true },
|
|
22
|
+
"settings": {
|
|
23
|
+
"orgId": "o-XXXXXX-na1"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Settings
|
|
32
|
+
|
|
33
|
+
| Setting | Type | Required | Description |
|
|
34
|
+
| -------------------------- | ------------ | -------- | ------------------------------------------------ |
|
|
35
|
+
| `orgId` | string | Yes | FullStory organization ID |
|
|
36
|
+
| `host` | string | No | Recording server host (proxy support) |
|
|
37
|
+
| `script` | string | No | Custom script CDN host |
|
|
38
|
+
| `cookieDomain` | string | No | Cookie domain override |
|
|
39
|
+
| `debug` | boolean | No | Browser console debug logging |
|
|
40
|
+
| `devMode` | boolean | No | Disable recording (dev environments) |
|
|
41
|
+
| `startCaptureManually` | boolean | No | Delay capture until consent |
|
|
42
|
+
| `namespace` | string | No | Global FS identifier override |
|
|
43
|
+
| `recordCrossDomainIFrames` | boolean | No | Cross-domain iframe recording |
|
|
44
|
+
| `identify` | MappingValue | No | Destination-level identity mapping |
|
|
45
|
+
| `consent` | Record | No | walkerOS consent key to FullStory action mapping |
|
|
46
|
+
|
|
47
|
+
## Mapping Settings
|
|
48
|
+
|
|
49
|
+
Per-event mapping settings control which FullStory methods are called:
|
|
50
|
+
|
|
51
|
+
| Setting | Effect | Description |
|
|
52
|
+
| ---------- | ------------------------------------------- | ------------------------------------ |
|
|
53
|
+
| `identify` | Calls `setIdentity({ uid, properties })` | Overrides destination-level identify |
|
|
54
|
+
| `set` | Calls `setProperties({ type, properties })` | User or page properties |
|
|
55
|
+
| `setType` | Controls property scope | `'user'` (default) or `'page'` |
|
|
56
|
+
|
|
57
|
+
## Consent
|
|
58
|
+
|
|
59
|
+
For GDPR compliance, use `startCaptureManually: true` and map consent:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"settings": {
|
|
64
|
+
"orgId": "o-XXXXXX-na1",
|
|
65
|
+
"startCaptureManually": true,
|
|
66
|
+
"consent": {
|
|
67
|
+
"analytics": "capture"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
- `"capture"` controls `start`/`shutdown` (recording on/off)
|
|
74
|
+
- `"consent"` controls `setIdentity({ consent })` flag
|
package/dist/dev.d.mts
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import * as _walkeros_core_dev from '@walkeros/core/dev';
|
|
2
|
+
import { z } from '@walkeros/core/dev';
|
|
3
|
+
import { Mapping as Mapping$1, Flow } from '@walkeros/core';
|
|
4
|
+
import { DestinationWeb } from '@walkeros/web-core';
|
|
5
|
+
|
|
6
|
+
declare const SettingsSchema: z.ZodObject<{
|
|
7
|
+
orgId: z.ZodString;
|
|
8
|
+
host: z.ZodOptional<z.ZodString>;
|
|
9
|
+
script: z.ZodOptional<z.ZodString>;
|
|
10
|
+
cookieDomain: z.ZodOptional<z.ZodString>;
|
|
11
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
devMode: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
+
startCaptureManually: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
15
|
+
recordCrossDomainIFrames: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
identify: z.ZodOptional<z.ZodUnknown>;
|
|
17
|
+
consent: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
18
|
+
capture: "capture";
|
|
19
|
+
consent: "consent";
|
|
20
|
+
}>>>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
type Settings$1 = z.infer<typeof SettingsSchema>;
|
|
23
|
+
|
|
24
|
+
declare const MappingSchema: z.ZodObject<{
|
|
25
|
+
identify: z.ZodOptional<z.ZodUnknown>;
|
|
26
|
+
set: z.ZodOptional<z.ZodUnknown>;
|
|
27
|
+
setType: z.ZodOptional<z.ZodEnum<{
|
|
28
|
+
user: "user";
|
|
29
|
+
page: "page";
|
|
30
|
+
}>>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
type Mapping = z.infer<typeof MappingSchema>;
|
|
33
|
+
|
|
34
|
+
declare const settings: _walkeros_core_dev.JSONSchema;
|
|
35
|
+
declare const mapping: _walkeros_core_dev.JSONSchema;
|
|
36
|
+
|
|
37
|
+
type index$1_Mapping = Mapping;
|
|
38
|
+
declare const index$1_MappingSchema: typeof MappingSchema;
|
|
39
|
+
declare const index$1_SettingsSchema: typeof SettingsSchema;
|
|
40
|
+
declare const index$1_mapping: typeof mapping;
|
|
41
|
+
declare const index$1_settings: typeof settings;
|
|
42
|
+
declare namespace index$1 {
|
|
43
|
+
export { type index$1_Mapping as Mapping, index$1_MappingSchema as MappingSchema, type Settings$1 as Settings, index$1_SettingsSchema as SettingsSchema, index$1_mapping as mapping, index$1_settings as settings };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Settings (destination-level).
|
|
48
|
+
*
|
|
49
|
+
* orgId is the FullStory organization ID (e.g. "o-XXXXXX-na1").
|
|
50
|
+
* All SnippetOptions from @fullstory/browser are available as passthrough.
|
|
51
|
+
*/
|
|
52
|
+
interface Settings {
|
|
53
|
+
orgId: string;
|
|
54
|
+
host?: string;
|
|
55
|
+
script?: string;
|
|
56
|
+
cookieDomain?: string;
|
|
57
|
+
debug?: boolean;
|
|
58
|
+
devMode?: boolean;
|
|
59
|
+
startCaptureManually?: boolean;
|
|
60
|
+
namespace?: string;
|
|
61
|
+
recordCrossDomainIFrames?: boolean;
|
|
62
|
+
identify?: Mapping$1.Value;
|
|
63
|
+
consent?: Record<string, 'capture' | 'consent'>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* FullStory SDK surface -- the subset of @fullstory/browser methods this
|
|
67
|
+
* destination actually calls. Tests can mock each method individually.
|
|
68
|
+
*
|
|
69
|
+
* Uses V2 API only: FullStory('operationName', options).
|
|
70
|
+
*/
|
|
71
|
+
interface FullStorySDK {
|
|
72
|
+
init: (options: {
|
|
73
|
+
orgId: string;
|
|
74
|
+
host?: string;
|
|
75
|
+
script?: string;
|
|
76
|
+
cookieDomain?: string;
|
|
77
|
+
debug?: boolean;
|
|
78
|
+
devMode?: boolean;
|
|
79
|
+
startCaptureManually?: boolean;
|
|
80
|
+
namespace?: string;
|
|
81
|
+
recordCrossDomainIFrames?: boolean;
|
|
82
|
+
}) => void;
|
|
83
|
+
trackEvent: (options: {
|
|
84
|
+
name: string;
|
|
85
|
+
properties?: Record<string, unknown>;
|
|
86
|
+
}) => void;
|
|
87
|
+
setIdentity: (options: {
|
|
88
|
+
uid?: string | false;
|
|
89
|
+
anonymous?: boolean;
|
|
90
|
+
consent?: boolean;
|
|
91
|
+
properties?: Record<string, unknown>;
|
|
92
|
+
}) => void;
|
|
93
|
+
setProperties: (options: {
|
|
94
|
+
type: 'user' | 'page';
|
|
95
|
+
properties: Record<string, unknown>;
|
|
96
|
+
}) => void;
|
|
97
|
+
shutdown: () => void;
|
|
98
|
+
start: () => void;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Env -- optional override for the vendor SDK. Production leaves this
|
|
102
|
+
* undefined and the destination falls back to the real @fullstory/browser.
|
|
103
|
+
* Tests provide a mock via env.fullstory = { ... }.
|
|
104
|
+
*/
|
|
105
|
+
interface Env extends DestinationWeb.Env {
|
|
106
|
+
fullstory?: FullStorySDK;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Pre-init environment -- FullStory SDK methods are no-ops until init wires them.
|
|
111
|
+
*/
|
|
112
|
+
declare const init: Env | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Post-init environment -- FullStory SDK methods are spy-able no-ops.
|
|
115
|
+
* Tests clone this and replace individual methods with jest.fn() for assertions.
|
|
116
|
+
*/
|
|
117
|
+
declare const push: Env;
|
|
118
|
+
/**
|
|
119
|
+
* Simulation tracking paths for CLI --simulate
|
|
120
|
+
*/
|
|
121
|
+
declare const simulation: string[];
|
|
122
|
+
|
|
123
|
+
declare const env_init: typeof init;
|
|
124
|
+
declare const env_push: typeof push;
|
|
125
|
+
declare const env_simulation: typeof simulation;
|
|
126
|
+
declare namespace env {
|
|
127
|
+
export { env_init as init, env_push as push, env_simulation as simulation };
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Extended step example that may carry destination-level settings overrides.
|
|
132
|
+
*/
|
|
133
|
+
type FullStoryStepExample = Flow.StepExample & {
|
|
134
|
+
settings?: Partial<Settings>;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Default event forwarding -- every walkerOS event becomes
|
|
138
|
+
* FullStory('trackEvent', { name, properties }). No mapping rule needed.
|
|
139
|
+
*/
|
|
140
|
+
declare const defaultEventForwarding: FullStoryStepExample;
|
|
141
|
+
/**
|
|
142
|
+
* Wildcard ignore -- the event matches a mapping rule with ignore: true.
|
|
143
|
+
* The destination fires zero SDK calls.
|
|
144
|
+
*/
|
|
145
|
+
declare const wildcardIgnored: FullStoryStepExample;
|
|
146
|
+
/**
|
|
147
|
+
* Event name mapping -- mapping.name renames the walkerOS event for FullStory.
|
|
148
|
+
*/
|
|
149
|
+
declare const mappedEventName: FullStoryStepExample;
|
|
150
|
+
/**
|
|
151
|
+
* Per-event identify via mapping.settings.identify.
|
|
152
|
+
* Resolves { uid, properties } and calls FullStory('setIdentity', ...).
|
|
153
|
+
* Then fires the default trackEvent.
|
|
154
|
+
*/
|
|
155
|
+
declare const userLoginIdentify: FullStoryStepExample;
|
|
156
|
+
/**
|
|
157
|
+
* Destination-level settings.identify -- fires setIdentity on every push.
|
|
158
|
+
* Uses user.id from the standard getEvent fixture.
|
|
159
|
+
*/
|
|
160
|
+
declare const destinationLevelIdentify: FullStoryStepExample;
|
|
161
|
+
/**
|
|
162
|
+
* User properties via mapping.settings.set with default setType ('user').
|
|
163
|
+
* Calls FullStory('setProperties', { type: 'user', properties }).
|
|
164
|
+
*/
|
|
165
|
+
declare const setUserProperties: FullStoryStepExample;
|
|
166
|
+
/**
|
|
167
|
+
* Page properties via mapping.settings.set with setType: 'page'.
|
|
168
|
+
* skip: true suppresses trackEvent -- useful for page views where
|
|
169
|
+
* FullStory already auto-captures navigation.
|
|
170
|
+
*/
|
|
171
|
+
declare const setPageProperties: FullStoryStepExample;
|
|
172
|
+
/**
|
|
173
|
+
* Combined features -- identify the user, set user properties, then fire
|
|
174
|
+
* the event. Tests push execution order: identify -> setProperties -> trackEvent.
|
|
175
|
+
*/
|
|
176
|
+
declare const combinedFeatures: FullStoryStepExample;
|
|
177
|
+
/**
|
|
178
|
+
* skip: true with identify -- mapping.skip suppresses trackEvent but
|
|
179
|
+
* still executes identify and set from the mapping rule.
|
|
180
|
+
*/
|
|
181
|
+
declare const skipWithIdentify: FullStoryStepExample;
|
|
182
|
+
/**
|
|
183
|
+
* Consent grant -- settings.consent maps walkerOS consent key "analytics"
|
|
184
|
+
* to FullStory "capture" action. Granting consent calls FullStory('start').
|
|
185
|
+
*
|
|
186
|
+
* Uses command='consent' so the test runner dispatches via
|
|
187
|
+
* elb('walker consent', in) instead of pushing an event.
|
|
188
|
+
*/
|
|
189
|
+
declare const consentGrantCapture: FullStoryStepExample;
|
|
190
|
+
/**
|
|
191
|
+
* Consent revoke -- revoking consent calls FullStory('shutdown').
|
|
192
|
+
*/
|
|
193
|
+
declare const consentRevokeCapture: FullStoryStepExample;
|
|
194
|
+
/**
|
|
195
|
+
* Consent flag -- settings.consent maps walkerOS consent key to FullStory
|
|
196
|
+
* "consent" action. Granting calls setIdentity({ consent: true }).
|
|
197
|
+
*/
|
|
198
|
+
declare const consentGrantFlag: FullStoryStepExample;
|
|
199
|
+
/**
|
|
200
|
+
* Consent flag revoke -- calls setIdentity({ consent: false }).
|
|
201
|
+
*/
|
|
202
|
+
declare const consentRevokeFlag: FullStoryStepExample;
|
|
203
|
+
|
|
204
|
+
type step_FullStoryStepExample = FullStoryStepExample;
|
|
205
|
+
declare const step_combinedFeatures: typeof combinedFeatures;
|
|
206
|
+
declare const step_consentGrantCapture: typeof consentGrantCapture;
|
|
207
|
+
declare const step_consentGrantFlag: typeof consentGrantFlag;
|
|
208
|
+
declare const step_consentRevokeCapture: typeof consentRevokeCapture;
|
|
209
|
+
declare const step_consentRevokeFlag: typeof consentRevokeFlag;
|
|
210
|
+
declare const step_defaultEventForwarding: typeof defaultEventForwarding;
|
|
211
|
+
declare const step_destinationLevelIdentify: typeof destinationLevelIdentify;
|
|
212
|
+
declare const step_mappedEventName: typeof mappedEventName;
|
|
213
|
+
declare const step_setPageProperties: typeof setPageProperties;
|
|
214
|
+
declare const step_setUserProperties: typeof setUserProperties;
|
|
215
|
+
declare const step_skipWithIdentify: typeof skipWithIdentify;
|
|
216
|
+
declare const step_userLoginIdentify: typeof userLoginIdentify;
|
|
217
|
+
declare const step_wildcardIgnored: typeof wildcardIgnored;
|
|
218
|
+
declare namespace step {
|
|
219
|
+
export { type step_FullStoryStepExample as FullStoryStepExample, step_combinedFeatures as combinedFeatures, step_consentGrantCapture as consentGrantCapture, step_consentGrantFlag as consentGrantFlag, step_consentRevokeCapture as consentRevokeCapture, step_consentRevokeFlag as consentRevokeFlag, step_defaultEventForwarding as defaultEventForwarding, step_destinationLevelIdentify as destinationLevelIdentify, step_mappedEventName as mappedEventName, step_setPageProperties as setPageProperties, step_setUserProperties as setUserProperties, step_skipWithIdentify as skipWithIdentify, step_userLoginIdentify as userLoginIdentify, step_wildcardIgnored as wildcardIgnored };
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
declare const index_env: typeof env;
|
|
223
|
+
declare const index_step: typeof step;
|
|
224
|
+
declare namespace index {
|
|
225
|
+
export { index_env as env, index_step as step };
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export { index as examples, index$1 as schemas };
|
package/dist/dev.d.ts
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import * as _walkeros_core_dev from '@walkeros/core/dev';
|
|
2
|
+
import { z } from '@walkeros/core/dev';
|
|
3
|
+
import { Mapping as Mapping$1, Flow } from '@walkeros/core';
|
|
4
|
+
import { DestinationWeb } from '@walkeros/web-core';
|
|
5
|
+
|
|
6
|
+
declare const SettingsSchema: z.ZodObject<{
|
|
7
|
+
orgId: z.ZodString;
|
|
8
|
+
host: z.ZodOptional<z.ZodString>;
|
|
9
|
+
script: z.ZodOptional<z.ZodString>;
|
|
10
|
+
cookieDomain: z.ZodOptional<z.ZodString>;
|
|
11
|
+
debug: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
devMode: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
+
startCaptureManually: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
15
|
+
recordCrossDomainIFrames: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
identify: z.ZodOptional<z.ZodUnknown>;
|
|
17
|
+
consent: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodEnum<{
|
|
18
|
+
capture: "capture";
|
|
19
|
+
consent: "consent";
|
|
20
|
+
}>>>;
|
|
21
|
+
}, z.core.$strip>;
|
|
22
|
+
type Settings$1 = z.infer<typeof SettingsSchema>;
|
|
23
|
+
|
|
24
|
+
declare const MappingSchema: z.ZodObject<{
|
|
25
|
+
identify: z.ZodOptional<z.ZodUnknown>;
|
|
26
|
+
set: z.ZodOptional<z.ZodUnknown>;
|
|
27
|
+
setType: z.ZodOptional<z.ZodEnum<{
|
|
28
|
+
user: "user";
|
|
29
|
+
page: "page";
|
|
30
|
+
}>>;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
type Mapping = z.infer<typeof MappingSchema>;
|
|
33
|
+
|
|
34
|
+
declare const settings: _walkeros_core_dev.JSONSchema;
|
|
35
|
+
declare const mapping: _walkeros_core_dev.JSONSchema;
|
|
36
|
+
|
|
37
|
+
type index$1_Mapping = Mapping;
|
|
38
|
+
declare const index$1_MappingSchema: typeof MappingSchema;
|
|
39
|
+
declare const index$1_SettingsSchema: typeof SettingsSchema;
|
|
40
|
+
declare const index$1_mapping: typeof mapping;
|
|
41
|
+
declare const index$1_settings: typeof settings;
|
|
42
|
+
declare namespace index$1 {
|
|
43
|
+
export { type index$1_Mapping as Mapping, index$1_MappingSchema as MappingSchema, type Settings$1 as Settings, index$1_SettingsSchema as SettingsSchema, index$1_mapping as mapping, index$1_settings as settings };
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Settings (destination-level).
|
|
48
|
+
*
|
|
49
|
+
* orgId is the FullStory organization ID (e.g. "o-XXXXXX-na1").
|
|
50
|
+
* All SnippetOptions from @fullstory/browser are available as passthrough.
|
|
51
|
+
*/
|
|
52
|
+
interface Settings {
|
|
53
|
+
orgId: string;
|
|
54
|
+
host?: string;
|
|
55
|
+
script?: string;
|
|
56
|
+
cookieDomain?: string;
|
|
57
|
+
debug?: boolean;
|
|
58
|
+
devMode?: boolean;
|
|
59
|
+
startCaptureManually?: boolean;
|
|
60
|
+
namespace?: string;
|
|
61
|
+
recordCrossDomainIFrames?: boolean;
|
|
62
|
+
identify?: Mapping$1.Value;
|
|
63
|
+
consent?: Record<string, 'capture' | 'consent'>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* FullStory SDK surface -- the subset of @fullstory/browser methods this
|
|
67
|
+
* destination actually calls. Tests can mock each method individually.
|
|
68
|
+
*
|
|
69
|
+
* Uses V2 API only: FullStory('operationName', options).
|
|
70
|
+
*/
|
|
71
|
+
interface FullStorySDK {
|
|
72
|
+
init: (options: {
|
|
73
|
+
orgId: string;
|
|
74
|
+
host?: string;
|
|
75
|
+
script?: string;
|
|
76
|
+
cookieDomain?: string;
|
|
77
|
+
debug?: boolean;
|
|
78
|
+
devMode?: boolean;
|
|
79
|
+
startCaptureManually?: boolean;
|
|
80
|
+
namespace?: string;
|
|
81
|
+
recordCrossDomainIFrames?: boolean;
|
|
82
|
+
}) => void;
|
|
83
|
+
trackEvent: (options: {
|
|
84
|
+
name: string;
|
|
85
|
+
properties?: Record<string, unknown>;
|
|
86
|
+
}) => void;
|
|
87
|
+
setIdentity: (options: {
|
|
88
|
+
uid?: string | false;
|
|
89
|
+
anonymous?: boolean;
|
|
90
|
+
consent?: boolean;
|
|
91
|
+
properties?: Record<string, unknown>;
|
|
92
|
+
}) => void;
|
|
93
|
+
setProperties: (options: {
|
|
94
|
+
type: 'user' | 'page';
|
|
95
|
+
properties: Record<string, unknown>;
|
|
96
|
+
}) => void;
|
|
97
|
+
shutdown: () => void;
|
|
98
|
+
start: () => void;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Env -- optional override for the vendor SDK. Production leaves this
|
|
102
|
+
* undefined and the destination falls back to the real @fullstory/browser.
|
|
103
|
+
* Tests provide a mock via env.fullstory = { ... }.
|
|
104
|
+
*/
|
|
105
|
+
interface Env extends DestinationWeb.Env {
|
|
106
|
+
fullstory?: FullStorySDK;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Pre-init environment -- FullStory SDK methods are no-ops until init wires them.
|
|
111
|
+
*/
|
|
112
|
+
declare const init: Env | undefined;
|
|
113
|
+
/**
|
|
114
|
+
* Post-init environment -- FullStory SDK methods are spy-able no-ops.
|
|
115
|
+
* Tests clone this and replace individual methods with jest.fn() for assertions.
|
|
116
|
+
*/
|
|
117
|
+
declare const push: Env;
|
|
118
|
+
/**
|
|
119
|
+
* Simulation tracking paths for CLI --simulate
|
|
120
|
+
*/
|
|
121
|
+
declare const simulation: string[];
|
|
122
|
+
|
|
123
|
+
declare const env_init: typeof init;
|
|
124
|
+
declare const env_push: typeof push;
|
|
125
|
+
declare const env_simulation: typeof simulation;
|
|
126
|
+
declare namespace env {
|
|
127
|
+
export { env_init as init, env_push as push, env_simulation as simulation };
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Extended step example that may carry destination-level settings overrides.
|
|
132
|
+
*/
|
|
133
|
+
type FullStoryStepExample = Flow.StepExample & {
|
|
134
|
+
settings?: Partial<Settings>;
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Default event forwarding -- every walkerOS event becomes
|
|
138
|
+
* FullStory('trackEvent', { name, properties }). No mapping rule needed.
|
|
139
|
+
*/
|
|
140
|
+
declare const defaultEventForwarding: FullStoryStepExample;
|
|
141
|
+
/**
|
|
142
|
+
* Wildcard ignore -- the event matches a mapping rule with ignore: true.
|
|
143
|
+
* The destination fires zero SDK calls.
|
|
144
|
+
*/
|
|
145
|
+
declare const wildcardIgnored: FullStoryStepExample;
|
|
146
|
+
/**
|
|
147
|
+
* Event name mapping -- mapping.name renames the walkerOS event for FullStory.
|
|
148
|
+
*/
|
|
149
|
+
declare const mappedEventName: FullStoryStepExample;
|
|
150
|
+
/**
|
|
151
|
+
* Per-event identify via mapping.settings.identify.
|
|
152
|
+
* Resolves { uid, properties } and calls FullStory('setIdentity', ...).
|
|
153
|
+
* Then fires the default trackEvent.
|
|
154
|
+
*/
|
|
155
|
+
declare const userLoginIdentify: FullStoryStepExample;
|
|
156
|
+
/**
|
|
157
|
+
* Destination-level settings.identify -- fires setIdentity on every push.
|
|
158
|
+
* Uses user.id from the standard getEvent fixture.
|
|
159
|
+
*/
|
|
160
|
+
declare const destinationLevelIdentify: FullStoryStepExample;
|
|
161
|
+
/**
|
|
162
|
+
* User properties via mapping.settings.set with default setType ('user').
|
|
163
|
+
* Calls FullStory('setProperties', { type: 'user', properties }).
|
|
164
|
+
*/
|
|
165
|
+
declare const setUserProperties: FullStoryStepExample;
|
|
166
|
+
/**
|
|
167
|
+
* Page properties via mapping.settings.set with setType: 'page'.
|
|
168
|
+
* skip: true suppresses trackEvent -- useful for page views where
|
|
169
|
+
* FullStory already auto-captures navigation.
|
|
170
|
+
*/
|
|
171
|
+
declare const setPageProperties: FullStoryStepExample;
|
|
172
|
+
/**
|
|
173
|
+
* Combined features -- identify the user, set user properties, then fire
|
|
174
|
+
* the event. Tests push execution order: identify -> setProperties -> trackEvent.
|
|
175
|
+
*/
|
|
176
|
+
declare const combinedFeatures: FullStoryStepExample;
|
|
177
|
+
/**
|
|
178
|
+
* skip: true with identify -- mapping.skip suppresses trackEvent but
|
|
179
|
+
* still executes identify and set from the mapping rule.
|
|
180
|
+
*/
|
|
181
|
+
declare const skipWithIdentify: FullStoryStepExample;
|
|
182
|
+
/**
|
|
183
|
+
* Consent grant -- settings.consent maps walkerOS consent key "analytics"
|
|
184
|
+
* to FullStory "capture" action. Granting consent calls FullStory('start').
|
|
185
|
+
*
|
|
186
|
+
* Uses command='consent' so the test runner dispatches via
|
|
187
|
+
* elb('walker consent', in) instead of pushing an event.
|
|
188
|
+
*/
|
|
189
|
+
declare const consentGrantCapture: FullStoryStepExample;
|
|
190
|
+
/**
|
|
191
|
+
* Consent revoke -- revoking consent calls FullStory('shutdown').
|
|
192
|
+
*/
|
|
193
|
+
declare const consentRevokeCapture: FullStoryStepExample;
|
|
194
|
+
/**
|
|
195
|
+
* Consent flag -- settings.consent maps walkerOS consent key to FullStory
|
|
196
|
+
* "consent" action. Granting calls setIdentity({ consent: true }).
|
|
197
|
+
*/
|
|
198
|
+
declare const consentGrantFlag: FullStoryStepExample;
|
|
199
|
+
/**
|
|
200
|
+
* Consent flag revoke -- calls setIdentity({ consent: false }).
|
|
201
|
+
*/
|
|
202
|
+
declare const consentRevokeFlag: FullStoryStepExample;
|
|
203
|
+
|
|
204
|
+
type step_FullStoryStepExample = FullStoryStepExample;
|
|
205
|
+
declare const step_combinedFeatures: typeof combinedFeatures;
|
|
206
|
+
declare const step_consentGrantCapture: typeof consentGrantCapture;
|
|
207
|
+
declare const step_consentGrantFlag: typeof consentGrantFlag;
|
|
208
|
+
declare const step_consentRevokeCapture: typeof consentRevokeCapture;
|
|
209
|
+
declare const step_consentRevokeFlag: typeof consentRevokeFlag;
|
|
210
|
+
declare const step_defaultEventForwarding: typeof defaultEventForwarding;
|
|
211
|
+
declare const step_destinationLevelIdentify: typeof destinationLevelIdentify;
|
|
212
|
+
declare const step_mappedEventName: typeof mappedEventName;
|
|
213
|
+
declare const step_setPageProperties: typeof setPageProperties;
|
|
214
|
+
declare const step_setUserProperties: typeof setUserProperties;
|
|
215
|
+
declare const step_skipWithIdentify: typeof skipWithIdentify;
|
|
216
|
+
declare const step_userLoginIdentify: typeof userLoginIdentify;
|
|
217
|
+
declare const step_wildcardIgnored: typeof wildcardIgnored;
|
|
218
|
+
declare namespace step {
|
|
219
|
+
export { type step_FullStoryStepExample as FullStoryStepExample, step_combinedFeatures as combinedFeatures, step_consentGrantCapture as consentGrantCapture, step_consentGrantFlag as consentGrantFlag, step_consentRevokeCapture as consentRevokeCapture, step_consentRevokeFlag as consentRevokeFlag, step_defaultEventForwarding as defaultEventForwarding, step_destinationLevelIdentify as destinationLevelIdentify, step_mappedEventName as mappedEventName, step_setPageProperties as setPageProperties, step_setUserProperties as setUserProperties, step_skipWithIdentify as skipWithIdentify, step_userLoginIdentify as userLoginIdentify, step_wildcardIgnored as wildcardIgnored };
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
declare const index_env: typeof env;
|
|
223
|
+
declare const index_step: typeof step;
|
|
224
|
+
declare namespace index {
|
|
225
|
+
export { index_env as env, index_step as step };
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
export { index as examples, index$1 as schemas };
|