@shware/analytics 3.6.3 → 3.7.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 +50 -3
- package/dist/_virtual/_rolldown/runtime.cjs +23 -0
- package/dist/constants/storage.cjs +12 -37
- package/dist/constants/storage.cjs.map +1 -1
- package/dist/constants/storage.d.cts +10 -8
- package/dist/constants/storage.d.cts.map +1 -0
- package/dist/constants/storage.d.mts +13 -0
- package/dist/constants/storage.d.mts.map +1 -0
- package/dist/constants/storage.mjs +12 -13
- package/dist/constants/storage.mjs.map +1 -1
- package/dist/feedback/index.cjs +14 -40
- package/dist/feedback/index.cjs.map +1 -1
- package/dist/feedback/index.d.cts +4 -4
- package/dist/feedback/index.d.cts.map +1 -0
- package/dist/feedback/index.d.mts +6 -0
- package/dist/feedback/index.d.mts.map +1 -0
- package/dist/feedback/index.mjs +12 -14
- package/dist/feedback/index.mjs.map +1 -1
- package/dist/hooks/use-app-analytics.cjs +46 -65
- package/dist/hooks/use-app-analytics.cjs.map +1 -1
- package/dist/hooks/use-app-analytics.d.cts +3 -1
- package/dist/hooks/use-app-analytics.d.cts.map +1 -0
- package/dist/hooks/use-app-analytics.d.mts +5 -0
- package/dist/hooks/use-app-analytics.d.mts.map +1 -0
- package/dist/hooks/use-app-analytics.mjs +41 -36
- package/dist/hooks/use-app-analytics.mjs.map +1 -1
- package/dist/hooks/use-click-id-persistence.cjs +43 -65
- package/dist/hooks/use-click-id-persistence.cjs.map +1 -1
- package/dist/hooks/use-click-id-persistence.d.cts +3 -1
- package/dist/hooks/use-click-id-persistence.d.cts.map +1 -0
- package/dist/hooks/use-click-id-persistence.d.mts +5 -0
- package/dist/hooks/use-click-id-persistence.d.mts.map +1 -0
- package/dist/hooks/use-click-id-persistence.mjs +40 -38
- package/dist/hooks/use-click-id-persistence.mjs.map +1 -1
- package/dist/hooks/use-outbound-click-analytics.cjs +33 -55
- package/dist/hooks/use-outbound-click-analytics.cjs.map +1 -1
- package/dist/hooks/use-outbound-click-analytics.d.cts +3 -1
- package/dist/hooks/use-outbound-click-analytics.d.cts.map +1 -0
- package/dist/hooks/{use-outbound-click-analytics.d.ts → use-outbound-click-analytics.d.mts} +3 -1
- package/dist/hooks/use-outbound-click-analytics.d.mts.map +1 -0
- package/dist/hooks/use-outbound-click-analytics.mjs +31 -29
- package/dist/hooks/use-outbound-click-analytics.mjs.map +1 -1
- package/dist/hooks/use-previous.cjs +11 -35
- package/dist/hooks/use-previous.cjs.map +1 -1
- package/dist/hooks/use-previous.d.cts +3 -1
- package/dist/hooks/use-previous.d.cts.map +1 -0
- package/dist/hooks/use-previous.d.mts +5 -0
- package/dist/hooks/use-previous.d.mts.map +1 -0
- package/dist/hooks/use-previous.mjs +9 -9
- package/dist/hooks/use-previous.mjs.map +1 -1
- package/dist/hooks/use-track-impression.cjs +24 -51
- package/dist/hooks/use-track-impression.cjs.map +1 -1
- package/dist/hooks/use-track-impression.d.cts +5 -6
- package/dist/hooks/use-track-impression.d.cts.map +1 -0
- package/dist/hooks/use-track-impression.d.mts +6 -0
- package/dist/hooks/use-track-impression.d.mts.map +1 -0
- package/dist/hooks/use-track-impression.mjs +22 -25
- package/dist/hooks/use-track-impression.mjs.map +1 -1
- package/dist/hooks/use-web-analytics.cjs +98 -109
- package/dist/hooks/use-web-analytics.cjs.map +1 -1
- package/dist/hooks/use-web-analytics.d.cts +3 -1
- package/dist/hooks/use-web-analytics.d.cts.map +1 -0
- package/dist/hooks/{use-web-analytics.d.ts → use-web-analytics.d.mts} +3 -1
- package/dist/hooks/use-web-analytics.d.mts.map +1 -0
- package/dist/hooks/use-web-analytics.mjs +93 -80
- package/dist/hooks/use-web-analytics.mjs.map +1 -1
- package/dist/index.cjs +28 -74
- package/dist/index.d.cts +11 -13
- package/dist/index.d.mts +11 -0
- package/dist/index.mjs +3 -34
- package/dist/link/index.cjs +31 -58
- package/dist/link/index.cjs.map +1 -1
- package/dist/link/index.d.cts +7 -7
- package/dist/link/index.d.cts.map +1 -0
- package/dist/link/index.d.mts +11 -0
- package/dist/link/index.d.mts.map +1 -0
- package/dist/link/index.mjs +28 -31
- package/dist/link/index.mjs.map +1 -1
- package/dist/native/fbsdk.cjs +12 -34
- package/dist/native/fbsdk.cjs.map +1 -1
- package/dist/native/fbsdk.d.cts +4 -4
- package/dist/native/fbsdk.d.cts.map +1 -0
- package/dist/native/{fbsdk.d.ts → fbsdk.d.mts} +4 -4
- package/dist/native/fbsdk.d.mts.map +1 -0
- package/dist/native/fbsdk.mjs +10 -8
- package/dist/native/fbsdk.mjs.map +1 -1
- package/dist/native/fingerprint.cjs +41 -64
- package/dist/native/fingerprint.cjs.map +1 -1
- package/dist/native/fingerprint.d.cts +22 -20
- package/dist/native/fingerprint.d.cts.map +1 -0
- package/dist/native/fingerprint.d.mts +28 -0
- package/dist/native/fingerprint.d.mts.map +1 -0
- package/dist/native/fingerprint.mjs +36 -42
- package/dist/native/fingerprint.mjs.map +1 -1
- package/dist/native/firebase.cjs +12 -39
- package/dist/native/firebase.cjs.map +1 -1
- package/dist/native/firebase.d.cts +4 -4
- package/dist/native/firebase.d.cts.map +1 -0
- package/dist/native/firebase.d.mts +6 -0
- package/dist/native/firebase.d.mts.map +1 -0
- package/dist/native/firebase.mjs +10 -13
- package/dist/native/firebase.mjs.map +1 -1
- package/dist/native/index.cjs +11 -45
- package/dist/native/index.d.cts +4 -7
- package/dist/native/index.d.mts +4 -0
- package/dist/native/index.mjs +2 -12
- package/dist/native/posthog.cjs +5 -30
- package/dist/native/posthog.cjs.map +1 -1
- package/dist/native/posthog.d.cts +3 -1
- package/dist/native/posthog.d.cts.map +1 -0
- package/dist/native/posthog.d.mts +5 -0
- package/dist/native/posthog.d.mts.map +1 -0
- package/dist/native/posthog.mjs +5 -6
- package/dist/native/posthog.mjs.map +1 -1
- package/dist/native/setup.cjs +91 -129
- package/dist/native/setup.cjs.map +1 -1
- package/dist/native/setup.d.cts +6 -6
- package/dist/native/setup.d.cts.map +1 -0
- package/dist/native/{setup.d.ts → setup.d.mts} +6 -6
- package/dist/native/setup.d.mts.map +1 -0
- package/dist/native/setup.mjs +83 -105
- package/dist/native/setup.mjs.map +1 -1
- package/dist/next/index.cjs +72 -145
- package/dist/next/index.cjs.map +1 -1
- package/dist/next/index.d.cts +18 -19
- package/dist/next/index.d.cts.map +1 -0
- package/dist/next/index.d.mts +21 -0
- package/dist/next/index.d.mts.map +1 -0
- package/dist/next/index.mjs +65 -107
- package/dist/next/index.mjs.map +1 -1
- package/dist/react-router/index.cjs +80 -144
- package/dist/react-router/index.cjs.map +1 -1
- package/dist/react-router/index.d.cts +18 -19
- package/dist/react-router/index.d.cts.map +1 -0
- package/dist/react-router/index.d.mts +21 -0
- package/dist/react-router/index.d.mts.map +1 -0
- package/dist/react-router/index.mjs +75 -115
- package/dist/react-router/index.mjs.map +1 -1
- package/dist/schema/index.cjs +188 -233
- package/dist/schema/index.cjs.map +1 -1
- package/dist/schema/index.d.cts +236 -235
- package/dist/schema/index.d.cts.map +1 -0
- package/dist/schema/index.d.mts +325 -0
- package/dist/schema/index.d.mts.map +1 -0
- package/dist/schema/index.mjs +178 -222
- package/dist/schema/index.mjs.map +1 -1
- package/dist/server/index.cjs +9 -40
- package/dist/server/index.d.cts +5 -9
- package/dist/server/index.d.mts +5 -0
- package/dist/server/index.mjs +5 -12
- package/dist/server/linkedin-conversions-api.cjs +66 -95
- package/dist/server/linkedin-conversions-api.cjs.map +1 -1
- package/dist/server/linkedin-conversions-api.d.cts +45 -45
- package/dist/server/linkedin-conversions-api.d.cts.map +1 -0
- package/dist/server/linkedin-conversions-api.d.mts +56 -0
- package/dist/server/linkedin-conversions-api.d.mts.map +1 -0
- package/dist/server/linkedin-conversions-api.mjs +63 -68
- package/dist/server/linkedin-conversions-api.mjs.map +1 -1
- package/dist/server/meta-conversions-api.cjs +157 -265
- package/dist/server/meta-conversions-api.cjs.map +1 -1
- package/dist/server/meta-conversions-api.d.cts +8 -9
- package/dist/server/meta-conversions-api.d.cts.map +1 -0
- package/dist/server/meta-conversions-api.d.mts +10 -0
- package/dist/server/meta-conversions-api.d.mts.map +1 -0
- package/dist/server/meta-conversions-api.mjs +151 -243
- package/dist/server/meta-conversions-api.mjs.map +1 -1
- package/dist/server/openai-conversions-api.cjs +69 -96
- package/dist/server/openai-conversions-api.cjs.map +1 -1
- package/dist/server/openai-conversions-api.d.cts +34 -34
- package/dist/server/openai-conversions-api.d.cts.map +1 -0
- package/dist/server/openai-conversions-api.d.mts +47 -0
- package/dist/server/openai-conversions-api.d.mts.map +1 -0
- package/dist/server/openai-conversions-api.mjs +65 -68
- package/dist/server/openai-conversions-api.mjs.map +1 -1
- package/dist/server/reddit-conversions-api.cjs +64 -91
- package/dist/server/reddit-conversions-api.cjs.map +1 -1
- package/dist/server/reddit-conversions-api.d.cts +61 -61
- package/dist/server/reddit-conversions-api.d.cts.map +1 -0
- package/dist/server/reddit-conversions-api.d.mts +75 -0
- package/dist/server/reddit-conversions-api.d.mts.map +1 -0
- package/dist/server/reddit-conversions-api.mjs +59 -62
- package/dist/server/reddit-conversions-api.mjs.map +1 -1
- package/dist/setup/index.cjs +34 -63
- package/dist/setup/index.cjs.map +1 -1
- package/dist/setup/index.d.cts +30 -30
- package/dist/setup/index.d.cts.map +1 -0
- package/dist/setup/index.d.mts +41 -0
- package/dist/setup/index.d.mts.map +1 -0
- package/dist/setup/index.mjs +31 -36
- package/dist/setup/index.mjs.map +1 -1
- package/dist/setup/session.cjs +70 -106
- package/dist/setup/session.cjs.map +1 -1
- package/dist/setup/session.d.cts +26 -24
- package/dist/setup/session.d.cts.map +1 -0
- package/dist/setup/session.d.mts +31 -0
- package/dist/setup/session.d.mts.map +1 -0
- package/dist/setup/session.mjs +68 -80
- package/dist/setup/session.mjs.map +1 -1
- package/dist/tanstack/index.cjs +86 -156
- package/dist/tanstack/index.cjs.map +1 -1
- package/dist/tanstack/index.d.cts +19 -20
- package/dist/tanstack/index.d.cts.map +1 -0
- package/dist/tanstack/index.d.mts +22 -0
- package/dist/tanstack/index.d.mts.map +1 -0
- package/dist/tanstack/index.mjs +81 -127
- package/dist/tanstack/index.mjs.map +1 -1
- package/dist/third-parties/google-analytics.cjs +18 -43
- package/dist/third-parties/google-analytics.cjs.map +1 -1
- package/dist/third-parties/google-analytics.d.cts +7 -7
- package/dist/third-parties/google-analytics.d.cts.map +1 -0
- package/dist/third-parties/google-analytics.d.mts +12 -0
- package/dist/third-parties/google-analytics.d.mts.map +1 -0
- package/dist/third-parties/google-analytics.mjs +16 -17
- package/dist/third-parties/google-analytics.mjs.map +1 -1
- package/dist/third-parties/ignored-events.cjs +35 -68
- package/dist/third-parties/ignored-events.cjs.map +1 -1
- package/dist/third-parties/ignored-events.d.cts +3 -1
- package/dist/third-parties/ignored-events.d.cts.map +1 -0
- package/dist/third-parties/ignored-events.d.mts +5 -0
- package/dist/third-parties/ignored-events.d.mts.map +1 -0
- package/dist/third-parties/ignored-events.mjs +34 -43
- package/dist/third-parties/ignored-events.mjs.map +1 -1
- package/dist/third-parties/index.cjs +16 -53
- package/dist/third-parties/index.d.cts +6 -12
- package/dist/third-parties/index.d.mts +6 -0
- package/dist/third-parties/index.mjs +1 -14
- package/dist/third-parties/linkedin-insight-tag.cjs +28 -50
- package/dist/third-parties/linkedin-insight-tag.cjs.map +1 -1
- package/dist/third-parties/linkedin-insight-tag.d.cts +8 -9
- package/dist/third-parties/linkedin-insight-tag.d.cts.map +1 -0
- package/dist/third-parties/{linkedin-insight-tag.d.ts → linkedin-insight-tag.d.mts} +8 -9
- package/dist/third-parties/linkedin-insight-tag.d.mts.map +1 -0
- package/dist/third-parties/linkedin-insight-tag.mjs +25 -23
- package/dist/third-parties/linkedin-insight-tag.mjs.map +1 -1
- package/dist/third-parties/meta-pixel.cjs +45 -66
- package/dist/third-parties/meta-pixel.cjs.map +1 -1
- package/dist/third-parties/meta-pixel.d.cts +7 -8
- package/dist/third-parties/meta-pixel.d.cts.map +1 -0
- package/dist/third-parties/meta-pixel.d.mts +12 -0
- package/dist/third-parties/meta-pixel.d.mts.map +1 -0
- package/dist/third-parties/meta-pixel.mjs +41 -38
- package/dist/third-parties/meta-pixel.mjs.map +1 -1
- package/dist/third-parties/openai-pixel.cjs +63 -68
- package/dist/third-parties/openai-pixel.cjs.map +1 -1
- package/dist/third-parties/openai-pixel.d.cts +7 -8
- package/dist/third-parties/openai-pixel.d.cts.map +1 -0
- package/dist/third-parties/{openai-pixel.d.ts → openai-pixel.d.mts} +7 -8
- package/dist/third-parties/openai-pixel.d.mts.map +1 -0
- package/dist/third-parties/openai-pixel.mjs +60 -41
- package/dist/third-parties/openai-pixel.mjs.map +1 -1
- package/dist/third-parties/posthog.cjs +23 -43
- package/dist/third-parties/posthog.cjs.map +1 -1
- package/dist/third-parties/posthog.d.cts +5 -5
- package/dist/third-parties/posthog.d.cts.map +1 -0
- package/dist/third-parties/{posthog.d.ts → posthog.d.mts} +5 -5
- package/dist/third-parties/posthog.d.mts.map +1 -0
- package/dist/third-parties/posthog.mjs +20 -16
- package/dist/third-parties/posthog.mjs.map +1 -1
- package/dist/third-parties/reddit-pixel.cjs +37 -58
- package/dist/third-parties/reddit-pixel.cjs.map +1 -1
- package/dist/third-parties/reddit-pixel.d.cts +7 -8
- package/dist/third-parties/reddit-pixel.d.cts.map +1 -0
- package/dist/third-parties/reddit-pixel.d.mts +12 -0
- package/dist/third-parties/reddit-pixel.d.mts.map +1 -0
- package/dist/third-parties/reddit-pixel.mjs +33 -30
- package/dist/third-parties/reddit-pixel.mjs.map +1 -1
- package/dist/track/fbq.cjs +179 -135
- package/dist/track/fbq.cjs.map +1 -1
- package/dist/track/fbq.d.cts +234 -233
- package/dist/track/fbq.d.cts.map +1 -0
- package/dist/track/fbq.d.mts +280 -0
- package/dist/track/fbq.d.mts.map +1 -0
- package/dist/track/fbq.mjs +176 -108
- package/dist/track/fbq.mjs.map +1 -1
- package/dist/track/gtag.cjs +63 -86
- package/dist/track/gtag.cjs.map +1 -1
- package/dist/track/gtag.d.cts +685 -685
- package/dist/track/gtag.d.cts.map +1 -0
- package/dist/track/gtag.d.mts +762 -0
- package/dist/track/gtag.d.mts.map +1 -0
- package/dist/track/gtag.mjs +62 -61
- package/dist/track/gtag.mjs.map +1 -1
- package/dist/track/index.cjs +111 -136
- package/dist/track/index.cjs.map +1 -1
- package/dist/track/index.d.cts +8 -8
- package/dist/track/index.d.cts.map +1 -0
- package/dist/track/{index.d.ts → index.d.mts} +8 -8
- package/dist/track/index.d.mts.map +1 -0
- package/dist/track/index.mjs +105 -106
- package/dist/track/index.mjs.map +1 -1
- package/dist/track/lintrk.cjs +0 -19
- package/dist/track/lintrk.d.cts +12 -10
- package/dist/track/lintrk.d.cts.map +1 -0
- package/dist/track/lintrk.d.mts +14 -0
- package/dist/track/lintrk.d.mts.map +1 -0
- package/dist/track/lintrk.mjs +1 -1
- package/dist/track/oaiq.cjs +153 -146
- package/dist/track/oaiq.cjs.map +1 -1
- package/dist/track/oaiq.d.cts +65 -64
- package/dist/track/oaiq.d.cts.map +1 -0
- package/dist/track/oaiq.d.mts +112 -0
- package/dist/track/oaiq.d.mts.map +1 -0
- package/dist/track/oaiq.mjs +149 -118
- package/dist/track/oaiq.mjs.map +1 -1
- package/dist/track/rdt.cjs +66 -110
- package/dist/track/rdt.cjs.map +1 -1
- package/dist/track/rdt.d.cts +74 -73
- package/dist/track/rdt.d.cts.map +1 -0
- package/dist/track/rdt.d.mts +97 -0
- package/dist/track/rdt.d.mts.map +1 -0
- package/dist/track/rdt.mjs +63 -83
- package/dist/track/rdt.mjs.map +1 -1
- package/dist/track/types.cjs +0 -19
- package/dist/track/types.d.cts +140 -111
- package/dist/track/types.d.cts.map +1 -0
- package/dist/track/types.d.mts +171 -0
- package/dist/track/types.d.mts.map +1 -0
- package/dist/track/types.mjs +1 -1
- package/dist/utils/field.cjs +8 -32
- package/dist/utils/field.cjs.map +1 -1
- package/dist/utils/field.d.cts +3 -1
- package/dist/utils/field.d.cts.map +1 -0
- package/dist/utils/{field.d.ts → field.d.mts} +3 -1
- package/dist/utils/field.d.mts.map +1 -0
- package/dist/utils/field.mjs +7 -7
- package/dist/utils/field.mjs.map +1 -1
- package/dist/utils/stripe.cjs +25 -49
- package/dist/utils/stripe.cjs.map +1 -1
- package/dist/utils/stripe.d.cts +3 -1
- package/dist/utils/stripe.d.cts.map +1 -0
- package/dist/utils/{stripe.d.ts → stripe.d.mts} +3 -1
- package/dist/utils/stripe.d.mts.map +1 -0
- package/dist/utils/stripe.mjs +23 -23
- package/dist/utils/stripe.mjs.map +1 -1
- package/dist/visitor/index.cjs +54 -86
- package/dist/visitor/index.cjs.map +1 -1
- package/dist/visitor/index.d.cts +4 -5
- package/dist/visitor/index.d.cts.map +1 -0
- package/dist/visitor/{index.d.ts → index.d.mts} +4 -5
- package/dist/visitor/index.d.mts.map +1 -0
- package/dist/visitor/index.mjs +51 -59
- package/dist/visitor/index.mjs.map +1 -1
- package/dist/visitor/types.cjs +0 -19
- package/dist/visitor/types.d.cts +15 -14
- package/dist/visitor/types.d.cts.map +1 -0
- package/dist/visitor/types.d.mts +21 -0
- package/dist/visitor/types.d.mts.map +1 -0
- package/dist/visitor/types.mjs +1 -1
- package/dist/web/index.cjs +108 -148
- package/dist/web/index.cjs.map +1 -1
- package/dist/web/index.d.cts +5 -6
- package/dist/web/index.d.cts.map +1 -0
- package/dist/web/index.d.mts +9 -0
- package/dist/web/index.d.mts.map +1 -0
- package/dist/web/index.mjs +101 -109
- package/dist/web/index.mjs.map +1 -1
- package/package.json +103 -50
- package/dist/constants/storage.d.ts +0 -11
- package/dist/feedback/index.d.ts +0 -6
- package/dist/hooks/use-app-analytics.d.ts +0 -3
- package/dist/hooks/use-click-id-persistence.d.ts +0 -3
- package/dist/hooks/use-previous.d.ts +0 -3
- package/dist/hooks/use-track-impression.d.ts +0 -7
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.mjs.map +0 -1
- package/dist/link/index.d.ts +0 -11
- package/dist/native/fingerprint.d.ts +0 -26
- package/dist/native/firebase.d.ts +0 -6
- package/dist/native/index.cjs.map +0 -1
- package/dist/native/index.d.ts +0 -7
- package/dist/native/index.mjs.map +0 -1
- package/dist/native/posthog.d.ts +0 -3
- package/dist/next/index.d.ts +0 -22
- package/dist/react-router/index.d.ts +0 -22
- package/dist/schema/index.d.ts +0 -324
- package/dist/server/index.cjs.map +0 -1
- package/dist/server/index.d.ts +0 -9
- package/dist/server/index.mjs.map +0 -1
- package/dist/server/linkedin-conversions-api.d.ts +0 -56
- package/dist/server/meta-conversions-api.d.ts +0 -11
- package/dist/server/openai-conversions-api.d.ts +0 -47
- package/dist/server/reddit-conversions-api.d.ts +0 -75
- package/dist/setup/index.d.ts +0 -41
- package/dist/setup/session.d.ts +0 -29
- package/dist/tanstack/index.d.ts +0 -23
- package/dist/third-parties/google-analytics.d.ts +0 -12
- package/dist/third-parties/ignored-events.d.ts +0 -3
- package/dist/third-parties/index.cjs.map +0 -1
- package/dist/third-parties/index.d.ts +0 -12
- package/dist/third-parties/index.mjs.map +0 -1
- package/dist/third-parties/meta-pixel.d.ts +0 -13
- package/dist/third-parties/reddit-pixel.d.ts +0 -13
- package/dist/track/fbq.d.ts +0 -279
- package/dist/track/gtag.d.ts +0 -762
- package/dist/track/lintrk.cjs.map +0 -1
- package/dist/track/lintrk.d.ts +0 -12
- package/dist/track/lintrk.mjs.map +0 -1
- package/dist/track/oaiq.d.ts +0 -111
- package/dist/track/rdt.d.ts +0 -96
- package/dist/track/types.cjs.map +0 -1
- package/dist/track/types.d.ts +0 -142
- package/dist/track/types.mjs.map +0 -1
- package/dist/visitor/types.cjs.map +0 -1
- package/dist/visitor/types.d.ts +0 -20
- package/dist/visitor/types.mjs.map +0 -1
- package/dist/web/index.d.ts +0 -10
package/dist/track/rdt.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/rdt.ts"],"sourcesContent":["import type { Item } from './gtag';\nimport type { EventName, TrackName, TrackProperties } from './types';\n\n/** https://business.reddithelp.com/s/article/about-event-metadata */\nexport type Product = {\n /**\n * (Required) Product ID: Either the SKU or GTIN, which represents the variant ID, not the\n * parent ID. If there are no variants, pass the assigned ID for that item.\n */\n id: string;\n\n /** (Optional) Product Category: The group the product belongs to. */\n name?: string;\n\n /** (Optional) Product Name: The title of the product. */\n category?: string;\n};\n\n/**\n * https://business.reddithelp.com/s/article/supported-conversion-events#supported-conversion-events\n * https://business.reddithelp.com/s/article/about-event-metadata\n * https://business.reddithelp.com/s/article/map-a-catalog-to-a-signal-source\n */\nexport type StandardEvents = {\n PageVisit: {\n conversionId?: string;\n products?: Product[];\n };\n ViewContent: {\n conversionId?: string;\n products?: Product[];\n };\n Search: {\n conversionId?: string;\n products?: Product[];\n };\n AddToCart: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n AddToWishlist: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Purchase: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Lead: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n SignUp: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n};\n\nexport type PixelId = `a2_${string}`;\n\nexport type MatchKeys = {\n email?: string;\n phoneNumber?: string;\n externalId?: string;\n idfa?: string;\n aaid?: string;\n};\n\nexport type CustomEventParams<T extends string = string> = {\n customEventName: T;\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n};\n\nexport interface RDT {\n rdt(event: 'init', pixelId: PixelId, matchKeys?: MatchKeys): void;\n\n rdt<T extends keyof StandardEvents>(event: 'track', type: T, params?: StandardEvents[T]): void;\n\n rdt(event: 'track', type: 'Custom', params: CustomEventParams): void;\n}\n\ntype Mapped<F extends keyof StandardEvents> = [F, StandardEvents[F]];\ntype Missed<F extends string> = ['Custom', CustomEventParams<F>];\n\nexport function mapItems(items?: Item[]): undefined | Product[] {\n if (!items || items.length === 0) return undefined;\n return items.map((item) => ({\n id: item.item_id,\n name: item.item_name,\n category: item.item_category,\n }));\n}\n\nexport function mapRDTEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n): Mapped<keyof StandardEvents> | Missed<TrackName<T>> {\n // standard events\n if (name === 'page_view') {\n return ['PageVisit', { conversionId: eventId }];\n } else if (name === 'view_item') {\n return ['ViewContent', { conversionId: eventId }];\n } else if (name === 'search') {\n return ['Search', { conversionId: eventId }];\n } else if (name === 'add_to_cart') {\n const p = properties as TrackProperties<'add_to_cart'> | undefined;\n return [\n 'AddToCart',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'add_to_wishlist') {\n const p = properties as TrackProperties<'add_to_wishlist'> | undefined;\n return [\n 'AddToWishlist',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'purchase') {\n const p = properties as TrackProperties<'purchase'> | undefined;\n return [\n 'Purchase',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'generate_lead') {\n const p = properties as TrackProperties<'generate_lead'> | undefined;\n return [\n 'Lead',\n { conversionId: eventId, value: p?.value, currency: p?.currency.toUpperCase() },\n ];\n } else if (name === 'sign_up' || name === 'login') {\n return ['SignUp', { conversionId: eventId }];\n } else {\n // custom event\n return [\n 'Custom',\n {\n customEventName: name,\n conversionId: eventId,\n value:\n properties && 'value' in properties && typeof properties.value === 'number'\n ? properties.value\n : undefined,\n currency:\n properties && 'currency' in properties && typeof properties.currency === 'string'\n ? properties.currency.toUpperCase()\n : undefined,\n },\n ];\n }\n}\n\nexport type ServerStandardEvent =\n | 'PAGE_VISIT'\n | 'VIEW_CONTENT'\n | 'SEARCH'\n | 'ADD_TO_CART'\n | 'ADD_TO_WISHLIST'\n | 'PURCHASE'\n | 'LEAD'\n | 'SIGN_UP';\n\nexport function mapServerStandardEvent(name: keyof StandardEvents): ServerStandardEvent {\n if (name === 'PageVisit') return 'PAGE_VISIT';\n if (name === 'ViewContent') return 'VIEW_CONTENT';\n if (name === 'Search') return 'SEARCH';\n if (name === 'AddToCart') return 'ADD_TO_CART';\n if (name === 'AddToWishlist') return 'ADD_TO_WISHLIST';\n if (name === 'Purchase') return 'PURCHASE';\n if (name === 'Lead') return 'LEAD';\n if (name === 'SignUp') return 'SIGN_UP';\n throw new Error(`Unsupported standard event: ${name}`);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"rdt.cjs","names":[],"sources":["../../src/track/rdt.ts"],"sourcesContent":["import type { Item } from './gtag';\nimport type { EventName, TrackName, TrackProperties } from './types';\n\n/** https://business.reddithelp.com/s/article/about-event-metadata */\nexport type Product = {\n /**\n * (Required) Product ID: Either the SKU or GTIN, which represents the variant ID, not the\n * parent ID. If there are no variants, pass the assigned ID for that item.\n */\n id: string;\n\n /** (Optional) Product Category: The group the product belongs to. */\n name?: string;\n\n /** (Optional) Product Name: The title of the product. */\n category?: string;\n};\n\n/**\n * https://business.reddithelp.com/s/article/supported-conversion-events#supported-conversion-events\n * https://business.reddithelp.com/s/article/about-event-metadata\n * https://business.reddithelp.com/s/article/map-a-catalog-to-a-signal-source\n */\nexport type StandardEvents = {\n PageVisit: {\n conversionId?: string;\n products?: Product[];\n };\n ViewContent: {\n conversionId?: string;\n products?: Product[];\n };\n Search: {\n conversionId?: string;\n products?: Product[];\n };\n AddToCart: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n AddToWishlist: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Purchase: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Lead: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n SignUp: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n};\n\nexport type PixelId = `a2_${string}`;\n\nexport type MatchKeys = {\n email?: string;\n phoneNumber?: string;\n externalId?: string;\n idfa?: string;\n aaid?: string;\n};\n\nexport type CustomEventParams<T extends string = string> = {\n customEventName: T;\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n};\n\nexport interface RDT {\n rdt(event: 'init', pixelId: PixelId, matchKeys?: MatchKeys): void;\n\n rdt<T extends keyof StandardEvents>(event: 'track', type: T, params?: StandardEvents[T]): void;\n\n rdt(event: 'track', type: 'Custom', params: CustomEventParams): void;\n}\n\ntype Mapped<F extends keyof StandardEvents> = [F, StandardEvents[F]];\ntype Missed<F extends string> = ['Custom', CustomEventParams<F>];\n\nexport function mapItems(items?: Item[]): undefined | Product[] {\n if (!items || items.length === 0) return undefined;\n return items.map((item) => ({\n id: item.item_id,\n name: item.item_name,\n category: item.item_category,\n }));\n}\n\nexport function mapRDTEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n): Mapped<keyof StandardEvents> | Missed<TrackName<T>> {\n // standard events\n if (name === 'page_view') {\n return ['PageVisit', { conversionId: eventId }];\n } else if (name === 'view_item') {\n return ['ViewContent', { conversionId: eventId }];\n } else if (name === 'search') {\n return ['Search', { conversionId: eventId }];\n } else if (name === 'add_to_cart') {\n const p = properties as TrackProperties<'add_to_cart'> | undefined;\n return [\n 'AddToCart',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'add_to_wishlist') {\n const p = properties as TrackProperties<'add_to_wishlist'> | undefined;\n return [\n 'AddToWishlist',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'purchase') {\n const p = properties as TrackProperties<'purchase'> | undefined;\n return [\n 'Purchase',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'generate_lead') {\n const p = properties as TrackProperties<'generate_lead'> | undefined;\n return [\n 'Lead',\n { conversionId: eventId, value: p?.value, currency: p?.currency.toUpperCase() },\n ];\n } else if (name === 'sign_up' || name === 'login') {\n return ['SignUp', { conversionId: eventId }];\n } else {\n // custom event\n return [\n 'Custom',\n {\n customEventName: name,\n conversionId: eventId,\n value:\n properties && 'value' in properties && typeof properties.value === 'number'\n ? properties.value\n : undefined,\n currency:\n properties && 'currency' in properties && typeof properties.currency === 'string'\n ? properties.currency.toUpperCase()\n : undefined,\n },\n ];\n }\n}\n\nexport type ServerStandardEvent =\n | 'PAGE_VISIT'\n | 'VIEW_CONTENT'\n | 'SEARCH'\n | 'ADD_TO_CART'\n | 'ADD_TO_WISHLIST'\n | 'PURCHASE'\n | 'LEAD'\n | 'SIGN_UP';\n\nexport function mapServerStandardEvent(name: keyof StandardEvents): ServerStandardEvent {\n if (name === 'PageVisit') return 'PAGE_VISIT';\n if (name === 'ViewContent') return 'VIEW_CONTENT';\n if (name === 'Search') return 'SEARCH';\n if (name === 'AddToCart') return 'ADD_TO_CART';\n if (name === 'AddToWishlist') return 'ADD_TO_WISHLIST';\n if (name === 'Purchase') return 'PURCHASE';\n if (name === 'Lead') return 'LEAD';\n if (name === 'SignUp') return 'SIGN_UP';\n throw new Error(`Unsupported standard event: ${String(name)}`);\n}\n"],"mappings":";;AAqGA,SAAgB,SAAS,OAAuC;CAC9D,IAAI,CAAC,SAAS,MAAM,WAAW,GAAG,OAAO,KAAA;CACzC,OAAO,MAAM,KAAK,UAAU;EAC1B,IAAI,KAAK;EACT,MAAM,KAAK;EACX,UAAU,KAAK;CACjB,EAAE;AACJ;AAEA,SAAgB,YACd,MACA,YACA,SACqD;CAErD,IAAI,SAAS,aACX,OAAO,CAAC,aAAa,EAAE,cAAc,QAAQ,CAAC;MACzC,IAAI,SAAS,aAClB,OAAO,CAAC,eAAe,EAAE,cAAc,QAAQ,CAAC;MAC3C,IAAI,SAAS,UAClB,OAAO,CAAC,UAAU,EAAE,cAAc,QAAQ,CAAC;MACtC,IAAI,SAAS,eAAe;EACjC,MAAM,IAAI;EACV,OAAO,CACL,aACA;GACE,cAAc;GACd,OAAO,GAAG;GACV,UAAU,GAAG,SAAS,YAAY;GAClC,WAAW,GAAG,OAAO,QAAQ,KAAK,MAAM,OAAO,EAAE,YAAY,IAAI,CAAC;GAClE,UAAU,SAAS,GAAG,KAAK;EAC7B,CACF;CACF,OAAO,IAAI,SAAS,mBAAmB;EACrC,MAAM,IAAI;EACV,OAAO,CACL,iBACA;GACE,cAAc;GACd,OAAO,GAAG;GACV,UAAU,GAAG,SAAS,YAAY;GAClC,WAAW,GAAG,OAAO,QAAQ,KAAK,MAAM,OAAO,EAAE,YAAY,IAAI,CAAC;GAClE,UAAU,SAAS,GAAG,KAAK;EAC7B,CACF;CACF,OAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,IAAI;EACV,OAAO,CACL,YACA;GACE,cAAc;GACd,OAAO,GAAG;GACV,UAAU,GAAG,SAAS,YAAY;GAClC,WAAW,GAAG,OAAO,QAAQ,KAAK,MAAM,OAAO,EAAE,YAAY,IAAI,CAAC;GAClE,UAAU,SAAS,GAAG,KAAK;EAC7B,CACF;CACF,OAAO,IAAI,SAAS,iBAAiB;EACnC,MAAM,IAAI;EACV,OAAO,CACL,QACA;GAAE,cAAc;GAAS,OAAO,GAAG;GAAO,UAAU,GAAG,SAAS,YAAY;EAAE,CAChF;CACF,OAAO,IAAI,SAAS,aAAa,SAAS,SACxC,OAAO,CAAC,UAAU,EAAE,cAAc,QAAQ,CAAC;MAG3C,OAAO,CACL,UACA;EACE,iBAAiB;EACjB,cAAc;EACd,OACE,cAAc,WAAW,cAAc,OAAO,WAAW,UAAU,WAC/D,WAAW,QACX,KAAA;EACN,UACE,cAAc,cAAc,cAAc,OAAO,WAAW,aAAa,WACrE,WAAW,SAAS,YAAY,IAChC,KAAA;CACR,CACF;AAEJ;AAYA,SAAgB,uBAAuB,MAAiD;CACtF,IAAI,SAAS,aAAa,OAAO;CACjC,IAAI,SAAS,eAAe,OAAO;CACnC,IAAI,SAAS,UAAU,OAAO;CAC9B,IAAI,SAAS,aAAa,OAAO;CACjC,IAAI,SAAS,iBAAiB,OAAO;CACrC,IAAI,SAAS,YAAY,OAAO;CAChC,IAAI,SAAS,QAAQ,OAAO;CAC5B,IAAI,SAAS,UAAU,OAAO;CAC9B,MAAM,IAAI,MAAM,+BAA+B,OAAO,IAAI,GAAG;AAC/D"}
|
package/dist/track/rdt.d.cts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Item } from
|
|
2
|
-
import { EventName, TrackName, TrackProperties } from
|
|
3
|
-
|
|
1
|
+
import { Item } from "./gtag.cjs";
|
|
2
|
+
import { EventName, TrackName, TrackProperties } from "./types.cjs";
|
|
3
|
+
//#region src/track/rdt.d.ts
|
|
4
4
|
/** https://business.reddithelp.com/s/article/about-event-metadata */
|
|
5
5
|
type Product = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
6
|
+
/**
|
|
7
|
+
* (Required) Product ID: Either the SKU or GTIN, which represents the variant ID, not the
|
|
8
|
+
* parent ID. If there are no variants, pass the assigned ID for that item.
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/** (Optional) Product Category: The group the product belongs to. */
|
|
12
|
+
name?: string;
|
|
13
|
+
/** (Optional) Product Name: The title of the product. */
|
|
14
|
+
category?: string;
|
|
15
15
|
};
|
|
16
16
|
/**
|
|
17
17
|
* https://business.reddithelp.com/s/article/supported-conversion-events#supported-conversion-events
|
|
@@ -19,72 +19,72 @@ type Product = {
|
|
|
19
19
|
* https://business.reddithelp.com/s/article/map-a-catalog-to-a-signal-source
|
|
20
20
|
*/
|
|
21
21
|
type StandardEvents = {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
value?: number;
|
|
50
|
-
currency?: string;
|
|
51
|
-
itemCount?: number;
|
|
52
|
-
conversionId?: string;
|
|
53
|
-
products?: Product[];
|
|
54
|
-
};
|
|
55
|
-
Lead: {
|
|
56
|
-
value?: number;
|
|
57
|
-
currency?: string;
|
|
58
|
-
conversionId?: string;
|
|
59
|
-
products?: Product[];
|
|
60
|
-
};
|
|
61
|
-
SignUp: {
|
|
62
|
-
value?: number;
|
|
63
|
-
currency?: string;
|
|
64
|
-
conversionId?: string;
|
|
65
|
-
products?: Product[];
|
|
66
|
-
};
|
|
67
|
-
};
|
|
68
|
-
type PixelId = `a2_${string}`;
|
|
69
|
-
type MatchKeys = {
|
|
70
|
-
email?: string;
|
|
71
|
-
phoneNumber?: string;
|
|
72
|
-
externalId?: string;
|
|
73
|
-
idfa?: string;
|
|
74
|
-
aaid?: string;
|
|
75
|
-
};
|
|
76
|
-
type CustomEventParams<T extends string = string> = {
|
|
77
|
-
customEventName: T;
|
|
22
|
+
PageVisit: {
|
|
23
|
+
conversionId?: string;
|
|
24
|
+
products?: Product[];
|
|
25
|
+
};
|
|
26
|
+
ViewContent: {
|
|
27
|
+
conversionId?: string;
|
|
28
|
+
products?: Product[];
|
|
29
|
+
};
|
|
30
|
+
Search: {
|
|
31
|
+
conversionId?: string;
|
|
32
|
+
products?: Product[];
|
|
33
|
+
};
|
|
34
|
+
AddToCart: {
|
|
35
|
+
value?: number;
|
|
36
|
+
currency?: string;
|
|
37
|
+
itemCount?: number;
|
|
38
|
+
conversionId?: string;
|
|
39
|
+
products?: Product[];
|
|
40
|
+
};
|
|
41
|
+
AddToWishlist: {
|
|
42
|
+
value?: number;
|
|
43
|
+
currency?: string;
|
|
44
|
+
itemCount?: number;
|
|
45
|
+
conversionId?: string;
|
|
46
|
+
products?: Product[];
|
|
47
|
+
};
|
|
48
|
+
Purchase: {
|
|
78
49
|
value?: number;
|
|
79
50
|
currency?: string;
|
|
80
51
|
itemCount?: number;
|
|
81
52
|
conversionId?: string;
|
|
82
53
|
products?: Product[];
|
|
54
|
+
};
|
|
55
|
+
Lead: {
|
|
56
|
+
value?: number;
|
|
57
|
+
currency?: string;
|
|
58
|
+
conversionId?: string;
|
|
59
|
+
products?: Product[];
|
|
60
|
+
};
|
|
61
|
+
SignUp: {
|
|
62
|
+
value?: number;
|
|
63
|
+
currency?: string;
|
|
64
|
+
conversionId?: string;
|
|
65
|
+
products?: Product[];
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
type PixelId = `a2_${string}`;
|
|
69
|
+
type MatchKeys = {
|
|
70
|
+
email?: string;
|
|
71
|
+
phoneNumber?: string;
|
|
72
|
+
externalId?: string;
|
|
73
|
+
idfa?: string;
|
|
74
|
+
aaid?: string;
|
|
75
|
+
};
|
|
76
|
+
type CustomEventParams<T extends string = string> = {
|
|
77
|
+
customEventName: T;
|
|
78
|
+
value?: number;
|
|
79
|
+
currency?: string;
|
|
80
|
+
itemCount?: number;
|
|
81
|
+
conversionId?: string;
|
|
82
|
+
products?: Product[];
|
|
83
83
|
};
|
|
84
84
|
interface RDT {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
rdt(event: 'init', pixelId: PixelId, matchKeys?: MatchKeys): void;
|
|
86
|
+
rdt<T extends keyof StandardEvents>(event: 'track', type: T, params?: StandardEvents[T]): void;
|
|
87
|
+
rdt(event: 'track', type: 'Custom', params: CustomEventParams): void;
|
|
88
88
|
}
|
|
89
89
|
type Mapped<F extends keyof StandardEvents> = [F, StandardEvents[F]];
|
|
90
90
|
type Missed<F extends string> = ['Custom', CustomEventParams<F>];
|
|
@@ -92,5 +92,6 @@ declare function mapItems(items?: Item[]): undefined | Product[];
|
|
|
92
92
|
declare function mapRDTEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, eventId?: string): Mapped<keyof StandardEvents> | Missed<TrackName<T>>;
|
|
93
93
|
type ServerStandardEvent = 'PAGE_VISIT' | 'VIEW_CONTENT' | 'SEARCH' | 'ADD_TO_CART' | 'ADD_TO_WISHLIST' | 'PURCHASE' | 'LEAD' | 'SIGN_UP';
|
|
94
94
|
declare function mapServerStandardEvent(name: keyof StandardEvents): ServerStandardEvent;
|
|
95
|
-
|
|
96
|
-
export {
|
|
95
|
+
//#endregion
|
|
96
|
+
export { CustomEventParams, MatchKeys, PixelId, Product, RDT, ServerStandardEvent, StandardEvents, mapItems, mapRDTEvent, mapServerStandardEvent };
|
|
97
|
+
//# sourceMappingURL=rdt.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdt.d.cts","names":[],"sources":["../../src/track/rdt.ts"],"mappings":";;;;KAIY;;;;;EAKV;;EAGA;;EAGA;;;;;;;KAQU;EACV;IACE;IACA,WAAW;;EAEb;IACE;IACA,WAAW;;EAEb;IACE;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA,WAAW;;;KAIH;KAEA;EACV;EACA;EACA;EACA;EACA;;KAGU,kBAAkB;EAC5B,iBAAiB;EACjB;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,IAAI,eAAe,SAAS,SAAS,YAAY;EAEjD,IAAI,gBAAgB,gBAAgB,gBAAgB,MAAM,GAAG,SAAS,eAAe;EAErF,IAAI,gBAAgB,gBAAgB,QAAQ;;KAGzC,OAAO,gBAAgB,mBAAmB,GAAG,eAAe;KAC5D,OAAO,+BAA+B,kBAAkB;iBAE7C,SAAS,QAAQ,qBAAqB;iBAStC,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B,mBACC,aAAa,kBAAkB,OAAO,UAAU;KAwEvC;iBAUI,uBAAuB,YAAY,iBAAiB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Item } from "./gtag.mjs";
|
|
2
|
+
import { EventName, TrackName, TrackProperties } from "./types.mjs";
|
|
3
|
+
//#region src/track/rdt.d.ts
|
|
4
|
+
/** https://business.reddithelp.com/s/article/about-event-metadata */
|
|
5
|
+
type Product = {
|
|
6
|
+
/**
|
|
7
|
+
* (Required) Product ID: Either the SKU or GTIN, which represents the variant ID, not the
|
|
8
|
+
* parent ID. If there are no variants, pass the assigned ID for that item.
|
|
9
|
+
*/
|
|
10
|
+
id: string;
|
|
11
|
+
/** (Optional) Product Category: The group the product belongs to. */
|
|
12
|
+
name?: string;
|
|
13
|
+
/** (Optional) Product Name: The title of the product. */
|
|
14
|
+
category?: string;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* https://business.reddithelp.com/s/article/supported-conversion-events#supported-conversion-events
|
|
18
|
+
* https://business.reddithelp.com/s/article/about-event-metadata
|
|
19
|
+
* https://business.reddithelp.com/s/article/map-a-catalog-to-a-signal-source
|
|
20
|
+
*/
|
|
21
|
+
type StandardEvents = {
|
|
22
|
+
PageVisit: {
|
|
23
|
+
conversionId?: string;
|
|
24
|
+
products?: Product[];
|
|
25
|
+
};
|
|
26
|
+
ViewContent: {
|
|
27
|
+
conversionId?: string;
|
|
28
|
+
products?: Product[];
|
|
29
|
+
};
|
|
30
|
+
Search: {
|
|
31
|
+
conversionId?: string;
|
|
32
|
+
products?: Product[];
|
|
33
|
+
};
|
|
34
|
+
AddToCart: {
|
|
35
|
+
value?: number;
|
|
36
|
+
currency?: string;
|
|
37
|
+
itemCount?: number;
|
|
38
|
+
conversionId?: string;
|
|
39
|
+
products?: Product[];
|
|
40
|
+
};
|
|
41
|
+
AddToWishlist: {
|
|
42
|
+
value?: number;
|
|
43
|
+
currency?: string;
|
|
44
|
+
itemCount?: number;
|
|
45
|
+
conversionId?: string;
|
|
46
|
+
products?: Product[];
|
|
47
|
+
};
|
|
48
|
+
Purchase: {
|
|
49
|
+
value?: number;
|
|
50
|
+
currency?: string;
|
|
51
|
+
itemCount?: number;
|
|
52
|
+
conversionId?: string;
|
|
53
|
+
products?: Product[];
|
|
54
|
+
};
|
|
55
|
+
Lead: {
|
|
56
|
+
value?: number;
|
|
57
|
+
currency?: string;
|
|
58
|
+
conversionId?: string;
|
|
59
|
+
products?: Product[];
|
|
60
|
+
};
|
|
61
|
+
SignUp: {
|
|
62
|
+
value?: number;
|
|
63
|
+
currency?: string;
|
|
64
|
+
conversionId?: string;
|
|
65
|
+
products?: Product[];
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
type PixelId = `a2_${string}`;
|
|
69
|
+
type MatchKeys = {
|
|
70
|
+
email?: string;
|
|
71
|
+
phoneNumber?: string;
|
|
72
|
+
externalId?: string;
|
|
73
|
+
idfa?: string;
|
|
74
|
+
aaid?: string;
|
|
75
|
+
};
|
|
76
|
+
type CustomEventParams<T extends string = string> = {
|
|
77
|
+
customEventName: T;
|
|
78
|
+
value?: number;
|
|
79
|
+
currency?: string;
|
|
80
|
+
itemCount?: number;
|
|
81
|
+
conversionId?: string;
|
|
82
|
+
products?: Product[];
|
|
83
|
+
};
|
|
84
|
+
interface RDT {
|
|
85
|
+
rdt(event: 'init', pixelId: PixelId, matchKeys?: MatchKeys): void;
|
|
86
|
+
rdt<T extends keyof StandardEvents>(event: 'track', type: T, params?: StandardEvents[T]): void;
|
|
87
|
+
rdt(event: 'track', type: 'Custom', params: CustomEventParams): void;
|
|
88
|
+
}
|
|
89
|
+
type Mapped<F extends keyof StandardEvents> = [F, StandardEvents[F]];
|
|
90
|
+
type Missed<F extends string> = ['Custom', CustomEventParams<F>];
|
|
91
|
+
declare function mapItems(items?: Item[]): undefined | Product[];
|
|
92
|
+
declare function mapRDTEvent<T extends EventName>(name: TrackName<T>, properties?: TrackProperties<T>, eventId?: string): Mapped<keyof StandardEvents> | Missed<TrackName<T>>;
|
|
93
|
+
type ServerStandardEvent = 'PAGE_VISIT' | 'VIEW_CONTENT' | 'SEARCH' | 'ADD_TO_CART' | 'ADD_TO_WISHLIST' | 'PURCHASE' | 'LEAD' | 'SIGN_UP';
|
|
94
|
+
declare function mapServerStandardEvent(name: keyof StandardEvents): ServerStandardEvent;
|
|
95
|
+
//#endregion
|
|
96
|
+
export { CustomEventParams, MatchKeys, PixelId, Product, RDT, ServerStandardEvent, StandardEvents, mapItems, mapRDTEvent, mapServerStandardEvent };
|
|
97
|
+
//# sourceMappingURL=rdt.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rdt.d.mts","names":[],"sources":["../../src/track/rdt.ts"],"mappings":";;;;KAIY;;;;;EAKV;;EAGA;;EAGA;;;;;;;KAQU;EACV;IACE;IACA,WAAW;;EAEb;IACE;IACA,WAAW;;EAEb;IACE;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA,WAAW;;EAEb;IACE;IACA;IACA;IACA,WAAW;;;KAIH;KAEA;EACV;EACA;EACA;EACA;EACA;;KAGU,kBAAkB;EAC5B,iBAAiB;EACjB;EACA;EACA;EACA;EACA,WAAW;;UAGI;EACf,IAAI,eAAe,SAAS,SAAS,YAAY;EAEjD,IAAI,gBAAgB,gBAAgB,gBAAgB,MAAM,GAAG,SAAS,eAAe;EAErF,IAAI,gBAAgB,gBAAgB,QAAQ;;KAGzC,OAAO,gBAAgB,mBAAmB,GAAG,eAAe;KAC5D,OAAO,+BAA+B,kBAAkB;iBAE7C,SAAS,QAAQ,qBAAqB;iBAStC,YAAY,UAAU,WACpC,MAAM,UAAU,IAChB,aAAa,gBAAgB,IAC7B,mBACC,aAAa,kBAAkB,OAAO,UAAU;KAwEvC;iBAUI,uBAAuB,YAAY,iBAAiB"}
|
package/dist/track/rdt.mjs
CHANGED
|
@@ -1,90 +1,70 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/track/rdt.ts
|
|
2
2
|
function mapItems(items) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
if (!items || items.length === 0) return void 0;
|
|
4
|
+
return items.map((item) => ({
|
|
5
|
+
id: item.item_id,
|
|
6
|
+
name: item.item_name,
|
|
7
|
+
category: item.item_category
|
|
8
|
+
}));
|
|
9
9
|
}
|
|
10
10
|
function mapRDTEvent(name, properties, eventId) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
const p = properties;
|
|
56
|
-
return [
|
|
57
|
-
"Lead",
|
|
58
|
-
{ conversionId: eventId, value: p == null ? void 0 : p.value, currency: p == null ? void 0 : p.currency.toUpperCase() }
|
|
59
|
-
];
|
|
60
|
-
} else if (name === "sign_up" || name === "login") {
|
|
61
|
-
return ["SignUp", { conversionId: eventId }];
|
|
62
|
-
} else {
|
|
63
|
-
return [
|
|
64
|
-
"Custom",
|
|
65
|
-
{
|
|
66
|
-
customEventName: name,
|
|
67
|
-
conversionId: eventId,
|
|
68
|
-
value: properties && "value" in properties && typeof properties.value === "number" ? properties.value : void 0,
|
|
69
|
-
currency: properties && "currency" in properties && typeof properties.currency === "string" ? properties.currency.toUpperCase() : void 0
|
|
70
|
-
}
|
|
71
|
-
];
|
|
72
|
-
}
|
|
11
|
+
if (name === "page_view") return ["PageVisit", { conversionId: eventId }];
|
|
12
|
+
else if (name === "view_item") return ["ViewContent", { conversionId: eventId }];
|
|
13
|
+
else if (name === "search") return ["Search", { conversionId: eventId }];
|
|
14
|
+
else if (name === "add_to_cart") {
|
|
15
|
+
const p = properties;
|
|
16
|
+
return ["AddToCart", {
|
|
17
|
+
conversionId: eventId,
|
|
18
|
+
value: p?.value,
|
|
19
|
+
currency: p?.currency.toUpperCase(),
|
|
20
|
+
itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),
|
|
21
|
+
products: mapItems(p?.items)
|
|
22
|
+
}];
|
|
23
|
+
} else if (name === "add_to_wishlist") {
|
|
24
|
+
const p = properties;
|
|
25
|
+
return ["AddToWishlist", {
|
|
26
|
+
conversionId: eventId,
|
|
27
|
+
value: p?.value,
|
|
28
|
+
currency: p?.currency.toUpperCase(),
|
|
29
|
+
itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),
|
|
30
|
+
products: mapItems(p?.items)
|
|
31
|
+
}];
|
|
32
|
+
} else if (name === "purchase") {
|
|
33
|
+
const p = properties;
|
|
34
|
+
return ["Purchase", {
|
|
35
|
+
conversionId: eventId,
|
|
36
|
+
value: p?.value,
|
|
37
|
+
currency: p?.currency.toUpperCase(),
|
|
38
|
+
itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),
|
|
39
|
+
products: mapItems(p?.items)
|
|
40
|
+
}];
|
|
41
|
+
} else if (name === "generate_lead") {
|
|
42
|
+
const p = properties;
|
|
43
|
+
return ["Lead", {
|
|
44
|
+
conversionId: eventId,
|
|
45
|
+
value: p?.value,
|
|
46
|
+
currency: p?.currency.toUpperCase()
|
|
47
|
+
}];
|
|
48
|
+
} else if (name === "sign_up" || name === "login") return ["SignUp", { conversionId: eventId }];
|
|
49
|
+
else return ["Custom", {
|
|
50
|
+
customEventName: name,
|
|
51
|
+
conversionId: eventId,
|
|
52
|
+
value: properties && "value" in properties && typeof properties.value === "number" ? properties.value : void 0,
|
|
53
|
+
currency: properties && "currency" in properties && typeof properties.currency === "string" ? properties.currency.toUpperCase() : void 0
|
|
54
|
+
}];
|
|
73
55
|
}
|
|
74
56
|
function mapServerStandardEvent(name) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
if (name === "PageVisit") return "PAGE_VISIT";
|
|
58
|
+
if (name === "ViewContent") return "VIEW_CONTENT";
|
|
59
|
+
if (name === "Search") return "SEARCH";
|
|
60
|
+
if (name === "AddToCart") return "ADD_TO_CART";
|
|
61
|
+
if (name === "AddToWishlist") return "ADD_TO_WISHLIST";
|
|
62
|
+
if (name === "Purchase") return "PURCHASE";
|
|
63
|
+
if (name === "Lead") return "LEAD";
|
|
64
|
+
if (name === "SignUp") return "SIGN_UP";
|
|
65
|
+
throw new Error(`Unsupported standard event: ${String(name)}`);
|
|
84
66
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
mapServerStandardEvent
|
|
89
|
-
};
|
|
67
|
+
//#endregion
|
|
68
|
+
export { mapItems, mapRDTEvent, mapServerStandardEvent };
|
|
69
|
+
|
|
90
70
|
//# sourceMappingURL=rdt.mjs.map
|
package/dist/track/rdt.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/track/rdt.ts"],"sourcesContent":["import type { Item } from './gtag';\nimport type { EventName, TrackName, TrackProperties } from './types';\n\n/** https://business.reddithelp.com/s/article/about-event-metadata */\nexport type Product = {\n /**\n * (Required) Product ID: Either the SKU or GTIN, which represents the variant ID, not the\n * parent ID. If there are no variants, pass the assigned ID for that item.\n */\n id: string;\n\n /** (Optional) Product Category: The group the product belongs to. */\n name?: string;\n\n /** (Optional) Product Name: The title of the product. */\n category?: string;\n};\n\n/**\n * https://business.reddithelp.com/s/article/supported-conversion-events#supported-conversion-events\n * https://business.reddithelp.com/s/article/about-event-metadata\n * https://business.reddithelp.com/s/article/map-a-catalog-to-a-signal-source\n */\nexport type StandardEvents = {\n PageVisit: {\n conversionId?: string;\n products?: Product[];\n };\n ViewContent: {\n conversionId?: string;\n products?: Product[];\n };\n Search: {\n conversionId?: string;\n products?: Product[];\n };\n AddToCart: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n AddToWishlist: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Purchase: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Lead: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n SignUp: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n};\n\nexport type PixelId = `a2_${string}`;\n\nexport type MatchKeys = {\n email?: string;\n phoneNumber?: string;\n externalId?: string;\n idfa?: string;\n aaid?: string;\n};\n\nexport type CustomEventParams<T extends string = string> = {\n customEventName: T;\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n};\n\nexport interface RDT {\n rdt(event: 'init', pixelId: PixelId, matchKeys?: MatchKeys): void;\n\n rdt<T extends keyof StandardEvents>(event: 'track', type: T, params?: StandardEvents[T]): void;\n\n rdt(event: 'track', type: 'Custom', params: CustomEventParams): void;\n}\n\ntype Mapped<F extends keyof StandardEvents> = [F, StandardEvents[F]];\ntype Missed<F extends string> = ['Custom', CustomEventParams<F>];\n\nexport function mapItems(items?: Item[]): undefined | Product[] {\n if (!items || items.length === 0) return undefined;\n return items.map((item) => ({\n id: item.item_id,\n name: item.item_name,\n category: item.item_category,\n }));\n}\n\nexport function mapRDTEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n): Mapped<keyof StandardEvents> | Missed<TrackName<T>> {\n // standard events\n if (name === 'page_view') {\n return ['PageVisit', { conversionId: eventId }];\n } else if (name === 'view_item') {\n return ['ViewContent', { conversionId: eventId }];\n } else if (name === 'search') {\n return ['Search', { conversionId: eventId }];\n } else if (name === 'add_to_cart') {\n const p = properties as TrackProperties<'add_to_cart'> | undefined;\n return [\n 'AddToCart',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'add_to_wishlist') {\n const p = properties as TrackProperties<'add_to_wishlist'> | undefined;\n return [\n 'AddToWishlist',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'purchase') {\n const p = properties as TrackProperties<'purchase'> | undefined;\n return [\n 'Purchase',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'generate_lead') {\n const p = properties as TrackProperties<'generate_lead'> | undefined;\n return [\n 'Lead',\n { conversionId: eventId, value: p?.value, currency: p?.currency.toUpperCase() },\n ];\n } else if (name === 'sign_up' || name === 'login') {\n return ['SignUp', { conversionId: eventId }];\n } else {\n // custom event\n return [\n 'Custom',\n {\n customEventName: name,\n conversionId: eventId,\n value:\n properties && 'value' in properties && typeof properties.value === 'number'\n ? properties.value\n : undefined,\n currency:\n properties && 'currency' in properties && typeof properties.currency === 'string'\n ? properties.currency.toUpperCase()\n : undefined,\n },\n ];\n }\n}\n\nexport type ServerStandardEvent =\n | 'PAGE_VISIT'\n | 'VIEW_CONTENT'\n | 'SEARCH'\n | 'ADD_TO_CART'\n | 'ADD_TO_WISHLIST'\n | 'PURCHASE'\n | 'LEAD'\n | 'SIGN_UP';\n\nexport function mapServerStandardEvent(name: keyof StandardEvents): ServerStandardEvent {\n if (name === 'PageVisit') return 'PAGE_VISIT';\n if (name === 'ViewContent') return 'VIEW_CONTENT';\n if (name === 'Search') return 'SEARCH';\n if (name === 'AddToCart') return 'ADD_TO_CART';\n if (name === 'AddToWishlist') return 'ADD_TO_WISHLIST';\n if (name === 'Purchase') return 'PURCHASE';\n if (name === 'Lead') return 'LEAD';\n if (name === 'SignUp') return 'SIGN_UP';\n throw new Error(`Unsupported standard event: ${name}`);\n}\n"],"mappings":";
|
|
1
|
+
{"version":3,"file":"rdt.mjs","names":[],"sources":["../../src/track/rdt.ts"],"sourcesContent":["import type { Item } from './gtag';\nimport type { EventName, TrackName, TrackProperties } from './types';\n\n/** https://business.reddithelp.com/s/article/about-event-metadata */\nexport type Product = {\n /**\n * (Required) Product ID: Either the SKU or GTIN, which represents the variant ID, not the\n * parent ID. If there are no variants, pass the assigned ID for that item.\n */\n id: string;\n\n /** (Optional) Product Category: The group the product belongs to. */\n name?: string;\n\n /** (Optional) Product Name: The title of the product. */\n category?: string;\n};\n\n/**\n * https://business.reddithelp.com/s/article/supported-conversion-events#supported-conversion-events\n * https://business.reddithelp.com/s/article/about-event-metadata\n * https://business.reddithelp.com/s/article/map-a-catalog-to-a-signal-source\n */\nexport type StandardEvents = {\n PageVisit: {\n conversionId?: string;\n products?: Product[];\n };\n ViewContent: {\n conversionId?: string;\n products?: Product[];\n };\n Search: {\n conversionId?: string;\n products?: Product[];\n };\n AddToCart: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n AddToWishlist: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Purchase: {\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n };\n Lead: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n SignUp: {\n value?: number;\n currency?: string;\n conversionId?: string;\n products?: Product[];\n };\n};\n\nexport type PixelId = `a2_${string}`;\n\nexport type MatchKeys = {\n email?: string;\n phoneNumber?: string;\n externalId?: string;\n idfa?: string;\n aaid?: string;\n};\n\nexport type CustomEventParams<T extends string = string> = {\n customEventName: T;\n value?: number;\n currency?: string;\n itemCount?: number;\n conversionId?: string;\n products?: Product[];\n};\n\nexport interface RDT {\n rdt(event: 'init', pixelId: PixelId, matchKeys?: MatchKeys): void;\n\n rdt<T extends keyof StandardEvents>(event: 'track', type: T, params?: StandardEvents[T]): void;\n\n rdt(event: 'track', type: 'Custom', params: CustomEventParams): void;\n}\n\ntype Mapped<F extends keyof StandardEvents> = [F, StandardEvents[F]];\ntype Missed<F extends string> = ['Custom', CustomEventParams<F>];\n\nexport function mapItems(items?: Item[]): undefined | Product[] {\n if (!items || items.length === 0) return undefined;\n return items.map((item) => ({\n id: item.item_id,\n name: item.item_name,\n category: item.item_category,\n }));\n}\n\nexport function mapRDTEvent<T extends EventName>(\n name: TrackName<T>,\n properties?: TrackProperties<T>,\n eventId?: string\n): Mapped<keyof StandardEvents> | Missed<TrackName<T>> {\n // standard events\n if (name === 'page_view') {\n return ['PageVisit', { conversionId: eventId }];\n } else if (name === 'view_item') {\n return ['ViewContent', { conversionId: eventId }];\n } else if (name === 'search') {\n return ['Search', { conversionId: eventId }];\n } else if (name === 'add_to_cart') {\n const p = properties as TrackProperties<'add_to_cart'> | undefined;\n return [\n 'AddToCart',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'add_to_wishlist') {\n const p = properties as TrackProperties<'add_to_wishlist'> | undefined;\n return [\n 'AddToWishlist',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'purchase') {\n const p = properties as TrackProperties<'purchase'> | undefined;\n return [\n 'Purchase',\n {\n conversionId: eventId,\n value: p?.value,\n currency: p?.currency.toUpperCase(),\n itemCount: p?.items?.reduce((acc, i) => acc + (i.quantity ?? 1), 0),\n products: mapItems(p?.items),\n },\n ];\n } else if (name === 'generate_lead') {\n const p = properties as TrackProperties<'generate_lead'> | undefined;\n return [\n 'Lead',\n { conversionId: eventId, value: p?.value, currency: p?.currency.toUpperCase() },\n ];\n } else if (name === 'sign_up' || name === 'login') {\n return ['SignUp', { conversionId: eventId }];\n } else {\n // custom event\n return [\n 'Custom',\n {\n customEventName: name,\n conversionId: eventId,\n value:\n properties && 'value' in properties && typeof properties.value === 'number'\n ? properties.value\n : undefined,\n currency:\n properties && 'currency' in properties && typeof properties.currency === 'string'\n ? properties.currency.toUpperCase()\n : undefined,\n },\n ];\n }\n}\n\nexport type ServerStandardEvent =\n | 'PAGE_VISIT'\n | 'VIEW_CONTENT'\n | 'SEARCH'\n | 'ADD_TO_CART'\n | 'ADD_TO_WISHLIST'\n | 'PURCHASE'\n | 'LEAD'\n | 'SIGN_UP';\n\nexport function mapServerStandardEvent(name: keyof StandardEvents): ServerStandardEvent {\n if (name === 'PageVisit') return 'PAGE_VISIT';\n if (name === 'ViewContent') return 'VIEW_CONTENT';\n if (name === 'Search') return 'SEARCH';\n if (name === 'AddToCart') return 'ADD_TO_CART';\n if (name === 'AddToWishlist') return 'ADD_TO_WISHLIST';\n if (name === 'Purchase') return 'PURCHASE';\n if (name === 'Lead') return 'LEAD';\n if (name === 'SignUp') return 'SIGN_UP';\n throw new Error(`Unsupported standard event: ${String(name)}`);\n}\n"],"mappings":";AAqGA,SAAgB,SAAS,OAAuC;CAC9D,IAAI,CAAC,SAAS,MAAM,WAAW,GAAG,OAAO,KAAA;CACzC,OAAO,MAAM,KAAK,UAAU;EAC1B,IAAI,KAAK;EACT,MAAM,KAAK;EACX,UAAU,KAAK;CACjB,EAAE;AACJ;AAEA,SAAgB,YACd,MACA,YACA,SACqD;CAErD,IAAI,SAAS,aACX,OAAO,CAAC,aAAa,EAAE,cAAc,QAAQ,CAAC;MACzC,IAAI,SAAS,aAClB,OAAO,CAAC,eAAe,EAAE,cAAc,QAAQ,CAAC;MAC3C,IAAI,SAAS,UAClB,OAAO,CAAC,UAAU,EAAE,cAAc,QAAQ,CAAC;MACtC,IAAI,SAAS,eAAe;EACjC,MAAM,IAAI;EACV,OAAO,CACL,aACA;GACE,cAAc;GACd,OAAO,GAAG;GACV,UAAU,GAAG,SAAS,YAAY;GAClC,WAAW,GAAG,OAAO,QAAQ,KAAK,MAAM,OAAO,EAAE,YAAY,IAAI,CAAC;GAClE,UAAU,SAAS,GAAG,KAAK;EAC7B,CACF;CACF,OAAO,IAAI,SAAS,mBAAmB;EACrC,MAAM,IAAI;EACV,OAAO,CACL,iBACA;GACE,cAAc;GACd,OAAO,GAAG;GACV,UAAU,GAAG,SAAS,YAAY;GAClC,WAAW,GAAG,OAAO,QAAQ,KAAK,MAAM,OAAO,EAAE,YAAY,IAAI,CAAC;GAClE,UAAU,SAAS,GAAG,KAAK;EAC7B,CACF;CACF,OAAO,IAAI,SAAS,YAAY;EAC9B,MAAM,IAAI;EACV,OAAO,CACL,YACA;GACE,cAAc;GACd,OAAO,GAAG;GACV,UAAU,GAAG,SAAS,YAAY;GAClC,WAAW,GAAG,OAAO,QAAQ,KAAK,MAAM,OAAO,EAAE,YAAY,IAAI,CAAC;GAClE,UAAU,SAAS,GAAG,KAAK;EAC7B,CACF;CACF,OAAO,IAAI,SAAS,iBAAiB;EACnC,MAAM,IAAI;EACV,OAAO,CACL,QACA;GAAE,cAAc;GAAS,OAAO,GAAG;GAAO,UAAU,GAAG,SAAS,YAAY;EAAE,CAChF;CACF,OAAO,IAAI,SAAS,aAAa,SAAS,SACxC,OAAO,CAAC,UAAU,EAAE,cAAc,QAAQ,CAAC;MAG3C,OAAO,CACL,UACA;EACE,iBAAiB;EACjB,cAAc;EACd,OACE,cAAc,WAAW,cAAc,OAAO,WAAW,UAAU,WAC/D,WAAW,QACX,KAAA;EACN,UACE,cAAc,cAAc,cAAc,OAAO,WAAW,aAAa,WACrE,WAAW,SAAS,YAAY,IAChC,KAAA;CACR,CACF;AAEJ;AAYA,SAAgB,uBAAuB,MAAiD;CACtF,IAAI,SAAS,aAAa,OAAO;CACjC,IAAI,SAAS,eAAe,OAAO;CACnC,IAAI,SAAS,UAAU,OAAO;CAC9B,IAAI,SAAS,aAAa,OAAO;CACjC,IAAI,SAAS,iBAAiB,OAAO;CACrC,IAAI,SAAS,YAAY,OAAO;CAChC,IAAI,SAAS,QAAQ,OAAO;CAC5B,IAAI,SAAS,UAAU,OAAO;CAC9B,MAAM,IAAI,MAAM,+BAA+B,OAAO,IAAI,GAAG;AAC/D"}
|
package/dist/track/types.cjs
CHANGED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
-
|
|
16
|
-
// src/track/types.ts
|
|
17
|
-
var types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
|
19
|
-
//# sourceMappingURL=types.cjs.map
|