@walkeros/web-destination-heap 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 ADDED
@@ -0,0 +1,151 @@
1
+ <p align="left">
2
+ <a href="https://www.walkeros.io">
3
+ <img alt="walkerOS" title="walkerOS" src="https://www.walkeros.io/img/walkerOS_logo.svg" width="256px"/>
4
+ </a>
5
+ </p>
6
+
7
+ # Heap Destination for walkerOS
8
+
9
+ [Source Code](https://github.com/elbwalker/walkerOS/tree/main/packages/web/destinations/heap)
10
+ &bull;
11
+ [NPM Package](https://www.npmjs.com/package/@walkeros/web-destination-heap)
12
+ &bull; [Documentation](https://www.walkeros.io/docs/destinations/web/heap)
13
+
14
+ This package forwards walkerOS events to [Heap](https://www.heap.io/) — product
15
+ analytics with auto-capture, heatmaps, and session replay. Loads the official
16
+ Heap snippet from Heap's CDN and forwards events through `window.heap.track()`.
17
+
18
+ walkerOS follows a **source → collector → destination** architecture. This Heap
19
+ destination receives processed events from the walkerOS collector and forwards
20
+ them as `heap.track()` calls plus identity and persistent property updates.
21
+
22
+ ## Features
23
+
24
+ - **Default event forwarding** — every walkerOS event becomes
25
+ `heap.track(name, properties)`
26
+ - **Identity** — `heap.identify(id)` and `heap.resetIdentity()` for login/logout
27
+ - **User properties** — `heap.addUserProperties({...})` at destination or rule
28
+ level
29
+ - **Persistent event properties** — `heap.addEventProperties({...})` and
30
+ `heap.clearEventProperties()` via rule settings
31
+ - **Consent** — `heap.startTracking()` / `heap.stopTracking()` wired to walkerOS
32
+ `config.consent`
33
+ - **Snippet injection** — loads `heap-<appId>.js` from Heap's CDN with
34
+ `disablePageviewAutocapture: true` and `disableTextCapture: true` defaults so
35
+ walkerOS sources own event capture
36
+
37
+ ## Installation
38
+
39
+ ```sh
40
+ npm install @walkeros/web-destination-heap
41
+ ```
42
+
43
+ ## Quick Start
44
+
45
+ ```typescript
46
+ import { startFlow } from '@walkeros/collector';
47
+ import { destinationHeap } from '@walkeros/web-destination-heap';
48
+
49
+ await startFlow({
50
+ destinations: {
51
+ heap: {
52
+ code: destinationHeap,
53
+ config: {
54
+ loadScript: true,
55
+ settings: {
56
+ appId: 'YOUR_HEAP_APP_ID',
57
+ },
58
+ },
59
+ },
60
+ },
61
+ });
62
+ ```
63
+
64
+ ## Configuration
65
+
66
+ ### Settings (destination-level)
67
+
68
+ | Name | Type | Description | Required |
69
+ | ---------------------------- | --------------- | ------------------------------------------------------------------------------------------------ | -------- |
70
+ | `appId` | `string` | Heap App ID (Project > Settings > App ID) | Yes |
71
+ | `disableTextCapture` | `boolean` | Disable Heap auto text capture. Defaults to `true`. | No |
72
+ | `disablePageviewAutocapture` | `boolean` | Disable Heap automatic pageview tracking. Defaults to `true` (walkerOS sources emit pageviews). | No |
73
+ | `disableSessionReplay` | `boolean` | Disable Heap session replay. | No |
74
+ | `secureCookie` | `boolean` | SSL-only cookies. | No |
75
+ | `ingestServer` | `string` | Custom server endpoint (first-party proxy). | No |
76
+ | `identify` | `Mapping.Value` | Destination-level identity mapping — resolves to a string for `heap.identify()` | No |
77
+ | `userProperties` | `Mapping.Value` | Destination-level user properties mapping — resolves to an object for `heap.addUserProperties()` | No |
78
+ | `heapConfig` | `HeapConfig` | Passthrough for additional `heap.load()` options | No |
79
+
80
+ ### Mapping (`rule.settings`)
81
+
82
+ | Name | Type | Description |
83
+ | ---------------------- | -------------------------- | -------------------------------------------------------------------------------- |
84
+ | `identify` | `Mapping.Value` | Per-event identity — resolves to a string for `heap.identify()` |
85
+ | `reset` | `boolean \| Mapping.Value` | Truthy triggers `heap.resetIdentity()` (e.g. on logout) |
86
+ | `userProperties` | `Mapping.Value` | Per-event user properties — resolves to object for `heap.addUserProperties()` |
87
+ | `eventProperties` | `Mapping.Value` | Persistent event properties — resolves to object for `heap.addEventProperties()` |
88
+ | `clearEventProperties` | `boolean \| Mapping.Value` | Truthy triggers `heap.clearEventProperties()` |
89
+
90
+ Standard mapping features also apply:
91
+
92
+ - `name` — rename the forwarded event (`heap.track(<new name>, ...)`)
93
+ - `skip` — suppress the default `heap.track(...)` call while still running
94
+ `identify` / `userProperties` / `reset` / `eventProperties`
95
+ - `ignore` — drop the event entirely
96
+ - `data` — resolve event properties forwarded as the second argument to
97
+ `heap.track(...)`
98
+
99
+ ## Identity
100
+
101
+ Heap identity is sticky — call `heap.identify(id)` on login and
102
+ `heap.resetIdentity()` on logout. A typical mapping:
103
+
104
+ ```typescript
105
+ mapping: {
106
+ user: {
107
+ login: {
108
+ skip: true,
109
+ settings: {
110
+ identify: 'data.email',
111
+ userProperties: {
112
+ map: { plan: 'data.plan', company: 'data.company' },
113
+ },
114
+ },
115
+ },
116
+ logout: {
117
+ skip: true,
118
+ settings: { reset: true },
119
+ },
120
+ },
121
+ }
122
+ ```
123
+
124
+ ## Consent
125
+
126
+ The destination wires walkerOS `config.consent` to Heap's runtime consent API.
127
+ When all required consent keys are `true`, `heap.startTracking()` is called;
128
+ otherwise `heap.stopTracking()`.
129
+
130
+ ```typescript
131
+ destinations: {
132
+ heap: {
133
+ code: destinationHeap,
134
+ config: {
135
+ consent: { analytics: true },
136
+ settings: { appId: 'YOUR_HEAP_APP_ID' },
137
+ },
138
+ },
139
+ }
140
+ ```
141
+
142
+ ## Contribute
143
+
144
+ Feel free to contribute by submitting an
145
+ [issue](https://github.com/elbwalker/walkerOS/issues), starting a
146
+ [discussion](https://github.com/elbwalker/walkerOS/discussions), or getting in
147
+ [contact](https://calendly.com/elb-alexander/30min).
148
+
149
+ ## License
150
+
151
+ This project is licensed under the MIT License.
package/dist/dev.d.mts ADDED
@@ -0,0 +1,207 @@
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
+ appId: z.ZodString;
8
+ disableTextCapture: z.ZodOptional<z.ZodBoolean>;
9
+ disablePageviewAutocapture: z.ZodOptional<z.ZodBoolean>;
10
+ disableSessionReplay: z.ZodOptional<z.ZodBoolean>;
11
+ secureCookie: z.ZodOptional<z.ZodBoolean>;
12
+ ingestServer: z.ZodOptional<z.ZodString>;
13
+ identify: z.ZodOptional<z.ZodUnknown>;
14
+ userProperties: z.ZodOptional<z.ZodUnknown>;
15
+ }, z.core.$strip>;
16
+ type Settings$1 = z.infer<typeof SettingsSchema>;
17
+
18
+ declare const MappingSchema: z.ZodObject<{
19
+ identify: z.ZodOptional<z.ZodUnknown>;
20
+ reset: z.ZodOptional<z.ZodUnknown>;
21
+ userProperties: z.ZodOptional<z.ZodUnknown>;
22
+ eventProperties: z.ZodOptional<z.ZodUnknown>;
23
+ clearEventProperties: z.ZodOptional<z.ZodUnknown>;
24
+ }, z.core.$strip>;
25
+ type Mapping = z.infer<typeof MappingSchema>;
26
+
27
+ declare const settings: _walkeros_core_dev.JSONSchema;
28
+ declare const mapping: _walkeros_core_dev.JSONSchema;
29
+
30
+ type index$1_Mapping = Mapping;
31
+ declare const index$1_MappingSchema: typeof MappingSchema;
32
+ declare const index$1_SettingsSchema: typeof SettingsSchema;
33
+ declare const index$1_mapping: typeof mapping;
34
+ declare const index$1_settings: typeof settings;
35
+ declare namespace index$1 {
36
+ 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 };
37
+ }
38
+
39
+ /** Property value types accepted by Heap SDK methods. */
40
+ type HeapPropertyValue = string | number | boolean;
41
+ /** Options accepted by heap.load() as the second argument. */
42
+ interface HeapConfig {
43
+ disableTextCapture?: boolean;
44
+ disablePageviewAutocapture?: boolean;
45
+ disableSessionReplay?: boolean;
46
+ secureCookie?: boolean;
47
+ compressCookies?: boolean;
48
+ clearEventPropertiesOnNewUser?: boolean;
49
+ ingestServer?: string;
50
+ trackingServer?: string;
51
+ eventPropertiesStorageMedium?: string;
52
+ metadataStorageMedium?: string;
53
+ [key: string]: unknown;
54
+ }
55
+ /**
56
+ * Heap SDK surface — the subset of window.heap methods this destination uses.
57
+ * Mirrors the snippet-provided command queue so tests can mock each method.
58
+ */
59
+ interface HeapSDK {
60
+ load: (appId: string, config?: HeapConfig) => void;
61
+ track: (event: string, properties?: Record<string, HeapPropertyValue>) => void;
62
+ identify: (identity: string) => void;
63
+ resetIdentity: () => void;
64
+ addUserProperties: (properties: Record<string, HeapPropertyValue>) => void;
65
+ addEventProperties: (properties: Record<string, HeapPropertyValue>) => void;
66
+ clearEventProperties: () => void;
67
+ startTracking: () => void;
68
+ stopTracking: () => void;
69
+ appid?: string;
70
+ config?: HeapConfig;
71
+ q?: unknown[][];
72
+ }
73
+ /**
74
+ * Settings (destination-level).
75
+ *
76
+ * appId is required (Heap Project Settings → App ID).
77
+ * identify/userProperties resolve every push to keep identity sticky.
78
+ */
79
+ interface Settings {
80
+ /** Heap App ID (required). Find it in Project > Settings > App ID. */
81
+ appId: string;
82
+ /** Disable Heap auto text capture. Default: true. */
83
+ disableTextCapture?: boolean;
84
+ /** Disable Heap automatic pageview tracking. Default: true (walkerOS handles pageviews). */
85
+ disablePageviewAutocapture?: boolean;
86
+ /** Disable Heap session replay. */
87
+ disableSessionReplay?: boolean;
88
+ /** SSL-only cookies. */
89
+ secureCookie?: boolean;
90
+ /** Custom server endpoint (first-party proxy). */
91
+ ingestServer?: string;
92
+ /** Destination-level identity mapping. Resolves to a string for heap.identify(). */
93
+ identify?: Mapping$1.Value;
94
+ /** Destination-level user properties mapping. Resolves to object for heap.addUserProperties(). */
95
+ userProperties?: Mapping$1.Value;
96
+ /** Additional heap.load() config passthrough. */
97
+ heapConfig?: HeapConfig;
98
+ }
99
+ /**
100
+ * Env — optional override for the Heap SDK. Production leaves this
101
+ * undefined and the destination creates the snippet's command queue on
102
+ * window.heap. Tests provide a mock via env.window.heap = { ... }.
103
+ */
104
+ interface Env extends DestinationWeb.Env {
105
+ window: {
106
+ heap: HeapSDK;
107
+ };
108
+ }
109
+ declare global {
110
+ interface Window {
111
+ heap?: HeapSDK;
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Pre-init env — window.heap is a no-op queue until init wires it.
117
+ */
118
+ declare const init: Env | undefined;
119
+ /**
120
+ * Post-init env — window.heap methods are spy-able no-ops.
121
+ * Tests clone this and replace individual methods with jest.fn() for assertions.
122
+ */
123
+ declare const push: Env;
124
+ /** Simulation tracking paths for CLI --simulate. */
125
+ declare const simulation: string[];
126
+
127
+ declare const env_init: typeof init;
128
+ declare const env_push: typeof push;
129
+ declare const env_simulation: typeof simulation;
130
+ declare namespace env {
131
+ export { env_init as init, env_push as push, env_simulation as simulation };
132
+ }
133
+
134
+ /**
135
+ * Examples may optionally carry destination-level settings overrides.
136
+ * The test runner reads `settings` from the example and merges it on top
137
+ * of the fixed appId when registering the destination.
138
+ */
139
+ type HeapStepExample = Flow.StepExample & {
140
+ settings?: Partial<Settings>;
141
+ };
142
+ /**
143
+ * Default event forwarding — every walkerOS event becomes
144
+ * heap.track(event.name, properties). With no mapping, properties is `{}`.
145
+ */
146
+ declare const defaultEventForwarding: HeapStepExample;
147
+ /**
148
+ * Rename + map event properties via rule.data.map.
149
+ * data resolves to { order_id, total, currency } → heap.track('purchase', props).
150
+ */
151
+ declare const destinationLevelInclude: HeapStepExample;
152
+ /**
153
+ * Destination-level settings.identify — heap.identify() resolves user.id,
154
+ * then the default heap.track() call fires.
155
+ */
156
+ declare const destinationLevelIdentify: HeapStepExample;
157
+ /**
158
+ * Per-event login identify — heap.identify() from data.email + user
159
+ * properties from the same rule. skip: true suppresses the track() call.
160
+ */
161
+ declare const userLoginIdentify: HeapStepExample;
162
+ /**
163
+ * User logout — heap.resetIdentity(). skip: true suppresses the track() call.
164
+ */
165
+ declare const userLogoutReset: HeapStepExample;
166
+ /**
167
+ * Event with user properties from mapping — heap.addUserProperties() fires,
168
+ * then the default heap.track() call.
169
+ */
170
+ declare const eventWithUserProperties: HeapStepExample;
171
+ /**
172
+ * Global event properties — heap.addEventProperties() sets persistent
173
+ * properties on all subsequent events. skip: true on this rule.
174
+ */
175
+ declare const globalEventProperties: HeapStepExample;
176
+ /**
177
+ * Consent revoked — on('consent') handler calls heap.stopTracking()
178
+ * when a required consent key is false.
179
+ */
180
+ declare const consentRevokeStopTracking: HeapStepExample;
181
+ /**
182
+ * Consent granted — on('consent') handler calls heap.startTracking()
183
+ * when all required consent keys are true.
184
+ */
185
+ declare const consentGrantStartTracking: HeapStepExample;
186
+
187
+ type step_HeapStepExample = HeapStepExample;
188
+ declare const step_consentGrantStartTracking: typeof consentGrantStartTracking;
189
+ declare const step_consentRevokeStopTracking: typeof consentRevokeStopTracking;
190
+ declare const step_defaultEventForwarding: typeof defaultEventForwarding;
191
+ declare const step_destinationLevelIdentify: typeof destinationLevelIdentify;
192
+ declare const step_destinationLevelInclude: typeof destinationLevelInclude;
193
+ declare const step_eventWithUserProperties: typeof eventWithUserProperties;
194
+ declare const step_globalEventProperties: typeof globalEventProperties;
195
+ declare const step_userLoginIdentify: typeof userLoginIdentify;
196
+ declare const step_userLogoutReset: typeof userLogoutReset;
197
+ declare namespace step {
198
+ export { type step_HeapStepExample as HeapStepExample, step_consentGrantStartTracking as consentGrantStartTracking, step_consentRevokeStopTracking as consentRevokeStopTracking, step_defaultEventForwarding as defaultEventForwarding, step_destinationLevelIdentify as destinationLevelIdentify, step_destinationLevelInclude as destinationLevelInclude, step_eventWithUserProperties as eventWithUserProperties, step_globalEventProperties as globalEventProperties, step_userLoginIdentify as userLoginIdentify, step_userLogoutReset as userLogoutReset };
199
+ }
200
+
201
+ declare const index_env: typeof env;
202
+ declare const index_step: typeof step;
203
+ declare namespace index {
204
+ export { index_env as env, index_step as step };
205
+ }
206
+
207
+ export { index as examples, index$1 as schemas };
package/dist/dev.d.ts ADDED
@@ -0,0 +1,207 @@
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
+ appId: z.ZodString;
8
+ disableTextCapture: z.ZodOptional<z.ZodBoolean>;
9
+ disablePageviewAutocapture: z.ZodOptional<z.ZodBoolean>;
10
+ disableSessionReplay: z.ZodOptional<z.ZodBoolean>;
11
+ secureCookie: z.ZodOptional<z.ZodBoolean>;
12
+ ingestServer: z.ZodOptional<z.ZodString>;
13
+ identify: z.ZodOptional<z.ZodUnknown>;
14
+ userProperties: z.ZodOptional<z.ZodUnknown>;
15
+ }, z.core.$strip>;
16
+ type Settings$1 = z.infer<typeof SettingsSchema>;
17
+
18
+ declare const MappingSchema: z.ZodObject<{
19
+ identify: z.ZodOptional<z.ZodUnknown>;
20
+ reset: z.ZodOptional<z.ZodUnknown>;
21
+ userProperties: z.ZodOptional<z.ZodUnknown>;
22
+ eventProperties: z.ZodOptional<z.ZodUnknown>;
23
+ clearEventProperties: z.ZodOptional<z.ZodUnknown>;
24
+ }, z.core.$strip>;
25
+ type Mapping = z.infer<typeof MappingSchema>;
26
+
27
+ declare const settings: _walkeros_core_dev.JSONSchema;
28
+ declare const mapping: _walkeros_core_dev.JSONSchema;
29
+
30
+ type index$1_Mapping = Mapping;
31
+ declare const index$1_MappingSchema: typeof MappingSchema;
32
+ declare const index$1_SettingsSchema: typeof SettingsSchema;
33
+ declare const index$1_mapping: typeof mapping;
34
+ declare const index$1_settings: typeof settings;
35
+ declare namespace index$1 {
36
+ 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 };
37
+ }
38
+
39
+ /** Property value types accepted by Heap SDK methods. */
40
+ type HeapPropertyValue = string | number | boolean;
41
+ /** Options accepted by heap.load() as the second argument. */
42
+ interface HeapConfig {
43
+ disableTextCapture?: boolean;
44
+ disablePageviewAutocapture?: boolean;
45
+ disableSessionReplay?: boolean;
46
+ secureCookie?: boolean;
47
+ compressCookies?: boolean;
48
+ clearEventPropertiesOnNewUser?: boolean;
49
+ ingestServer?: string;
50
+ trackingServer?: string;
51
+ eventPropertiesStorageMedium?: string;
52
+ metadataStorageMedium?: string;
53
+ [key: string]: unknown;
54
+ }
55
+ /**
56
+ * Heap SDK surface — the subset of window.heap methods this destination uses.
57
+ * Mirrors the snippet-provided command queue so tests can mock each method.
58
+ */
59
+ interface HeapSDK {
60
+ load: (appId: string, config?: HeapConfig) => void;
61
+ track: (event: string, properties?: Record<string, HeapPropertyValue>) => void;
62
+ identify: (identity: string) => void;
63
+ resetIdentity: () => void;
64
+ addUserProperties: (properties: Record<string, HeapPropertyValue>) => void;
65
+ addEventProperties: (properties: Record<string, HeapPropertyValue>) => void;
66
+ clearEventProperties: () => void;
67
+ startTracking: () => void;
68
+ stopTracking: () => void;
69
+ appid?: string;
70
+ config?: HeapConfig;
71
+ q?: unknown[][];
72
+ }
73
+ /**
74
+ * Settings (destination-level).
75
+ *
76
+ * appId is required (Heap Project Settings → App ID).
77
+ * identify/userProperties resolve every push to keep identity sticky.
78
+ */
79
+ interface Settings {
80
+ /** Heap App ID (required). Find it in Project > Settings > App ID. */
81
+ appId: string;
82
+ /** Disable Heap auto text capture. Default: true. */
83
+ disableTextCapture?: boolean;
84
+ /** Disable Heap automatic pageview tracking. Default: true (walkerOS handles pageviews). */
85
+ disablePageviewAutocapture?: boolean;
86
+ /** Disable Heap session replay. */
87
+ disableSessionReplay?: boolean;
88
+ /** SSL-only cookies. */
89
+ secureCookie?: boolean;
90
+ /** Custom server endpoint (first-party proxy). */
91
+ ingestServer?: string;
92
+ /** Destination-level identity mapping. Resolves to a string for heap.identify(). */
93
+ identify?: Mapping$1.Value;
94
+ /** Destination-level user properties mapping. Resolves to object for heap.addUserProperties(). */
95
+ userProperties?: Mapping$1.Value;
96
+ /** Additional heap.load() config passthrough. */
97
+ heapConfig?: HeapConfig;
98
+ }
99
+ /**
100
+ * Env — optional override for the Heap SDK. Production leaves this
101
+ * undefined and the destination creates the snippet's command queue on
102
+ * window.heap. Tests provide a mock via env.window.heap = { ... }.
103
+ */
104
+ interface Env extends DestinationWeb.Env {
105
+ window: {
106
+ heap: HeapSDK;
107
+ };
108
+ }
109
+ declare global {
110
+ interface Window {
111
+ heap?: HeapSDK;
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Pre-init env — window.heap is a no-op queue until init wires it.
117
+ */
118
+ declare const init: Env | undefined;
119
+ /**
120
+ * Post-init env — window.heap methods are spy-able no-ops.
121
+ * Tests clone this and replace individual methods with jest.fn() for assertions.
122
+ */
123
+ declare const push: Env;
124
+ /** Simulation tracking paths for CLI --simulate. */
125
+ declare const simulation: string[];
126
+
127
+ declare const env_init: typeof init;
128
+ declare const env_push: typeof push;
129
+ declare const env_simulation: typeof simulation;
130
+ declare namespace env {
131
+ export { env_init as init, env_push as push, env_simulation as simulation };
132
+ }
133
+
134
+ /**
135
+ * Examples may optionally carry destination-level settings overrides.
136
+ * The test runner reads `settings` from the example and merges it on top
137
+ * of the fixed appId when registering the destination.
138
+ */
139
+ type HeapStepExample = Flow.StepExample & {
140
+ settings?: Partial<Settings>;
141
+ };
142
+ /**
143
+ * Default event forwarding — every walkerOS event becomes
144
+ * heap.track(event.name, properties). With no mapping, properties is `{}`.
145
+ */
146
+ declare const defaultEventForwarding: HeapStepExample;
147
+ /**
148
+ * Rename + map event properties via rule.data.map.
149
+ * data resolves to { order_id, total, currency } → heap.track('purchase', props).
150
+ */
151
+ declare const destinationLevelInclude: HeapStepExample;
152
+ /**
153
+ * Destination-level settings.identify — heap.identify() resolves user.id,
154
+ * then the default heap.track() call fires.
155
+ */
156
+ declare const destinationLevelIdentify: HeapStepExample;
157
+ /**
158
+ * Per-event login identify — heap.identify() from data.email + user
159
+ * properties from the same rule. skip: true suppresses the track() call.
160
+ */
161
+ declare const userLoginIdentify: HeapStepExample;
162
+ /**
163
+ * User logout — heap.resetIdentity(). skip: true suppresses the track() call.
164
+ */
165
+ declare const userLogoutReset: HeapStepExample;
166
+ /**
167
+ * Event with user properties from mapping — heap.addUserProperties() fires,
168
+ * then the default heap.track() call.
169
+ */
170
+ declare const eventWithUserProperties: HeapStepExample;
171
+ /**
172
+ * Global event properties — heap.addEventProperties() sets persistent
173
+ * properties on all subsequent events. skip: true on this rule.
174
+ */
175
+ declare const globalEventProperties: HeapStepExample;
176
+ /**
177
+ * Consent revoked — on('consent') handler calls heap.stopTracking()
178
+ * when a required consent key is false.
179
+ */
180
+ declare const consentRevokeStopTracking: HeapStepExample;
181
+ /**
182
+ * Consent granted — on('consent') handler calls heap.startTracking()
183
+ * when all required consent keys are true.
184
+ */
185
+ declare const consentGrantStartTracking: HeapStepExample;
186
+
187
+ type step_HeapStepExample = HeapStepExample;
188
+ declare const step_consentGrantStartTracking: typeof consentGrantStartTracking;
189
+ declare const step_consentRevokeStopTracking: typeof consentRevokeStopTracking;
190
+ declare const step_defaultEventForwarding: typeof defaultEventForwarding;
191
+ declare const step_destinationLevelIdentify: typeof destinationLevelIdentify;
192
+ declare const step_destinationLevelInclude: typeof destinationLevelInclude;
193
+ declare const step_eventWithUserProperties: typeof eventWithUserProperties;
194
+ declare const step_globalEventProperties: typeof globalEventProperties;
195
+ declare const step_userLoginIdentify: typeof userLoginIdentify;
196
+ declare const step_userLogoutReset: typeof userLogoutReset;
197
+ declare namespace step {
198
+ export { type step_HeapStepExample as HeapStepExample, step_consentGrantStartTracking as consentGrantStartTracking, step_consentRevokeStopTracking as consentRevokeStopTracking, step_defaultEventForwarding as defaultEventForwarding, step_destinationLevelIdentify as destinationLevelIdentify, step_destinationLevelInclude as destinationLevelInclude, step_eventWithUserProperties as eventWithUserProperties, step_globalEventProperties as globalEventProperties, step_userLoginIdentify as userLoginIdentify, step_userLogoutReset as userLogoutReset };
199
+ }
200
+
201
+ declare const index_env: typeof env;
202
+ declare const index_step: typeof step;
203
+ declare namespace index {
204
+ export { index_env as env, index_step as step };
205
+ }
206
+
207
+ export { index as examples, index$1 as schemas };