@amplitude/analytics-core 2.5.6 → 2.6.1
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/lib/cjs/analytics-connector.d.ts +5 -0
- package/lib/cjs/analytics-connector.d.ts.map +1 -0
- package/lib/cjs/analytics-connector.js +20 -0
- package/lib/cjs/analytics-connector.js.map +1 -0
- package/lib/cjs/config.d.ts +107 -3
- package/lib/cjs/config.d.ts.map +1 -1
- package/lib/cjs/config.js +3 -3
- package/lib/cjs/config.js.map +1 -1
- package/lib/cjs/cookie-name.d.ts +3 -0
- package/lib/cjs/cookie-name.d.ts.map +1 -0
- package/lib/cjs/cookie-name.js +15 -0
- package/lib/cjs/cookie-name.js.map +1 -0
- package/lib/cjs/core-client.d.ts +154 -14
- package/lib/cjs/core-client.d.ts.map +1 -1
- package/lib/cjs/core-client.js +1 -1
- package/lib/cjs/core-client.js.map +1 -1
- package/lib/cjs/event-bridge/event-bridge-channel.d.ts +4 -3
- package/lib/cjs/event-bridge/event-bridge-channel.d.ts.map +1 -1
- package/lib/cjs/event-bridge/event-bridge-channel.js.map +1 -1
- package/lib/cjs/event-bridge/event-bridge-container.d.ts +1 -1
- package/lib/cjs/event-bridge/event-bridge-container.d.ts.map +1 -1
- package/lib/cjs/event-bridge/event-bridge-container.js.map +1 -1
- package/lib/cjs/event-bridge/event-bridge.d.ts +9 -2
- package/lib/cjs/event-bridge/event-bridge.d.ts.map +1 -1
- package/lib/cjs/event-bridge/event-bridge.js.map +1 -1
- package/lib/cjs/global-scope.d.ts +2 -0
- package/lib/cjs/global-scope.d.ts.map +1 -0
- package/lib/cjs/global-scope.js +28 -0
- package/lib/cjs/global-scope.js.map +1 -0
- package/lib/cjs/identify.d.ts +48 -1
- package/lib/cjs/identify.d.ts.map +1 -1
- package/lib/cjs/identify.js +32 -16
- package/lib/cjs/identify.js.map +1 -1
- package/lib/cjs/index.d.ts +37 -8
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +45 -6
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/language.d.ts +2 -0
- package/lib/cjs/language.d.ts.map +1 -0
- package/lib/cjs/language.js +13 -0
- package/lib/cjs/language.js.map +1 -0
- package/lib/cjs/logger.d.ts +27 -1
- package/lib/cjs/logger.d.ts.map +1 -1
- package/lib/cjs/logger.js +8 -8
- package/lib/cjs/logger.js.map +1 -1
- package/lib/cjs/plugins/destination.d.ts +14 -3
- package/lib/cjs/plugins/destination.d.ts.map +1 -1
- package/lib/cjs/plugins/destination.js +8 -8
- package/lib/cjs/plugins/destination.js.map +1 -1
- package/lib/cjs/plugins/identity.d.ts +11 -0
- package/lib/cjs/plugins/identity.d.ts.map +1 -0
- package/lib/cjs/plugins/identity.js +37 -0
- package/lib/cjs/plugins/identity.js.map +1 -0
- package/lib/cjs/query-params.d.ts +3 -0
- package/lib/cjs/query-params.d.ts.map +1 -0
- package/lib/cjs/query-params.js +36 -0
- package/lib/cjs/query-params.js.map +1 -0
- package/lib/cjs/revenue.d.ts +43 -1
- package/lib/cjs/revenue.d.ts.map +1 -1
- package/lib/cjs/revenue.js +28 -8
- package/lib/cjs/revenue.js.map +1 -1
- package/lib/cjs/session.d.ts +2 -0
- package/lib/cjs/session.d.ts.map +1 -0
- package/lib/cjs/session.js +11 -0
- package/lib/cjs/session.js.map +1 -0
- package/lib/cjs/storage/cookie.d.ts +13 -0
- package/lib/cjs/storage/cookie.d.ts.map +1 -0
- package/lib/cjs/storage/cookie.js +172 -0
- package/lib/cjs/storage/cookie.js.map +1 -0
- package/lib/cjs/storage/helpers.d.ts +2 -0
- package/lib/cjs/storage/helpers.d.ts.map +1 -0
- package/lib/cjs/storage/helpers.js +11 -0
- package/lib/cjs/storage/helpers.js.map +1 -0
- package/lib/cjs/storage/memory.d.ts +1 -1
- package/lib/cjs/storage/memory.d.ts.map +1 -1
- package/lib/cjs/storage/memory.js.map +1 -1
- package/lib/cjs/timeline.d.ts +8 -3
- package/lib/cjs/timeline.d.ts.map +1 -1
- package/lib/cjs/timeline.js.map +1 -1
- package/lib/cjs/transports/base.d.ts +4 -1
- package/lib/cjs/transports/base.d.ts.map +1 -1
- package/lib/cjs/transports/base.js +13 -16
- package/lib/cjs/transports/base.js.map +1 -1
- package/lib/cjs/transports/fetch.d.ts +8 -0
- package/lib/cjs/transports/fetch.d.ts.map +1 -0
- package/lib/cjs/transports/fetch.js +50 -0
- package/lib/cjs/transports/fetch.js.map +1 -0
- package/lib/cjs/types/browser-client.d.ts +131 -0
- package/lib/cjs/types/browser-client.d.ts.map +1 -0
- package/lib/cjs/types/browser-client.js +3 -0
- package/lib/cjs/types/browser-client.js.map +1 -0
- package/lib/cjs/types/browser-config.d.ts +217 -0
- package/lib/cjs/types/browser-config.d.ts.map +1 -0
- package/lib/cjs/types/browser-config.js +3 -0
- package/lib/cjs/types/browser-config.js.map +1 -0
- package/lib/cjs/types/constants.d.ts.map +1 -0
- package/lib/cjs/types/constants.js.map +1 -0
- package/lib/cjs/types/element-interactions.d.ts +73 -0
- package/lib/cjs/types/element-interactions.d.ts.map +1 -0
- package/lib/cjs/types/element-interactions.js +34 -0
- package/lib/cjs/types/element-interactions.js.map +1 -0
- package/lib/cjs/types/event/base-event.d.ts +64 -0
- package/lib/cjs/types/event/base-event.d.ts.map +1 -0
- package/lib/cjs/types/event/base-event.js +3 -0
- package/lib/cjs/types/event/base-event.js.map +1 -0
- package/lib/cjs/types/event/event.d.ts +68 -0
- package/lib/cjs/types/event/event.d.ts.map +1 -0
- package/lib/cjs/types/event/event.js +31 -0
- package/lib/cjs/types/event/event.js.map +1 -0
- package/lib/cjs/types/event/ingestion-metadata.d.ts +19 -0
- package/lib/cjs/types/event/ingestion-metadata.d.ts.map +1 -0
- package/lib/cjs/types/event/ingestion-metadata.js +3 -0
- package/lib/cjs/types/event/ingestion-metadata.js.map +1 -0
- package/lib/cjs/types/event/plan.d.ts +14 -0
- package/lib/cjs/types/event/plan.d.ts.map +1 -0
- package/lib/cjs/types/event/plan.js +3 -0
- package/lib/cjs/types/event/plan.js.map +1 -0
- package/lib/cjs/types/event-callback.d.ts +3 -0
- package/lib/cjs/types/event-callback.d.ts.map +1 -0
- package/lib/cjs/types/event-callback.js +3 -0
- package/lib/cjs/types/event-callback.js.map +1 -0
- package/lib/cjs/types/loglevel.d.ts +8 -0
- package/lib/cjs/types/loglevel.d.ts.map +1 -0
- package/lib/cjs/types/loglevel.js +12 -0
- package/lib/cjs/types/loglevel.js.map +1 -0
- package/lib/cjs/types/messages.d.ts.map +1 -0
- package/lib/cjs/types/messages.js.map +1 -0
- package/lib/cjs/types/offline.d.ts +2 -0
- package/lib/cjs/types/offline.d.ts.map +1 -0
- package/lib/cjs/types/offline.js +5 -0
- package/lib/cjs/types/offline.js.map +1 -0
- package/lib/cjs/types/page-view-tracking.d.ts +9 -0
- package/lib/cjs/types/page-view-tracking.d.ts.map +1 -0
- package/lib/cjs/types/page-view-tracking.js +3 -0
- package/lib/cjs/types/page-view-tracking.js.map +1 -0
- package/lib/cjs/types/payload.d.ts +13 -0
- package/lib/cjs/types/payload.d.ts.map +1 -0
- package/lib/cjs/types/payload.js +3 -0
- package/lib/cjs/types/payload.js.map +1 -0
- package/lib/cjs/types/plugin.d.ts +30 -0
- package/lib/cjs/types/plugin.d.ts.map +1 -0
- package/lib/cjs/types/plugin.js +3 -0
- package/lib/cjs/types/plugin.js.map +1 -0
- package/lib/cjs/types/response.d.ts +81 -0
- package/lib/cjs/types/response.d.ts.map +1 -0
- package/lib/cjs/types/response.js +3 -0
- package/lib/cjs/types/response.js.map +1 -0
- package/lib/cjs/types/result.d.ts +7 -0
- package/lib/cjs/types/result.d.ts.map +1 -0
- package/lib/cjs/types/result.js +3 -0
- package/lib/cjs/types/result.js.map +1 -0
- package/lib/cjs/types/server-zone.d.ts +9 -0
- package/lib/cjs/types/server-zone.d.ts.map +1 -0
- package/lib/cjs/types/server-zone.js +12 -0
- package/lib/cjs/types/server-zone.js.map +1 -0
- package/lib/cjs/types/status.d.ts +22 -0
- package/lib/cjs/types/status.d.ts.map +1 -0
- package/lib/cjs/types/status.js +26 -0
- package/lib/cjs/types/status.js.map +1 -0
- package/lib/cjs/types/storage.d.ts +16 -0
- package/lib/cjs/types/storage.d.ts.map +1 -0
- package/lib/cjs/types/storage.js +3 -0
- package/lib/cjs/types/storage.js.map +1 -0
- package/lib/cjs/types/transport.d.ts +7 -0
- package/lib/cjs/types/transport.d.ts.map +1 -0
- package/lib/cjs/types/transport.js +3 -0
- package/lib/cjs/types/transport.js.map +1 -0
- package/lib/cjs/types/user-session.d.ts +11 -0
- package/lib/cjs/types/user-session.d.ts.map +1 -0
- package/lib/cjs/types/user-session.js +3 -0
- package/lib/cjs/types/user-session.js.map +1 -0
- package/lib/cjs/utils/debug.d.ts +1 -1
- package/lib/cjs/utils/debug.d.ts.map +1 -1
- package/lib/cjs/utils/debug.js +2 -6
- package/lib/cjs/utils/debug.js.map +1 -1
- package/lib/cjs/utils/event-builder.d.ts +5 -2
- package/lib/cjs/utils/event-builder.d.ts.map +1 -1
- package/lib/cjs/utils/event-builder.js +5 -5
- package/lib/cjs/utils/event-builder.js.map +1 -1
- package/lib/cjs/utils/result-builder.d.ts +2 -1
- package/lib/cjs/utils/result-builder.d.ts.map +1 -1
- package/lib/cjs/utils/result-builder.js +2 -2
- package/lib/cjs/utils/result-builder.js.map +1 -1
- package/lib/cjs/utils/return-wrapper.d.ts +3 -1
- package/lib/cjs/utils/return-wrapper.d.ts.map +1 -1
- package/lib/cjs/utils/return-wrapper.js.map +1 -1
- package/lib/esm/analytics-connector.d.ts +5 -0
- package/lib/esm/analytics-connector.d.ts.map +1 -0
- package/lib/esm/analytics-connector.js +14 -0
- package/lib/esm/analytics-connector.js.map +1 -0
- package/lib/esm/config.d.ts +107 -3
- package/lib/esm/config.d.ts.map +1 -1
- package/lib/esm/config.js +2 -2
- package/lib/esm/config.js.map +1 -1
- package/lib/esm/cookie-name.d.ts +3 -0
- package/lib/esm/cookie-name.d.ts.map +1 -0
- package/lib/esm/cookie-name.js +10 -0
- package/lib/esm/cookie-name.js.map +1 -0
- package/lib/esm/core-client.d.ts +154 -14
- package/lib/esm/core-client.d.ts.map +1 -1
- package/lib/esm/core-client.js +1 -1
- package/lib/esm/core-client.js.map +1 -1
- package/lib/esm/event-bridge/event-bridge-channel.d.ts +4 -3
- package/lib/esm/event-bridge/event-bridge-channel.d.ts.map +1 -1
- package/lib/esm/event-bridge/event-bridge-channel.js.map +1 -1
- package/lib/esm/event-bridge/event-bridge-container.d.ts +1 -1
- package/lib/esm/event-bridge/event-bridge-container.d.ts.map +1 -1
- package/lib/esm/event-bridge/event-bridge-container.js.map +1 -1
- package/lib/esm/event-bridge/event-bridge.d.ts +9 -2
- package/lib/esm/event-bridge/event-bridge.d.ts.map +1 -1
- package/lib/esm/event-bridge/event-bridge.js.map +1 -1
- package/lib/esm/global-scope.d.ts +2 -0
- package/lib/esm/global-scope.d.ts.map +1 -0
- package/lib/esm/global-scope.js +24 -0
- package/lib/esm/global-scope.js.map +1 -0
- package/lib/esm/identify.d.ts +48 -1
- package/lib/esm/identify.d.ts.map +1 -1
- package/lib/esm/identify.js +18 -2
- package/lib/esm/identify.js.map +1 -1
- package/lib/esm/index.d.ts +37 -8
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +19 -3
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/language.d.ts +2 -0
- package/lib/esm/language.d.ts.map +1 -0
- package/lib/esm/language.js +9 -0
- package/lib/esm/language.js.map +1 -0
- package/lib/esm/logger.d.ts +27 -1
- package/lib/esm/logger.d.ts.map +1 -1
- package/lib/esm/logger.js +1 -1
- package/lib/esm/logger.js.map +1 -1
- package/lib/esm/plugins/destination.d.ts +14 -3
- package/lib/esm/plugins/destination.d.ts.map +1 -1
- package/lib/esm/plugins/destination.js +3 -3
- package/lib/esm/plugins/destination.js.map +1 -1
- package/lib/esm/plugins/identity.d.ts +11 -0
- package/lib/esm/plugins/identity.d.ts.map +1 -0
- package/lib/esm/plugins/identity.js +34 -0
- package/lib/esm/plugins/identity.js.map +1 -0
- package/lib/esm/query-params.d.ts +3 -0
- package/lib/esm/query-params.d.ts.map +1 -0
- package/lib/esm/query-params.js +31 -0
- package/lib/esm/query-params.js.map +1 -0
- package/lib/esm/revenue.d.ts +43 -1
- package/lib/esm/revenue.d.ts.map +1 -1
- package/lib/esm/revenue.js +21 -1
- package/lib/esm/revenue.js.map +1 -1
- package/lib/esm/session.d.ts +2 -0
- package/lib/esm/session.d.ts.map +1 -0
- package/lib/esm/session.js +7 -0
- package/lib/esm/session.js.map +1 -0
- package/lib/esm/storage/cookie.d.ts +13 -0
- package/lib/esm/storage/cookie.d.ts.map +1 -0
- package/lib/esm/storage/cookie.js +169 -0
- package/lib/esm/storage/cookie.js.map +1 -0
- package/lib/esm/storage/helpers.d.ts +2 -0
- package/lib/esm/storage/helpers.d.ts.map +1 -0
- package/lib/esm/storage/helpers.js +7 -0
- package/lib/esm/storage/helpers.js.map +1 -0
- package/lib/esm/storage/memory.d.ts +1 -1
- package/lib/esm/storage/memory.d.ts.map +1 -1
- package/lib/esm/storage/memory.js.map +1 -1
- package/lib/esm/timeline.d.ts +8 -3
- package/lib/esm/timeline.d.ts.map +1 -1
- package/lib/esm/timeline.js.map +1 -1
- package/lib/esm/transports/base.d.ts +4 -1
- package/lib/esm/transports/base.d.ts.map +1 -1
- package/lib/esm/transports/base.js +1 -4
- package/lib/esm/transports/base.js.map +1 -1
- package/lib/esm/transports/fetch.d.ts +8 -0
- package/lib/esm/transports/fetch.d.ts.map +1 -0
- package/lib/esm/transports/fetch.js +47 -0
- package/lib/esm/transports/fetch.js.map +1 -0
- package/lib/esm/types/browser-client.d.ts +131 -0
- package/lib/esm/types/browser-client.d.ts.map +1 -0
- package/lib/esm/types/browser-client.js +2 -0
- package/lib/esm/types/browser-client.js.map +1 -0
- package/lib/esm/types/browser-config.d.ts +217 -0
- package/lib/esm/types/browser-config.d.ts.map +1 -0
- package/lib/esm/types/browser-config.js +2 -0
- package/lib/esm/types/browser-config.js.map +1 -0
- package/lib/esm/types/constants.d.ts.map +1 -0
- package/lib/esm/types/constants.js.map +1 -0
- package/lib/esm/types/element-interactions.d.ts +73 -0
- package/lib/esm/types/element-interactions.d.ts.map +1 -0
- package/lib/esm/types/element-interactions.js +31 -0
- package/lib/esm/types/element-interactions.js.map +1 -0
- package/lib/esm/types/event/base-event.d.ts +64 -0
- package/lib/esm/types/event/base-event.d.ts.map +1 -0
- package/lib/esm/types/event/base-event.js +2 -0
- package/lib/esm/types/event/base-event.js.map +1 -0
- package/lib/esm/types/event/event.d.ts +68 -0
- package/lib/esm/types/event/event.d.ts.map +1 -0
- package/lib/esm/types/event/event.js +28 -0
- package/lib/esm/types/event/event.js.map +1 -0
- package/lib/esm/types/event/ingestion-metadata.d.ts +19 -0
- package/lib/esm/types/event/ingestion-metadata.d.ts.map +1 -0
- package/lib/esm/types/event/ingestion-metadata.js +2 -0
- package/lib/esm/types/event/ingestion-metadata.js.map +1 -0
- package/lib/esm/types/event/plan.d.ts +14 -0
- package/lib/esm/types/event/plan.d.ts.map +1 -0
- package/lib/esm/types/event/plan.js +2 -0
- package/lib/esm/types/event/plan.js.map +1 -0
- package/lib/esm/types/event-callback.d.ts +3 -0
- package/lib/esm/types/event-callback.d.ts.map +1 -0
- package/lib/esm/types/event-callback.js +2 -0
- package/lib/esm/types/event-callback.js.map +1 -0
- package/lib/esm/types/loglevel.d.ts +8 -0
- package/lib/esm/types/loglevel.d.ts.map +1 -0
- package/lib/esm/types/loglevel.js +9 -0
- package/lib/esm/types/loglevel.js.map +1 -0
- package/lib/esm/types/messages.d.ts.map +1 -0
- package/lib/esm/types/messages.js.map +1 -0
- package/lib/esm/types/offline.d.ts +2 -0
- package/lib/esm/types/offline.d.ts.map +1 -0
- package/lib/esm/types/offline.js +2 -0
- package/lib/esm/types/offline.js.map +1 -0
- package/lib/esm/types/page-view-tracking.d.ts +9 -0
- package/lib/esm/types/page-view-tracking.d.ts.map +1 -0
- package/lib/esm/types/page-view-tracking.js +2 -0
- package/lib/esm/types/page-view-tracking.js.map +1 -0
- package/lib/esm/types/payload.d.ts +13 -0
- package/lib/esm/types/payload.d.ts.map +1 -0
- package/lib/esm/types/payload.js +2 -0
- package/lib/esm/types/payload.js.map +1 -0
- package/lib/esm/types/plugin.d.ts +30 -0
- package/lib/esm/types/plugin.d.ts.map +1 -0
- package/lib/esm/types/plugin.js +2 -0
- package/lib/esm/types/plugin.js.map +1 -0
- package/lib/esm/types/response.d.ts +81 -0
- package/lib/esm/types/response.d.ts.map +1 -0
- package/lib/esm/types/response.js +2 -0
- package/lib/esm/types/response.js.map +1 -0
- package/lib/esm/types/result.d.ts +7 -0
- package/lib/esm/types/result.d.ts.map +1 -0
- package/lib/esm/types/result.js +2 -0
- package/lib/esm/types/result.js.map +1 -0
- package/lib/esm/types/server-zone.d.ts +9 -0
- package/lib/esm/types/server-zone.d.ts.map +1 -0
- package/lib/esm/types/server-zone.js +9 -0
- package/lib/esm/types/server-zone.js.map +1 -0
- package/lib/esm/types/status.d.ts +22 -0
- package/lib/esm/types/status.d.ts.map +1 -0
- package/lib/esm/types/status.js +23 -0
- package/lib/esm/types/status.js.map +1 -0
- package/lib/esm/types/storage.d.ts +16 -0
- package/lib/esm/types/storage.d.ts.map +1 -0
- package/lib/esm/types/storage.js +2 -0
- package/lib/esm/types/storage.js.map +1 -0
- package/lib/esm/types/transport.d.ts +7 -0
- package/lib/esm/types/transport.d.ts.map +1 -0
- package/lib/esm/types/transport.js +2 -0
- package/lib/esm/types/transport.js.map +1 -0
- package/lib/esm/types/user-session.d.ts +11 -0
- package/lib/esm/types/user-session.d.ts.map +1 -0
- package/lib/esm/types/user-session.js +2 -0
- package/lib/esm/types/user-session.js.map +1 -0
- package/lib/esm/utils/debug.d.ts +1 -1
- package/lib/esm/utils/debug.d.ts.map +1 -1
- package/lib/esm/utils/debug.js +1 -5
- package/lib/esm/utils/debug.js.map +1 -1
- package/lib/esm/utils/event-builder.d.ts +5 -2
- package/lib/esm/utils/event-builder.d.ts.map +1 -1
- package/lib/esm/utils/event-builder.js +1 -1
- package/lib/esm/utils/event-builder.js.map +1 -1
- package/lib/esm/utils/result-builder.d.ts +2 -1
- package/lib/esm/utils/result-builder.d.ts.map +1 -1
- package/lib/esm/utils/result-builder.js +1 -1
- package/lib/esm/utils/result-builder.js.map +1 -1
- package/lib/esm/utils/return-wrapper.d.ts +3 -1
- package/lib/esm/utils/return-wrapper.d.ts.map +1 -1
- package/lib/esm/utils/return-wrapper.js.map +1 -1
- package/package.json +2 -3
- package/lib/cjs/constants.d.ts.map +0 -1
- package/lib/cjs/constants.js.map +0 -1
- package/lib/cjs/messages.d.ts.map +0 -1
- package/lib/cjs/messages.js.map +0 -1
- package/lib/esm/constants.d.ts.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/messages.d.ts.map +0 -1
- package/lib/esm/messages.js.map +0 -1
- /package/lib/cjs/{constants.d.ts → types/constants.d.ts} +0 -0
- /package/lib/cjs/{constants.js → types/constants.js} +0 -0
- /package/lib/cjs/{messages.d.ts → types/messages.d.ts} +0 -0
- /package/lib/cjs/{messages.js → types/messages.js} +0 -0
- /package/lib/esm/{constants.d.ts → types/constants.d.ts} +0 -0
- /package/lib/esm/{constants.js → types/constants.js} +0 -0
- /package/lib/esm/{messages.d.ts → types/messages.d.ts} +0 -0
- /package/lib/esm/{messages.js → types/messages.js} +0 -0
package/lib/esm/index.js
CHANGED
|
@@ -1,14 +1,30 @@
|
|
|
1
1
|
export { AmplitudeCore } from './core-client';
|
|
2
2
|
export { Identify } from './identify';
|
|
3
|
-
export { Revenue } from './revenue';
|
|
3
|
+
export { Revenue, RevenueProperty } from './revenue';
|
|
4
4
|
export { Destination } from './plugins/destination';
|
|
5
|
+
export { IdentityEventSender } from './plugins/identity';
|
|
5
6
|
export { Config, RequestMetadata } from './config';
|
|
6
7
|
export { Logger } from './logger';
|
|
7
|
-
export {
|
|
8
|
+
export { getGlobalScope } from './global-scope';
|
|
9
|
+
export { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from './analytics-connector';
|
|
10
|
+
export { isNewSession } from './session';
|
|
11
|
+
export { getCookieName, getOldCookieName } from './cookie-name';
|
|
12
|
+
export { getLanguage } from './language';
|
|
13
|
+
export { getQueryParams } from './query-params';
|
|
8
14
|
export { returnWrapper } from './utils/return-wrapper';
|
|
9
15
|
export { debugWrapper, getClientLogConfig, getClientStates } from './utils/debug';
|
|
10
16
|
export { UUID } from './utils/uuid';
|
|
17
|
+
export { createIdentifyEvent } from './utils/event-builder';
|
|
11
18
|
export { MemoryStorage } from './storage/memory';
|
|
19
|
+
export { CookieStorage } from './storage/cookie';
|
|
20
|
+
export { getStorageKey } from './storage/helpers';
|
|
12
21
|
export { BaseTransport } from './transports/base';
|
|
13
|
-
export {
|
|
22
|
+
export { FetchTransport } from './transports/fetch';
|
|
23
|
+
export { LogLevel } from './types/loglevel';
|
|
24
|
+
export { AMPLITUDE_PREFIX, STORAGE_PREFIX } from './types/constants';
|
|
25
|
+
export { IdentifyOperation, SpecialEventType } from './types/event/event';
|
|
26
|
+
export { ServerZone } from './types/server-zone';
|
|
27
|
+
export { OfflineDisabled } from './types/offline';
|
|
28
|
+
export { DEFAULT_CSS_SELECTOR_ALLOWLIST, DEFAULT_DATA_ATTRIBUTE_PREFIX, DEFAULT_ACTION_CLICK_ALLOWLIST, } from './types/element-interactions';
|
|
29
|
+
export { Status } from './types/status';
|
|
14
30
|
//# sourceMappingURL=index.js.map
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAc,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,EAAY,eAAe,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAW,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAmB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAS,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,OAAO,EAAkB,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQlD,OAAO,EAIL,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["export { AmplitudeCore, CoreClient } from './core-client';\nexport { Identify, IIdentify } from './identify';\nexport { Revenue, IRevenue, RevenueProperty } from './revenue';\nexport { Destination } from './plugins/destination';\nexport { IdentityEventSender } from './plugins/identity';\nexport { IConfig, Config, RequestMetadata } from './config';\nexport { Logger, ILogger } from './logger';\nexport { getGlobalScope } from './global-scope';\nexport { getAnalyticsConnector, setConnectorDeviceId, setConnectorUserId } from './analytics-connector';\nexport { isNewSession } from './session';\nexport { getCookieName, getOldCookieName } from './cookie-name';\nexport { getLanguage } from './language';\nexport { getQueryParams } from './query-params';\n\nexport { returnWrapper, AmplitudeReturn } from './utils/return-wrapper';\nexport { debugWrapper, getClientLogConfig, getClientStates } from './utils/debug';\nexport { UUID } from './utils/uuid';\nexport { createIdentifyEvent } from './utils/event-builder';\n\nexport { MemoryStorage } from './storage/memory';\nexport { CookieStorage } from './storage/cookie';\nexport { getStorageKey } from './storage/helpers';\n\nexport { BaseTransport } from './transports/base';\nexport { FetchTransport } from './transports/fetch';\n\nexport { LogLevel } from './types/loglevel';\nexport { AMPLITUDE_PREFIX, STORAGE_PREFIX } from './types/constants';\nexport { Storage, IdentityStorageType } from './types/storage';\nexport { Event, IdentifyOperation, SpecialEventType } from './types/event/event';\nexport { EventOptions, BaseEvent } from './types/event/base-event';\nexport { IngestionMetadata } from './types/event/ingestion-metadata';\nexport { ServerZoneType, ServerZone } from './types/server-zone';\nexport { OfflineDisabled } from './types/offline';\nexport { Plan } from './types/event/plan';\nexport { TransportType, Transport } from './types/transport';\nexport { Payload } from './types/payload';\nexport { Response } from './types/response';\nexport { UserSession } from './types/user-session';\nexport { Plugin, BeforePlugin, DestinationPlugin, EnrichmentPlugin, PluginType } from './types/plugin';\nexport { Result } from './types/result';\nexport {\n ElementInteractionsOptions,\n Messenger,\n ActionType,\n DEFAULT_CSS_SELECTOR_ALLOWLIST,\n DEFAULT_DATA_ATTRIBUTE_PREFIX,\n DEFAULT_ACTION_CLICK_ALLOWLIST,\n} from './types/element-interactions';\nexport { PageTrackingOptions, PageTrackingTrackOn, PageTrackingHistoryChanges } from './types/page-view-tracking';\nexport { Status } from './types/status';\nexport {\n BrowserConfig,\n BrowserOptions,\n DefaultTrackingOptions,\n TrackingOptions,\n AutocaptureOptions,\n CookieOptions,\n AttributionOptions,\n} from './types/browser-config';\nexport { BrowserClient } from './types/browser-client';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../src/language.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,QAAO,MAM9B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var getLanguage = function () {
|
|
2
|
+
var _a, _b, _c, _d;
|
|
3
|
+
if (typeof navigator === 'undefined')
|
|
4
|
+
return '';
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
6
|
+
var userLanguage = navigator.userLanguage;
|
|
7
|
+
return (_d = (_c = (_b = (_a = navigator.languages) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : navigator.language) !== null && _c !== void 0 ? _c : userLanguage) !== null && _d !== void 0 ? _d : '';
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../../src/language.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG;;IACzB,IAAI,OAAO,SAAS,KAAK,WAAW;QAAE,OAAO,EAAE,CAAC;IAChD,sEAAsE;IACtE,IAAM,YAAY,GAAI,SAAiB,CAAC,YAAkC,CAAC;IAE3E,OAAO,MAAA,MAAA,MAAA,MAAA,SAAS,CAAC,SAAS,0CAAG,CAAC,CAAC,mCAAI,SAAS,CAAC,QAAQ,mCAAI,YAAY,mCAAI,EAAE,CAAC;AAC9E,CAAC,CAAC","sourcesContent":["export const getLanguage = (): string => {\n if (typeof navigator === 'undefined') return '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n const userLanguage = (navigator as any).userLanguage as string | undefined;\n\n return navigator.languages?.[0] ?? navigator.language ?? userLanguage ?? '';\n};\n"]}
|
package/lib/esm/logger.d.ts
CHANGED
|
@@ -1,4 +1,29 @@
|
|
|
1
|
-
import { LogLevel
|
|
1
|
+
import { LogLevel } from './types/loglevel';
|
|
2
|
+
export interface ILogger {
|
|
3
|
+
disable(): void;
|
|
4
|
+
enable(logLevel: LogLevel): void;
|
|
5
|
+
log(...args: any[]): void;
|
|
6
|
+
warn(...args: any[]): void;
|
|
7
|
+
error(...args: any[]): void;
|
|
8
|
+
debug(...args: any[]): void;
|
|
9
|
+
}
|
|
10
|
+
export interface LogConfig {
|
|
11
|
+
logger: ILogger;
|
|
12
|
+
logLevel: LogLevel;
|
|
13
|
+
}
|
|
14
|
+
type TimeKey = 'start' | 'end';
|
|
15
|
+
export interface DebugContext {
|
|
16
|
+
type: string;
|
|
17
|
+
name: string;
|
|
18
|
+
args: string[] | string;
|
|
19
|
+
stacktrace?: string[] | string;
|
|
20
|
+
time?: {
|
|
21
|
+
[key in TimeKey]?: string;
|
|
22
|
+
};
|
|
23
|
+
states?: {
|
|
24
|
+
[key: string]: any;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
2
27
|
export declare class Logger implements ILogger {
|
|
3
28
|
logLevel: LogLevel;
|
|
4
29
|
constructor();
|
|
@@ -9,4 +34,5 @@ export declare class Logger implements ILogger {
|
|
|
9
34
|
error(...args: any[]): void;
|
|
10
35
|
debug(...args: any[]): void;
|
|
11
36
|
}
|
|
37
|
+
export {};
|
|
12
38
|
//# sourceMappingURL=logger.d.ts.map
|
package/lib/esm/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C,MAAM,WAAW,OAAO;IACtB,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,KAAK,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/B,IAAI,CAAC,EAAE;SAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;IACrC,MAAM,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CACjC;AAED,qBAAa,MAAO,YAAW,OAAO;IACpC,QAAQ,EAAE,QAAQ,CAAC;;IAMnB,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,QAAQ,GAAE,QAAwB,GAAG,IAAI;IAIhD,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAOzB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAO1B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAO3B,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;CAO5B"}
|
package/lib/esm/logger.js
CHANGED
package/lib/esm/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,IAAM,MAAM,GAAG,mBAAmB,CAAC;AA2BnC;IAGE;QACE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,wBAAO,GAAP;QACE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,uBAAM,GAAN,UAAO,QAAkC;QAAlC,yBAAA,EAAA,WAAqB,QAAQ,CAAC,IAAI;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,oBAAG,GAAH;QAAI,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAChB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE;YACpC,OAAO;SACR;QACD,OAAO,CAAC,GAAG,CAAC,UAAG,MAAM,oBAAU,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IACnD,CAAC;IAED,qBAAI,GAAJ;QAAK,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACjB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE;YACjC,OAAO;SACR;QACD,OAAO,CAAC,IAAI,CAAC,UAAG,MAAM,qBAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IACrD,CAAC;IAED,sBAAK,GAAL;QAAM,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE;YAClC,OAAO;SACR;QACD,OAAO,CAAC,KAAK,CAAC,UAAG,MAAM,sBAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IACvD,CAAC;IAED,sBAAK,GAAL;QAAM,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE;YAClC,OAAO;SACR;QACD,sDAAsD;QACtD,OAAO,CAAC,GAAG,CAAC,UAAG,MAAM,sBAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IACrD,CAAC;IACH,aAAC;AAAD,CAAC,AA3CD,IA2CC","sourcesContent":["import { LogLevel } from './types/loglevel';\n\nconst PREFIX = 'Amplitude Logger ';\n\nexport interface ILogger {\n disable(): void;\n enable(logLevel: LogLevel): void;\n log(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n debug(...args: any[]): void;\n}\n\nexport interface LogConfig {\n logger: ILogger;\n logLevel: LogLevel;\n}\n\ntype TimeKey = 'start' | 'end';\n\nexport interface DebugContext {\n type: string;\n name: string;\n args: string[] | string;\n stacktrace?: string[] | string;\n time?: { [key in TimeKey]?: string };\n states?: { [key: string]: any };\n}\n\nexport class Logger implements ILogger {\n logLevel: LogLevel;\n\n constructor() {\n this.logLevel = LogLevel.None;\n }\n\n disable(): void {\n this.logLevel = LogLevel.None;\n }\n\n enable(logLevel: LogLevel = LogLevel.Warn): void {\n this.logLevel = logLevel;\n }\n\n log(...args: any[]): void {\n if (this.logLevel < LogLevel.Verbose) {\n return;\n }\n console.log(`${PREFIX}[Log]: ${args.join(' ')}`);\n }\n\n warn(...args: any[]): void {\n if (this.logLevel < LogLevel.Warn) {\n return;\n }\n console.warn(`${PREFIX}[Warn]: ${args.join(' ')}`);\n }\n\n error(...args: any[]): void {\n if (this.logLevel < LogLevel.Error) {\n return;\n }\n console.error(`${PREFIX}[Error]: ${args.join(' ')}`);\n }\n\n debug(...args: any[]): void {\n if (this.logLevel < LogLevel.Debug) {\n return;\n }\n // console.debug output is hidden by default in chrome\n console.log(`${PREFIX}[Debug]: ${args.join(' ')}`);\n }\n}\n"]}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DestinationPlugin } from '../types/plugin';
|
|
2
|
+
import { Event } from '../types/event/event';
|
|
3
|
+
import { Result } from '../types/result';
|
|
4
|
+
import { Response, InvalidResponse, PayloadTooLargeResponse, RateLimitResponse, SuccessResponse } from '../types/response';
|
|
5
|
+
import { IConfig } from '../config';
|
|
6
|
+
import { EventCallback } from '../types/event-callback';
|
|
7
|
+
export interface Context {
|
|
8
|
+
event: Event;
|
|
9
|
+
attempts: number;
|
|
10
|
+
callback: EventCallback;
|
|
11
|
+
timeout: number;
|
|
12
|
+
}
|
|
2
13
|
export declare function getResponseBodyString(res: Response): string;
|
|
3
14
|
export declare class Destination implements DestinationPlugin {
|
|
4
15
|
name: string;
|
|
@@ -6,12 +17,12 @@ export declare class Destination implements DestinationPlugin {
|
|
|
6
17
|
retryTimeout: number;
|
|
7
18
|
throttleTimeout: number;
|
|
8
19
|
storageKey: string;
|
|
9
|
-
config:
|
|
20
|
+
config: IConfig;
|
|
10
21
|
scheduleId: ReturnType<typeof setTimeout> | null;
|
|
11
22
|
scheduledTimeout: number;
|
|
12
23
|
flushId: ReturnType<typeof setTimeout> | null;
|
|
13
24
|
queue: Context[];
|
|
14
|
-
setup(config:
|
|
25
|
+
setup(config: IConfig): Promise<undefined>;
|
|
15
26
|
execute(event: Event): Promise<Result>;
|
|
16
27
|
removeEventsExceedFlushMaxRetries(list: Context[]): Context[];
|
|
17
28
|
scheduleEvents(list: Context[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"destination.d.ts","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"destination.d.ts","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EACL,QAAQ,EACR,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAa3B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,UAUlD;AAED,qBAAa,WAAY,YAAW,iBAAiB;IACnD,IAAI,SAAe;IACnB,IAAI,gBAA0B;IAE9B,YAAY,SAAQ;IACpB,eAAe,SAAS;IACxB,UAAU,SAAM;IAIhB,MAAM,EAAE,OAAO,CAAC;IAKhB,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IAExD,gBAAgB,SAAK;IAGrB,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IACrD,KAAK,EAAE,OAAO,EAAE,CAAM;IAEhB,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IAYhD,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBtC,iCAAiC,CAAC,IAAI,EAAE,OAAO,EAAE;IAWjD,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IAU9B,QAAQ,CAAC,OAAO,EAAE,MAAM;IAsBxB,aAAa;IAMP,KAAK,CAAC,QAAQ,UAAQ;IAoCtB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,UAAO;IA2C3C,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;IA6B7C,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IAI3D,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;IA+B3D,6BAA6B,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,OAAO,EAAE;IAe3E,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,EAAE;IA+B/D,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE;IAUnC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAK7D;;;;;;OAMG;IACH,UAAU;IASV;;OAEG;IACH,YAAY,CAAC,cAAc,EAAE,OAAO,EAAE;CAOvC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __awaiter, __generator, __read, __rest, __spreadArray } from "tslib";
|
|
2
|
-
import { Status
|
|
3
|
-
import { INVALID_API_KEY, MAX_RETRIES_EXCEEDED_MESSAGE, MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, UNEXPECTED_ERROR_MESSAGE, } from '../messages';
|
|
4
|
-
import { STORAGE_PREFIX } from '../constants';
|
|
2
|
+
import { Status } from '../types/status';
|
|
3
|
+
import { INVALID_API_KEY, MAX_RETRIES_EXCEEDED_MESSAGE, MISSING_API_KEY_MESSAGE, SUCCESS_MESSAGE, UNEXPECTED_ERROR_MESSAGE, } from '../types/messages';
|
|
4
|
+
import { STORAGE_PREFIX } from '../types/constants';
|
|
5
5
|
import { chunk } from '../utils/chunk';
|
|
6
6
|
import { buildResult } from '../utils/result-builder';
|
|
7
7
|
import { createServerConfig, RequestMetadata } from '../config';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Config,\n DestinationContext as Context,\n DestinationPlugin,\n Event,\n InvalidResponse,\n PayloadTooLargeResponse,\n RateLimitResponse,\n Response,\n Result,\n Status,\n SuccessResponse,\n} from '@amplitude/analytics-types';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../messages';\nimport { STORAGE_PREFIX } from '../constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig, RequestMetadata } from '../config';\nimport { UUID } from '../utils/uuid';\n\nfunction getErrorMessage(error: unknown) {\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nexport function getResponseBodyString(res: Response) {\n let responseBodyString = '';\n try {\n if ('body' in res) {\n responseBodyString = JSON.stringify(res.body, null, 2);\n }\n } catch {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n return responseBodyString;\n}\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = 'destination' as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: Config;\n // Indicator of whether events that are scheduled (but not flushed yet).\n // When flush:\n // 1. assign `scheduleId` to `flushId`\n // 2. set `scheduleId` to null\n scheduleId: ReturnType<typeof setTimeout> | null = null;\n // Timeout in milliseconds of current schedule\n scheduledTimeout = 0;\n // Indicator of whether current flush resolves.\n // When flush resolves, set `flushId` to null\n flushId: ReturnType<typeof setTimeout> | null = null;\n queue: Context[] = [];\n\n async setup(config: Config): Promise<undefined> {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise<Result> {\n // Assign insert_id for dropping invalid event later\n if (!event.insert_id) {\n event.insert_id = UUID();\n }\n\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n this.queue.push(context);\n this.schedule(this.config.flushIntervalMillis);\n this.saveEvents();\n });\n }\n\n removeEventsExceedFlushMaxRetries(list: Context[]) {\n return list.filter((context) => {\n context.attempts += 1;\n if (context.attempts < this.config.flushMaxRetries) {\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n }\n\n scheduleEvents(list: Context[]) {\n list.forEach((context) => {\n this.schedule(context.timeout === 0 ? this.config.flushIntervalMillis : context.timeout);\n });\n }\n\n // Schedule a flush in timeout when\n // 1. No schedule\n // 2. Timeout greater than existing timeout.\n // This makes sure that when throttled, no flush when throttle timeout expires.\n schedule(timeout: number) {\n if (this.config.offline) {\n return;\n }\n\n if (this.scheduleId === null || (this.scheduleId && timeout > this.scheduledTimeout)) {\n if (this.scheduleId) {\n clearTimeout(this.scheduleId);\n }\n this.scheduledTimeout = timeout;\n this.scheduleId = setTimeout(() => {\n this.queue = this.queue.map((context) => {\n context.timeout = 0;\n return context;\n });\n void this.flush(true);\n }, timeout);\n return;\n }\n }\n\n // Mark current schedule is flushed.\n resetSchedule() {\n this.scheduleId = null;\n this.scheduledTimeout = 0;\n }\n\n // Flush all events regardless of their timeout\n async flush(useRetry = false) {\n // Skip flush if offline\n if (this.config.offline) {\n this.resetSchedule();\n this.config.loggerProvider.debug('Skipping flush while offline.');\n return;\n }\n\n if (this.flushId) {\n this.resetSchedule();\n this.config.loggerProvider.debug('Skipping flush because previous flush has not resolved.');\n return;\n }\n\n this.flushId = this.scheduleId;\n this.resetSchedule();\n\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n\n const batches = chunk(list, this.config.flushQueueSize);\n\n // Promise.all() doesn't guarantee resolve order.\n // Sequentially resolve to make sure backend receives events in order\n await batches.reduce(async (promise, batch) => {\n await promise;\n return await this.send(batch, useRetry);\n }, Promise.resolve());\n\n // Mark current flush is done\n this.flushId = null;\n\n this.scheduleEvents(this.queue);\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n client_upload_time: new Date().toISOString(),\n request_metadata: this.config.requestMetadata,\n };\n this.config.requestMetadata = new RequestMetadata();\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n if ('body' in res) {\n this.fulfillRequest(list, res.statusCode, `${res.status}: ${getResponseBodyString(res)}`);\n } else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return;\n }\n this.handleResponse(res, list);\n } catch (e) {\n const errorMessage = getErrorMessage(e);\n this.config.loggerProvider.error(errorMessage);\n this.handleResponse({ status: Status.Failed, statusCode: 0 }, list);\n }\n }\n\n handleResponse(res: Response, list: Context[]) {\n const { status } = res;\n\n switch (status) {\n case Status.Success: {\n this.handleSuccessResponse(res, list);\n break;\n }\n case Status.Invalid: {\n this.handleInvalidResponse(res, list);\n break;\n }\n case Status.PayloadTooLarge: {\n this.handlePayloadTooLargeResponse(res, list);\n break;\n }\n case Status.RateLimit: {\n this.handleRateLimitResponse(res, list);\n break;\n }\n default: {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(`{code: 0, error: \"Status '${status}' provided for ${list.length} events\"}`);\n this.handleOtherResponse(list);\n break;\n }\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n\n const tryable = this.removeEventsExceedFlushMaxRetries(retry);\n this.scheduleEvents(tryable);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n\n this.config.flushQueueSize /= 2;\n\n const tryable = this.removeEventsExceedFlushMaxRetries(list);\n this.scheduleEvents(tryable);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n\n const tryable = this.removeEventsExceedFlushMaxRetries(retry);\n this.scheduleEvents(tryable);\n }\n\n handleOtherResponse(list: Context[]) {\n const later = list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n });\n\n const tryable = this.removeEventsExceedFlushMaxRetries(later);\n this.scheduleEvents(tryable);\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.removeEvents(list);\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n *\n * Update the event storage based on the queue\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n\n const updatedEvents = this.queue.map((context) => context.event);\n void this.config.storageProvider.set(this.storageKey, updatedEvents);\n }\n\n /**\n * This is called on response comes back for a request\n */\n removeEvents(eventsToRemove: Context[]) {\n this.queue = this.queue.filter(\n (queuedContext) => !eventsToRemove.some((context) => context.event.insert_id === queuedContext.event.insert_id),\n );\n\n this.saveEvents();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"destination.js","sourceRoot":"","sources":["../../../src/plugins/destination.ts"],"names":[],"mappings":"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","sourcesContent":["import { DestinationPlugin } from '../types/plugin';\nimport { Event } from '../types/event/event';\nimport { Result } from '../types/result';\nimport { Status } from '../types/status';\nimport {\n Response,\n InvalidResponse,\n PayloadTooLargeResponse,\n RateLimitResponse,\n SuccessResponse,\n} from '../types/response';\nimport {\n INVALID_API_KEY,\n MAX_RETRIES_EXCEEDED_MESSAGE,\n MISSING_API_KEY_MESSAGE,\n SUCCESS_MESSAGE,\n UNEXPECTED_ERROR_MESSAGE,\n} from '../types/messages';\nimport { STORAGE_PREFIX } from '../types/constants';\nimport { chunk } from '../utils/chunk';\nimport { buildResult } from '../utils/result-builder';\nimport { createServerConfig, RequestMetadata } from '../config';\nimport { UUID } from '../utils/uuid';\nimport { IConfig } from '../config';\nimport { EventCallback } from '../types/event-callback';\n\nexport interface Context {\n event: Event;\n attempts: number;\n callback: EventCallback;\n timeout: number;\n}\n\nfunction getErrorMessage(error: unknown) {\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nexport function getResponseBodyString(res: Response) {\n let responseBodyString = '';\n try {\n if ('body' in res) {\n responseBodyString = JSON.stringify(res.body, null, 2);\n }\n } catch {\n // to avoid crash, but don't care about the error, add comment to avoid empty block lint error\n }\n return responseBodyString;\n}\n\nexport class Destination implements DestinationPlugin {\n name = 'amplitude';\n type = 'destination' as const;\n\n retryTimeout = 1000;\n throttleTimeout = 30000;\n storageKey = '';\n // this.config is defined in setup() which will always be called first\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n config: IConfig;\n // Indicator of whether events that are scheduled (but not flushed yet).\n // When flush:\n // 1. assign `scheduleId` to `flushId`\n // 2. set `scheduleId` to null\n scheduleId: ReturnType<typeof setTimeout> | null = null;\n // Timeout in milliseconds of current schedule\n scheduledTimeout = 0;\n // Indicator of whether current flush resolves.\n // When flush resolves, set `flushId` to null\n flushId: ReturnType<typeof setTimeout> | null = null;\n queue: Context[] = [];\n\n async setup(config: IConfig): Promise<undefined> {\n this.config = config;\n\n this.storageKey = `${STORAGE_PREFIX}_${this.config.apiKey.substring(0, 10)}`;\n const unsent = await this.config.storageProvider?.get(this.storageKey);\n if (unsent && unsent.length > 0) {\n void Promise.all(unsent.map((event) => this.execute(event))).catch();\n }\n\n return Promise.resolve(undefined);\n }\n\n execute(event: Event): Promise<Result> {\n // Assign insert_id for dropping invalid event later\n if (!event.insert_id) {\n event.insert_id = UUID();\n }\n\n return new Promise((resolve) => {\n const context = {\n event,\n attempts: 0,\n callback: (result: Result) => resolve(result),\n timeout: 0,\n };\n this.queue.push(context);\n this.schedule(this.config.flushIntervalMillis);\n this.saveEvents();\n });\n }\n\n removeEventsExceedFlushMaxRetries(list: Context[]) {\n return list.filter((context) => {\n context.attempts += 1;\n if (context.attempts < this.config.flushMaxRetries) {\n return true;\n }\n void this.fulfillRequest([context], 500, MAX_RETRIES_EXCEEDED_MESSAGE);\n return false;\n });\n }\n\n scheduleEvents(list: Context[]) {\n list.forEach((context) => {\n this.schedule(context.timeout === 0 ? this.config.flushIntervalMillis : context.timeout);\n });\n }\n\n // Schedule a flush in timeout when\n // 1. No schedule\n // 2. Timeout greater than existing timeout.\n // This makes sure that when throttled, no flush when throttle timeout expires.\n schedule(timeout: number) {\n if (this.config.offline) {\n return;\n }\n\n if (this.scheduleId === null || (this.scheduleId && timeout > this.scheduledTimeout)) {\n if (this.scheduleId) {\n clearTimeout(this.scheduleId);\n }\n this.scheduledTimeout = timeout;\n this.scheduleId = setTimeout(() => {\n this.queue = this.queue.map((context) => {\n context.timeout = 0;\n return context;\n });\n void this.flush(true);\n }, timeout);\n return;\n }\n }\n\n // Mark current schedule is flushed.\n resetSchedule() {\n this.scheduleId = null;\n this.scheduledTimeout = 0;\n }\n\n // Flush all events regardless of their timeout\n async flush(useRetry = false) {\n // Skip flush if offline\n if (this.config.offline) {\n this.resetSchedule();\n this.config.loggerProvider.debug('Skipping flush while offline.');\n return;\n }\n\n if (this.flushId) {\n this.resetSchedule();\n this.config.loggerProvider.debug('Skipping flush because previous flush has not resolved.');\n return;\n }\n\n this.flushId = this.scheduleId;\n this.resetSchedule();\n\n const list: Context[] = [];\n const later: Context[] = [];\n this.queue.forEach((context) => (context.timeout === 0 ? list.push(context) : later.push(context)));\n\n const batches = chunk(list, this.config.flushQueueSize);\n\n // Promise.all() doesn't guarantee resolve order.\n // Sequentially resolve to make sure backend receives events in order\n await batches.reduce(async (promise, batch) => {\n await promise;\n return await this.send(batch, useRetry);\n }, Promise.resolve());\n\n // Mark current flush is done\n this.flushId = null;\n\n this.scheduleEvents(this.queue);\n }\n\n async send(list: Context[], useRetry = true) {\n if (!this.config.apiKey) {\n return this.fulfillRequest(list, 400, MISSING_API_KEY_MESSAGE);\n }\n\n const payload = {\n api_key: this.config.apiKey,\n events: list.map((context) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { extra, ...eventWithoutExtra } = context.event;\n return eventWithoutExtra;\n }),\n options: {\n min_id_length: this.config.minIdLength,\n },\n client_upload_time: new Date().toISOString(),\n request_metadata: this.config.requestMetadata,\n };\n this.config.requestMetadata = new RequestMetadata();\n\n try {\n const { serverUrl } = createServerConfig(this.config.serverUrl, this.config.serverZone, this.config.useBatch);\n const res = await this.config.transportProvider.send(serverUrl, payload);\n if (res === null) {\n this.fulfillRequest(list, 0, UNEXPECTED_ERROR_MESSAGE);\n return;\n }\n if (!useRetry) {\n if ('body' in res) {\n this.fulfillRequest(list, res.statusCode, `${res.status}: ${getResponseBodyString(res)}`);\n } else {\n this.fulfillRequest(list, res.statusCode, res.status);\n }\n return;\n }\n this.handleResponse(res, list);\n } catch (e) {\n const errorMessage = getErrorMessage(e);\n this.config.loggerProvider.error(errorMessage);\n this.handleResponse({ status: Status.Failed, statusCode: 0 }, list);\n }\n }\n\n handleResponse(res: Response, list: Context[]) {\n const { status } = res;\n\n switch (status) {\n case Status.Success: {\n this.handleSuccessResponse(res, list);\n break;\n }\n case Status.Invalid: {\n this.handleInvalidResponse(res, list);\n break;\n }\n case Status.PayloadTooLarge: {\n this.handlePayloadTooLargeResponse(res, list);\n break;\n }\n case Status.RateLimit: {\n this.handleRateLimitResponse(res, list);\n break;\n }\n default: {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(`{code: 0, error: \"Status '${status}' provided for ${list.length} events\"}`);\n this.handleOtherResponse(list);\n break;\n }\n }\n }\n\n handleSuccessResponse(res: SuccessResponse, list: Context[]) {\n this.fulfillRequest(list, res.statusCode, SUCCESS_MESSAGE);\n }\n\n handleInvalidResponse(res: InvalidResponse, list: Context[]) {\n if (res.body.missingField || res.body.error.startsWith(INVALID_API_KEY)) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n const dropIndex = [\n ...Object.values(res.body.eventsWithInvalidFields),\n ...Object.values(res.body.eventsWithMissingFields),\n ...Object.values(res.body.eventsWithInvalidIdLengths),\n ...res.body.silencedEvents,\n ].flat();\n const dropIndexSet = new Set(dropIndex);\n\n const retry = list.filter((context, index) => {\n if (dropIndexSet.has(index)) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n return true;\n });\n\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n\n const tryable = this.removeEventsExceedFlushMaxRetries(retry);\n this.scheduleEvents(tryable);\n }\n\n handlePayloadTooLargeResponse(res: PayloadTooLargeResponse, list: Context[]) {\n if (list.length === 1) {\n this.fulfillRequest(list, res.statusCode, res.body.error);\n return;\n }\n\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n\n this.config.flushQueueSize /= 2;\n\n const tryable = this.removeEventsExceedFlushMaxRetries(list);\n this.scheduleEvents(tryable);\n }\n\n handleRateLimitResponse(res: RateLimitResponse, list: Context[]) {\n const dropUserIds = Object.keys(res.body.exceededDailyQuotaUsers);\n const dropDeviceIds = Object.keys(res.body.exceededDailyQuotaDevices);\n const throttledIndex = res.body.throttledEvents;\n const dropUserIdsSet = new Set(dropUserIds);\n const dropDeviceIdsSet = new Set(dropDeviceIds);\n const throttledIndexSet = new Set(throttledIndex);\n\n const retry = list.filter((context, index) => {\n if (\n (context.event.user_id && dropUserIdsSet.has(context.event.user_id)) ||\n (context.event.device_id && dropDeviceIdsSet.has(context.event.device_id))\n ) {\n this.fulfillRequest([context], res.statusCode, res.body.error);\n return;\n }\n if (throttledIndexSet.has(index)) {\n context.timeout = this.throttleTimeout;\n }\n return true;\n });\n\n if (retry.length > 0) {\n // log intermediate event status before retry\n this.config.loggerProvider.warn(getResponseBodyString(res));\n }\n\n const tryable = this.removeEventsExceedFlushMaxRetries(retry);\n this.scheduleEvents(tryable);\n }\n\n handleOtherResponse(list: Context[]) {\n const later = list.map((context) => {\n context.timeout = context.attempts * this.retryTimeout;\n return context;\n });\n\n const tryable = this.removeEventsExceedFlushMaxRetries(later);\n this.scheduleEvents(tryable);\n }\n\n fulfillRequest(list: Context[], code: number, message: string) {\n this.removeEvents(list);\n list.forEach((context) => context.callback(buildResult(context.event, code, message)));\n }\n\n /**\n * This is called on\n * 1) new events are added to queue; or\n * 2) response comes back for a request\n *\n * Update the event storage based on the queue\n */\n saveEvents() {\n if (!this.config.storageProvider) {\n return;\n }\n\n const updatedEvents = this.queue.map((context) => context.event);\n void this.config.storageProvider.set(this.storageKey, updatedEvents);\n }\n\n /**\n * This is called on response comes back for a request\n */\n removeEvents(eventsToRemove: Context[]) {\n this.queue = this.queue.filter(\n (queuedContext) => !eventsToRemove.some((context) => context.event.insert_id === queuedContext.event.insert_id),\n );\n\n this.saveEvents();\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BeforePlugin } from '../types/plugin';
|
|
2
|
+
import { IConfig } from '../config';
|
|
3
|
+
import { Event } from '../types/event/event';
|
|
4
|
+
export declare class IdentityEventSender implements BeforePlugin {
|
|
5
|
+
name: string;
|
|
6
|
+
type: "before";
|
|
7
|
+
identityStore: import("@amplitude/analytics-connector/dist/types/src/identityStore").IdentityStoreImpl;
|
|
8
|
+
execute(context: Event): Promise<Event>;
|
|
9
|
+
setup(config: IConfig): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/plugins/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG7C,qBAAa,mBAAoB,YAAW,YAAY;IACtD,IAAI,SAAc;IAClB,IAAI,WAAqB;IAEzB,aAAa,0FAAyC;IAEhD,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAQvC,KAAK,CAAC,MAAM,EAAE,OAAO;CAK5B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
import { getAnalyticsConnector } from '../analytics-connector';
|
|
3
|
+
var IdentityEventSender = /** @class */ (function () {
|
|
4
|
+
function IdentityEventSender() {
|
|
5
|
+
this.name = 'identity';
|
|
6
|
+
this.type = 'before';
|
|
7
|
+
this.identityStore = getAnalyticsConnector().identityStore;
|
|
8
|
+
}
|
|
9
|
+
IdentityEventSender.prototype.execute = function (context) {
|
|
10
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
11
|
+
var userProperties;
|
|
12
|
+
return __generator(this, function (_a) {
|
|
13
|
+
userProperties = context.user_properties;
|
|
14
|
+
if (userProperties) {
|
|
15
|
+
this.identityStore.editIdentity().updateUserProperties(userProperties).commit();
|
|
16
|
+
}
|
|
17
|
+
return [2 /*return*/, context];
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
IdentityEventSender.prototype.setup = function (config) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
23
|
+
return __generator(this, function (_a) {
|
|
24
|
+
if (config.instanceName) {
|
|
25
|
+
this.identityStore = getAnalyticsConnector(config.instanceName).identityStore;
|
|
26
|
+
}
|
|
27
|
+
return [2 /*return*/];
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
return IdentityEventSender;
|
|
32
|
+
}());
|
|
33
|
+
export { IdentityEventSender };
|
|
34
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/plugins/identity.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;IAAA;QACE,SAAI,GAAG,UAAU,CAAC;QAClB,SAAI,GAAG,QAAiB,CAAC;QAEzB,kBAAa,GAAG,qBAAqB,EAAE,CAAC,aAAa,CAAC;IAexD,CAAC;IAbO,qCAAO,GAAb,UAAc,OAAc;;;;gBACpB,cAAc,GAAG,OAAO,CAAC,eAAsC,CAAC;gBACtE,IAAI,cAAc,EAAE;oBAClB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjF;gBACD,sBAAO,OAAO,EAAC;;;KAChB;IAEK,mCAAK,GAAX,UAAY,MAAe;;;gBACzB,IAAI,MAAM,CAAC,YAAY,EAAE;oBACvB,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC;iBAC/E;;;;KACF;IACH,0BAAC;AAAD,CAAC,AAnBD,IAmBC","sourcesContent":["import { BeforePlugin } from '../types/plugin';\nimport { IConfig } from '../config';\nimport { Event } from '../types/event/event';\nimport { getAnalyticsConnector } from '../analytics-connector';\n\nexport class IdentityEventSender implements BeforePlugin {\n name = 'identity';\n type = 'before' as const;\n\n identityStore = getAnalyticsConnector().identityStore;\n\n async execute(context: Event): Promise<Event> {\n const userProperties = context.user_properties as Record<string, any>;\n if (userProperties) {\n this.identityStore.editIdentity().updateUserProperties(userProperties).commit();\n }\n return context;\n }\n\n async setup(config: IConfig) {\n if (config.instanceName) {\n this.identityStore = getAnalyticsConnector(config.instanceName).identityStore;\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-params.d.ts","sourceRoot":"","sources":["../../src/query-params.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,QAAO,OAAO,MAAM,EAAE,MAAM,GAAG,SAAS,CAkBlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,4BAMjC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getGlobalScope } from './global-scope';
|
|
2
|
+
export var getQueryParams = function () {
|
|
3
|
+
var _a;
|
|
4
|
+
var globalScope = getGlobalScope();
|
|
5
|
+
/* istanbul ignore if */
|
|
6
|
+
if (!((_a = globalScope === null || globalScope === void 0 ? void 0 : globalScope.location) === null || _a === void 0 ? void 0 : _a.search)) {
|
|
7
|
+
return {};
|
|
8
|
+
}
|
|
9
|
+
var pairs = globalScope.location.search.substring(1).split('&').filter(Boolean);
|
|
10
|
+
var params = pairs.reduce(function (acc, curr) {
|
|
11
|
+
var query = curr.split('=', 2);
|
|
12
|
+
var key = tryDecodeURIComponent(query[0]);
|
|
13
|
+
var value = tryDecodeURIComponent(query[1]);
|
|
14
|
+
if (!value) {
|
|
15
|
+
return acc;
|
|
16
|
+
}
|
|
17
|
+
acc[key] = value;
|
|
18
|
+
return acc;
|
|
19
|
+
}, {});
|
|
20
|
+
return params;
|
|
21
|
+
};
|
|
22
|
+
export var tryDecodeURIComponent = function (value) {
|
|
23
|
+
if (value === void 0) { value = ''; }
|
|
24
|
+
try {
|
|
25
|
+
return decodeURIComponent(value);
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=query-params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-params.js","sourceRoot":"","sources":["../../src/query-params.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,CAAC,IAAM,cAAc,GAAG;;IAC5B,IAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,wBAAwB;IACxB,IAAI,CAAC,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,0CAAE,MAAM,CAAA,EAAE;QAClC,OAAO,EAAE,CAAC;KACX;IACD,IAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClF,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAqC,UAAC,GAAG,EAAE,IAAI;QACxE,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACjC,IAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,GAAG,CAAC;SACZ;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,KAAU;IAAV,sBAAA,EAAA,UAAU;IAC9C,IAAI;QACF,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAClC;IAAC,WAAM;QACN,OAAO,EAAE,CAAC;KACX;AACH,CAAC,CAAC","sourcesContent":["import { getGlobalScope } from './global-scope';\n\nexport const getQueryParams = (): Record<string, string | undefined> => {\n const globalScope = getGlobalScope();\n /* istanbul ignore if */\n if (!globalScope?.location?.search) {\n return {};\n }\n const pairs = globalScope.location.search.substring(1).split('&').filter(Boolean);\n const params = pairs.reduce<Record<string, string | undefined>>((acc, curr) => {\n const query = curr.split('=', 2);\n const key = tryDecodeURIComponent(query[0]);\n const value = tryDecodeURIComponent(query[1]);\n if (!value) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n return params;\n};\n\nexport const tryDecodeURIComponent = (value = '') => {\n try {\n return decodeURIComponent(value);\n } catch {\n return '';\n }\n};\n"]}
|
package/lib/esm/revenue.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
export interface IRevenue {
|
|
2
|
+
getEventProperties(): RevenueEventProperties;
|
|
3
|
+
setProductId(productId: string): IRevenue;
|
|
4
|
+
setQuantity(quantity: number): IRevenue;
|
|
5
|
+
setPrice(price: number): IRevenue;
|
|
6
|
+
setRevenueType(revenueType: string): IRevenue;
|
|
7
|
+
setCurrency(currency: string): IRevenue;
|
|
8
|
+
setEventProperties(properties: {
|
|
9
|
+
[key: string]: any;
|
|
10
|
+
}): IRevenue;
|
|
11
|
+
setRevenue(revenue: number): IRevenue;
|
|
12
|
+
setReceipt(receipt: string): IRevenue;
|
|
13
|
+
setReceiptSig(receiptSig: string): IRevenue;
|
|
14
|
+
}
|
|
2
15
|
export declare class Revenue implements IRevenue {
|
|
3
16
|
private productId;
|
|
4
17
|
private quantity;
|
|
@@ -7,6 +20,8 @@ export declare class Revenue implements IRevenue {
|
|
|
7
20
|
private currency?;
|
|
8
21
|
private properties?;
|
|
9
22
|
private revenue?;
|
|
23
|
+
private receipt?;
|
|
24
|
+
private receiptSig?;
|
|
10
25
|
constructor();
|
|
11
26
|
setProductId(productId: string): this;
|
|
12
27
|
setQuantity(quantity: number): this;
|
|
@@ -14,9 +29,36 @@ export declare class Revenue implements IRevenue {
|
|
|
14
29
|
setRevenueType(revenueType: string): this;
|
|
15
30
|
setCurrency(currency: string): this;
|
|
16
31
|
setRevenue(revenue: number): this;
|
|
32
|
+
setReceipt(receipt: string): this;
|
|
33
|
+
setReceiptSig(receiptSig: string): this;
|
|
17
34
|
setEventProperties(properties: {
|
|
18
35
|
[key: string]: ValidPropertyType;
|
|
19
36
|
}): this;
|
|
20
37
|
getEventProperties(): RevenueEventProperties;
|
|
21
38
|
}
|
|
39
|
+
export interface RevenueEventProperties {
|
|
40
|
+
[RevenueProperty.REVENUE_PRODUCT_ID]?: string;
|
|
41
|
+
[RevenueProperty.REVENUE_QUANTITY]?: number;
|
|
42
|
+
[RevenueProperty.REVENUE_PRICE]?: number;
|
|
43
|
+
[RevenueProperty.REVENUE_TYPE]?: string;
|
|
44
|
+
[RevenueProperty.REVENUE_CURRENCY]?: string;
|
|
45
|
+
[RevenueProperty.REVENUE]?: number;
|
|
46
|
+
[RevenueProperty.RECEIPT]?: string;
|
|
47
|
+
[RevenueProperty.RECEIPT_SIG]?: string;
|
|
48
|
+
}
|
|
49
|
+
export declare enum RevenueProperty {
|
|
50
|
+
REVENUE_PRODUCT_ID = "$productId",
|
|
51
|
+
REVENUE_QUANTITY = "$quantity",
|
|
52
|
+
REVENUE_PRICE = "$price",
|
|
53
|
+
REVENUE_TYPE = "$revenueType",
|
|
54
|
+
REVENUE_CURRENCY = "$currency",
|
|
55
|
+
REVENUE = "$revenue",
|
|
56
|
+
RECEIPT = "$receipt",
|
|
57
|
+
RECEIPT_SIG = "$receiptSig"
|
|
58
|
+
}
|
|
59
|
+
export type ValidPropertyType = number | string | boolean | Array<string | number> | {
|
|
60
|
+
[key: string]: ValidPropertyType;
|
|
61
|
+
} | Array<{
|
|
62
|
+
[key: string]: ValidPropertyType;
|
|
63
|
+
}>;
|
|
22
64
|
//# sourceMappingURL=revenue.d.ts.map
|
package/lib/esm/revenue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revenue.d.ts","sourceRoot":"","sources":["../../src/revenue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"revenue.d.ts","sourceRoot":"","sources":["../../src/revenue.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,kBAAkB,IAAI,sBAAsB,CAAC;IAC7C,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxC,kBAAkB,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAG,QAAQ,CAAC;IACjE,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IACtC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IACtC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC7C;AAED,qBAAa,OAAQ,YAAW,QAAQ;IACtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAyB;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,UAAU,CAAC,CAAS;;IAQ5B,YAAY,CAAC,SAAS,EAAE,MAAM;IAK9B,WAAW,CAAC,QAAQ,EAAE,MAAM;IAO5B,QAAQ,CAAC,KAAK,EAAE,MAAM;IAKtB,cAAc,CAAC,WAAW,EAAE,MAAM;IAKlC,WAAW,CAAC,QAAQ,EAAE,MAAM;IAK5B,UAAU,CAAC,OAAO,EAAE,MAAM;IAK1B,UAAU,CAAC,OAAO,EAAE,MAAM;IAK1B,aAAa,CAAC,UAAU,EAAE,MAAM;IAKhC,kBAAkB,CAAC,UAAU,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE;IAOnE,kBAAkB,IAAI,sBAAsB;CAY7C;AAED,MAAM,WAAW,sBAAsB;IACrC,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC;IAC9C,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC;IAC5C,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IACzC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC;IACxC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC;IAC5C,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;IACnC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;IACnC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC;CACxC;AAED,oBAAY,eAAe;IACzB,kBAAkB,eAAe;IACjC,gBAAgB,cAAc;IAC9B,aAAa,WAAW;IACxB,YAAY,iBAAiB;IAC7B,gBAAgB,cAAc;IAC9B,OAAO,aAAa;IACpB,OAAO,aAAa;IACpB,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GACtB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,GACpC,KAAK,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CAAE,CAAC,CAAC"}
|
package/lib/esm/revenue.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { __assign } from "tslib";
|
|
2
|
-
import { RevenueProperty, } from '@amplitude/analytics-types';
|
|
3
2
|
import { isValidObject } from './utils/valid-properties';
|
|
4
3
|
var Revenue = /** @class */ (function () {
|
|
5
4
|
function Revenue() {
|
|
@@ -33,6 +32,14 @@ var Revenue = /** @class */ (function () {
|
|
|
33
32
|
this.revenue = revenue;
|
|
34
33
|
return this;
|
|
35
34
|
};
|
|
35
|
+
Revenue.prototype.setReceipt = function (receipt) {
|
|
36
|
+
this.receipt = receipt;
|
|
37
|
+
return this;
|
|
38
|
+
};
|
|
39
|
+
Revenue.prototype.setReceiptSig = function (receiptSig) {
|
|
40
|
+
this.receiptSig = receiptSig;
|
|
41
|
+
return this;
|
|
42
|
+
};
|
|
36
43
|
Revenue.prototype.setEventProperties = function (properties) {
|
|
37
44
|
if (isValidObject(properties)) {
|
|
38
45
|
this.properties = properties;
|
|
@@ -47,9 +54,22 @@ var Revenue = /** @class */ (function () {
|
|
|
47
54
|
eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;
|
|
48
55
|
eventProperties[RevenueProperty.REVENUE_CURRENCY] = this.currency;
|
|
49
56
|
eventProperties[RevenueProperty.REVENUE] = this.revenue;
|
|
57
|
+
eventProperties[RevenueProperty.RECEIPT] = this.receipt;
|
|
58
|
+
eventProperties[RevenueProperty.RECEIPT_SIG] = this.receiptSig;
|
|
50
59
|
return eventProperties;
|
|
51
60
|
};
|
|
52
61
|
return Revenue;
|
|
53
62
|
}());
|
|
54
63
|
export { Revenue };
|
|
64
|
+
export var RevenueProperty;
|
|
65
|
+
(function (RevenueProperty) {
|
|
66
|
+
RevenueProperty["REVENUE_PRODUCT_ID"] = "$productId";
|
|
67
|
+
RevenueProperty["REVENUE_QUANTITY"] = "$quantity";
|
|
68
|
+
RevenueProperty["REVENUE_PRICE"] = "$price";
|
|
69
|
+
RevenueProperty["REVENUE_TYPE"] = "$revenueType";
|
|
70
|
+
RevenueProperty["REVENUE_CURRENCY"] = "$currency";
|
|
71
|
+
RevenueProperty["REVENUE"] = "$revenue";
|
|
72
|
+
RevenueProperty["RECEIPT"] = "$receipt";
|
|
73
|
+
RevenueProperty["RECEIPT_SIG"] = "$receiptSig";
|
|
74
|
+
})(RevenueProperty || (RevenueProperty = {}));
|
|
55
75
|
//# sourceMappingURL=revenue.js.map
|
package/lib/esm/revenue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"revenue.js","sourceRoot":"","sources":["../../src/revenue.ts"],"names":[],"mappings":";AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"revenue.js","sourceRoot":"","sources":["../../src/revenue.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAezD;IAWE;QACE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,8BAAY,GAAZ,UAAa,SAAiB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAAQ,GAAR,UAAS,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAc,GAAd,UAAe,WAAmB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,6BAAW,GAAX,UAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAAU,GAAV,UAAW,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAAU,GAAV,UAAW,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAAa,GAAb,UAAc,UAAkB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAkB,GAAlB,UAAmB,UAAgD;QACjE,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE;YAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oCAAkB,GAAlB;QACE,IAAM,eAAe,GAA2B,IAAI,CAAC,UAAU,CAAC,CAAC,cAAM,IAAI,CAAC,UAAU,EAAG,CAAC,CAAC,EAAE,CAAC;QAC9F,eAAe,CAAC,eAAe,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACrE,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClE,eAAe,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5D,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QACjE,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClE,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACxD,eAAe,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACxD,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/D,OAAO,eAAe,CAAC;IACzB,CAAC;IACH,cAAC;AAAD,CAAC,AA9ED,IA8EC;;AAaD,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,iDAA8B,CAAA;IAC9B,2CAAwB,CAAA;IACxB,gDAA6B,CAAA;IAC7B,iDAA8B,CAAA;IAC9B,uCAAoB,CAAA;IACpB,uCAAoB,CAAA;IACpB,8CAA2B,CAAA;AAC7B,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B","sourcesContent":["import { isValidObject } from './utils/valid-properties';\n\nexport interface IRevenue {\n getEventProperties(): RevenueEventProperties;\n setProductId(productId: string): IRevenue;\n setQuantity(quantity: number): IRevenue;\n setPrice(price: number): IRevenue;\n setRevenueType(revenueType: string): IRevenue;\n setCurrency(currency: string): IRevenue;\n setEventProperties(properties: { [key: string]: any }): IRevenue;\n setRevenue(revenue: number): IRevenue;\n setReceipt(receipt: string): IRevenue;\n setReceiptSig(receiptSig: string): IRevenue;\n}\n\nexport class Revenue implements IRevenue {\n private productId: string;\n private quantity: number;\n private price: number;\n private revenueType?: string;\n private currency?: string;\n private properties?: { [key: string]: any };\n private revenue?: number;\n private receipt?: string;\n private receiptSig?: string;\n\n constructor() {\n this.productId = '';\n this.quantity = 1;\n this.price = 0.0;\n }\n\n setProductId(productId: string) {\n this.productId = productId;\n return this;\n }\n\n setQuantity(quantity: number) {\n if (quantity > 0) {\n this.quantity = quantity;\n }\n return this;\n }\n\n setPrice(price: number) {\n this.price = price;\n return this;\n }\n\n setRevenueType(revenueType: string) {\n this.revenueType = revenueType;\n return this;\n }\n\n setCurrency(currency: string) {\n this.currency = currency;\n return this;\n }\n\n setRevenue(revenue: number) {\n this.revenue = revenue;\n return this;\n }\n\n setReceipt(receipt: string) {\n this.receipt = receipt;\n return this;\n }\n\n setReceiptSig(receiptSig: string) {\n this.receiptSig = receiptSig;\n return this;\n }\n\n setEventProperties(properties: { [key: string]: ValidPropertyType }) {\n if (isValidObject(properties)) {\n this.properties = properties;\n }\n return this;\n }\n\n getEventProperties(): RevenueEventProperties {\n const eventProperties: RevenueEventProperties = this.properties ? { ...this.properties } : {};\n eventProperties[RevenueProperty.REVENUE_PRODUCT_ID] = this.productId;\n eventProperties[RevenueProperty.REVENUE_QUANTITY] = this.quantity;\n eventProperties[RevenueProperty.REVENUE_PRICE] = this.price;\n eventProperties[RevenueProperty.REVENUE_TYPE] = this.revenueType;\n eventProperties[RevenueProperty.REVENUE_CURRENCY] = this.currency;\n eventProperties[RevenueProperty.REVENUE] = this.revenue;\n eventProperties[RevenueProperty.RECEIPT] = this.receipt;\n eventProperties[RevenueProperty.RECEIPT_SIG] = this.receiptSig;\n return eventProperties;\n }\n}\n\nexport interface RevenueEventProperties {\n [RevenueProperty.REVENUE_PRODUCT_ID]?: string;\n [RevenueProperty.REVENUE_QUANTITY]?: number;\n [RevenueProperty.REVENUE_PRICE]?: number;\n [RevenueProperty.REVENUE_TYPE]?: string;\n [RevenueProperty.REVENUE_CURRENCY]?: string;\n [RevenueProperty.REVENUE]?: number;\n [RevenueProperty.RECEIPT]?: string;\n [RevenueProperty.RECEIPT_SIG]?: string;\n}\n\nexport enum RevenueProperty {\n REVENUE_PRODUCT_ID = '$productId',\n REVENUE_QUANTITY = '$quantity',\n REVENUE_PRICE = '$price',\n REVENUE_TYPE = '$revenueType',\n REVENUE_CURRENCY = '$currency',\n REVENUE = '$revenue',\n RECEIPT = '$receipt',\n RECEIPT_SIG = '$receiptSig',\n}\n\nexport type ValidPropertyType =\n | number\n | string\n | boolean\n | Array<string | number>\n | { [key: string]: ValidPropertyType }\n | Array<{ [key: string]: ValidPropertyType }>;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,mBAAoB,MAAM,kBAAiB,MAAM,KAAgB,OAKzF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var isNewSession = function (sessionTimeout, lastEventTime) {
|
|
2
|
+
if (lastEventTime === void 0) { lastEventTime = Date.now(); }
|
|
3
|
+
var currentTime = Date.now();
|
|
4
|
+
var timeSinceLastEvent = currentTime - lastEventTime;
|
|
5
|
+
return timeSinceLastEvent > sessionTimeout;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,YAAY,GAAG,UAAC,cAAsB,EAAE,aAAkC;IAAlC,8BAAA,EAAA,gBAAwB,IAAI,CAAC,GAAG,EAAE;IACrF,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAM,kBAAkB,GAAG,WAAW,GAAG,aAAa,CAAC;IAEvD,OAAO,kBAAkB,GAAG,cAAc,CAAC;AAC7C,CAAC,CAAC","sourcesContent":["export const isNewSession = (sessionTimeout: number, lastEventTime: number = Date.now()): boolean => {\n const currentTime = Date.now();\n const timeSinceLastEvent = currentTime - lastEventTime;\n\n return timeSinceLastEvent > sessionTimeout;\n};\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Storage, CookieStorageOptions } from '../types/storage';
|
|
2
|
+
export declare class CookieStorage<T> implements Storage<T> {
|
|
3
|
+
options: CookieStorageOptions;
|
|
4
|
+
private static testValue;
|
|
5
|
+
constructor(options?: CookieStorageOptions);
|
|
6
|
+
isEnabled(): Promise<boolean>;
|
|
7
|
+
get(key: string): Promise<T | undefined>;
|
|
8
|
+
getRaw(key: string): Promise<string | undefined>;
|
|
9
|
+
set(key: string, value: T | null): Promise<void>;
|
|
10
|
+
remove(key: string): Promise<void>;
|
|
11
|
+
reset(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=cookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/storage/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGjE,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqB;gBAEjC,OAAO,CAAC,EAAE,oBAAoB;IAIpC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAqB7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAmBxC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAUhD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
|