@ht-sdks/events-sdk-js-browser 1.5.3 → 1.5.5
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/dist/cjs/browser/browser-umd.js.map +1 -1
- package/dist/cjs/browser/index.js +64 -68
- package/dist/cjs/browser/index.js.map +1 -1
- package/dist/cjs/browser/standalone-analytics.js +6 -7
- package/dist/cjs/browser/standalone-analytics.js.map +1 -1
- package/dist/cjs/browser/standalone.js.map +1 -1
- package/dist/cjs/core/analytics/index.js +4 -5
- package/dist/cjs/core/analytics/index.js.map +1 -1
- package/dist/cjs/core/arguments-resolver/index.js +5 -5
- package/dist/cjs/core/arguments-resolver/index.js.map +1 -1
- package/dist/cjs/core/auto-track.js +2 -3
- package/dist/cjs/core/auto-track.js.map +1 -1
- package/dist/cjs/core/buffer/index.js +2 -2
- package/dist/cjs/core/buffer/index.js.map +1 -1
- package/dist/cjs/core/connection/index.js +2 -3
- package/dist/cjs/core/connection/index.js.map +1 -1
- package/dist/cjs/core/context/index.js.map +1 -1
- package/dist/cjs/core/environment/index.js +2 -3
- package/dist/cjs/core/environment/index.js.map +1 -1
- package/dist/cjs/core/events/index.js.map +1 -1
- package/dist/cjs/core/http-cookies/index.js.map +1 -1
- package/dist/cjs/core/page/add-page-context.js.map +1 -1
- package/dist/cjs/core/page/get-page-context.js +2 -2
- package/dist/cjs/core/page/get-page-context.js.map +1 -1
- package/dist/cjs/core/query-string/gracefulDecodeURIComponent.js +1 -2
- package/dist/cjs/core/query-string/gracefulDecodeURIComponent.js.map +1 -1
- package/dist/cjs/core/query-string/index.js +1 -2
- package/dist/cjs/core/query-string/index.js.map +1 -1
- package/dist/cjs/core/query-string/pickPrefix.js +1 -2
- package/dist/cjs/core/query-string/pickPrefix.js.map +1 -1
- package/dist/cjs/core/queue/event-queue.js.map +1 -1
- package/dist/cjs/core/session/index.js +2 -2
- package/dist/cjs/core/session/index.js.map +1 -1
- package/dist/cjs/core/stats/index.js.map +1 -1
- package/dist/cjs/core/stats/remote-metrics.js.map +1 -1
- package/dist/cjs/core/storage/cookieStorage.js.map +1 -1
- package/dist/cjs/core/storage/index.js +2 -3
- package/dist/cjs/core/storage/index.js.map +1 -1
- package/dist/cjs/core/storage/localStorage.js.map +1 -1
- package/dist/cjs/core/storage/memoryStorage.js.map +1 -1
- package/dist/cjs/core/storage/settings.js +2 -3
- package/dist/cjs/core/storage/settings.js.map +1 -1
- package/dist/cjs/core/storage/universalStorage.js.map +1 -1
- package/dist/cjs/core/user/index.js.map +1 -1
- package/dist/cjs/core/user/migrate.js +3 -3
- package/dist/cjs/core/user/migrate.js.map +1 -1
- package/dist/cjs/core/user/tld.js +1 -2
- package/dist/cjs/core/user/tld.js.map +1 -1
- package/dist/cjs/core/user/vendor/crypto-es/lib/aes.js.map +1 -1
- package/dist/cjs/core/user/vendor/crypto-es/lib/cipher-core.js +1 -2
- package/dist/cjs/core/user/vendor/crypto-es/lib/cipher-core.js.map +1 -1
- package/dist/cjs/core/user/vendor/crypto-es/lib/core.js.map +1 -1
- package/dist/cjs/core/user/vendor/crypto-es/lib/enc-base64.js.map +1 -1
- package/dist/cjs/core/user/vendor/crypto-es/lib/evpkdf.js.map +1 -1
- package/dist/cjs/core/user/vendor/crypto-es/lib/md5.js.map +1 -1
- package/dist/cjs/generated/version.js +1 -1
- package/dist/cjs/lib/bind-all.js +1 -1
- package/dist/cjs/lib/bind-all.js.map +1 -1
- package/dist/cjs/lib/browser-polyfill.js +1 -2
- package/dist/cjs/lib/browser-polyfill.js.map +1 -1
- package/dist/cjs/lib/client-hints/index.js +1 -2
- package/dist/cjs/lib/client-hints/index.js.map +1 -1
- package/dist/cjs/lib/embedded-write-key.js +1 -2
- package/dist/cjs/lib/embedded-write-key.js.map +1 -1
- package/dist/cjs/lib/get-global.js.map +1 -1
- package/dist/cjs/lib/get-process-env.js +1 -2
- package/dist/cjs/lib/get-process-env.js.map +1 -1
- package/dist/cjs/lib/global-analytics-helper.js +3 -4
- package/dist/cjs/lib/global-analytics-helper.js.map +1 -1
- package/dist/cjs/lib/group-by.js +1 -2
- package/dist/cjs/lib/group-by.js.map +1 -1
- package/dist/cjs/lib/is-plan-event-enabled.js +1 -2
- package/dist/cjs/lib/is-plan-event-enabled.js.map +1 -1
- package/dist/cjs/lib/load-script.js +2 -3
- package/dist/cjs/lib/load-script.js.map +1 -1
- package/dist/cjs/lib/merged-options.js +1 -2
- package/dist/cjs/lib/merged-options.js.map +1 -1
- package/dist/cjs/lib/on-page-change.js.map +1 -1
- package/dist/cjs/lib/parse-cdn.js.map +1 -1
- package/dist/cjs/lib/pick.js +1 -2
- package/dist/cjs/lib/pick.js.map +1 -1
- package/dist/cjs/lib/priority-queue/backoff.js +1 -2
- package/dist/cjs/lib/priority-queue/backoff.js.map +1 -1
- package/dist/cjs/lib/priority-queue/persisted.js.map +1 -1
- package/dist/cjs/lib/to-facade.js +1 -2
- package/dist/cjs/lib/to-facade.js.map +1 -1
- package/dist/cjs/lib/tsub/index.js +4 -6
- package/dist/cjs/lib/tsub/index.js.map +1 -1
- package/dist/cjs/lib/tsub/matchers.js +1 -1
- package/dist/cjs/lib/tsub/matchers.js.map +1 -1
- package/dist/cjs/lib/tsub/store.js.map +1 -1
- package/dist/cjs/lib/tsub/transformers.js +1 -1
- package/dist/cjs/lib/tsub/transformers.js.map +1 -1
- package/dist/cjs/lib/tsub/unset.js +1 -2
- package/dist/cjs/lib/tsub/unset.js.map +1 -1
- package/dist/cjs/lib/version-type.js +2 -3
- package/dist/cjs/lib/version-type.js.map +1 -1
- package/dist/cjs/plugins/ajs-destination/index.js +10 -10
- package/dist/cjs/plugins/ajs-destination/index.js.map +1 -1
- package/dist/cjs/plugins/ajs-destination/loader.js +5 -6
- package/dist/cjs/plugins/ajs-destination/loader.js.map +1 -1
- package/dist/cjs/plugins/analytics-node/index.js +2 -3
- package/dist/cjs/plugins/analytics-node/index.js.map +1 -1
- package/dist/cjs/plugins/destinations/destination.js.map +1 -1
- package/dist/cjs/plugins/destinations/google-tag-manager.js.map +1 -1
- package/dist/cjs/plugins/destinations/gtag.js.map +1 -1
- package/dist/cjs/plugins/destinations/index.js +2 -2
- package/dist/cjs/plugins/destinations/index.js.map +1 -1
- package/dist/cjs/plugins/env-enrichment/index.js +4 -4
- package/dist/cjs/plugins/env-enrichment/index.js.map +1 -1
- package/dist/cjs/plugins/hightouchio/batched-dispatcher.js +1 -1
- package/dist/cjs/plugins/hightouchio/batched-dispatcher.js.map +1 -1
- package/dist/cjs/plugins/hightouchio/fetch-dispatcher.js +1 -1
- package/dist/cjs/plugins/hightouchio/fetch-dispatcher.js.map +1 -1
- package/dist/cjs/plugins/hightouchio/index.js +1 -2
- package/dist/cjs/plugins/hightouchio/index.js.map +1 -1
- package/dist/cjs/plugins/hightouchio/normalize.js +1 -2
- package/dist/cjs/plugins/hightouchio/normalize.js.map +1 -1
- package/dist/cjs/plugins/hightouchio/schedule-flush.js +1 -2
- package/dist/cjs/plugins/hightouchio/schedule-flush.js.map +1 -1
- package/dist/cjs/plugins/legacy-video-plugins/index.js +1 -2
- package/dist/cjs/plugins/legacy-video-plugins/index.js.map +1 -1
- package/dist/cjs/plugins/middleware/index.js +2 -3
- package/dist/cjs/plugins/middleware/index.js.map +1 -1
- package/dist/cjs/plugins/remote-loader/index.js +3 -3
- package/dist/cjs/plugins/remote-loader/index.js.map +1 -1
- package/dist/cjs/plugins/remote-middleware/index.js +2 -3
- package/dist/cjs/plugins/remote-middleware/index.js.map +1 -1
- package/dist/cjs/plugins/routing-middleware/index.js.map +1 -1
- package/dist/cjs/plugins/schema-filter/index.js +1 -2
- package/dist/cjs/plugins/schema-filter/index.js.map +1 -1
- package/dist/cjs/plugins/validation/index.js.map +1 -1
- package/dist/pkg/browser/browser-umd.js.map +1 -1
- package/dist/pkg/browser/index.js +62 -66
- package/dist/pkg/browser/index.js.map +1 -1
- package/dist/pkg/browser/standalone-analytics.js +5 -5
- package/dist/pkg/browser/standalone-analytics.js.map +1 -1
- package/dist/pkg/browser/standalone.js.map +1 -1
- package/dist/pkg/core/analytics/index.js +4 -5
- package/dist/pkg/core/analytics/index.js.map +1 -1
- package/dist/pkg/core/arguments-resolver/index.js +1 -1
- package/dist/pkg/core/arguments-resolver/index.js.map +1 -1
- package/dist/pkg/core/auto-track.js.map +1 -1
- package/dist/pkg/core/buffer/index.js.map +1 -1
- package/dist/pkg/core/connection/index.js.map +1 -1
- package/dist/pkg/core/context/index.js.map +1 -1
- package/dist/pkg/core/events/index.js.map +1 -1
- package/dist/pkg/core/http-cookies/index.js.map +1 -1
- package/dist/pkg/core/page/add-page-context.js.map +1 -1
- package/dist/pkg/core/page/get-page-context.js.map +1 -1
- package/dist/pkg/core/query-string/gracefulDecodeURIComponent.js.map +1 -1
- package/dist/pkg/core/query-string/index.js.map +1 -1
- package/dist/pkg/core/query-string/pickPrefix.js.map +1 -1
- package/dist/pkg/core/queue/event-queue.js.map +1 -1
- package/dist/pkg/core/session/index.js +2 -2
- package/dist/pkg/core/session/index.js.map +1 -1
- package/dist/pkg/core/stats/index.js.map +1 -1
- package/dist/pkg/core/stats/remote-metrics.js.map +1 -1
- package/dist/pkg/core/storage/cookieStorage.js.map +1 -1
- package/dist/pkg/core/storage/index.js.map +1 -1
- package/dist/pkg/core/storage/localStorage.js.map +1 -1
- package/dist/pkg/core/storage/memoryStorage.js.map +1 -1
- package/dist/pkg/core/storage/universalStorage.js.map +1 -1
- package/dist/pkg/core/user/index.js.map +1 -1
- package/dist/pkg/core/user/migrate.js.map +1 -1
- package/dist/pkg/core/user/tld.js.map +1 -1
- package/dist/pkg/core/user/vendor/crypto-es/lib/aes.js.map +1 -1
- package/dist/pkg/core/user/vendor/crypto-es/lib/cipher-core.js +1 -2
- package/dist/pkg/core/user/vendor/crypto-es/lib/cipher-core.js.map +1 -1
- package/dist/pkg/core/user/vendor/crypto-es/lib/core.js.map +1 -1
- package/dist/pkg/core/user/vendor/crypto-es/lib/enc-base64.js.map +1 -1
- package/dist/pkg/core/user/vendor/crypto-es/lib/evpkdf.js.map +1 -1
- package/dist/pkg/core/user/vendor/crypto-es/lib/md5.js.map +1 -1
- package/dist/pkg/generated/version.js +1 -1
- package/dist/pkg/lib/bind-all.js.map +1 -1
- package/dist/pkg/lib/embedded-write-key.js.map +1 -1
- package/dist/pkg/lib/get-global.js.map +1 -1
- package/dist/pkg/lib/get-process-env.js.map +1 -1
- package/dist/pkg/lib/group-by.js.map +1 -1
- package/dist/pkg/lib/is-plan-event-enabled.js.map +1 -1
- package/dist/pkg/lib/load-script.js.map +1 -1
- package/dist/pkg/lib/merged-options.js.map +1 -1
- package/dist/pkg/lib/on-page-change.js.map +1 -1
- package/dist/pkg/lib/parse-cdn.js.map +1 -1
- package/dist/pkg/lib/pick.js.map +1 -1
- package/dist/pkg/lib/priority-queue/persisted.js.map +1 -1
- package/dist/pkg/lib/to-facade.js.map +1 -1
- package/dist/pkg/lib/tsub/matchers.js.map +1 -1
- package/dist/pkg/lib/tsub/store.js.map +1 -1
- package/dist/pkg/lib/tsub/transformers.js.map +1 -1
- package/dist/pkg/lib/tsub/unset.js.map +1 -1
- package/dist/pkg/plugins/ajs-destination/index.js +8 -8
- package/dist/pkg/plugins/ajs-destination/index.js.map +1 -1
- package/dist/pkg/plugins/ajs-destination/loader.js.map +1 -1
- package/dist/pkg/plugins/analytics-node/index.js.map +1 -1
- package/dist/pkg/plugins/destinations/destination.js.map +1 -1
- package/dist/pkg/plugins/destinations/google-tag-manager.js.map +1 -1
- package/dist/pkg/plugins/destinations/gtag.js.map +1 -1
- package/dist/pkg/plugins/destinations/index.js.map +1 -1
- package/dist/pkg/plugins/env-enrichment/index.js +1 -1
- package/dist/pkg/plugins/env-enrichment/index.js.map +1 -1
- package/dist/pkg/plugins/hightouchio/batched-dispatcher.js.map +1 -1
- package/dist/pkg/plugins/hightouchio/index.js.map +1 -1
- package/dist/pkg/plugins/hightouchio/normalize.js.map +1 -1
- package/dist/pkg/plugins/hightouchio/schedule-flush.js.map +1 -1
- package/dist/pkg/plugins/middleware/index.js.map +1 -1
- package/dist/pkg/plugins/remote-loader/index.js +1 -1
- package/dist/pkg/plugins/remote-loader/index.js.map +1 -1
- package/dist/pkg/plugins/remote-middleware/index.js +1 -1
- package/dist/pkg/plugins/remote-middleware/index.js.map +1 -1
- package/dist/pkg/plugins/routing-middleware/index.js.map +1 -1
- package/dist/pkg/plugins/schema-filter/index.js.map +1 -1
- package/dist/pkg/plugins/validation/index.js.map +1 -1
- package/dist/types/core/analytics/index.d.ts.map +1 -1
- package/dist/types/core/arguments-resolver/index.d.ts.map +1 -1
- package/dist/types/core/buffer/index.d.ts +7 -10
- package/dist/types/core/buffer/index.d.ts.map +1 -1
- package/dist/types/core/inspector/index.d.ts.map +1 -1
- package/dist/types/core/page/add-page-context.d.ts.map +1 -1
- package/dist/types/core/page/get-page-context.d.ts.map +1 -1
- package/dist/types/core/session/index.d.ts.map +1 -1
- package/dist/types/core/stats/remote-metrics.d.ts.map +1 -1
- package/dist/types/core/storage/cookieStorage.d.ts +3 -3
- package/dist/types/core/storage/cookieStorage.d.ts.map +1 -1
- package/dist/types/core/storage/localStorage.d.ts +3 -3
- package/dist/types/core/storage/localStorage.d.ts.map +1 -1
- package/dist/types/core/storage/memoryStorage.d.ts +3 -3
- package/dist/types/core/storage/memoryStorage.d.ts.map +1 -1
- package/dist/types/core/storage/types.d.ts +4 -4
- package/dist/types/core/storage/types.d.ts.map +1 -1
- package/dist/types/core/storage/universalStorage.d.ts +4 -4
- package/dist/types/core/storage/universalStorage.d.ts.map +1 -1
- package/dist/types/core/user/index.d.ts.map +1 -1
- package/dist/types/core/user/vendor/crypto-es/lib/core.d.ts.map +1 -1
- package/dist/types/core/user/vendor/crypto-es/lib/enc-base64.d.ts +1 -1
- package/dist/types/core/user/vendor/crypto-es/lib/enc-base64.d.ts.map +1 -1
- package/dist/types/core/user/vendor/crypto-es/lib/evpkdf.d.ts.map +1 -1
- package/dist/types/generated/version.d.ts +1 -1
- package/dist/types/lib/create-deferred.d.ts.map +1 -1
- package/dist/types/lib/csp-detection.d.ts.map +1 -1
- package/dist/types/lib/is-thenable.d.ts.map +1 -1
- package/dist/types/lib/on-page-change.d.ts.map +1 -1
- package/dist/types/lib/p-while.d.ts.map +1 -1
- package/dist/types/lib/parse-cdn.d.ts.map +1 -1
- package/dist/types/lib/priority-queue/persisted.d.ts.map +1 -1
- package/dist/types/lib/sleep.d.ts.map +1 -1
- package/dist/types/plugins/ajs-destination/index.d.ts.map +1 -1
- package/dist/types/plugins/ajs-destination/utils.d.ts.map +1 -1
- package/dist/types/plugins/destinations/destination.d.ts.map +1 -1
- package/dist/types/plugins/env-enrichment/index.d.ts.map +1 -1
- package/dist/types/plugins/hightouchio/batched-dispatcher.d.ts.map +1 -1
- package/dist/types/plugins/remote-loader/index.d.ts.map +1 -1
- package/dist/types/plugins/routing-middleware/index.d.ts.map +1 -1
- package/dist/umd/407.bundle.5cd2d2d625cfaa9e2f6e.js +2 -0
- package/dist/umd/407.bundle.5cd2d2d625cfaa9e2f6e.js.gz +0 -0
- package/dist/umd/407.bundle.5cd2d2d625cfaa9e2f6e.js.map +1 -0
- package/dist/umd/407.bundle.5cd2d2d625cfaa9e2f6e.js.map.gz +0 -0
- package/dist/umd/ajs-destination.bundle.b5407b09b321c1d47d7c.js +2 -0
- package/dist/umd/ajs-destination.bundle.b5407b09b321c1d47d7c.js.gz +0 -0
- package/dist/umd/ajs-destination.bundle.b5407b09b321c1d47d7c.js.map +1 -0
- package/dist/umd/ajs-destination.bundle.b5407b09b321c1d47d7c.js.map.gz +0 -0
- package/dist/umd/auto-track.bundle.68ce13c2007188a9368d.js +2 -0
- package/dist/umd/auto-track.bundle.68ce13c2007188a9368d.js.gz +0 -0
- package/dist/umd/{auto-track.bundle.08c0e0f63bb92f96f8b5.js.map → auto-track.bundle.68ce13c2007188a9368d.js.map} +1 -1
- package/dist/umd/auto-track.bundle.68ce13c2007188a9368d.js.map.gz +0 -0
- package/dist/umd/events.min.js +1 -1
- package/dist/umd/events.min.js.gz +0 -0
- package/dist/umd/events.min.js.map +1 -1
- package/dist/umd/events.min.js.map.gz +0 -0
- package/dist/umd/google-tag-manager.bundle.5dbd0ff300a5c429a406.js +2 -0
- package/dist/umd/google-tag-manager.bundle.5dbd0ff300a5c429a406.js.gz +0 -0
- package/dist/umd/google-tag-manager.bundle.5dbd0ff300a5c429a406.js.map +1 -0
- package/dist/umd/google-tag-manager.bundle.5dbd0ff300a5c429a406.js.map.gz +0 -0
- package/dist/umd/gtag.bundle.fa18b007fc2891339158.js +2 -0
- package/dist/umd/gtag.bundle.fa18b007fc2891339158.js.gz +0 -0
- package/dist/umd/gtag.bundle.fa18b007fc2891339158.js.map +1 -0
- package/dist/umd/gtag.bundle.fa18b007fc2891339158.js.map.gz +0 -0
- package/dist/umd/index.js +1 -1
- package/dist/umd/index.js.gz +0 -0
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/index.js.map.gz +0 -0
- package/dist/umd/legacyVideos.bundle.d1d6291274937f505b12.js +2 -0
- package/dist/umd/legacyVideos.bundle.d1d6291274937f505b12.js.gz +0 -0
- package/dist/umd/{legacyVideos.bundle.6250709892bb05b68333.js.map → legacyVideos.bundle.d1d6291274937f505b12.js.map} +1 -1
- package/dist/umd/legacyVideos.bundle.d1d6291274937f505b12.js.map.gz +0 -0
- package/dist/umd/queryString.bundle.b86b3b6ef44fbbb98ec4.js +2 -0
- package/dist/umd/queryString.bundle.b86b3b6ef44fbbb98ec4.js.gz +0 -0
- package/dist/umd/queryString.bundle.b86b3b6ef44fbbb98ec4.js.map +1 -0
- package/dist/umd/queryString.bundle.b86b3b6ef44fbbb98ec4.js.map.gz +0 -0
- package/dist/umd/remoteMiddleware.bundle.9945b0dd526dedecf614.js +2 -0
- package/dist/umd/remoteMiddleware.bundle.9945b0dd526dedecf614.js.gz +0 -0
- package/dist/umd/{remoteMiddleware.bundle.4da71e934f9fcee73678.js.map → remoteMiddleware.bundle.9945b0dd526dedecf614.js.map} +1 -1
- package/dist/umd/remoteMiddleware.bundle.9945b0dd526dedecf614.js.map.gz +0 -0
- package/dist/umd/schemaFilter.bundle.babb6cdbe396c20dc88f.js +2 -0
- package/dist/umd/schemaFilter.bundle.babb6cdbe396c20dc88f.js.gz +0 -0
- package/dist/umd/schemaFilter.bundle.babb6cdbe396c20dc88f.js.map +1 -0
- package/dist/umd/schemaFilter.bundle.babb6cdbe396c20dc88f.js.map.gz +0 -0
- package/dist/umd/tsub-middleware.bundle.b717b62fe947259b0454.js +2 -0
- package/dist/umd/tsub-middleware.bundle.b717b62fe947259b0454.js.gz +0 -0
- package/dist/umd/tsub-middleware.bundle.b717b62fe947259b0454.js.map +1 -0
- package/dist/umd/tsub-middleware.bundle.b717b62fe947259b0454.js.map.gz +0 -0
- package/package.json +7 -7
- package/src/core/analytics/index.ts +27 -24
- package/src/core/arguments-resolver/index.ts +4 -4
- package/src/core/buffer/index.ts +4 -4
- package/src/core/stats/remote-metrics.ts +8 -5
- package/src/core/storage/cookieStorage.ts +6 -6
- package/src/core/storage/localStorage.ts +10 -7
- package/src/core/storage/memoryStorage.ts +6 -6
- package/src/core/storage/types.ts +4 -4
- package/src/core/storage/universalStorage.ts +4 -4
- package/src/generated/version.ts +1 -1
- package/src/lib/bind-all.ts +1 -1
- package/src/lib/priority-queue/persisted.ts +9 -6
- package/src/test-helpers/browser-storage.ts +1 -1
- package/dist/umd/799.bundle.cf7e55682bfd23cde904.js +0 -2
- package/dist/umd/799.bundle.cf7e55682bfd23cde904.js.map +0 -1
- package/dist/umd/ajs-destination.bundle.48266e86bbbc2531ac42.js +0 -2
- package/dist/umd/ajs-destination.bundle.48266e86bbbc2531ac42.js.map +0 -1
- package/dist/umd/auto-track.bundle.08c0e0f63bb92f96f8b5.js +0 -2
- package/dist/umd/google-tag-manager.bundle.238ad1d40bdf04d984ef.js +0 -2
- package/dist/umd/google-tag-manager.bundle.238ad1d40bdf04d984ef.js.map +0 -1
- package/dist/umd/gtag.bundle.a5e7c472f1c04f2b9ebd.js +0 -2
- package/dist/umd/gtag.bundle.a5e7c472f1c04f2b9ebd.js.map +0 -1
- package/dist/umd/legacyVideos.bundle.6250709892bb05b68333.js +0 -2
- package/dist/umd/queryString.bundle.e47b8db88c102418c8c2.js +0 -2
- package/dist/umd/queryString.bundle.e47b8db88c102418c8c2.js.map +0 -1
- package/dist/umd/remoteMiddleware.bundle.4da71e934f9fcee73678.js +0 -2
- package/dist/umd/schemaFilter.bundle.a17fd62888b293279f4b.js +0 -2
- package/dist/umd/schemaFilter.bundle.a17fd62888b293279f4b.js.map +0 -1
- package/dist/umd/tsub-middleware.bundle.59e8d6916920ab24b51c.js +0 -2
- package/dist/umd/tsub-middleware.bundle.59e8d6916920ab24b51c.js.map +0 -1
|
@@ -27,12 +27,15 @@ function persistItems(key: string, items: Context[]): void {
|
|
|
27
27
|
const existing = persisted(key)
|
|
28
28
|
const all = [...items, ...existing]
|
|
29
29
|
|
|
30
|
-
const merged = all.reduce(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
const merged = all.reduce(
|
|
31
|
+
(acc, item) => {
|
|
32
|
+
return {
|
|
33
|
+
...acc,
|
|
34
|
+
[item.id]: item,
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{} as Record<string, Context>
|
|
38
|
+
)
|
|
36
39
|
|
|
37
40
|
loc.setItem(key, JSON.stringify(Object.values(merged)))
|
|
38
41
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[799],{9799:function(e){window,e.exports=function(e){var t={};function a(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,a),i.l=!0,i.exports}return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)a.d(n,i,function(t){return e[t]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=2)}([function(e,t,a){"use strict";a.r(t);var n="function"==typeof fetch?fetch.bind():function(e,t){return t=t||{},new Promise((function(a,n){var i=new XMLHttpRequest;for(var r in i.open(t.method||"get",e,!0),t.headers)i.setRequestHeader(r,t.headers[r]);function s(){var e,t=[],a=[],n={};return i.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,(function(i,r,s){t.push(r=r.toLowerCase()),a.push([r,s]),e=n[r],n[r]=e?e+","+s:s})),{ok:2==(i.status/100|0),status:i.status,statusText:i.statusText,url:i.responseURL,clone:s,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},headers:{keys:function(){return t},entries:function(){return a},get:function(e){return n[e.toLowerCase()]},has:function(e){return e.toLowerCase()in n}}}}i.withCredentials="include"==t.credentials,i.onload=function(){a(s())},i.onerror=n,i.send(t.body)}))};t.default=n},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=function(){function e(t,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.pluginName=t}return n(e,[{key:"track",value:function(e,t){window.analytics.track(e,t,{integration:{name:this.pluginName}})}}]),e}();t.default=i},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.YouTubeAnalytics=t.VimeoAnalytics=void 0;var n=r(a(3)),i=r(a(4));function r(e){return e&&e.__esModule?e:{default:e}}t.VimeoAnalytics=n.default,t.YouTubeAnalytics=i.default},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=r(a(0));function r(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,"VimeoAnalytics"));return n.authToken=a,n.player=e,n.metadata={content:{},playback:{videoPlayer:"Vimeo"}},n.mostRecentHeartbeat=0,n.isPaused=!1,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"initialize",value:function(){var e=this,t={loaded:this.retrieveMetadata,play:this.trackPlay,pause:this.trackPause,ended:this.trackEnded,timeupdate:this.trackHeartbeat};for(var a in t)this.registerHandler(a,t[a]);this.player.getVideoId().then((function(t){e.retrieveMetadata({id:t})})).catch(console.error)}},{key:"registerHandler",value:function(e,t){var a=this;this.player.on(e,(function(e){a.updateMetadata(e),t.call(a,e)}))}},{key:"trackPlay",value:function(){this.isPaused?(this.track("Video Playback Resumed",this.metadata.playback),this.isPaused=!1):(this.track("Video Playback Started",this.metadata.playback),this.track("Video Content Started",this.metadata.content))}},{key:"trackEnded",value:function(){this.track("Video Playback Completed",this.metadata.playback),this.track("Video Content Completed",this.metadata.content)}},{key:"trackHeartbeat",value:function(){var e=this.mostRecentHeartbeat,t=this.metadata.playback.position;t!==e&&t-e>=10&&(this.track("Video Content Playing",this.metadata.content),this.mostRecentHeartbeat=Math.floor(t))}},{key:"trackPause",value:function(){this.isPaused=!0,this.track("Video Playback Paused",this.metadata.playback)}},{key:"retrieveMetadata",value:function(e){var t=this;return new Promise((function(a,n){var r=e.id;(0,i.default)("https://api.vimeo.com/videos/"+r,{headers:{Authorization:"Bearer "+t.authToken}}).then((function(e){return e.ok?e.json():n(e)})).then((function(e){t.metadata.content.title=e.name,t.metadata.content.description=e.description,t.metadata.content.publisher=e.user.name,t.metadata.playback.position=0,t.metadata.playback.totalLength=e.duration})).catch((function(e){return console.error("Request to Vimeo API Failed with: ",e),n(e)}))}))}},{key:"updateMetadata",value:function(e){var t=this;return new Promise((function(a,n){t.player.getVolume().then((function(n){n&&(t.metadata.playback.sound=100*n),t.metadata.playback.position=e.seconds,a()})).catch(n)}))}}]),t}(r(a(1)).default);t.default=s},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=r(a(0));function r(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,"YoutubeAnalytics"));return n.player=e,n.apiKey=a,n.playerLoaded=!1,n.playbackStarted=!1,n.contentStarted=!1,n.isPaused=!1,n.isBuffering=!1,n.isSeeking=!1,n.lastRecordedTime={timeReported:Date.now(),timeElapsed:0},n.metadata=[{playback:{video_player:"youtube"},content:{}}],n.playlistIndex=0,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:"initialize",value:function(){window.segmentYoutubeOnStateChange=this.onPlayerStateChange.bind(this),window.segmentYoutubeOnReady=this.onPlayerReady.bind(this),this.player.addEventListener("onReady","segmentYoutubeOnReady"),this.player.addEventListener("onStateChange","segmentYoutubeOnStateChange")}},{key:"onPlayerReady",value:function(e){this.retrieveMetadata()}},{key:"onPlayerStateChange",value:function(e){var t=this.player.getCurrentTime();switch(this.metadata[this.playlistIndex]&&(this.metadata[this.playlistIndex].playback.position=this.metadata[this.playlistIndex].content.position=t,this.metadata[this.playlistIndex].playback.quality=this.player.getPlaybackQuality(),this.metadata[this.playlistIndex].playback.sound=this.player.isMuted()?0:this.player.getVolume()),e.data){case-1:if(this.playerLoaded)break;this.retrieveMetadata(),this.playerLoaded=!0;break;case YT.PlayerState.BUFFERING:this.handleBuffer();break;case YT.PlayerState.PLAYING:this.handlePlay();break;case YT.PlayerState.PAUSED:this.handlePause();break;case YT.PlayerState.ENDED:this.handleEnd()}this.lastRecordedTime={timeReported:Date.now(),timeElapsed:1e3*this.player.getCurrentTime()}}},{key:"retrieveMetadata",value:function(){var e=this;return new Promise((function(t,a){var n=e.player.getVideoData(),r=e.player.getPlaylist()||[n.video_id],s=r.join();(0,i.default)("https://www.googleapis.com/youtube/v3/videos?id="+s+"&part=snippet,contentDetails&key="+e.apiKey).then((function(e){if(!e.ok){var t=new Error("Segment request to Youtube API failed (likely due to a bad API Key. Events will still be sent but will not contain video metadata)");throw t.response=e,t}return e.json()})).then((function(a){e.metadata=[];for(var n=0,i=0;i<r.length;i++){var s=a.items[i];e.metadata.push({content:{title:s.snippet.title,description:s.snippet.description,keywords:s.snippet.tags,channel:s.snippet.channelTitle,airdate:s.snippet.publishedAt}}),n+=o(s.contentDetails.duration)}for(i=0;i<r.length;i++)e.metadata[i].playback={total_length:n,video_player:"youtube"};t()})).catch((function(t){e.metadata=r.map((function(e){return{playback:{video_player:"youtube"},content:{}}})),a(t)}))}))}},{key:"handleBuffer",value:function(){var e=this.determineSeek();this.playbackStarted||(this.playbackStarted=!0,this.track("Video Playback Started",this.metadata[this.playlistIndex].playback)),e&&!this.isSeeking&&(this.isSeeking=!0,this.track("Video Playback Seek Started",this.metadata[this.playlistIndex].playback)),this.isSeeking&&(this.track("Video Playback Seek Completed",this.metadata[this.playlistIndex].playback),this.isSeeking=!1);var t=this.player.getPlaylist();t&&0===this.player.getCurrentTime()&&this.player.getPlaylistIndex()!==this.playlistIndex&&(this.contentStarted=!1,this.playlistIndex===t.length-1&&0===this.player.getPlaylistIndex()&&(this.track("Video Playback Completed",this.metadata[this.player.getPlaylistIndex()].playback),this.track("Video Playback Started",this.metadata[this.player.getPlaylistIndex()].playback))),this.track("Video Playback Buffer Started",this.metadata[this.playlistIndex].playback),this.isBuffering=!0}},{key:"handlePlay",value:function(){this.contentStarted||(this.playlistIndex=this.player.getPlaylistIndex(),-1===this.playlistIndex&&(this.playlistIndex=0),this.track("Video Content Started",this.metadata[this.playlistIndex].content),this.contentStarted=!0),this.isBuffering&&(this.track("Video Playback Buffer Completed",this.metadata[this.playlistIndex].playback),this.isBuffering=!1),this.isPaused&&(this.track("Video Playback Resumed",this.metadata[this.playlistIndex].playback),this.isPaused=!1)}},{key:"handlePause",value:function(){var e=this.determineSeek();this.isBuffering&&(this.track("Video Playback Buffer Completed",this.metadata[this.playlistIndex].playback),this.isBuffering=!1),this.isPaused||(e?(this.track("Video Playback Seek Started",this.metadata[this.playlistIndex].playback),this.isSeeking=!0):(this.track("Video Playback Paused",this.metadata[this.playlistIndex].playback),this.isPaused=!0))}},{key:"handleEnd",value:function(){this.track("Video Content Completed",this.metadata[this.playlistIndex].content),this.contentStarted=!1;var e=this.player.getPlaylistIndex(),t=this.player.getPlaylist();(t&&e===t.length-1||-1===e)&&(this.track("Video Playback Completed",this.metadata[this.playlistIndex].playback),this.playbackStarted=!1)}},{key:"determineSeek",value:function(){var e=this.isPaused||this.isBuffering?0:Date.now()-this.lastRecordedTime.timeReported,t=1e3*this.player.getCurrentTime()-this.lastRecordedTime.timeElapsed;return Math.abs(e-t)>2e3}}]),t}(r(a(1)).default);function o(e){var t=e.match(/PT(\d+H)?(\d+M)?(\d+S)?/);return t=t.slice(1).map((function(e){if(null!=e)return e.replace(/\D/,"")})),3600*(parseInt(t[0])||0)+60*(parseInt(t[1])||0)+(parseInt(t[2])||0)}t.default=s}])}}]);
|
|
2
|
-
//# sourceMappingURL=799.bundle.cf7e55682bfd23cde904.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"799.bundle.cf7e55682bfd23cde904.js","mappings":"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","sources":["webpack://@ht-sdks/events-sdk-js-browser/../../node_modules/@segment/analytics.js-video-plugins/dist/index.umd.js"],"sourcesContent":["!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.analyticsVideoPlugins=t():e.analyticsVideoPlugins=t()}(window,(function(){return function(e){var t={};function a(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,a),i.l=!0,i.exports}return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},a.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)a.d(n,i,function(t){return e[t]}.bind(null,i));return n},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,\"a\",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p=\"\",a(a.s=2)}([function(e,t,a){\"use strict\";a.r(t);var n=\"function\"==typeof fetch?fetch.bind():function(e,t){return t=t||{},new Promise((function(a,n){var i=new XMLHttpRequest;for(var r in i.open(t.method||\"get\",e,!0),t.headers)i.setRequestHeader(r,t.headers[r]);function o(){var e,t=[],a=[],n={};return i.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,(function(i,r,o){t.push(r=r.toLowerCase()),a.push([r,o]),e=n[r],n[r]=e?e+\",\"+o:o})),{ok:2==(i.status/100|0),status:i.status,statusText:i.statusText,url:i.responseURL,clone:o,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},headers:{keys:function(){return t},entries:function(){return a},get:function(e){return n[e.toLowerCase()]},has:function(e){return e.toLowerCase()in n}}}}i.withCredentials=\"include\"==t.credentials,i.onload=function(){a(o())},i.onerror=n,i.send(t.body)}))};t.default=n},function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();var i=function(){function e(t,a){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,e),this.pluginName=t}return n(e,[{key:\"track\",value:function(e,t){window.analytics.track(e,t,{integration:{name:this.pluginName}})}}]),e}();t.default=i},function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.YouTubeAnalytics=t.VimeoAnalytics=void 0;var n=r(a(3)),i=r(a(4));function r(e){return e&&e.__esModule?e:{default:e}}t.VimeoAnalytics=n.default,t.YouTubeAnalytics=i.default},function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=r(a(0));function r(e){return e&&e.__esModule?e:{default:e}}var o=function(e){function t(e,a){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"VimeoAnalytics\"));return n.authToken=a,n.player=e,n.metadata={content:{},playback:{videoPlayer:\"Vimeo\"}},n.mostRecentHeartbeat=0,n.isPaused=!1,n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:\"initialize\",value:function(){var e=this,t={loaded:this.retrieveMetadata,play:this.trackPlay,pause:this.trackPause,ended:this.trackEnded,timeupdate:this.trackHeartbeat};for(var a in t)this.registerHandler(a,t[a]);this.player.getVideoId().then((function(t){e.retrieveMetadata({id:t})})).catch(console.error)}},{key:\"registerHandler\",value:function(e,t){var a=this;this.player.on(e,(function(e){a.updateMetadata(e),t.call(a,e)}))}},{key:\"trackPlay\",value:function(){this.isPaused?(this.track(\"Video Playback Resumed\",this.metadata.playback),this.isPaused=!1):(this.track(\"Video Playback Started\",this.metadata.playback),this.track(\"Video Content Started\",this.metadata.content))}},{key:\"trackEnded\",value:function(){this.track(\"Video Playback Completed\",this.metadata.playback),this.track(\"Video Content Completed\",this.metadata.content)}},{key:\"trackHeartbeat\",value:function(){var e=this.mostRecentHeartbeat,t=this.metadata.playback.position;t!==e&&t-e>=10&&(this.track(\"Video Content Playing\",this.metadata.content),this.mostRecentHeartbeat=Math.floor(t))}},{key:\"trackPause\",value:function(){this.isPaused=!0,this.track(\"Video Playback Paused\",this.metadata.playback)}},{key:\"retrieveMetadata\",value:function(e){var t=this;return new Promise((function(a,n){var r=e.id;(0,i.default)(\"https://api.vimeo.com/videos/\"+r,{headers:{Authorization:\"Bearer \"+t.authToken}}).then((function(e){return e.ok?e.json():n(e)})).then((function(e){t.metadata.content.title=e.name,t.metadata.content.description=e.description,t.metadata.content.publisher=e.user.name,t.metadata.playback.position=0,t.metadata.playback.totalLength=e.duration})).catch((function(e){return console.error(\"Request to Vimeo API Failed with: \",e),n(e)}))}))}},{key:\"updateMetadata\",value:function(e){var t=this;return new Promise((function(a,n){t.player.getVolume().then((function(n){n&&(t.metadata.playback.sound=100*n),t.metadata.playback.position=e.seconds,a()})).catch(n)}))}}]),t}(r(a(1)).default);t.default=o},function(e,t,a){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=o(a(0)),r=o(a(1));function o(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(e,a){!function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!t||\"object\"!=typeof t&&\"function\"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,\"YoutubeAnalytics\"));return n.player=e,n.apiKey=a,n.playerLoaded=!1,n.playbackStarted=!1,n.contentStarted=!1,n.isPaused=!1,n.isBuffering=!1,n.isSeeking=!1,n.lastRecordedTime={timeReported:Date.now(),timeElapsed:0},n.metadata=[{playback:{video_player:\"youtube\"},content:{}}],n.playlistIndex=0,n}return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),n(t,[{key:\"initialize\",value:function(){window.segmentYoutubeOnStateChange=this.onPlayerStateChange.bind(this),window.segmentYoutubeOnReady=this.onPlayerReady.bind(this),this.player.addEventListener(\"onReady\",\"segmentYoutubeOnReady\"),this.player.addEventListener(\"onStateChange\",\"segmentYoutubeOnStateChange\")}},{key:\"onPlayerReady\",value:function(e){this.retrieveMetadata()}},{key:\"onPlayerStateChange\",value:function(e){var t=this.player.getCurrentTime();switch(this.metadata[this.playlistIndex]&&(this.metadata[this.playlistIndex].playback.position=this.metadata[this.playlistIndex].content.position=t,this.metadata[this.playlistIndex].playback.quality=this.player.getPlaybackQuality(),this.metadata[this.playlistIndex].playback.sound=this.player.isMuted()?0:this.player.getVolume()),e.data){case-1:if(this.playerLoaded)break;this.retrieveMetadata(),this.playerLoaded=!0;break;case YT.PlayerState.BUFFERING:this.handleBuffer();break;case YT.PlayerState.PLAYING:this.handlePlay();break;case YT.PlayerState.PAUSED:this.handlePause();break;case YT.PlayerState.ENDED:this.handleEnd()}this.lastRecordedTime={timeReported:Date.now(),timeElapsed:1e3*this.player.getCurrentTime()}}},{key:\"retrieveMetadata\",value:function(){var e=this;return new Promise((function(t,a){var n=e.player.getVideoData(),r=e.player.getPlaylist()||[n.video_id],o=r.join();(0,i.default)(\"https://www.googleapis.com/youtube/v3/videos?id=\"+o+\"&part=snippet,contentDetails&key=\"+e.apiKey).then((function(e){if(!e.ok){var t=new Error(\"Segment request to Youtube API failed (likely due to a bad API Key. Events will still be sent but will not contain video metadata)\");throw t.response=e,t}return e.json()})).then((function(a){e.metadata=[];for(var n=0,i=0;i<r.length;i++){var o=a.items[i];e.metadata.push({content:{title:o.snippet.title,description:o.snippet.description,keywords:o.snippet.tags,channel:o.snippet.channelTitle,airdate:o.snippet.publishedAt}}),n+=l(o.contentDetails.duration)}for(i=0;i<r.length;i++)e.metadata[i].playback={total_length:n,video_player:\"youtube\"};t()})).catch((function(t){e.metadata=r.map((function(e){return{playback:{video_player:\"youtube\"},content:{}}})),a(t)}))}))}},{key:\"handleBuffer\",value:function(){var e=this.determineSeek();this.playbackStarted||(this.playbackStarted=!0,this.track(\"Video Playback Started\",this.metadata[this.playlistIndex].playback)),e&&!this.isSeeking&&(this.isSeeking=!0,this.track(\"Video Playback Seek Started\",this.metadata[this.playlistIndex].playback)),this.isSeeking&&(this.track(\"Video Playback Seek Completed\",this.metadata[this.playlistIndex].playback),this.isSeeking=!1);var t=this.player.getPlaylist();t&&0===this.player.getCurrentTime()&&this.player.getPlaylistIndex()!==this.playlistIndex&&(this.contentStarted=!1,this.playlistIndex===t.length-1&&0===this.player.getPlaylistIndex()&&(this.track(\"Video Playback Completed\",this.metadata[this.player.getPlaylistIndex()].playback),this.track(\"Video Playback Started\",this.metadata[this.player.getPlaylistIndex()].playback))),this.track(\"Video Playback Buffer Started\",this.metadata[this.playlistIndex].playback),this.isBuffering=!0}},{key:\"handlePlay\",value:function(){this.contentStarted||(this.playlistIndex=this.player.getPlaylistIndex(),-1===this.playlistIndex&&(this.playlistIndex=0),this.track(\"Video Content Started\",this.metadata[this.playlistIndex].content),this.contentStarted=!0),this.isBuffering&&(this.track(\"Video Playback Buffer Completed\",this.metadata[this.playlistIndex].playback),this.isBuffering=!1),this.isPaused&&(this.track(\"Video Playback Resumed\",this.metadata[this.playlistIndex].playback),this.isPaused=!1)}},{key:\"handlePause\",value:function(){var e=this.determineSeek();this.isBuffering&&(this.track(\"Video Playback Buffer Completed\",this.metadata[this.playlistIndex].playback),this.isBuffering=!1),this.isPaused||(e?(this.track(\"Video Playback Seek Started\",this.metadata[this.playlistIndex].playback),this.isSeeking=!0):(this.track(\"Video Playback Paused\",this.metadata[this.playlistIndex].playback),this.isPaused=!0))}},{key:\"handleEnd\",value:function(){this.track(\"Video Content Completed\",this.metadata[this.playlistIndex].content),this.contentStarted=!1;var e=this.player.getPlaylistIndex(),t=this.player.getPlaylist();(t&&e===t.length-1||-1===e)&&(this.track(\"Video Playback Completed\",this.metadata[this.playlistIndex].playback),this.playbackStarted=!1)}},{key:\"determineSeek\",value:function(){var e=this.isPaused||this.isBuffering?0:Date.now()-this.lastRecordedTime.timeReported,t=1e3*this.player.getCurrentTime()-this.lastRecordedTime.timeElapsed;return Math.abs(e-t)>2e3}}]),t}(r.default);function l(e){var t=e.match(/PT(\\d+H)?(\\d+M)?(\\d+S)?/);return t=t.slice(1).map((function(e){if(null!=e)return e.replace(/\\D/,\"\")})),3600*(parseInt(t[0])||0)+60*(parseInt(t[1])||0)+(parseInt(t[2])||0)}t.default=s}])}));"],"names":["window","module","exports","e","t","a","n","i","l","call","m","c","d","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","__esModule","create","bind","default","prototype","hasOwnProperty","p","s","fetch","Promise","XMLHttpRequest","open","method","headers","setRequestHeader","getAllResponseHeaders","replace","push","toLowerCase","ok","status","statusText","url","responseURL","clone","text","resolve","responseText","json","then","JSON","parse","blob","Blob","response","keys","entries","has","withCredentials","credentials","onload","onerror","send","body","length","configurable","writable","key","TypeError","this","pluginName","analytics","track","integration","name","YouTubeAnalytics","VimeoAnalytics","ReferenceError","__proto__","getPrototypeOf","authToken","player","metadata","content","playback","videoPlayer","mostRecentHeartbeat","isPaused","constructor","setPrototypeOf","loaded","retrieveMetadata","play","trackPlay","pause","trackPause","ended","trackEnded","timeupdate","trackHeartbeat","registerHandler","getVideoId","id","catch","console","error","on","updateMetadata","position","Math","floor","Authorization","title","description","publisher","user","totalLength","duration","getVolume","sound","seconds","apiKey","playerLoaded","playbackStarted","contentStarted","isBuffering","isSeeking","lastRecordedTime","timeReported","Date","now","timeElapsed","video_player","playlistIndex","segmentYoutubeOnStateChange","onPlayerStateChange","segmentYoutubeOnReady","onPlayerReady","addEventListener","getCurrentTime","quality","getPlaybackQuality","isMuted","data","YT","PlayerState","BUFFERING","handleBuffer","PLAYING","handlePlay","PAUSED","handlePause","ENDED","handleEnd","getVideoData","getPlaylist","video_id","join","Error","items","snippet","keywords","tags","channel","channelTitle","airdate","publishedAt","contentDetails","total_length","map","determineSeek","getPlaylistIndex","abs","match","slice","parseInt"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[464],{9254:function(t,n,i){function e(t,n){var i,e;return"boolean"==typeof(null==n?void 0:n.enabled)?n.enabled:null===(e=null===(i=null==t?void 0:t.__default)||void 0===i?void 0:i.enabled)||void 0===e||e}i.d(n,{n:function(){return e}})},3162:function(t,n,i){i.r(n),i.d(n,{LegacyDestination:function(){return P},ajsDestinations:function(){return z}});var e=i(5163),r=i(4122),o=i(94),s=i(3710),a=i(1494),u=i(204),c=i(6096),l=i(9254),d=i(5944),h=i(8044),v=i(3098),f=i(3061),p=i(6338),g=i(7566),m=i(7070);function y(t){return t.toLowerCase().replace(".","").replace(/\s+/g,"-")}function w(t,n){return void 0===n&&(n=!1),n?btoa(t).replace(/=/g,""):void 0}function b(t,n,i,r){return(0,e.mG)(this,void 0,Promise,(function(){var o,s,a,u,c,l;return(0,e.Jh)(this,(function(d){switch(d.label){case 0:o=y(n),s=w(o,r),a=(0,g.Kg)(),u="".concat(a,"/integrations/").concat(null!=s?s:o,"/").concat(i,"/").concat(null!=s?s:o,".dynamic.js.gz"),d.label=1;case 1:return d.trys.push([1,3,,4]),[4,(0,m.v)(u)];case 2:return d.sent(),function(t,n,i){var r,o;try{var s=(null!==(o=null===(r=null===window||void 0===window?void 0:window.performance)||void 0===r?void 0:r.getEntriesByName(t,"resource"))&&void 0!==o?o:[])[0];s&&n.stats.gauge("legacy_destination_time",Math.round(s.duration),(0,e.ev)([i],s.duration<100?["cached"]:[],!0))}catch(t){}}(u,t,n),[3,4];case 3:throw c=d.sent(),t.stats.gauge("legacy_destination_time",-1,["plugin:".concat(n),"failed"]),c;case 4:return l=window["".concat(o,"Deps")],[4,Promise.all(l.map((function(t){return(0,m.v)(a+t+".gz")})))];case 5:return d.sent(),window["".concat(o,"Loader")](),[2,window["".concat(o,"Integration")]]}}))}))}var _=i(7595);function k(t,n){return(0,e.mG)(this,void 0,Promise,(function(){var i,r=this;return(0,e.Jh)(this,(function(a){switch(a.label){case 0:return i=[],(0,o.s)()?[2,n]:[4,(0,h.x)((function(){return n.length>0&&(0,o.G)()}),(function(){return(0,e.mG)(r,void 0,void 0,(function(){var r,o;return(0,e.Jh)(this,(function(e){switch(e.label){case 0:return(r=n.pop())?[4,(0,c.a)(r,t)]:[2];case 1:return o=e.sent(),o instanceof s._||i.push(r),[2]}}))}))}))];case 1:return a.sent(),i.map((function(t){return n.pushWithBackoff(t)})),[2,n]}}))}))}var P=function(){function t(t,n,i,r,o,s){void 0===r&&(r={}),this.options={},this.type="destination",this.middleware=[],this._ready=!1,this._initialized=!1,this.flushing=!1,this.name=t,this.version=n,this.settings=(0,e.pi)({},r),this.disableAutoISOConversion=o.disableAutoISOConversion||!1,this.integrationSource=s,this.settings.type&&"browser"===this.settings.type&&delete this.settings.type,this.options=o,this.buffer=o.disableClientPersistence?new v.Z(4,[]):new f.$(4,"".concat(i,":dest-").concat(t)),this.scheduleFlush()}return t.prototype.isLoaded=function(){return this._ready},t.prototype.ready=function(){var t;return null!==(t=this.onReady)&&void 0!==t?t:Promise.resolve()},t.prototype.load=function(t,n){var i;return(0,e.mG)(this,void 0,Promise,(function(){var r,o,s=this;return(0,e.Jh)(this,(function(e){switch(e.label){case 0:return this._ready||void 0!==this.onReady?[2]:null===(i=this.integrationSource)||void 0===i?[3,1]:(o=i,[3,3]);case 1:return[4,b(t,this.name,this.version,this.options.obfuscate)];case 2:o=e.sent(),e.label=3;case 3:r=o,this.integration=function(t,n,i){var e;"Integration"in t?(t({user:function(){return i.user()},addIntegration:function(){}}),e=t.Integration):e=t;var r=new e(n);return r.analytics=i,r}(r,this.settings,n),this.onReady=new Promise((function(t){s.integration.once("ready",(function(){s._ready=!0,t(!0)}))})),this.onInitialize=new Promise((function(t){s.integration.on("initialize",(function(){s._initialized=!0,t(!0)}))}));try{t.stats.increment("analytics_js.integration.invoke",1,["method:initialize","integration_name:".concat(this.name)]),this.integration.initialize()}catch(n){throw t.stats.increment("analytics_js.integration.invoke.error",1,["method:initialize","integration_name:".concat(this.name)]),n}return[2]}}))}))},t.prototype.unload=function(t,n){return function(t,n,i){return(0,e.mG)(this,void 0,Promise,(function(){var r,o,s,a;return(0,e.Jh)(this,(function(e){return r=(0,g.Kg)(),o=y(t),s=w(t,i),a="".concat(r,"/integrations/").concat(null!=s?s:o,"/").concat(n,"/").concat(null!=s?s:o,".dynamic.js.gz"),[2,(0,m.t)(a)]}))}))}(this.name,this.version,this.options.obfuscate)},t.prototype.addMiddleware=function(){for(var t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];this.middleware=(t=this.middleware).concat.apply(t,n)},t.prototype.shouldBuffer=function(t){return"page"!==t.event.type&&((0,o.s)()||!1===this._ready||!1===this._initialized)},t.prototype.send=function(t,n,i){var r,o;return(0,e.mG)(this,void 0,Promise,(function(){var s,u,c,d,h,v;return(0,e.Jh)(this,(function(f){switch(f.label){case 0:if(this.shouldBuffer(t))return this.buffer.push(t),this.scheduleFlush(),[2,t];if(s=null===(o=null===(r=this.options)||void 0===r?void 0:r.plan)||void 0===o?void 0:o.track,u=t.event.event,s&&u&&"Hightouch.io"!==this.name){if(c=s[u],!(0,l.n)(s,c))return t.updateEvent("integrations",(0,e.pi)((0,e.pi)({},t.event.integrations),{All:!1,"Hightouch.io":!0})),t.cancel(new a.Y({retry:!1,reason:"Event ".concat(u," disabled for integration ").concat(this.name," in tracking plan"),type:"Dropped by plan"})),[2,t];if(t.updateEvent("integrations",(0,e.pi)((0,e.pi)({},t.event.integrations),null==c?void 0:c.integrations)),(null==c?void 0:c.enabled)&&!1===(null==c?void 0:c.integrations[this.name]))return t.cancel(new a.Y({retry:!1,reason:"Event ".concat(u," disabled for integration ").concat(this.name," in tracking plan"),type:"Dropped by plan"})),[2,t]}return[4,(0,p.applyDestinationMiddleware)(this.name,t.event,this.middleware)];case 1:if(null===(d=f.sent()))return[2,t];h=new n(d,{traverse:!this.disableAutoISOConversion}),t.stats.increment("analytics_js.integration.invoke",1,["method:".concat(i),"integration_name:".concat(this.name)]),f.label=2;case 2:return f.trys.push([2,5,,6]),this.integration?[4,this.integration.invoke.call(this.integration,i,h)]:[3,4];case 3:f.sent(),f.label=4;case 4:return[3,6];case 5:throw v=f.sent(),t.stats.increment("analytics_js.integration.invoke.error",1,["method:".concat(i),"integration_name:".concat(this.name)]),v;case 6:return[2,t]}}))}))},t.prototype.track=function(t){return(0,e.mG)(this,void 0,Promise,(function(){return(0,e.Jh)(this,(function(n){return[2,this.send(t,r.Track,"track")]}))}))},t.prototype.page=function(t){var n;return(0,e.mG)(this,void 0,Promise,(function(){var i=this;return(0,e.Jh)(this,(function(e){return(null===(n=this.integration)||void 0===n?void 0:n._assumesPageview)&&!this._initialized&&this.integration.initialize(),[2,this.onInitialize.then((function(){return i.send(t,r.Page,"page")}))]}))}))},t.prototype.identify=function(t){return(0,e.mG)(this,void 0,Promise,(function(){return(0,e.Jh)(this,(function(n){return[2,this.send(t,r.Identify,"identify")]}))}))},t.prototype.alias=function(t){return(0,e.mG)(this,void 0,Promise,(function(){return(0,e.Jh)(this,(function(n){return[2,this.send(t,r.Alias,"alias")]}))}))},t.prototype.group=function(t){return(0,e.mG)(this,void 0,Promise,(function(){return(0,e.Jh)(this,(function(n){return[2,this.send(t,r.Group,"group")]}))}))},t.prototype.scheduleFlush=function(){var t=this;this.flushing||setTimeout((function(){return(0,e.mG)(t,void 0,void 0,(function(){var t;return(0,e.Jh)(this,(function(n){switch(n.label){case 0:return this.flushing=!0,t=this,[4,k(this,this.buffer)];case 1:return t.buffer=n.sent(),this.flushing=!1,this.buffer.todo>0&&this.scheduleFlush(),[2]}}))}))}),5e3*Math.random())},t}();function z(t,n,i,r,o,s){var a,c;if(void 0===i&&(i={}),void 0===r&&(r={}),(0,u.s)())return[];n.plan&&((r=null!=r?r:{}).plan=n.plan);var l=null!==(c=null===(a=n.middlewareSettings)||void 0===a?void 0:a.routingRules)&&void 0!==c?c:[],h=n.integrations,v=r.integrations,f=(0,d.o)(n,null!=r?r:{}),p=null==s?void 0:s.reduce((function(t,n){var i;return(0,e.pi)((0,e.pi)({},t),((i={})[function(t){return("Integration"in t?t.Integration:t).prototype.name}(n)]=n,i))}),{}),g=new Set((0,e.ev)((0,e.ev)([],Object.keys(h).filter((function(t){return function(t,n){var i,e=n.type,r=n.bundlingStatus,o=n.versionSettings,s="unbundled"!==r&&("browser"===e||(null===(i=null==o?void 0:o.componentTypes)||void 0===i?void 0:i.includes("browser")));return!t.startsWith("Hightouch")&&"Iterable"!==t&&s}(t,h[t])})),!0),Object.keys(p||{}).filter((function(t){return(0,_.PO)(h[t])||(0,_.PO)(null==v?void 0:v[t])})),!0));return Array.from(g).filter((function(t){return!function(t,n){var i=!1===n.All&&void 0===n[t];return!1===n[t]||i}(t,i)})).map((function(n){var i=function(t){var n,i,e,r;return null!==(r=null!==(i=null===(n=null==t?void 0:t.versionSettings)||void 0===n?void 0:n.override)&&void 0!==i?i:null===(e=null==t?void 0:t.versionSettings)||void 0===e?void 0:e.version)&&void 0!==r?r:"latest"}(h[n]),e=new P(n,i,t,f[n],r,null==p?void 0:p[n]);return l.filter((function(t){return t.destinationName===n})).length>0&&o&&e.addMiddleware(o),e}))}}}]);
|
|
2
|
-
//# sourceMappingURL=ajs-destination.bundle.48266e86bbbc2531ac42.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ajs-destination.bundle.48266e86bbbc2531ac42.js","mappings":"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","sources":["webpack://@ht-sdks/events-sdk-js-browser/./src/lib/is-plan-event-enabled.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/ajs-destination/loader.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/ajs-destination/index.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/ajs-destination/utils.ts"],"sourcesContent":["import { PlanEvent, TrackPlan } from '../core/events/interfaces'\n\n/**\n * Determines whether a track event is allowed to be sent based on the\n * user's tracking plan.\n * If the user does not have a tracking plan or the event is allowed based\n * on the tracking plan configuration, returns true.\n */\nexport function isPlanEventEnabled(\n plan: TrackPlan | undefined,\n planEvent: PlanEvent | undefined\n): boolean {\n // Always prioritize the event's `enabled` status\n if (typeof planEvent?.enabled === 'boolean') {\n return planEvent.enabled\n }\n\n // Assume absence of a tracking plan means events are enabled\n return plan?.__default?.enabled ?? true\n}\n","import { Analytics } from '../../core/analytics'\nimport { LegacyIntegrationConfiguration } from '../../browser'\nimport { getNextIntegrationsURL } from '../../lib/parse-cdn'\nimport { Context } from '../../core/context'\nimport { User } from '../../core/user'\nimport { loadScript, unloadScript } from '../../lib/load-script'\nimport {\n LegacyIntegration,\n ClassicIntegrationBuilder,\n ClassicIntegrationSource,\n} from './types'\n\nfunction normalizeName(name: string): string {\n return name.toLowerCase().replace('.', '').replace(/\\s+/g, '-')\n}\n\nfunction obfuscatePathName(pathName: string, obfuscate = false): string | void {\n return obfuscate ? btoa(pathName).replace(/=/g, '') : undefined\n}\n\nexport function resolveIntegrationNameFromSource(\n integrationSource: ClassicIntegrationSource\n) {\n return (\n 'Integration' in integrationSource\n ? integrationSource.Integration\n : integrationSource\n ).prototype.name\n}\n\nfunction recordLoadMetrics(fullPath: string, ctx: Context, name: string): void {\n try {\n const [metric] =\n window?.performance?.getEntriesByName(fullPath, 'resource') ?? []\n // we assume everything that took under 100ms is cached\n metric &&\n ctx.stats.gauge('legacy_destination_time', Math.round(metric.duration), [\n name,\n ...(metric.duration < 100 ? ['cached'] : []),\n ])\n } catch (_) {\n // not available\n }\n}\n\nexport function buildIntegration(\n integrationSource: ClassicIntegrationSource,\n integrationSettings: { [key: string]: any },\n analyticsInstance: Analytics\n): LegacyIntegration {\n let integrationCtr: ClassicIntegrationBuilder\n // GA and Appcues use a different interface to instantiating integrations\n if ('Integration' in integrationSource) {\n const analyticsStub = {\n user: (): User => analyticsInstance.user(),\n addIntegration: (): void => {},\n }\n\n integrationSource(analyticsStub)\n integrationCtr = integrationSource.Integration\n } else {\n integrationCtr = integrationSource\n }\n\n const integration = new integrationCtr(integrationSettings)\n integration.analytics = analyticsInstance\n return integration\n}\n\nexport async function loadIntegration(\n ctx: Context,\n name: string,\n version: string,\n obfuscate?: boolean\n): Promise<ClassicIntegrationSource> {\n const pathName = normalizeName(name)\n const obfuscatedPathName = obfuscatePathName(pathName, obfuscate)\n const path = getNextIntegrationsURL()\n\n const fullPath = `${path}/integrations/${\n obfuscatedPathName ?? pathName\n }/${version}/${obfuscatedPathName ?? pathName}.dynamic.js.gz`\n\n try {\n await loadScript(fullPath)\n recordLoadMetrics(fullPath, ctx, name)\n } catch (err) {\n ctx.stats.gauge('legacy_destination_time', -1, [`plugin:${name}`, `failed`])\n throw err\n }\n\n // @ts-ignore\n const deps: string[] = window[`${pathName}Deps`]\n await Promise.all(deps.map((dep) => loadScript(path + dep + '.gz')))\n\n // @ts-ignore\n window[`${pathName}Loader`]()\n\n return window[\n // @ts-ignore\n `${pathName}Integration`\n ] as ClassicIntegrationSource\n}\n\nexport async function unloadIntegration(\n name: string,\n version: string,\n obfuscate?: boolean\n): Promise<void> {\n const path = getNextIntegrationsURL()\n const pathName = normalizeName(name)\n const obfuscatedPathName = obfuscatePathName(name, obfuscate)\n\n const fullPath = `${path}/integrations/${\n obfuscatedPathName ?? pathName\n }/${version}/${obfuscatedPathName ?? pathName}.dynamic.js.gz`\n\n return unloadScript(fullPath)\n}\n\nexport function resolveVersion(\n settings?: LegacyIntegrationConfiguration\n): string {\n return (\n settings?.versionSettings?.override ??\n settings?.versionSettings?.version ??\n 'latest'\n )\n}\n","import { Integrations, JSONObject } from '../../core/events'\nimport { Alias, Facade, Group, Identify, Page, Track } from '@segment/facade'\nimport { Analytics, InitOptions } from '../../core/analytics'\nimport { LegacySettings } from '../../browser'\nimport { isOffline, isOnline } from '../../core/connection'\nimport { Context, ContextCancelation } from '../../core/context'\nimport { isServer } from '../../core/environment'\nimport { DestinationPlugin, Plugin } from '../../core/plugin'\nimport { attempt } from '@ht-sdks/events-sdk-js-core'\nimport { isPlanEventEnabled } from '../../lib/is-plan-event-enabled'\nimport { mergedOptions } from '../../lib/merged-options'\nimport { pWhile } from '../../lib/p-while'\nimport { PriorityQueue } from '../../lib/priority-queue'\nimport { PersistedPriorityQueue } from '../../lib/priority-queue/persisted'\nimport {\n applyDestinationMiddleware,\n DestinationMiddlewareFunction,\n} from '../middleware'\nimport {\n buildIntegration,\n loadIntegration,\n resolveIntegrationNameFromSource,\n resolveVersion,\n unloadIntegration,\n} from './loader'\nimport { LegacyIntegration, ClassicIntegrationSource } from './types'\nimport { isPlainObject } from '@ht-sdks/events-sdk-js-core'\nimport {\n isDisabledIntegration as shouldSkipIntegration,\n isInstallableIntegration,\n} from './utils'\n\nexport type ClassType<T> = new (...args: unknown[]) => T\n\nasync function flushQueue(\n xt: Plugin,\n queue: PriorityQueue<Context>\n): Promise<PriorityQueue<Context>> {\n const failedQueue: Context[] = []\n\n if (isOffline()) {\n return queue\n }\n\n await pWhile(\n () => queue.length > 0 && isOnline(),\n async () => {\n const ctx = queue.pop()\n if (!ctx) {\n return\n }\n\n const result = await attempt(ctx, xt)\n const success = result instanceof Context\n if (!success) {\n failedQueue.push(ctx)\n }\n }\n )\n\n // re-add failed tasks\n failedQueue.map((failed) => queue.pushWithBackoff(failed))\n return queue\n}\n\nexport class LegacyDestination implements DestinationPlugin {\n name: string\n version: string\n settings: JSONObject\n options: InitOptions = {}\n type: Plugin['type'] = 'destination'\n middleware: DestinationMiddlewareFunction[] = []\n\n private _ready = false\n private _initialized = false\n private onReady: Promise<unknown> | undefined\n private onInitialize: Promise<unknown> | undefined\n private disableAutoISOConversion: boolean\n\n integrationSource?: ClassicIntegrationSource\n integration: LegacyIntegration | undefined\n\n buffer: PriorityQueue<Context>\n flushing = false\n\n constructor(\n name: string,\n version: string,\n writeKey: string,\n settings: JSONObject = {},\n options: InitOptions,\n integrationSource?: ClassicIntegrationSource\n ) {\n this.name = name\n this.version = version\n this.settings = { ...settings }\n this.disableAutoISOConversion = options.disableAutoISOConversion || false\n this.integrationSource = integrationSource\n\n // AJS-Renderer sets an extraneous `type` setting that clobbers\n // existing type defaults. We need to remove it if it's present\n if (this.settings['type'] && this.settings['type'] === 'browser') {\n delete this.settings['type']\n }\n\n this.options = options\n this.buffer = options.disableClientPersistence\n ? new PriorityQueue(4, [])\n : new PersistedPriorityQueue(4, `${writeKey}:dest-${name}`)\n\n this.scheduleFlush()\n }\n\n isLoaded(): boolean {\n return this._ready\n }\n\n ready(): Promise<unknown> {\n return this.onReady ?? Promise.resolve()\n }\n\n async load(ctx: Context, analyticsInstance: Analytics): Promise<void> {\n if (this._ready || this.onReady !== undefined) {\n return\n }\n\n const integrationSource =\n this.integrationSource ??\n (await loadIntegration(\n ctx,\n this.name,\n this.version,\n this.options.obfuscate\n ))\n\n this.integration = buildIntegration(\n integrationSource,\n this.settings,\n analyticsInstance\n )\n\n this.onReady = new Promise((resolve) => {\n const onReadyFn = (): void => {\n this._ready = true\n resolve(true)\n }\n\n this.integration!.once('ready', onReadyFn)\n })\n\n this.onInitialize = new Promise((resolve) => {\n const onInit = (): void => {\n this._initialized = true\n resolve(true)\n }\n\n this.integration!.on('initialize', onInit)\n })\n\n try {\n ctx.stats.increment('analytics_js.integration.invoke', 1, [\n `method:initialize`,\n `integration_name:${this.name}`,\n ])\n\n this.integration.initialize()\n } catch (error) {\n ctx.stats.increment('analytics_js.integration.invoke.error', 1, [\n `method:initialize`,\n `integration_name:${this.name}`,\n ])\n\n throw error\n }\n }\n\n unload(_ctx: Context, _analyticsInstance: Analytics): Promise<void> {\n return unloadIntegration(this.name, this.version, this.options.obfuscate)\n }\n\n addMiddleware(...fn: DestinationMiddlewareFunction[]): void {\n this.middleware = this.middleware.concat(...fn)\n }\n\n shouldBuffer(ctx: Context): boolean {\n return (\n // page events can't be buffered because of destinations that automatically add page views\n ctx.event.type !== 'page' &&\n (isOffline() || this._ready === false || this._initialized === false)\n )\n }\n\n private async send<T extends Facade>(\n ctx: Context,\n clz: ClassType<T>,\n eventType: 'track' | 'identify' | 'page' | 'alias' | 'group'\n ): Promise<Context> {\n if (this.shouldBuffer(ctx)) {\n this.buffer.push(ctx)\n this.scheduleFlush()\n return ctx\n }\n\n const plan = this.options?.plan?.track\n const ev = ctx.event.event\n\n if (plan && ev && this.name !== 'Hightouch.io') {\n // events are always sent to hightouch (legacy behavior)\n const planEvent = plan[ev]\n if (!isPlanEventEnabled(plan, planEvent)) {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n All: false,\n 'Hightouch.io': true,\n })\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: `Event ${ev} disabled for integration ${this.name} in tracking plan`,\n type: 'Dropped by plan',\n })\n )\n return ctx\n } else {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n ...planEvent?.integrations,\n })\n }\n\n if (planEvent?.enabled && planEvent?.integrations![this.name] === false) {\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: `Event ${ev} disabled for integration ${this.name} in tracking plan`,\n type: 'Dropped by plan',\n })\n )\n return ctx\n }\n }\n\n const afterMiddleware = await applyDestinationMiddleware(\n this.name,\n ctx.event,\n this.middleware\n )\n\n if (afterMiddleware === null) {\n return ctx\n }\n\n const event = new clz(afterMiddleware, {\n traverse: !this.disableAutoISOConversion,\n })\n\n ctx.stats.increment('analytics_js.integration.invoke', 1, [\n `method:${eventType}`,\n `integration_name:${this.name}`,\n ])\n\n try {\n if (this.integration) {\n await this.integration.invoke.call(this.integration, eventType, event)\n }\n } catch (err) {\n ctx.stats.increment('analytics_js.integration.invoke.error', 1, [\n `method:${eventType}`,\n `integration_name:${this.name}`,\n ])\n throw err\n }\n\n return ctx\n }\n\n async track(ctx: Context): Promise<Context> {\n return this.send(ctx, Track as ClassType<Track>, 'track')\n }\n\n async page(ctx: Context): Promise<Context> {\n if (this.integration?._assumesPageview && !this._initialized) {\n this.integration.initialize()\n }\n\n return this.onInitialize!.then(() => {\n return this.send(ctx, Page as ClassType<Page>, 'page')\n })\n }\n\n async identify(ctx: Context): Promise<Context> {\n return this.send(ctx, Identify as ClassType<Identify>, 'identify')\n }\n\n async alias(ctx: Context): Promise<Context> {\n return this.send(ctx, Alias as ClassType<Alias>, 'alias')\n }\n\n async group(ctx: Context): Promise<Context> {\n return this.send(ctx, Group as ClassType<Group>, 'group')\n }\n\n private scheduleFlush(): void {\n if (this.flushing) {\n return\n }\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n setTimeout(async () => {\n this.flushing = true\n this.buffer = await flushQueue(this, this.buffer)\n this.flushing = false\n\n if (this.buffer.todo > 0) {\n this.scheduleFlush()\n }\n }, Math.random() * 5000)\n }\n}\n\nexport function ajsDestinations(\n writeKey: string,\n settings: LegacySettings,\n globalIntegrations: Integrations = {},\n options: InitOptions = {},\n routingMiddleware?: DestinationMiddlewareFunction,\n legacyIntegrationSources?: ClassicIntegrationSource[]\n): LegacyDestination[] {\n if (isServer()) {\n return []\n }\n\n if (settings.plan) {\n options = options ?? {}\n options.plan = settings.plan\n }\n\n const routingRules = settings.middlewareSettings?.routingRules ?? []\n const remoteIntegrationsConfig = settings.integrations\n const localIntegrationsConfig = options.integrations\n // merged remote CDN settings with user provided options\n const integrationOptions = mergedOptions(settings, options ?? {}) as Record<\n string,\n JSONObject\n >\n\n const adhocIntegrationSources = legacyIntegrationSources?.reduce(\n (acc, integrationSource) => ({\n ...acc,\n [resolveIntegrationNameFromSource(integrationSource)]: integrationSource,\n }),\n {} as Record<string, ClassicIntegrationSource>\n )\n\n const installableIntegrations = new Set([\n // Remotely configured installable integrations\n ...Object.keys(remoteIntegrationsConfig).filter((name) =>\n isInstallableIntegration(name, remoteIntegrationsConfig[name])\n ),\n\n // Directly provided integration sources are only installable if settings for them are available\n ...Object.keys(adhocIntegrationSources || {}).filter(\n (name) =>\n isPlainObject(remoteIntegrationsConfig[name]) ||\n isPlainObject(localIntegrationsConfig?.[name])\n ),\n ])\n\n return Array.from(installableIntegrations)\n .filter((name) => !shouldSkipIntegration(name, globalIntegrations))\n .map((name) => {\n const integrationSettings = remoteIntegrationsConfig[name]\n const version = resolveVersion(integrationSettings)\n const destination = new LegacyDestination(\n name,\n version,\n writeKey,\n integrationOptions[name],\n options,\n adhocIntegrationSources?.[name]\n )\n\n const routing = routingRules.filter(\n (rule) => rule.destinationName === name\n )\n if (routing.length > 0 && routingMiddleware) {\n destination.addMiddleware(routingMiddleware)\n }\n\n return destination\n })\n}\n","import { Integrations } from '@ht-sdks/events-sdk-js-core'\nimport { LegacyIntegrationConfiguration } from '../..'\n\nexport const isInstallableIntegration = (\n name: string,\n integrationSettings: LegacyIntegrationConfiguration\n) => {\n const { type, bundlingStatus, versionSettings } = integrationSettings\n // We use `!== 'unbundled'` (versus `=== 'bundled'`) to be inclusive of\n // destinations without a defined value for `bundlingStatus`\n const deviceMode =\n bundlingStatus !== 'unbundled' &&\n (type === 'browser' || versionSettings?.componentTypes?.includes('browser'))\n\n // checking for iterable is a quick fix we need in place to prevent\n // errors showing Iterable as a failed destiantion. Ideally, we should\n // fix the Iterable metadata instead, but that's a longer process.\n return !name.startsWith('Hightouch') && name !== 'Iterable' && deviceMode\n}\n\nexport const isDisabledIntegration = (\n integrationName: string,\n globalIntegrations: Integrations\n) => {\n const allDisableAndNotDefined =\n globalIntegrations.All === false &&\n globalIntegrations[integrationName] === undefined\n\n return (\n globalIntegrations[integrationName] === false || allDisableAndNotDefined\n )\n}\n"],"names":["isPlanEventEnabled","plan","planEvent","enabled","__default","normalizeName","name","toLowerCase","replace","obfuscatePathName","pathName","obfuscate","btoa","undefined","loadIntegration","ctx","version","Promise","obfuscatedPathName","path","fullPath","metric","window","performance","getEntriesByName","stats","gauge","Math","round","duration","_","recordLoadMetrics","deps","all","map","dep","flushQueue","xt","queue","failedQueue","length","pop","a","result","push","failed","pushWithBackoff","writeKey","settings","options","integrationSource","type","middleware","_ready","_initialized","flushing","this","disableAutoISOConversion","buffer","disableClientPersistence","scheduleFlush","isLoaded","ready","onReady","resolve","load","analyticsInstance","integration","integrationSettings","integrationCtr","user","addIntegration","Integration","analytics","buildIntegration","once","onInitialize","on","increment","initialize","error","unload","_ctx","_analyticsInstance","unloadIntegration","addMiddleware","concat","fn","shouldBuffer","event","send","clz","eventType","track","ev","updateEvent","integrations","All","cancel","retry","reason","applyDestinationMiddleware","afterMiddleware","traverse","invoke","call","Track","page","_assumesPageview","then","Page","identify","Identify","alias","Alias","group","Group","setTimeout","todo","random","ajsDestinations","globalIntegrations","routingMiddleware","legacyIntegrationSources","routingRules","middlewareSettings","remoteIntegrationsConfig","localIntegrationsConfig","integrationOptions","adhocIntegrationSources","reduce","acc","prototype","resolveIntegrationNameFromSource","installableIntegrations","Set","Object","keys","filter","bundlingStatus","versionSettings","deviceMode","componentTypes","includes","startsWith","isInstallableIntegration","Array","from","integrationName","allDisableAndNotDefined","override","resolveVersion","destination","LegacyDestination","rule","destinationName"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[119],{1956:function(t,n,e){e.r(n),e.d(n,{form:function(){return i},link:function(){return o}});var r=e(888);function o(t,n,e,o){var i=this;return t?((t instanceof Element?[t]:"toArray"in t?t.toArray():t).forEach((function(t){t.addEventListener("click",(function(u){var c,s,a=n instanceof Function?n(t):n,f=e instanceof Function?e(t):e,l=t.getAttribute("href")||t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("xlink:href")||(null===(c=t.getElementsByTagName("a")[0])||void 0===c?void 0:c.getAttribute("href")),h=(0,r.FJ)(i.track(a,f,null!=o?o:{}),null!==(s=i.settings.timeout)&&void 0!==s?s:500);(function(t,n){return!("_blank"!==t.target||!n)})(t,l)||function(t){var n=t;return!!(n.ctrlKey||n.shiftKey||n.metaKey||n.button&&1==n.button)}(u)||l&&(u.preventDefault?u.preventDefault():u.returnValue=!1,h.catch(console.error).then((function(){window.location.href=l})).catch(console.error))}),!1)})),this):this}function i(t,n,e,o){var i=this;return t?(t instanceof HTMLFormElement&&(t=[t]),t.forEach((function(t){if(!(t instanceof Element))throw new TypeError("Must pass HTMLElement to trackForm/trackSubmit.");var u=function(u){var c;u.preventDefault?u.preventDefault():u.returnValue=!1;var s=n instanceof Function?n(t):n,a=e instanceof Function?e(t):e;(0,r.FJ)(i.track(s,a,null!=o?o:{}),null!==(c=i.settings.timeout)&&void 0!==c?c:500).catch(console.error).then((function(){t.submit()})).catch(console.error)},c=window.jQuery||window.Zepto;c?c(t).submit(u):t.addEventListener("submit",u,!1)})),this):this}}}]);
|
|
2
|
-
//# sourceMappingURL=auto-track.bundle.08c0e0f63bb92f96f8b5.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[579],{9057:function(e,t,n){n.d(t,{o:function(){return a}});var i=n(5163),r=n(1494),s=n(3710),o=n(6338),a=function(){function e(e,t,n){this.name=e,this.version=t,this.actions=n,this.type="destination",this.middleware=[],this.alias=this._createMethod("alias"),this.group=this._createMethod("group"),this.identify=this._createMethod("identify"),this.page=this._createMethod("page"),this.screen=this._createMethod("screen"),this.track=this._createMethod("track")}return e.prototype.isLoaded=function(){return!0},e.prototype.load=function(){return console.debug("loaded destination plugin: ".concat(this.name," v").concat(this.version)),Promise.resolve()},e.prototype.addMiddleware=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];(e=this.middleware).push.apply(e,t)},e.prototype.transform=function(e){return(0,i.mG)(this,void 0,Promise,(function(){var t;return(0,i.Jh)(this,(function(n){switch(n.label){case 0:return[4,(0,o.applyDestinationMiddleware)(this.name,e.event,this.middleware)];case 1:return null==(t=n.sent())&&e.cancel(new r.Y({retry:!1,reason:"dropped by destination middleware"})),[2,new s._(t)]}}))}))},e.prototype._createMethod=function(e){var t=this;return function(n){return(0,i.mG)(t,void 0,Promise,(function(){var t;return(0,i.Jh)(this,(function(i){switch(i.label){case 0:return this.actions[e]?[4,this.transform(n)]:[2,n];case 1:return t=i.sent(),[4,this.actions[e](t)];case 2:return i.sent(),[2,n]}}))}))}},e}()},3682:function(e,t,n){n.r(t);var i=n(5163),r=n(9057);t.default=function(e){var t=e.trackAllPages,n=void 0!==t&&t,s=e.trackNamedPages,o=void 0===s||s,a=e.trackCategorizedPages,c=void 0===a||a,d=function(e){window.dataLayer.push((0,i.pi)((0,i.pi)((0,i.pi)((0,i.pi)({},e.userId&&{userId:e.userId}),e.anonymousId&&{hightouchAnonymousId:e.anonymousId}),{event:e.event}),e.properties))};return new r.o("Google Tag Manager","0.0.1",{page:function(e){if(n||o&&e.event.name||c&&e.event.category){var t=["Viewed",e.event.category,e.event.name,"Page"].filter(Boolean).join(" ");d((0,i.pi)((0,i.pi)({},e.event),{type:"track",event:t}))}},track:function(e){d(e.event)}})}}}]);
|
|
2
|
-
//# sourceMappingURL=google-tag-manager.bundle.238ad1d40bdf04d984ef.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"google-tag-manager.bundle.238ad1d40bdf04d984ef.js","mappings":"iOAwBA,aAIE,WACWA,EACAC,EACAC,GAFA,KAAAF,KAAAA,EACA,KAAAC,QAAAA,EACA,KAAAC,QAAAA,EANF,KAAAC,KAAO,cACP,KAAAC,WAA8C,GAqBvD,KAAAC,MAAQC,KAAKC,cAAc,SAC3B,KAAAC,MAAQF,KAAKC,cAAc,SAC3B,KAAAE,SAAWH,KAAKC,cAAc,YAC9B,KAAAG,KAAOJ,KAAKC,cAAc,QAC1B,KAAAI,OAASL,KAAKC,cAAc,UAC5B,KAAAK,MAAQN,KAAKC,cAAc,QApBxB,CAoDL,OAlDE,YAAAM,SAAA,WACE,OAAO,CACT,EAEA,YAAAC,KAAA,WAEE,OADAC,QAAQC,MAAM,qCAA8BV,KAAKN,KAAI,aAAKM,KAAKL,UACxDgB,QAAQC,SACjB,EAEA,YAAAC,cAAA,W,UAAc,mDACZ,EAAAb,KAAKF,YAAWgB,KAAI,QAAIC,EAC1B,EASc,YAAAC,UAAd,SAAwBC,G,2BAAeN,SAAO,W,8DACtB,UAAM,IAAAO,4BAC1BlB,KAAKN,KACLuB,EAAIE,MACJnB,KAAKF,a,OAYP,OATqB,OANfsB,EAAgB,WAOpBH,EAAII,OACF,IAAI,IAAmB,CACrBC,OAAO,EACPC,OAAQ,uCAKP,CAAP,EAAO,IAAI,IAAQH,I,QAGb,YAAAnB,cAAR,SAAsBuB,GAAtB,WACE,OAAO,SAAOP,GAAY,wBAAGN,SAAO,W,8DAClC,OAAKX,KAAKJ,QAAQ4B,GAEK,GAAMxB,KAAKgB,UAAUC,IAFV,CAAP,EAAOA,G,OAIlC,OAFMQ,EAAiB,SAEvB,GAAMzB,KAAKJ,QAAQ4B,GAASC,I,OAE5B,OAFA,SAEO,CAAP,EAAOR,G,OAEX,EACF,EA5DA,E,sDCkDA,UA3CuE,SAAC,G,IACtE,IAAAS,cAAAA,OAAa,IAAG,GAAK,EACrB,IAAAC,gBAAAA,OAAe,IAAG,GAAI,EACtB,IAAAC,sBAAAA,OAAqB,IAAG,GAAI,EAEtBC,EAAY,SAACV,GACjBW,OAAOC,UAAUjB,MAAK,sCAChBK,EAAMa,QAAU,CAClBA,OAAQb,EAAMa,SAEZb,EAAMc,aAAe,CACvBC,qBAAsBf,EAAMc,cAC5B,CACFd,MAAOA,EAAMA,QACVA,EAAMgB,YAEb,EAEA,OAAO,IAAI,IAAY,qBAAsB,QAAS,CACpD/B,KAAM,SAACa,GACL,GACES,GACCC,GAAmBV,EAAIE,MAAMzB,MAC7BkC,GAAyBX,EAAIE,MAAMiB,SACpC,CACA,IAAMC,EAAY,CAAC,SAAUpB,EAAIE,MAAMiB,SAAUnB,EAAIE,MAAMzB,KAAM,QAC9D4C,OAAOC,SACPC,KAAK,KAERX,GAAU,oBACLZ,EAAIE,OAAK,CACZtB,KAAM,QACNsB,MAAOkB,I,CAGb,EAEA/B,MAAO,SAACW,GACNY,EAAUZ,EAAIE,MAChB,GAEJ,C","sources":["webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/destinations/destination.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/destinations/google-tag-manager.ts"],"sourcesContent":["import type { DestinationPlugin, Plugin } from '../../core/plugin'\nimport { Context, ContextCancelation } from '../../core/context'\nimport {\n applyDestinationMiddleware,\n DestinationMiddlewareFunction,\n} from '../middleware'\n\n// removes the return type from a function\ntype NoReturn<T> = T extends (...args: any[]) => any\n ? (...args: Parameters<T>) => void | Promise<void>\n : T\n\ntype PluginActions = Pick<\n Plugin,\n 'alias' | 'group' | 'identify' | 'page' | 'screen' | 'track'\n>\n\ntype DestinationActions = {\n [K in keyof PluginActions]: NoReturn<PluginActions[K]>\n}\n\n/**\n * Convenience class for writing 3rd party destination plugins\n */\nexport class Destination implements DestinationPlugin {\n readonly type = 'destination'\n readonly middleware: DestinationMiddlewareFunction[] = []\n\n constructor(\n readonly name: string,\n readonly version: string,\n readonly actions: DestinationActions\n ) {}\n\n isLoaded() {\n return true\n }\n\n load() {\n console.debug(`loaded destination plugin: ${this.name} v${this.version}`)\n return Promise.resolve()\n }\n\n addMiddleware(...fn: DestinationMiddlewareFunction[]) {\n this.middleware.push(...fn)\n }\n\n alias = this._createMethod('alias')\n group = this._createMethod('group')\n identify = this._createMethod('identify')\n page = this._createMethod('page')\n screen = this._createMethod('screen')\n track = this._createMethod('track')\n\n private async transform(ctx: Context): Promise<Context> {\n const modifiedEvent = await applyDestinationMiddleware(\n this.name,\n ctx.event,\n this.middleware\n )\n\n if (modifiedEvent == null) {\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware',\n })\n )\n }\n\n return new Context(modifiedEvent)\n }\n\n private _createMethod(action: keyof DestinationActions) {\n return async (ctx: Context): Promise<Context> => {\n if (!this.actions[action]) return ctx\n\n const transformedCtx = await this.transform(ctx)\n\n await this.actions[action]!(transformedCtx)\n\n return ctx\n }\n }\n}\n","import type { Context } from '../../core/context'\nimport type { HightouchEvent } from '../../core/events/interfaces'\nimport type { DestinationFactory } from './types'\nimport { Destination } from './destination'\n\ndeclare global {\n interface Window {\n dataLayer: Array<any>\n }\n}\n\ntype GoogleTagManagerSettings = {\n /**\n * If a `Viewed Page` event should be sent for all `htevents.page` calls\n */\n trackAllPages?: boolean\n\n /**\n * If a `Viewed <name> Page` event should be sent for `htevents.page('Name')` calls\n */\n trackNamedPages?: boolean\n\n /**\n * If a `Viewed <category> <name> Page` event should be sent for `htevents.page('Category', 'Name')` calls\n */\n trackCategorizedPages?: boolean\n}\n\n/**\n * https://github.com/segmentio/analytics.js-integrations/blob/master/integrations/google-tag-manager/lib/index.js\n */\nconst googleTagManager: DestinationFactory<GoogleTagManagerSettings> = ({\n trackAllPages = false,\n trackNamedPages = true,\n trackCategorizedPages = true,\n}) => {\n const pushEvent = (event: HightouchEvent) => {\n window.dataLayer.push({\n ...(event.userId && {\n userId: event.userId,\n }),\n ...(event.anonymousId && {\n hightouchAnonymousId: event.anonymousId,\n }),\n event: event.event,\n ...event.properties,\n })\n }\n\n return new Destination('Google Tag Manager', '0.0.1', {\n page: (ctx: Context) => {\n if (\n trackAllPages ||\n (trackNamedPages && ctx.event.name) ||\n (trackCategorizedPages && ctx.event.category)\n ) {\n const eventName = ['Viewed', ctx.event.category, ctx.event.name, 'Page']\n .filter(Boolean)\n .join(' ')\n\n pushEvent({\n ...ctx.event,\n type: 'track',\n event: eventName,\n })\n }\n },\n\n track: (ctx: Context) => {\n pushEvent(ctx.event)\n },\n })\n}\n\nexport default googleTagManager\n"],"names":["name","version","actions","type","middleware","alias","this","_createMethod","group","identify","page","screen","track","isLoaded","load","console","debug","Promise","resolve","addMiddleware","push","fn","transform","ctx","applyDestinationMiddleware","event","modifiedEvent","cancel","retry","reason","action","transformedCtx","trackAllPages","trackNamedPages","trackCategorizedPages","pushEvent","window","dataLayer","userId","anonymousId","hightouchAnonymousId","properties","category","eventName","filter","Boolean","join"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[418],{9057:function(e,t,n){n.d(t,{o:function(){return a}});var i=n(5163),r=n(1494),o=n(3710),s=n(6338),a=function(){function e(e,t,n){this.name=e,this.version=t,this.actions=n,this.type="destination",this.middleware=[],this.alias=this._createMethod("alias"),this.group=this._createMethod("group"),this.identify=this._createMethod("identify"),this.page=this._createMethod("page"),this.screen=this._createMethod("screen"),this.track=this._createMethod("track")}return e.prototype.isLoaded=function(){return!0},e.prototype.load=function(){return console.debug("loaded destination plugin: ".concat(this.name," v").concat(this.version)),Promise.resolve()},e.prototype.addMiddleware=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];(e=this.middleware).push.apply(e,t)},e.prototype.transform=function(e){return(0,i.mG)(this,void 0,Promise,(function(){var t;return(0,i.Jh)(this,(function(n){switch(n.label){case 0:return[4,(0,s.applyDestinationMiddleware)(this.name,e.event,this.middleware)];case 1:return null==(t=n.sent())&&e.cancel(new r.Y({retry:!1,reason:"dropped by destination middleware"})),[2,new o._(t)]}}))}))},e.prototype._createMethod=function(e){var t=this;return function(n){return(0,i.mG)(t,void 0,Promise,(function(){var t;return(0,i.Jh)(this,(function(i){switch(i.label){case 0:return this.actions[e]?[4,this.transform(n)]:[2,n];case 1:return t=i.sent(),[4,this.actions[e](t)];case 2:return i.sent(),[2,n]}}))}))}},e}()},2947:function(e,t,n){n.r(t);var i=n(5163),r=n(9057);t.default=function(e){var t=e.measurementId,n=void 0===t?[]:t,o=e.trackAllPages,s=void 0!==o&&o,a=e.trackNamedPages,d=void 0===a||a,c=e.trackCategorizedPages,u=void 0===c||c,h=(Array.isArray(n)?n:[n]).filter(Boolean),f=function(e){var t=e.event;return(0,i.pi)((0,i.pi)((0,i.pi)((0,i.pi)({},t.userId&&{user_id:t.userId}),t.anonymousId&&{hightouch_anonymous_id:t.anonymousId}),h.length>0&&{send_to:h}),t.properties)};return new r.o("gtag","0.0.1",{identify:function(e){e.event.userId&&h.forEach((function(t){window.gtag("config",t,{user_id:e.event.userId})}))},page:function(e){if(s||d&&e.event.name||u&&e.event.category){var t=["Viewed",e.event.category,e.event.name,"Page"].filter(Boolean).join(" ");window.gtag("event",t,(0,i.pi)({},f(e)))}},track:function(e){window.gtag("event",e.event.event,(0,i.pi)({},f(e)))}})}}}]);
|
|
2
|
-
//# sourceMappingURL=gtag.bundle.a5e7c472f1c04f2b9ebd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gtag.bundle.a5e7c472f1c04f2b9ebd.js","mappings":"iOAwBA,aAIE,WACWA,EACAC,EACAC,GAFA,KAAAF,KAAAA,EACA,KAAAC,QAAAA,EACA,KAAAC,QAAAA,EANF,KAAAC,KAAO,cACP,KAAAC,WAA8C,GAqBvD,KAAAC,MAAQC,KAAKC,cAAc,SAC3B,KAAAC,MAAQF,KAAKC,cAAc,SAC3B,KAAAE,SAAWH,KAAKC,cAAc,YAC9B,KAAAG,KAAOJ,KAAKC,cAAc,QAC1B,KAAAI,OAASL,KAAKC,cAAc,UAC5B,KAAAK,MAAQN,KAAKC,cAAc,QApBxB,CAoDL,OAlDE,YAAAM,SAAA,WACE,OAAO,CACT,EAEA,YAAAC,KAAA,WAEE,OADAC,QAAQC,MAAM,qCAA8BV,KAAKN,KAAI,aAAKM,KAAKL,UACxDgB,QAAQC,SACjB,EAEA,YAAAC,cAAA,W,UAAc,mDACZ,EAAAb,KAAKF,YAAWgB,KAAI,QAAIC,EAC1B,EASc,YAAAC,UAAd,SAAwBC,G,2BAAeN,SAAO,W,8DACtB,UAAM,IAAAO,4BAC1BlB,KAAKN,KACLuB,EAAIE,MACJnB,KAAKF,a,OAYP,OATqB,OANfsB,EAAgB,WAOpBH,EAAII,OACF,IAAI,IAAmB,CACrBC,OAAO,EACPC,OAAQ,uCAKP,CAAP,EAAO,IAAI,IAAQH,I,QAGb,YAAAnB,cAAR,SAAsBuB,GAAtB,WACE,OAAO,SAAOP,GAAY,wBAAGN,SAAO,W,8DAClC,OAAKX,KAAKJ,QAAQ4B,GAEK,GAAMxB,KAAKgB,UAAUC,IAFV,CAAP,EAAOA,G,OAIlC,OAFMQ,EAAiB,SAEvB,GAAMzB,KAAKJ,QAAQ4B,GAASC,I,OAE5B,OAFA,SAEO,CAAP,EAAOR,G,OAEX,EACF,EA5DA,E,sDCoEA,UA5D+C,SAAC,G,IAC9C,IAAAS,cAAAA,OAAa,IAAG,KAAE,EAClB,IAAAC,cAAAA,OAAa,IAAG,GAAK,EACrB,IAAAC,gBAAAA,OAAe,IAAG,GAAI,EACtB,IAAAC,sBAAAA,OAAqB,IAAG,GAAI,EAEtBC,GACJC,MAAMC,QAAQN,GAAiBA,EAAgB,CAACA,IAChDO,OAAOC,SAEHC,EAAY,SAAC,G,IAAEhB,EAAK,QACxB,OAAO,sCACDA,EAAMiB,QAAU,CAClBC,QAASlB,EAAMiB,SAEbjB,EAAMmB,aAAe,CACvBC,uBAAwBpB,EAAMmB,cAE5BR,EAAeU,OAAS,GAAK,CAC/BC,QAASX,IAERX,EAAMuB,WAEb,EAEA,OAAO,IAAI,IAAY,OAAQ,QAAS,CACtCvC,SAAU,SAACc,GACLA,EAAIE,MAAMiB,QACZN,EAAea,SAAQ,SAACjB,GACtBkB,OAAOC,KAAK,SAAUnB,EAAe,CACnCW,QAASpB,EAAIE,MAAMiB,QAEvB,GAEJ,EAEAhC,KAAM,SAACa,GACL,GACEU,GACCC,GAAmBX,EAAIE,MAAMzB,MAC7BmC,GAAyBZ,EAAIE,MAAM2B,SACpC,CACA,IAAMC,EAAY,CAAC,SAAU9B,EAAIE,MAAM2B,SAAU7B,EAAIE,MAAMzB,KAAM,QAC9DuC,OAAOC,SACPc,KAAK,KAERJ,OAAOC,KAAK,QAASE,GAAW,WAC3BZ,EAAUlB,I,CAGnB,EAEAX,MAAO,SAACW,GACN2B,OAAOC,KAAK,QAAS5B,EAAIE,MAAMA,OAAO,WACjCgB,EAAUlB,IAEjB,GAEJ,C","sources":["webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/destinations/destination.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/destinations/gtag.ts"],"sourcesContent":["import type { DestinationPlugin, Plugin } from '../../core/plugin'\nimport { Context, ContextCancelation } from '../../core/context'\nimport {\n applyDestinationMiddleware,\n DestinationMiddlewareFunction,\n} from '../middleware'\n\n// removes the return type from a function\ntype NoReturn<T> = T extends (...args: any[]) => any\n ? (...args: Parameters<T>) => void | Promise<void>\n : T\n\ntype PluginActions = Pick<\n Plugin,\n 'alias' | 'group' | 'identify' | 'page' | 'screen' | 'track'\n>\n\ntype DestinationActions = {\n [K in keyof PluginActions]: NoReturn<PluginActions[K]>\n}\n\n/**\n * Convenience class for writing 3rd party destination plugins\n */\nexport class Destination implements DestinationPlugin {\n readonly type = 'destination'\n readonly middleware: DestinationMiddlewareFunction[] = []\n\n constructor(\n readonly name: string,\n readonly version: string,\n readonly actions: DestinationActions\n ) {}\n\n isLoaded() {\n return true\n }\n\n load() {\n console.debug(`loaded destination plugin: ${this.name} v${this.version}`)\n return Promise.resolve()\n }\n\n addMiddleware(...fn: DestinationMiddlewareFunction[]) {\n this.middleware.push(...fn)\n }\n\n alias = this._createMethod('alias')\n group = this._createMethod('group')\n identify = this._createMethod('identify')\n page = this._createMethod('page')\n screen = this._createMethod('screen')\n track = this._createMethod('track')\n\n private async transform(ctx: Context): Promise<Context> {\n const modifiedEvent = await applyDestinationMiddleware(\n this.name,\n ctx.event,\n this.middleware\n )\n\n if (modifiedEvent == null) {\n ctx.cancel(\n new ContextCancelation({\n retry: false,\n reason: 'dropped by destination middleware',\n })\n )\n }\n\n return new Context(modifiedEvent)\n }\n\n private _createMethod(action: keyof DestinationActions) {\n return async (ctx: Context): Promise<Context> => {\n if (!this.actions[action]) return ctx\n\n const transformedCtx = await this.transform(ctx)\n\n await this.actions[action]!(transformedCtx)\n\n return ctx\n }\n }\n}\n","import type { Context } from '../../core/context'\nimport type { DestinationFactory } from './types'\nimport { Destination } from './destination'\n\ndeclare global {\n interface Window {\n gtag: Function\n }\n}\n\ntype GtagSettings = {\n /**\n * The Google measurement ID(s) to send events to (GA4, Ads)\n */\n measurementId?: string | string[]\n\n /**\n * If a `Viewed Page` event should be sent for all `htevents.page` calls\n */\n trackAllPages?: boolean\n\n /**\n * If a `Viewed <name> Page` event should be sent for `htevents.page('Name')` calls\n */\n trackNamedPages?: boolean\n\n /**\n * If a `Viewed <category> <name> Page` event should be sent for `htevents.page('Category', 'Name')` calls\n */\n trackCategorizedPages?: boolean\n}\n\nconst gtag: DestinationFactory<GtagSettings> = ({\n measurementId = [],\n trackAllPages = false,\n trackNamedPages = true,\n trackCategorizedPages = true,\n}) => {\n const measurementIds = (\n Array.isArray(measurementId) ? measurementId : [measurementId]\n ).filter(Boolean)\n\n const baseEvent = ({ event }: Context) => {\n return {\n ...(event.userId && {\n user_id: event.userId,\n }),\n ...(event.anonymousId && {\n hightouch_anonymous_id: event.anonymousId,\n }),\n ...(measurementIds.length > 0 && {\n send_to: measurementIds,\n }),\n ...event.properties,\n }\n }\n\n return new Destination('gtag', '0.0.1', {\n identify: (ctx) => {\n if (ctx.event.userId) {\n measurementIds.forEach((measurementId) => {\n window.gtag('config', measurementId, {\n user_id: ctx.event.userId,\n })\n })\n }\n },\n\n page: (ctx) => {\n if (\n trackAllPages ||\n (trackNamedPages && ctx.event.name) ||\n (trackCategorizedPages && ctx.event.category)\n ) {\n const eventName = ['Viewed', ctx.event.category, ctx.event.name, 'Page']\n .filter(Boolean)\n .join(' ')\n\n window.gtag('event', eventName, {\n ...baseEvent(ctx),\n })\n }\n },\n\n track: (ctx) => {\n window.gtag('event', ctx.event.event, {\n ...baseEvent(ctx),\n })\n },\n })\n}\n\nexport default gtag\n"],"names":["name","version","actions","type","middleware","alias","this","_createMethod","group","identify","page","screen","track","isLoaded","load","console","debug","Promise","resolve","addMiddleware","push","fn","transform","ctx","applyDestinationMiddleware","event","modifiedEvent","cancel","retry","reason","action","transformedCtx","measurementId","trackAllPages","trackNamedPages","trackCategorizedPages","measurementIds","Array","isArray","filter","Boolean","baseEvent","userId","user_id","anonymousId","hightouch_anonymous_id","length","send_to","properties","forEach","window","gtag","category","eventName","join"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[150],{9141:function(s,e,n){n.r(e),n.d(e,{loadLegacyVideoPlugins:function(){return r}});var t=n(5163);function r(s){return(0,t.mG)(this,void 0,Promise,(function(){var e;return(0,t.Jh)(this,(function(t){switch(t.label){case 0:return[4,n.e(799).then(n.t.bind(n,9799,23))];case 1:return e=t.sent(),s._plugins=e,[2]}}))}))}}}]);
|
|
2
|
-
//# sourceMappingURL=legacyVideos.bundle.6250709892bb05b68333.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[96],{7473:function(s,r,e){function t(s,r){return Object.keys(r).reduce((function(e,t){t.startsWith(s)&&(e[t.substr(s.length)]=r[t]);return e}),{})}e.r(r),e.d(r,{queryString:function(){return n}});var a=e(6863),i=e(7595);function n(s,r){var e=document.createElement("a");e.href=r;var n=e.search.slice(1).split("&").reduce((function(s,r){var e=r.split("="),t=e[0],i=e[1];return s[t]=(0,a.a)(i),s}),{}),u=[],_=n.ajs_uid,d=n.ajs_event,o=n.ajs_aid,c=(0,i.PO)(s.options.useQueryString)?s.options.useQueryString:{},j=c.aid,v=void 0===j?/.+/:j,f=c.uid,y=void 0===f?/.+/:f;if(o){var h=Array.isArray(n.ajs_aid)?n.ajs_aid[0]:n.ajs_aid;v.test(h)&&s.setAnonymousId(h)}if(_){var p=Array.isArray(n.ajs_uid)?n.ajs_uid[0]:n.ajs_uid;if(y.test(p)){var k=t("ajs_trait_",n);u.push(s.identify(p,k))}}if(d){var l=Array.isArray(n.ajs_event)?n.ajs_event[0]:n.ajs_event,A=t("ajs_prop_",n);u.push(s.track(l,A))}return Promise.all(u)}}}]);
|
|
2
|
-
//# sourceMappingURL=queryString.bundle.e47b8db88c102418c8c2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryString.bundle.e47b8db88c102418c8c2.js","mappings":"oJAQO,SAASA,EACdC,EACAC,GAEA,OAAOC,OAAOC,KAAKF,GAAQG,QAAO,SAACC,EAAwBC,GACrDA,EAAIC,WAAWP,KAEjBK,EADcC,EAAIE,OAAOR,EAAOS,SACnBR,EAAOK,IAEtB,OAAOD,CACT,GAAG,CAAC,EACN,C,yECTO,SAASK,EACdC,EACAC,GAEA,IAAMC,EAAIC,SAASC,cAAc,KACjCF,EAAEG,KAAOJ,EACT,IACMK,EADSJ,EAAEK,OAAOC,MAAM,GACRC,MAAM,KAAKhB,QAAO,SAACC,EAAwBgB,GACzD,MAASA,EAAID,MAAM,KAAlBE,EAAC,KAAEC,EAAC,KAEX,OADAlB,EAAIiB,IAAK,EAAAE,EAAA,GAA2BD,GAC7BlB,CACT,GAAG,CAAC,GAEEoB,EAAQ,GAENC,EAAgCT,EAAM,QAA7BU,EAAuBV,EAAM,UAAlBW,EAAYX,EAAM,QACxC,GAAqD,QACzDN,EAAUkB,QAAQC,gBAEhBnB,EAAUkB,QAAQC,eAClB,CAAC,EAJG,IAAAC,IAAKC,OAAU,IAAG,OAAI,EAAE,IAAAC,IAAKC,OAAU,IAAG,OAAI,EAMtD,GAAIN,EAAS,CACX,IAAMO,EAASC,MAAMC,QAAQpB,EAAOW,SAChCX,EAAOW,QAAQ,GACfX,EAAOW,QAEPI,EAAWM,KAAKH,IAClBxB,EAAU4B,eAAeJ,E,CAI7B,GAAIT,EAAS,CACX,IAAMO,EAAMG,MAAMC,QAAQpB,EAAOS,SAC7BT,EAAOS,QAAQ,GACfT,EAAOS,QAEX,GAAIQ,EAAWI,KAAKL,GAAM,CACxB,IAAMO,EAASzC,EAAW,aAAckB,GAExCQ,EAAMgB,KAAK9B,EAAU+B,SAAST,EAAKO,G,EAIvC,GAAIb,EAAW,CACb,IAAMgB,EAAQP,MAAMC,QAAQpB,EAAOU,WAC/BV,EAAOU,UAAU,GACjBV,EAAOU,UACLiB,EAAQ7C,EAAW,YAAakB,GACtCQ,EAAMgB,KAAK9B,EAAUkC,MAAMF,EAAOC,G,CAGpC,OAAOE,QAAQC,IAAItB,EACrB,C","sources":["webpack://@ht-sdks/events-sdk-js-browser/./src/core/query-string/pickPrefix.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/core/query-string/index.ts"],"sourcesContent":["import { QueryStringParams } from '.'\n\n/**\n * Returns an object containing only the properties prefixed by the input\n * string.\n * Ex: prefix('ajs_traits_', { ajs_traits_address: '123 St' })\n * will return { address: '123 St' }\n **/\nexport function pickPrefix(\n prefix: string,\n object: QueryStringParams\n): QueryStringParams {\n return Object.keys(object).reduce((acc: QueryStringParams, key: string) => {\n if (key.startsWith(prefix)) {\n const field = key.substr(prefix.length)\n acc[field] = object[key]!\n }\n return acc\n }, {})\n}\n","import { pickPrefix } from './pickPrefix'\nimport { gracefulDecodeURIComponent } from './gracefulDecodeURIComponent'\nimport { Analytics } from '../analytics'\nimport { Context } from '../context'\nimport { isPlainObject } from '@ht-sdks/events-sdk-js-core'\n\nexport interface QueryStringParams {\n [key: string]: string | null\n}\n\nexport function queryString(\n analytics: Analytics,\n query: string\n): Promise<Context[]> {\n const a = document.createElement('a')\n a.href = query\n const parsed = a.search.slice(1)\n const params = parsed.split('&').reduce((acc: QueryStringParams, str) => {\n const [k, v] = str.split('=')\n acc[k] = gracefulDecodeURIComponent(v)\n return acc\n }, {})\n\n const calls = []\n\n const { ajs_uid, ajs_event, ajs_aid } = params\n const { aid: aidPattern = /.+/, uid: uidPattern = /.+/ } = isPlainObject(\n analytics.options.useQueryString\n )\n ? analytics.options.useQueryString\n : {}\n\n if (ajs_aid) {\n const anonId = Array.isArray(params.ajs_aid)\n ? params.ajs_aid[0]\n : params.ajs_aid\n\n if (aidPattern.test(anonId)) {\n analytics.setAnonymousId(anonId)\n }\n }\n\n if (ajs_uid) {\n const uid = Array.isArray(params.ajs_uid)\n ? params.ajs_uid[0]\n : params.ajs_uid\n\n if (uidPattern.test(uid)) {\n const traits = pickPrefix('ajs_trait_', params)\n\n calls.push(analytics.identify(uid, traits))\n }\n }\n\n if (ajs_event) {\n const event = Array.isArray(params.ajs_event)\n ? params.ajs_event[0]\n : params.ajs_event\n const props = pickPrefix('ajs_prop_', params)\n calls.push(analytics.track(event, props))\n }\n\n return Promise.all(calls)\n}\n"],"names":["pickPrefix","prefix","object","Object","keys","reduce","acc","key","startsWith","substr","length","queryString","analytics","query","a","document","createElement","href","params","search","slice","split","str","k","v","gracefulDecodeURIComponent","calls","ajs_uid","ajs_event","ajs_aid","options","useQueryString","aid","aidPattern","uid","uidPattern","anonId","Array","isArray","test","setAnonymousId","traits","push","identify","event","props","track","Promise","all"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[214],{9568:function(e,t,r){r.r(t),r.d(t,{remoteMiddlewares:function(){return i}});var n=r(5163),s=r(204),a=r(7070),c=r(7566);function i(e,t,r){var i;return(0,n.mG)(this,void 0,Promise,(function(){var o,u,l,d,f=this;return(0,n.Jh)(this,(function(h){switch(h.label){case 0:return(0,s.s)()?[2,[]]:(o=(0,c.Kg)(),u=null!==(i=t.enabledMiddleware)&&void 0!==i?i:{},l=Object.entries(u).filter((function(e){e[0];return e[1]})).map((function(e){return e[0]})),d=l.map((function(t){return(0,n.mG)(f,void 0,void 0,(function(){var s,c,i,u;return(0,n.Jh)(this,(function(n){switch(n.label){case 0:s=t.replace("@segment/",""),c=s,r&&(c=btoa(s).replace(/=/g,"")),i="".concat(o,"/middleware/").concat(c,"/latest/").concat(c,".js.gz"),n.label=1;case 1:return n.trys.push([1,3,,4]),[4,(0,a.v)(i)];case 2:return n.sent(),[2,window["".concat(s,"Middleware")]];case 3:return u=n.sent(),e.log("error",u),e.stats.increment("failed_remote_middleware"),[3,4];case 4:return[2]}}))}))})),[4,Promise.all(d)]);case 1:return[2,h.sent().filter(Boolean)]}}))}))}}}]);
|
|
2
|
-
//# sourceMappingURL=remoteMiddleware.bundle.4da71e934f9fcee73678.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[493],{9254:function(n,e,t){function i(n,e){var t,i;return"boolean"==typeof(null==e?void 0:e.enabled)?e.enabled:null===(i=null===(t=null==n?void 0:n.__default)||void 0===t?void 0:t.enabled)||void 0===i||i}t.d(e,{n:function(){return i}})},5081:function(n,e,t){t.r(e),t.d(e,{schemaFilter:function(){return o}});var i=t(5163),r=t(9254);function o(n,e){function t(t){var o=n,u=t.event.event;if(o&&u){var s=o[u];if(!(0,r.n)(o,s))return t.updateEvent("integrations",(0,i.pi)((0,i.pi)({},t.event.integrations),{All:!1,"Hightouch.io":!0})),t;var a=function(n,e){var t,i;if(!n||!Object.keys(n))return{};var r=n.integrations?Object.keys(n.integrations).filter((function(e){return!1===n.integrations[e]})):[],o=[];return(null!==(t=e.remotePlugins)&&void 0!==t?t:[]).forEach((function(n){r.forEach((function(e){(n.name.includes(e)||e.includes(n.name))&&o.push(n.name)}))})),(null!==(i=e.remotePlugins)&&void 0!==i?i:[]).reduce((function(n,e){return e.settings.subscriptions&&o.includes(e.name)&&e.settings.subscriptions.forEach((function(t){return n["".concat(e.name," ").concat(t.partnerAction)]=!1})),n}),{})}(s,e);t.updateEvent("integrations",(0,i.pi)((0,i.pi)((0,i.pi)({},t.event.integrations),null==s?void 0:s.integrations),a))}return t}return{name:"Schema Filter",version:"0.1.0",isLoaded:function(){return!0},load:function(){return Promise.resolve()},type:"before",page:t,alias:t,track:t,identify:t,group:t}}}}]);
|
|
2
|
-
//# sourceMappingURL=schemaFilter.bundle.a17fd62888b293279f4b.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schemaFilter.bundle.a17fd62888b293279f4b.js","mappings":"qJAQO,SAASA,EACdC,EACAC,G,QAGA,MAAkC,kBAAvBA,aAAS,EAATA,EAAWC,SACbD,EAAUC,QAIY,QAAxB,EAAe,QAAf,EAAAF,aAAI,EAAJA,EAAMG,iBAAS,eAAED,eAAO,QACjC,C,gIC2BO,SAASE,EACdC,EACAC,GAEA,SAASC,EAAOC,GACd,IAAMR,EAAOK,EACPI,EAAKD,EAAIE,MAAMA,MAErB,GAAIV,GAAQS,EAAI,CACd,IAAMR,EAAYD,EAAKS,GACvB,KAAK,OAAmBT,EAAMC,GAM5B,OALAO,EAAIG,YAAY,gBAAgB,oBAC3BH,EAAIE,MAAME,cAAY,CACzBC,KAAK,EACL,gBAAgB,KAEXL,EAEP,IAAMM,EAzDd,SACEd,EACAM,G,QAEA,IAAKN,IAASe,OAAOC,KAAKhB,GACxB,MAAO,CAAC,EAGV,IAAMiB,EAAuBjB,EAAKY,aAC9BG,OAAOC,KAAKhB,EAAKY,cAAcL,QAC7B,SAACW,GAAM,OAA0B,IAA1BlB,EAAKY,aAAcM,EAAnB,IAET,GAIEC,EAAkC,GASxC,OARwB,QAAtB,EAAAb,EAASc,qBAAa,QAAI,IAAIC,SAAQ,SAACC,GACvCL,EAAqBI,SAAQ,SAACE,IACxBD,EAAEE,KAAKC,SAASF,IAAQA,EAAIE,SAASH,EAAEE,QACzCL,EAAsBO,KAAKJ,EAAEE,KAEjC,GACF,KAE8B,QAAtB,EAAAlB,EAASc,qBAAa,QAAI,IAAIO,QAAO,SAACC,EAAKN,GAUjD,OATIA,EAAEhB,SAAwB,eACxBa,EAAsBM,SAASH,EAAEE,OAEnCF,EAAEhB,SAAwB,cAAEe,SAE1B,SAACQ,GAAQ,OAACD,EAAI,UAAGN,EAAEE,KAAI,YAAIK,EAAIC,iBAAmB,CAAzC,IAIRF,CACT,GAAG,CAAC,EACN,CAoBgCG,CAA2B9B,EAAWK,GAE9DE,EAAIG,YAAY,gBAAgB,6BAC3BH,EAAIE,MAAME,cACVX,aAAS,EAATA,EAAWW,cACXE,G,CAKT,OAAON,CACT,CAEA,MAAO,CACLgB,KAAM,gBACNQ,QAAS,QACTC,SAAU,WAAM,UAChBC,KAAM,WAAM,OAAAC,QAAQC,SAAR,EACZC,KAAM,SACNC,KAAM/B,EACNgC,MAAOhC,EACPF,MAAOE,EACPiC,SAAUjC,EACVkC,MAAOlC,EAEX,C","sources":["webpack://@ht-sdks/events-sdk-js-browser/./src/lib/is-plan-event-enabled.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/schema-filter/index.ts"],"sourcesContent":["import { PlanEvent, TrackPlan } from '../core/events/interfaces'\n\n/**\n * Determines whether a track event is allowed to be sent based on the\n * user's tracking plan.\n * If the user does not have a tracking plan or the event is allowed based\n * on the tracking plan configuration, returns true.\n */\nexport function isPlanEventEnabled(\n plan: TrackPlan | undefined,\n planEvent: PlanEvent | undefined\n): boolean {\n // Always prioritize the event's `enabled` status\n if (typeof planEvent?.enabled === 'boolean') {\n return planEvent.enabled\n }\n\n // Assume absence of a tracking plan means events are enabled\n return plan?.__default?.enabled ?? true\n}\n","import { LegacySettings } from '../../browser'\nimport { Context } from '../../core/context'\nimport { PlanEvent, TrackPlan } from '../../core/events/interfaces'\nimport { Plugin } from '../../core/plugin'\nimport { isPlanEventEnabled } from '../../lib/is-plan-event-enabled'\nimport { RemotePlugin } from '../remote-loader'\n\nfunction disabledActionDestinations(\n plan: PlanEvent | undefined,\n settings: LegacySettings\n): { [destination: string]: string[] } {\n if (!plan || !Object.keys(plan)) {\n return {}\n }\n\n const disabledIntegrations = plan.integrations\n ? Object.keys(plan.integrations).filter(\n (i) => plan.integrations![i] === false\n )\n : []\n\n // This accounts for cases like Fullstory, where the settings.integrations\n // contains a \"Fullstory\" object but settings.remotePlugins contains \"Fullstory (Actions)\"\n const disabledRemotePlugins: string[] = []\n ;(settings.remotePlugins ?? []).forEach((p: RemotePlugin) => {\n disabledIntegrations.forEach((int) => {\n if (p.name.includes(int) || int.includes(p.name)) {\n disabledRemotePlugins.push(p.name)\n }\n })\n })\n\n return (settings.remotePlugins ?? []).reduce((acc, p) => {\n if (p.settings['subscriptions']) {\n if (disabledRemotePlugins.includes(p.name)) {\n // @ts-expect-error element implicitly has an 'any' type because p.settings is a JSONObject\n p.settings['subscriptions'].forEach(\n // @ts-expect-error parameter 'sub' implicitly has an 'any' type\n (sub) => (acc[`${p.name} ${sub.partnerAction}`] = false)\n )\n }\n }\n return acc\n }, {})\n}\n\nexport function schemaFilter(\n track: TrackPlan | undefined,\n settings: LegacySettings\n): Plugin {\n function filter(ctx: Context): Context {\n const plan = track\n const ev = ctx.event.event\n\n if (plan && ev) {\n const planEvent = plan[ev]\n if (!isPlanEventEnabled(plan, planEvent)) {\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n All: false,\n 'Hightouch.io': true,\n })\n return ctx\n } else {\n const disabledActions = disabledActionDestinations(planEvent, settings)\n\n ctx.updateEvent('integrations', {\n ...ctx.event.integrations,\n ...planEvent?.integrations,\n ...disabledActions,\n })\n }\n }\n\n return ctx\n }\n\n return {\n name: 'Schema Filter',\n version: '0.1.0',\n isLoaded: () => true,\n load: () => Promise.resolve(),\n type: 'before',\n page: filter,\n alias: filter,\n track: filter,\n identify: filter,\n group: filter,\n }\n}\n"],"names":["isPlanEventEnabled","plan","planEvent","enabled","__default","schemaFilter","track","settings","filter","ctx","ev","event","updateEvent","integrations","All","disabledActions","Object","keys","disabledIntegrations","i","disabledRemotePlugins","remotePlugins","forEach","p","int","name","includes","push","reduce","acc","sub","partnerAction","disabledActionDestinations","version","isLoaded","load","Promise","resolve","type","page","alias","identify","group"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_ht_sdks_events_sdk_js_browser=self.webpackChunk_ht_sdks_events_sdk_js_browser||[]).push([[604],{7843:function(r){r.exports=function(r,e,t,n,o){for(e=e.split?e.split("."):e,n=0;n<e.length;n++)r=r?r[e[n]]:o;return r===o?t:r}},6952:function(r,e,t){"use strict";t.r(e),t.d(e,{tsubMiddleware:function(){return _}});var n=function(){function r(r){this.rules=[],this.rules=r||[]}return r.prototype.getRulesByDestinationName=function(r){for(var e=[],t=0,n=this.rules;t<n.length;t++){var o=n[t];o.destinationName!==r&&void 0!==o.destinationName||e.push(o)}return e},r}(),o=t(7843),a=t.n(o);function i(r,e){if(!e)throw new Error("No matcher supplied!");switch(e.type){case"all":return!0;case"fql":return function(r,e){if(!r)return!1;try{r=JSON.parse(r)}catch(e){throw new Error('Failed to JSON.parse FQL intermediate representation "'.concat(r,'": ').concat(e))}var t=c(r,e);if("boolean"!=typeof t)return!1;return t}(e.ir,r);default:throw new Error("Matcher of type ".concat(e.type," unsupported."))}}function c(r,e){if(!Array.isArray(r))return!0===s(r,e);var t=r[0];switch(t){case"!":return!c(r[1],e);case"or":for(var n=1;n<r.length;n++)if(c(r[n],e))return!0;return!1;case"and":for(n=1;n<r.length;n++)if(!c(r[n],e))return!1;return!0;case"=":case"!=":return function(r,e,t,n){u(r)&&(r=c(r,n));u(e)&&(e=c(e,n));"object"==typeof r&&"object"==typeof e&&(r=JSON.stringify(r),e=JSON.stringify(e));switch(t){case"=":return r===e;case"!=":return r!==e;default:throw new Error("Invalid operator in compareItems: ".concat(t))}}(s(r[1],e),s(r[2],e),t,e);case"<=":case"<":case">":case">=":return function(r,e,t,n){u(r)&&(r=c(r,n));u(e)&&(e=c(e,n));if("number"!=typeof r||"number"!=typeof e)return!1;switch(t){case"<=":return r<=e;case">=":return r>=e;case"<":return r<e;case">":return r>e;default:throw new Error("Invalid operator in compareNumbers: ".concat(t))}}(s(r[1],e),s(r[2],e),t,e);case"in":return function(r,e,t){return void 0!==e.find((function(e){return s(e,t)===r}))}(s(r[1],e),s(r[2],e),e);case"contains":return function(r,e){if("string"!=typeof r||"string"!=typeof e)return!1;return-1!==r.indexOf(e)}(s(r[1],e),s(r[2],e));case"match":return function(r,e){if("string"!=typeof r||"string"!=typeof e)return!1;return function(r,e){var t,n;r:for(;r.length>0;){var o=void 0,a=void 0;if(o=(t=f(r)).star,a=t.chunk,r=t.pattern,o&&""===a)return!0;var i=l(a,e),c=i.t,s=i.ok,u=i.err;if(u)return!1;if(!s||!(0===c.length||r.length>0)){if(o)for(var p=0;p<e.length;p++){if(c=(n=l(a,e.slice(p+1))).t,s=n.ok,u=n.err,s){if(0===r.length&&c.length>0)continue;e=c;continue r}if(u)return!1}return!1}e=c}return 0===e.length}(e,r)}(s(r[1],e),s(r[2],e));case"lowercase":var o=s(r[1],e);return"string"!=typeof o?null:o.toLowerCase();case"typeof":return typeof s(r[1],e);case"length":return function(r){if(null===r)return 0;if(!Array.isArray(r)&&"string"!=typeof r)return NaN;return r.length}(s(r[1],e));default:throw new Error("FQL IR could not evaluate for token: ".concat(t))}}function s(r,e){return Array.isArray(r)?r:"object"==typeof r?r.value:a()(e,r)}function u(r){return!!Array.isArray(r)&&(("lowercase"===r[0]||"length"===r[0]||"typeof"===r[0])&&2===r.length||("contains"===r[0]||"match"===r[0])&&3===r.length)}function f(r){for(var e={star:!1,chunk:"",pattern:""};r.length>0&&"*"===r[0];)r=r.slice(1),e.star=!0;var t,n=!1;r:for(t=0;t<r.length;t++)switch(r[t]){case"\\":t+1<r.length&&t++;break;case"[":n=!0;break;case"]":n=!1;break;case"*":if(!n)break r}return e.chunk=r.slice(0,t),e.pattern=r.slice(t),e}function l(r,e){for(var t,n,o={t:"",ok:!1,err:!1};r.length>0;){if(0===e.length)return o;switch(r[0]){case"[":var a=e[0];e=e.slice(1);var i=!0;(r=r.slice(1)).length>0&&"^"===r[0]&&(i=!1,r=r.slice(1));for(var c=!1,s=0;;){if(r.length>0&&"]"===r[0]&&s>0){r=r.slice(1);break}var u,f="";if(u=(t=p(r)).char,r=t.newChunk,t.err)return o;if(f=u,"-"===r[0]&&(f=(n=p(r.slice(1))).char,r=n.newChunk,n.err))return o;u<=a&&a<=f&&(c=!0),s++}if(c!==i)return o;break;case"?":e=e.slice(1),r=r.slice(1);break;case"\\":if(0===(r=r.slice(1)).length)return o.err=!0,o;default:if(r[0]!==e[0])return o;e=e.slice(1),r=r.slice(1)}}return o.t=e,o.ok=!0,o.err=!1,o}function p(r){var e={char:"",newChunk:"",err:!1};return 0===r.length||"-"===r[0]||"]"===r[0]||"\\"===r[0]&&0===(r=r.slice(1)).length?(e.err=!0,e):(e.char=r[0],e.newChunk=r.slice(1),0===e.newChunk.length&&(e.err=!0),e)}var h=t(4791),v=t.n(h),g=t(380);function y(r,e){if(a()(r,e)){for(var t=e.split("."),n=t.pop();t.length&&"\\"===t[t.length-1].slice(-1);)n=t.pop().slice(0,-1)+"."+n;for(;t.length;)r=r[e=t.shift()];return delete r[n]}return!0}function d(r,e){for(var t=r,n=0,o=e;n<o.length;n++){var a=o[n];switch(a.type){case"drop":return null;case"drop_properties":w(t,a.config);break;case"allow_properties":b(t,a.config);break;case"sample_event":if(N(t,a.config))break;return null;case"map_properties":m(t,a.config);break;case"hash_properties":break;default:throw new Error('Transformer of type "'.concat(a.type,'" is unsupported.'))}}return t}function w(r,e){k(r,e.drop,(function(r,e){e.forEach((function(e){return delete r[e]}))}))}function b(r,e){k(r,e.allow,(function(r,e){Object.keys(r).forEach((function(t){e.includes(t)||delete r[t]}))}))}function k(r,e,t){Object.entries(e).forEach((function(e){var n=e[0],o=e[1],i=function(r){"object"==typeof r&&null!==r&&t(r,o)},c=""===n?r:a()(r,n);Array.isArray(c)?c.forEach(i):i(c)}))}function m(r,e){var t=JSON.parse(JSON.stringify(r));for(var n in e.map)if(Object.prototype.hasOwnProperty.call(e.map,n)){var o=e.map[n],i=n.split("."),c=void 0;if(i.length>1?(i.pop(),c=a()(t,i.join("."))):c=r,"object"==typeof c){if(o.copy){var s=a()(t,o.copy);void 0!==s&&(0,g.N)(r,n,s)}else if(o.move){var u=a()(t,o.move);void 0!==u&&(0,g.N)(r,n,u),y(r,o.move)}else Object.prototype.hasOwnProperty.call(o,"set")&&(0,g.N)(r,n,o.set);if(o.to_string){var f=a()(r,n);if("string"==typeof f||"object"==typeof f&&null!==f)continue;void 0!==f?(0,g.N)(r,n,JSON.stringify(f)):(0,g.N)(r,n,"undefined")}}}}function N(r,e){return!(e.sample.percent<=0)&&(e.sample.percent>=1||(e.sample.path?function(r,e){var t=a()(r,e.sample.path),n=v().hash(JSON.stringify(t)).match(/.{2}/g).map((function(r){return parseInt(r,16)})),o=-64,i=[];j(n.slice(0,8),i);for(var c=0,s=0;s<64&&1!==i[s];s++)c++;if(0!==c){var u=[];j(n.slice(9,16),u),o-=c,i.splice(0,c),u.splice(64-c),i=i.concat(u)}return i[63]=0===i[63]?1:0,function(r,e){return r*Math.pow(2,e)}(parseInt(i.join(""),2),o)<e.sample.percent}(r,e):(t=e.sample.percent,Math.random()<=t)));var t}function j(r,e){for(var t=0;t<8;t++)for(var n=r[t],o=128;o>=1;o/=2)n-o>=0?(n-=o,e.push(1)):e.push(0)}var _=function(r){return function(e){var t=e.payload,o=e.integration,a=e.next;new n(r).getRulesByDestinationName(o).forEach((function(r){for(var e=r.matchers,n=r.transformers,o=0;o<e.length;o++)if(i(t.obj,e[o])&&(t.obj=d(t.obj,n[o]),null===t.obj))return a(null)})),a(t)}}}}]);
|
|
2
|
-
//# sourceMappingURL=tsub-middleware.bundle.59e8d6916920ab24b51c.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tsub-middleware.bundle.59e8d6916920ab24b51c.js","mappings":"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","sources":["webpack://@ht-sdks/events-sdk-js-browser/../../node_modules/dlv/dist/dlv.umd.js","webpack://@ht-sdks/events-sdk-js-browser/./src/lib/tsub/store.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/lib/tsub/matchers.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/lib/tsub/unset.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/lib/tsub/transformers.ts","webpack://@ht-sdks/events-sdk-js-browser/./src/plugins/routing-middleware/index.ts"],"sourcesContent":["!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=function(t,n,e,i,o){for(n=n.split?n.split(\".\"):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t}:\"function\"==typeof define&&define.amd?define(function(){return function(t,n,e,i,o){for(n=n.split?n.split(\".\"):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t}}):t.dlv=function(t,n,e,i,o){for(n=n.split?n.split(\".\"):n,i=0;i<n.length;i++)t=t?t[n[i]]:o;return t===o?e:t}}(this);\n//# sourceMappingURL=dlv.umd.js.map\n","import { TransformerConfig } from './transformers'\n\nexport interface Rule {\n scope: string\n target_type: string\n matchers: Matcher[]\n transformers: Transformer[][]\n destinationName?: string\n}\n\nexport interface Matcher {\n type: string\n ir: string\n}\n\nexport interface Transformer {\n type: string\n config?: TransformerConfig | null\n}\n\nexport default class Store {\n private readonly rules: Rule[] = []\n\n constructor(rules?: Rule[]) {\n this.rules = rules || []\n }\n\n public getRulesByDestinationName(destinationName: string): Rule[] {\n const rules: Rule[] = []\n for (const rule of this.rules) {\n // Rules with no destinationName are global (workspace || workspace::source)\n if (\n rule.destinationName === destinationName ||\n rule.destinationName === undefined\n ) {\n rules.push(rule)\n }\n }\n\n return rules\n }\n}\n","import * as Store from './store'\nimport get from 'dlv'\n\ntype Event = Record<string, any>\n\nexport default function matches(event: Event, matcher: Store.Matcher): boolean {\n if (!matcher) {\n throw new Error('No matcher supplied!')\n }\n\n switch (matcher.type) {\n case 'all':\n return all()\n case 'fql':\n return fql(matcher.ir, event)\n default:\n throw new Error(`Matcher of type ${matcher.type} unsupported.`)\n }\n}\n\nfunction all(): boolean {\n return true\n}\n\nfunction fql(ir: Store.Matcher['ir'], event: Event): boolean {\n if (!ir) {\n return false\n }\n\n try {\n ir = JSON.parse(ir)\n } catch (e) {\n throw new Error(\n `Failed to JSON.parse FQL intermediate representation \"${ir}\": ${e}`\n )\n }\n\n const result = fqlEvaluate(ir, event)\n if (typeof result !== 'boolean') {\n // An error was returned, or a lowercase, typeof, or similar function was run alone. Nothing to evaluate.\n return false\n }\n\n return result\n}\n\n// FQL is 100% type strict in Go. Show no mercy to types which do not comply.\nfunction fqlEvaluate(ir: any, event: Event): any {\n // If the given ir chunk is not an array, then we should check the single given path or value for literally `true`.\n if (!Array.isArray(ir)) {\n return getValue(ir, event) === true\n }\n\n // Otherwise, it is a sequence of ordered steps to follow to reach our solution!\n const item = ir[0]\n switch (item) {\n /*** Unary cases ***/\n // '!' => Invert the result\n case '!':\n return !fqlEvaluate(ir[1], event)\n\n /*** Binary cases ***/\n // 'or' => Any condition being true returns true\n case 'or':\n for (let i = 1; i < ir.length; i++) {\n if (fqlEvaluate(ir[i], event)) {\n return true\n }\n }\n return false\n // 'and' => Any condition being false returns false\n case 'and':\n for (let i = 1; i < ir.length; i++) {\n if (!fqlEvaluate(ir[i], event)) {\n return false\n }\n }\n return true\n // Equivalence comparisons\n case '=':\n case '!=':\n return compareItems(\n getValue(ir[1], event),\n getValue(ir[2], event),\n item,\n event\n )\n // Numerical comparisons\n case '<=':\n case '<':\n case '>':\n case '>=':\n // Compare the two values with the given operator.\n return compareNumbers(\n getValue(ir[1], event),\n getValue(ir[2], event),\n item,\n event\n )\n // item in [list]' => Checks whether item is in list\n case 'in':\n return checkInList(getValue(ir[1], event), getValue(ir[2], event), event)\n\n /*** Functions ***/\n // 'contains(str1, str2)' => The first string has a substring of the second string\n case 'contains':\n return contains(getValue(ir[1], event), getValue(ir[2], event))\n // 'match(str, match)' => The given string matches the provided glob matcher\n case 'match':\n return match(getValue(ir[1], event), getValue(ir[2], event))\n // 'lowercase(str)' => Returns a lowercased string, null if the item is not a string\n case 'lowercase': {\n const target = getValue(ir[1], event)\n if (typeof target !== 'string') {\n return null\n }\n return target.toLowerCase()\n }\n // 'typeof(val)' => Returns the FQL type of the value\n case 'typeof':\n // TODO: Do we need mapping to allow for universal comparisons? e.g. Object -> JSON, Array -> List, Floats?\n return typeof getValue(ir[1], event)\n // 'length(val)' => Returns the length of an array or string, NaN if neither\n case 'length':\n return length(getValue(ir[1], event))\n // If nothing hit, we or the IR messed up somewhere.\n default:\n throw new Error(`FQL IR could not evaluate for token: ${item}`)\n }\n}\n\nfunction getValue(item: any, event: Event) {\n // If item is an array, leave it as-is.\n if (Array.isArray(item)) {\n return item\n }\n\n // If item is an object, it has the form of `{\"value\": VAL}`\n if (typeof item === 'object') {\n return item.value\n }\n\n // Otherwise, it's an event path, e.g. \"properties.email\"\n return get(event, item)\n}\n\nfunction checkInList(item: any, list: any[], event: Event): boolean {\n return list.find((it) => getValue(it, event) === item) !== undefined\n}\n\nfunction compareNumbers(\n first: any,\n second: any,\n operator: string,\n event: Event\n): boolean {\n // Check if it's more IR (such as a length() function)\n if (isIR(first)) {\n first = fqlEvaluate(first, event)\n }\n\n if (isIR(second)) {\n second = fqlEvaluate(second, event)\n }\n\n if (typeof first !== 'number' || typeof second !== 'number') {\n return false\n }\n\n // Reminder: NaN is not comparable to any other number (including NaN) and will always return false as desired.\n switch (operator) {\n // '<=' => The first number is less than or equal to the second.\n case '<=':\n return first <= second\n // '>=' => The first number is greater than or equal to the second\n case '>=':\n return first >= second\n // '<' The first number is less than the second.\n case '<':\n return first < second\n // '>' The first number is greater than the second.\n case '>':\n return first > second\n default:\n throw new Error(`Invalid operator in compareNumbers: ${operator}`)\n }\n}\n\nfunction compareItems(\n first: any,\n second: any,\n operator: string,\n event: Event\n): boolean {\n // Check if it's more IR (such as a lowercase() function)\n if (isIR(first)) {\n first = fqlEvaluate(first, event)\n }\n\n if (isIR(second)) {\n second = fqlEvaluate(second, event)\n }\n\n if (typeof first === 'object' && typeof second === 'object') {\n first = JSON.stringify(first)\n second = JSON.stringify(second)\n }\n\n // Objects with the exact same contents AND order ARE considered identical. (Don't compare by reference)\n // Even in Go, this MUST be the same byte order.\n // e.g. {a: 1, b:2} === {a: 1, b:2} BUT {a:1, b:2} !== {b:2, a:1}\n // Maybe later we'll use a stable stringifier, but we're matching server-side behavior for now.\n switch (operator) {\n // '=' => The two following items are exactly identical\n case '=':\n return first === second\n // '!=' => The two following items are NOT exactly identical.\n case '!=':\n return first !== second\n default:\n throw new Error(`Invalid operator in compareItems: ${operator}`)\n }\n}\n\nfunction contains(first: any, second: any): boolean {\n if (typeof first !== 'string' || typeof second !== 'string') {\n return false\n }\n\n return first.indexOf(second) !== -1\n}\n\nfunction match(str: any, glob: any): boolean {\n if (typeof str !== 'string' || typeof glob !== 'string') {\n return false\n }\n\n return globMatches(glob, str)\n}\n\nfunction length(item: any) {\n // Match server-side behavior.\n if (item === null) {\n return 0\n }\n\n // Type-check to avoid returning .length of an object\n if (!Array.isArray(item) && typeof item !== 'string') {\n return NaN\n }\n\n return item.length\n}\n\n// This is a heuristic technically speaking, but should be close enough. The odds of someone trying to test\n// a func with identical IR notation is pretty low.\nfunction isIR(value: any): boolean {\n // TODO: This can be better checked by checking if this is a {\"value\": THIS}\n if (!Array.isArray(value)) {\n return false\n }\n\n // Function checks\n if (\n (value[0] === 'lowercase' ||\n value[0] === 'length' ||\n value[0] === 'typeof') &&\n value.length === 2\n ) {\n return true\n }\n\n if ((value[0] === 'contains' || value[0] === 'match') && value.length === 3) {\n return true\n }\n\n return false\n}\n\n// Any reputable glob matcher is designed to work on filesystems and doesn't allow the override of the separator\n// character \"/\". This is problematic since our server-side representation e.g. evaluates \"match('ab/c', 'a*)\"\n// as TRUE, whereas any glob matcher for JS available does false. So we're rewriting it here.\n// See: https://github.com/segmentio/glob/blob/master/glob.go\nfunction globMatches(pattern: string, str: string): boolean {\n Pattern: while (pattern.length > 0) {\n let star\n let chunk\n ;({ star, chunk, pattern } = scanChunk(pattern))\n if (star && chunk === '') {\n // Trailing * matches rest of string\n return true\n }\n\n // Look for match at current position\n let { t, ok, err } = matchChunk(chunk, str)\n if (err) {\n return false\n }\n\n // If we're the last chunk, make sure we've exhausted the str\n // otherwise we'll give a false result even if we could still match\n // using the star\n if (ok && (t.length === 0 || pattern.length > 0)) {\n str = t\n continue\n }\n\n if (star) {\n // Look for match, skipping i+1 bytes.\n for (let i = 0; i < str.length; i++) {\n ;({ t, ok, err } = matchChunk(chunk, str.slice(i + 1)))\n if (ok) {\n // If we're the last chunk, make sure we exhausted the str.\n if (pattern.length === 0 && t.length > 0) {\n continue\n }\n\n str = t\n continue Pattern\n }\n\n if (err) {\n return false\n }\n }\n }\n\n return false\n }\n\n return str.length === 0\n}\n\nfunction scanChunk(pattern: string): any {\n const result = {\n star: false,\n chunk: '',\n pattern: '',\n }\n\n while (pattern.length > 0 && pattern[0] === '*') {\n pattern = pattern.slice(1)\n result.star = true\n }\n\n let inRange = false\n let i\n\n Scan: for (i = 0; i < pattern.length; i++) {\n switch (pattern[i]) {\n case '\\\\':\n // Error check handled in matchChunk: bad pattern.\n if (i + 1 < pattern.length) {\n i++\n }\n break\n case '[':\n inRange = true\n break\n case ']':\n inRange = false\n break\n case '*':\n if (!inRange) {\n break Scan\n }\n }\n }\n\n result.chunk = pattern.slice(0, i)\n result.pattern = pattern.slice(i)\n return result\n}\n\n// matchChunk checks whether chunk matches the beginning of s.\n// If so, it returns the remainder of s (after the match).\n// Chunk is all single-character operators: literals, char classes, and ?.\nfunction matchChunk(chunk: string, str: string): any {\n const result = {\n t: '',\n ok: false,\n err: false,\n }\n\n while (chunk.length > 0) {\n if (str.length === 0) {\n return result\n }\n\n switch (chunk[0]) {\n case '[': {\n const char = str[0]\n str = str.slice(1)\n chunk = chunk.slice(1)\n\n let notNegated = true\n if (chunk.length > 0 && chunk[0] === '^') {\n notNegated = false\n chunk = chunk.slice(1)\n }\n\n // Parse all ranges\n let foundMatch = false\n let nRange = 0\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (chunk.length > 0 && chunk[0] === ']' && nRange > 0) {\n chunk = chunk.slice(1)\n break\n }\n\n let lo = ''\n let hi = ''\n let err\n ;({ char: lo, newChunk: chunk, err } = getEsc(chunk))\n if (err) {\n return result\n }\n\n hi = lo\n if (chunk[0] === '-') {\n ;({ char: hi, newChunk: chunk, err } = getEsc(chunk.slice(1)))\n if (err) {\n return result\n }\n }\n\n if (lo <= char && char <= hi) {\n foundMatch = true\n }\n\n nRange++\n }\n\n if (foundMatch !== notNegated) {\n return result\n }\n\n break\n }\n case '?':\n str = str.slice(1)\n chunk = chunk.slice(1)\n break\n case '\\\\':\n chunk = chunk.slice(1)\n if (chunk.length === 0) {\n result.err = true\n return result\n }\n // Fallthrough, missing break intentional.\n default:\n if (chunk[0] !== str[0]) {\n return result\n }\n str = str.slice(1)\n chunk = chunk.slice(1)\n }\n }\n\n result.t = str\n result.ok = true\n result.err = false\n return result\n}\n\n// getEsc gets a possibly-escaped character from chunk, for a character class.\nfunction getEsc(chunk: string): any {\n const result = {\n char: '',\n newChunk: '',\n err: false,\n }\n\n if (chunk.length === 0 || chunk[0] === '-' || chunk[0] === ']') {\n result.err = true\n return result\n }\n\n if (chunk[0] === '\\\\') {\n chunk = chunk.slice(1)\n if (chunk.length === 0) {\n result.err = true\n return result\n }\n }\n\n // Unlike Go, JS strings operate on characters instead of bytes.\n // This is why we aren't copying over the GetRuneFromString stuff.\n result.char = chunk[0]\n result.newChunk = chunk.slice(1)\n if (result.newChunk.length === 0) {\n result.err = true\n }\n\n return result\n}\n","import get from 'dlv'\n\nexport function unset(obj: any, prop: any) {\n if (get(obj, prop)) {\n const segs = prop.split('.')\n let last = segs.pop()\n while (segs.length && segs[segs.length - 1].slice(-1) === '\\\\') {\n last = segs.pop().slice(0, -1) + '.' + last\n }\n while (segs.length) obj = obj[(prop = segs.shift())]\n return delete obj[last]\n }\n return true\n}\n","import { Transformer } from './store'\nimport MD5 from 'spark-md5'\nimport get from 'dlv'\nimport { dset } from 'dset'\nimport { unset } from './unset'\n\nexport type KeyTarget = Record<string, string[]>\n\nexport interface TransformerConfig {\n allow?: KeyTarget\n drop?: KeyTarget\n sample?: TransformerConfigSample\n map?: Record<string, TransformerConfigMap>\n}\n\nexport interface TransformerConfigSample {\n percent: number\n path: string\n}\n\nexport interface TransformerConfigMap {\n set?: any\n copy?: string\n move?: string\n to_string?: boolean\n}\n\nexport default function transform(\n payload: any,\n transformers: Transformer[]\n): any {\n const transformedPayload = payload\n\n for (const transformer of transformers) {\n switch (transformer.type) {\n case 'drop':\n return null\n case 'drop_properties':\n dropProperties(transformedPayload, transformer.config!)\n break\n case 'allow_properties':\n allowProperties(transformedPayload, transformer.config!)\n break\n case 'sample_event':\n if (sampleEvent(transformedPayload, transformer.config!)) {\n break\n }\n return null\n case 'map_properties':\n mapProperties(transformedPayload, transformer.config!)\n break\n case 'hash_properties':\n // Not yet supported, but don't throw an error. Just ignore.\n break\n default:\n throw new Error(\n `Transformer of type \"${transformer.type}\" is unsupported.`\n )\n }\n }\n\n return transformedPayload\n}\n\n// dropProperties removes all specified props from the object.\nfunction dropProperties(payload: any, config: TransformerConfig) {\n filterProperties(payload, config.drop!, (matchedObj, dropList) => {\n dropList.forEach((k) => delete matchedObj[k])\n })\n}\n\n// allowProperties ONLY allows the specific targets within the keys. (e.g. \"a.foo\": [\"bar\", \"baz\"]\n// on {a: {foo: {bar: 1, baz: 2}, other: 3}} will not have any drops, as it only looks inside a.foo\nfunction allowProperties(payload: any, config: TransformerConfig) {\n filterProperties(payload, config.allow!, (matchedObj, preserveList) => {\n Object.keys(matchedObj).forEach((key) => {\n if (!preserveList.includes(key)) {\n delete matchedObj[key]\n }\n })\n })\n}\n\nfunction filterProperties(\n payload: any,\n ruleSet: KeyTarget,\n filterCb: (matchedObject: any, targets: string[]) => void\n) {\n Object.entries(ruleSet).forEach(([key, targets]) => {\n const filter = (obj: any) => {\n // Can only act on objects.\n if (typeof obj !== 'object' || obj === null) {\n return\n }\n\n filterCb(obj, targets)\n }\n\n // If key is empty, it refers to the top-level object.\n const matchedObject = key === '' ? payload : get(payload, key)\n\n if (Array.isArray(matchedObject)) {\n matchedObject.forEach(filter)\n } else {\n filter(matchedObject)\n }\n })\n}\n\nfunction mapProperties(payload: any, config: TransformerConfig) {\n // Some configs might try to modify or read from a field multiple times. We will only ever read\n // values as they were before any modifications began. Thus, if you try to override e.g.\n // {a: {b: 1}} with set(a, 'b', 2) (which results in {a: {b: 2}}) and then try to copy a.b into\n // a.c, you will get {a: {b: 2, c:1}} and NOT {a: {b:2, c:2}}. This prevents map evaluation\n // order from mattering, and === what server-side does.\n // See: https://github.com/segmentio/tsub/blob/661695a63b60b90471796e667458f076af788c19/transformers/map_properties.go#L179-L200\n const initialPayload = JSON.parse(JSON.stringify(payload))\n\n for (const key in config.map) {\n if (!Object.prototype.hasOwnProperty.call(config.map, key)) {\n continue\n }\n\n const actionMap: TransformerConfigMap = config.map[key]\n\n // Can't manipulate non-objects. Check that the parent is one. Strip the last .field\n // from the string.\n const splitKey = key.split('.')\n let parent\n if (splitKey.length > 1) {\n splitKey.pop()\n parent = get(initialPayload, splitKey.join('.'))\n } else {\n parent = payload\n }\n\n if (typeof parent !== 'object') {\n continue\n }\n\n // These actions are exclusive to each other.\n if (actionMap.copy) {\n const valueToCopy = get(initialPayload, actionMap.copy)\n if (valueToCopy !== undefined) {\n dset(payload, key, valueToCopy)\n }\n } else if (actionMap.move) {\n const valueToMove = get(initialPayload, actionMap.move)\n if (valueToMove !== undefined) {\n dset(payload, key, valueToMove)\n }\n\n unset(payload, actionMap.move)\n }\n // Have to check only if property exists, as null, undefined, and other vals could be explicitly set.\n else if (Object.prototype.hasOwnProperty.call(actionMap, 'set')) {\n dset(payload, key, actionMap.set)\n }\n\n // to_string is not exclusive and can be paired with other actions. Final action.\n if (actionMap.to_string) {\n const valueToString = get(payload, key)\n\n // Do not string arrays and objects. Do not double-encode strings.\n if (\n typeof valueToString === 'string' ||\n (typeof valueToString === 'object' && valueToString !== null)\n ) {\n continue\n }\n\n // TODO: Check stringifier in Golang for parity.\n if (valueToString !== undefined) {\n dset(payload, key, JSON.stringify(valueToString))\n } else {\n // TODO: Check this behavior.\n dset(payload, key, 'undefined')\n }\n }\n }\n}\n\nfunction sampleEvent(payload: any, config: TransformerConfig): boolean {\n if (config.sample!.percent <= 0) {\n return false\n } else if (config.sample!.percent >= 1) {\n return true\n }\n\n // If we're not filtering deterministically, just use raw percentage.\n if (!config.sample!.path) {\n return samplePercent(config.sample!.percent)\n }\n\n // Otherwise, use a deterministic hash.\n return sampleConsistentPercent(payload, config)\n}\n\nfunction samplePercent(percent: number): boolean {\n // Math.random returns [0, 1) => 0.0<>0.9999...\n return Math.random() <= percent\n}\n\n// sampleConsistentPercent converts an input string of bytes into a consistent uniform\n// continuous distribution of [0.0, 1.0]. This is based on\n// http://mumble.net/~campbell/tmp/random_real.c, but using the digest\n// result of the input value as the random information.\n\n// IMPORTANT - This function needs to === the Golang implementation to ensure that the two return the same vals!\n// See: https://github.com/segmentio/sampler/blob/65cb04132305a04fcd4bcaef67d57fbe40c30241/sampler.go#L13-L38\n\n// Since AJS supports IE9+ (typed arrays were introduced in IE10) we're doing some manual array math.\n// This could be done directly with strings, but arrays are easier to reason about/have better function support.\nfunction sampleConsistentPercent(\n payload: any,\n config: TransformerConfig\n): boolean {\n const field = get(payload, config.sample!.path)\n\n const hash = MD5.hash(JSON.stringify(field))\n // convert hash to byte array\n const digest = hash.match(/.{2}/g)!.map((byte) => parseInt(byte, 16))\n\n let exponent = -64\n\n // Manually maintain 64-bit int as an array.\n let significand: number[] = []\n\n // Left-shift and OR for first 8 bytes of digest. (8 bytes * 8 = 64 bits)\n consumeDigest(digest.slice(0, 8), significand)\n\n let leadingZeros = 0\n for (let i = 0; i < 64; i++) {\n if (significand[i] === 1) {\n break\n }\n\n leadingZeros++\n }\n\n if (leadingZeros !== 0) {\n // Use the last 8 bytes of the digest, same as before.\n const val: number[] = []\n consumeDigest(digest.slice(9, 16), val)\n\n exponent -= leadingZeros\n // Left-shift away leading zeros in significand.\n significand.splice(0, leadingZeros)\n\n // Right-shift val by 64 minus leading zeros and push into significand.\n val.splice(64 - leadingZeros)\n significand = significand.concat(val)\n }\n\n // Flip 64th bit\n significand[63] = significand[63] === 0 ? 1 : 0\n\n // Convert our manual binary into a JS num (binary arr => binary string => psuedo-int) and run the ldexp!\n return (\n ldexp(parseInt(significand.join(''), 2), exponent) < config.sample!.percent\n )\n}\n\n// Array byte filler helper\nfunction consumeDigest(digest: number[], arr: number[]) {\n for (let i = 0; i < 8; i++) {\n let remainder = digest[i]\n for (let binary = 128; binary >= 1; binary /= 2) {\n if (remainder - binary >= 0) {\n remainder -= binary\n arr.push(1)\n } else {\n arr.push(0)\n }\n }\n }\n}\n\n// Simplified implementation of https://github.com/stdlib-js/math-base-special-ldexp\nfunction ldexp(x: number, exp: number) {\n return x * Math.pow(2, exp)\n}\n","import * as tsub from '../../lib/tsub'\nimport { DestinationMiddlewareFunction } from '../middleware'\n\n// TODO: update tsub definition\ntype RoutingRuleMatcher = tsub.Matcher & {\n config?: {\n expr: string\n }\n}\n\nexport type RoutingRule = tsub.Rule & {\n matchers: RoutingRuleMatcher[]\n}\n\nexport const tsubMiddleware =\n (rules: RoutingRule[]): DestinationMiddlewareFunction =>\n ({ payload, integration, next }): void => {\n const store = new tsub.Store(rules)\n const rulesToApply = store.getRulesByDestinationName(integration)\n\n rulesToApply.forEach((rule) => {\n const { matchers, transformers } = rule\n\n for (let i = 0; i < matchers.length; i++) {\n if (tsub.matches(payload.obj, matchers[i])) {\n payload.obj = tsub.transform(payload.obj, transformers[i])\n\n if (payload.obj === null) {\n return next(null)\n }\n }\n }\n })\n\n next(payload)\n }\n"],"names":["module","exports","t","n","e","i","o","split","length","rules","this","getRulesByDestinationName","destinationName","rule","undefined","push","matches","event","matcher","Error","type","ir","JSON","parse","result","fqlEvaluate","fql","Array","isArray","getValue","item","first","second","operator","isIR","stringify","compareItems","compareNumbers","list","find","it","checkInList","indexOf","contains","str","glob","pattern","Pattern","star","chunk","scanChunk","matchChunk","ok","err","slice","globMatches","match","target","toLowerCase","NaN","value","inRange","Scan","char","notNegated","foundMatch","nRange","lo","hi","getEsc","newChunk","unset","obj","prop","segs","last","pop","shift","transform","payload","transformers","transformedPayload","transformer","dropProperties","config","allowProperties","sampleEvent","mapProperties","filterProperties","drop","matchedObj","dropList","forEach","k","allow","preserveList","Object","keys","key","includes","ruleSet","filterCb","entries","targets","filter","matchedObject","initialPayload","map","prototype","hasOwnProperty","call","actionMap","splitKey","parent","join","copy","valueToCopy","move","valueToMove","set","to_string","valueToString","sample","percent","path","field","digest","byte","parseInt","exponent","significand","consumeDigest","leadingZeros","val","splice","concat","x","exp","Math","pow","ldexp","sampleConsistentPercent","random","arr","remainder","binary","tsubMiddleware","integration","next","matchers"],"sourceRoot":""}
|