@picked/analytics 0.0.117-next.2 → 0.0.117-next.3
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/.tsbuildinfo +1 -1
- package/dist/cjs/events/app_close.d.ts +4 -0
- package/dist/cjs/events/app_close.d.ts.map +1 -0
- package/dist/cjs/events/app_initialize.d.ts +4 -0
- package/dist/cjs/events/app_initialize.d.ts.map +1 -0
- package/dist/cjs/events/app_load.d.ts +4 -0
- package/dist/cjs/events/app_load.d.ts.map +1 -0
- package/dist/cjs/events/app_open.d.ts +4 -0
- package/dist/cjs/events/app_open.d.ts.map +1 -0
- package/dist/cjs/events/cart_add.d.ts +13 -0
- package/dist/cjs/events/cart_add.d.ts.map +1 -0
- package/dist/cjs/events/cart_remove.d.ts +13 -0
- package/dist/cjs/events/cart_remove.d.ts.map +1 -0
- package/dist/cjs/events/checkout_complete.d.ts +13 -0
- package/dist/cjs/events/checkout_complete.d.ts.map +1 -0
- package/dist/cjs/events/checkout_start.d.ts +13 -0
- package/dist/cjs/events/checkout_start.d.ts.map +1 -0
- package/dist/cjs/events/custom.d.ts +31 -0
- package/dist/cjs/events/custom.d.ts.map +1 -0
- package/dist/cjs/events/experience_load.d.ts +4 -0
- package/dist/cjs/events/experience_load.d.ts.map +1 -0
- package/dist/cjs/events/feature_decide.d.ts +4 -0
- package/dist/cjs/events/feature_decide.d.ts.map +1 -0
- package/dist/cjs/events/field_validation_error.d.ts +4 -0
- package/dist/cjs/events/field_validation_error.d.ts.map +1 -0
- package/dist/cjs/events/form_submit.d.ts +4 -0
- package/dist/cjs/events/form_submit.d.ts.map +1 -0
- package/dist/cjs/events/form_submit_error.d.ts +4 -0
- package/dist/cjs/events/form_submit_error.d.ts.map +1 -0
- package/dist/cjs/events/form_submit_success.d.ts +4 -0
- package/dist/cjs/events/form_submit_success.d.ts.map +1 -0
- package/dist/cjs/events/identify.d.ts +13 -0
- package/dist/cjs/events/identify.d.ts.map +1 -0
- package/dist/cjs/events/index.d.ts +38 -0
- package/dist/cjs/events/index.d.ts.map +1 -0
- package/dist/cjs/events/interaction/back.d.ts +7 -0
- package/dist/cjs/events/interaction/back.d.ts.map +1 -0
- package/dist/cjs/events/interaction/backspace.d.ts +7 -0
- package/dist/cjs/events/interaction/backspace.d.ts.map +1 -0
- package/dist/cjs/events/interaction/click.d.ts +7 -0
- package/dist/cjs/events/interaction/click.d.ts.map +1 -0
- package/dist/cjs/events/interaction/copy.d.ts +7 -0
- package/dist/cjs/events/interaction/copy.d.ts.map +1 -0
- package/dist/cjs/events/interaction/drag.d.ts +7 -0
- package/dist/cjs/events/interaction/drag.d.ts.map +1 -0
- package/dist/cjs/events/interaction/forward.d.ts +7 -0
- package/dist/cjs/events/interaction/forward.d.ts.map +1 -0
- package/dist/cjs/events/interaction/mouse_shake.d.ts +7 -0
- package/dist/cjs/events/interaction/mouse_shake.d.ts.map +1 -0
- package/dist/cjs/events/interaction/offline.d.ts +7 -0
- package/dist/cjs/events/interaction/offline.d.ts.map +1 -0
- package/dist/cjs/events/interaction/online.d.ts +7 -0
- package/dist/cjs/events/interaction/online.d.ts.map +1 -0
- package/dist/cjs/events/interaction/page_hidden.d.ts +7 -0
- package/dist/cjs/events/interaction/page_hidden.d.ts.map +1 -0
- package/dist/cjs/events/interaction/page_hide.d.ts +7 -0
- package/dist/cjs/events/interaction/page_hide.d.ts.map +1 -0
- package/dist/cjs/events/interaction/page_show.d.ts +7 -0
- package/dist/cjs/events/interaction/page_show.d.ts.map +1 -0
- package/dist/cjs/events/interaction/page_visible.d.ts +7 -0
- package/dist/cjs/events/interaction/page_visible.d.ts.map +1 -0
- package/dist/cjs/events/interaction/paste.d.ts +7 -0
- package/dist/cjs/events/interaction/paste.d.ts.map +1 -0
- package/dist/cjs/events/interaction/rapid_click.d.ts +7 -0
- package/dist/cjs/events/interaction/rapid_click.d.ts.map +1 -0
- package/dist/cjs/events/interaction/rapid_scroll.d.ts +7 -0
- package/dist/cjs/events/interaction/rapid_scroll.d.ts.map +1 -0
- package/dist/cjs/events/interaction/resize.d.ts +7 -0
- package/dist/cjs/events/interaction/resize.d.ts.map +1 -0
- package/dist/cjs/events/interaction/right_click.d.ts +7 -0
- package/dist/cjs/events/interaction/right_click.d.ts.map +1 -0
- package/dist/cjs/events/interaction/scroll.d.ts +7 -0
- package/dist/cjs/events/interaction/scroll.d.ts.map +1 -0
- package/dist/cjs/events/interaction/unload.d.ts +7 -0
- package/dist/cjs/events/interaction/unload.d.ts.map +1 -0
- package/dist/cjs/events/lead_capture.d.ts +4 -0
- package/dist/cjs/events/lead_capture.d.ts.map +1 -0
- package/dist/cjs/events/lead_created.d.ts +13 -0
- package/dist/cjs/events/lead_created.d.ts.map +1 -0
- package/dist/cjs/events/lead_updated.d.ts +13 -0
- package/dist/cjs/events/lead_updated.d.ts.map +1 -0
- package/dist/cjs/events/modal_close.d.ts +4 -0
- package/dist/cjs/events/modal_close.d.ts.map +1 -0
- package/dist/cjs/events/modal_open.d.ts +4 -0
- package/dist/cjs/events/modal_open.d.ts.map +1 -0
- package/dist/cjs/events/order_create.d.ts +13 -0
- package/dist/cjs/events/order_create.d.ts.map +1 -0
- package/dist/cjs/events/page_view.d.ts +13 -0
- package/dist/cjs/events/page_view.d.ts.map +1 -0
- package/dist/cjs/events/product_list_view.d.ts +13 -0
- package/dist/cjs/events/product_list_view.d.ts.map +1 -0
- package/dist/cjs/events/product_select.d.ts +4 -0
- package/dist/cjs/events/product_select.d.ts.map +1 -0
- package/dist/cjs/events/product_view_details.d.ts +13 -0
- package/dist/cjs/events/product_view_details.d.ts.map +1 -0
- package/dist/cjs/events/recommendation_present.d.ts +4 -0
- package/dist/cjs/events/recommendation_present.d.ts.map +1 -0
- package/dist/cjs/events/search_results_list_view.d.ts +4 -0
- package/dist/cjs/events/search_results_list_view.d.ts.map +1 -0
- package/dist/cjs/events/step_complete.d.ts +4 -0
- package/dist/cjs/events/step_complete.d.ts.map +1 -0
- package/dist/cjs/events/step_enter.d.ts +4 -0
- package/dist/cjs/events/step_enter.d.ts.map +1 -0
- package/dist/cjs/events/step_submit.d.ts +4 -0
- package/dist/cjs/events/step_submit.d.ts.map +1 -0
- package/dist/cjs/events/step_submit_error.d.ts +4 -0
- package/dist/cjs/events/step_submit_error.d.ts.map +1 -0
- package/dist/cjs/events/step_submit_success.d.ts +4 -0
- package/dist/cjs/events/step_submit_success.d.ts.map +1 -0
- package/dist/cjs/events/waitlist_join.d.ts +4 -0
- package/dist/cjs/events/waitlist_join.d.ts.map +1 -0
- package/dist/cjs/events/wishlist_add.d.ts +4 -0
- package/dist/cjs/events/wishlist_add.d.ts.map +1 -0
- package/dist/cjs/helpers/element.d.ts +31 -0
- package/dist/cjs/helpers/element.d.ts.map +1 -0
- package/dist/cjs/helpers/text.d.ts +2 -0
- package/dist/cjs/helpers/text.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +6 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/interaction-events.d.ts +22 -0
- package/dist/cjs/interaction-events.d.ts.map +1 -0
- package/dist/cjs/interactions/document.d.ts +46 -0
- package/dist/cjs/interactions/document.d.ts.map +1 -0
- package/dist/cjs/listeners/backspace.d.ts +3 -0
- package/dist/cjs/listeners/backspace.d.ts.map +1 -0
- package/dist/cjs/listeners/click.d.ts +3 -0
- package/dist/cjs/listeners/click.d.ts.map +1 -0
- package/dist/cjs/listeners/copy.d.ts +3 -0
- package/dist/cjs/listeners/copy.d.ts.map +1 -0
- package/dist/cjs/listeners/drag.d.ts +3 -0
- package/dist/cjs/listeners/drag.d.ts.map +1 -0
- package/dist/cjs/listeners/mouse_shake.d.ts +3 -0
- package/dist/cjs/listeners/mouse_shake.d.ts.map +1 -0
- package/dist/cjs/listeners/offline.d.ts +3 -0
- package/dist/cjs/listeners/offline.d.ts.map +1 -0
- package/dist/cjs/listeners/online.d.ts +3 -0
- package/dist/cjs/listeners/online.d.ts.map +1 -0
- package/dist/cjs/listeners/pagehide.d.ts +3 -0
- package/dist/cjs/listeners/pagehide.d.ts.map +1 -0
- package/dist/cjs/listeners/pageshow.d.ts +3 -0
- package/dist/cjs/listeners/pageshow.d.ts.map +1 -0
- package/dist/cjs/listeners/paste.d.ts +3 -0
- package/dist/cjs/listeners/paste.d.ts.map +1 -0
- package/dist/cjs/listeners/rapid_click.d.ts +3 -0
- package/dist/cjs/listeners/rapid_click.d.ts.map +1 -0
- package/dist/cjs/listeners/rapid_scroll.d.ts +3 -0
- package/dist/cjs/listeners/rapid_scroll.d.ts.map +1 -0
- package/dist/cjs/listeners/resize.d.ts +3 -0
- package/dist/cjs/listeners/resize.d.ts.map +1 -0
- package/dist/cjs/listeners/right_click.d.ts +3 -0
- package/dist/cjs/listeners/right_click.d.ts.map +1 -0
- package/dist/cjs/listeners/scroll.d.ts +3 -0
- package/dist/cjs/listeners/scroll.d.ts.map +1 -0
- package/dist/cjs/listeners/unload.d.ts +3 -0
- package/dist/cjs/listeners/unload.d.ts.map +1 -0
- package/dist/cjs/listeners/visibility.d.ts +3 -0
- package/dist/cjs/listeners/visibility.d.ts.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/plugins/analytics/index.d.ts +8 -0
- package/dist/cjs/plugins/analytics/index.d.ts.map +1 -0
- package/dist/cjs/plugins/analytics/plugin.d.ts +34 -0
- package/dist/cjs/plugins/analytics/plugin.d.ts.map +1 -0
- package/dist/cjs/schemas/answer_list/1-0-0.d.ts +64 -0
- package/dist/cjs/schemas/answer_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/answer_list/index.d.ts +68 -0
- package/dist/cjs/schemas/answer_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/app/1-0-0.d.ts +33 -0
- package/dist/cjs/schemas/app/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/app/1-1-0.d.ts +31 -0
- package/dist/cjs/schemas/app/1-1-0.d.ts.map +1 -0
- package/dist/cjs/schemas/app/index.d.ts +67 -0
- package/dist/cjs/schemas/app/index.d.ts.map +1 -0
- package/dist/cjs/schemas/cvly_funnel/1-0-0.d.ts +30 -0
- package/dist/cjs/schemas/cvly_funnel/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/cvly_funnel/index.d.ts +35 -0
- package/dist/cjs/schemas/cvly_funnel/index.d.ts.map +1 -0
- package/dist/cjs/schemas/cvly_x/1-0-0.d.ts +43 -0
- package/dist/cjs/schemas/cvly_x/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/cvly_x/1-0-1.d.ts +45 -0
- package/dist/cjs/schemas/cvly_x/1-0-1.d.ts.map +1 -0
- package/dist/cjs/schemas/cvly_x/index.d.ts +91 -0
- package/dist/cjs/schemas/cvly_x/index.d.ts.map +1 -0
- package/dist/cjs/schemas/deployment/1-0-0.d.ts +43 -0
- package/dist/cjs/schemas/deployment/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/deployment/1-0-1.d.ts +45 -0
- package/dist/cjs/schemas/deployment/1-0-1.d.ts.map +1 -0
- package/dist/cjs/schemas/deployment/index.d.ts +91 -0
- package/dist/cjs/schemas/deployment/index.d.ts.map +1 -0
- package/dist/cjs/schemas/element/1-0-0.d.ts +45 -0
- package/dist/cjs/schemas/element/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/element/index.d.ts +50 -0
- package/dist/cjs/schemas/element/index.d.ts.map +1 -0
- package/dist/cjs/schemas/event/1-0-0.d.ts +30 -0
- package/dist/cjs/schemas/event/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/event/index.d.ts +35 -0
- package/dist/cjs/schemas/event/index.d.ts.map +1 -0
- package/dist/cjs/schemas/exception/1-0-0.d.ts +30 -0
- package/dist/cjs/schemas/exception/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/exception/index.d.ts +35 -0
- package/dist/cjs/schemas/exception/index.d.ts.map +1 -0
- package/dist/cjs/schemas/experience/1-0-0.d.ts +38 -0
- package/dist/cjs/schemas/experience/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/experience/1-0-1.d.ts +38 -0
- package/dist/cjs/schemas/experience/1-0-1.d.ts.map +1 -0
- package/dist/cjs/schemas/experience/1-0-2.d.ts +46 -0
- package/dist/cjs/schemas/experience/1-0-2.d.ts.map +1 -0
- package/dist/cjs/schemas/experience/index.d.ts +123 -0
- package/dist/cjs/schemas/experience/index.d.ts.map +1 -0
- package/dist/cjs/schemas/feature_list/1-0-0.d.ts +60 -0
- package/dist/cjs/schemas/feature_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/feature_list/2-0-0.d.ts +61 -0
- package/dist/cjs/schemas/feature_list/2-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/feature_list/index.d.ts +124 -0
- package/dist/cjs/schemas/feature_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/field_list/1-0-0.d.ts +89 -0
- package/dist/cjs/schemas/field_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/field_list/index.d.ts +94 -0
- package/dist/cjs/schemas/field_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/form/1-0-0.d.ts +35 -0
- package/dist/cjs/schemas/form/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/form/index.d.ts +40 -0
- package/dist/cjs/schemas/form/index.d.ts.map +1 -0
- package/dist/cjs/schemas/index.d.ts +46 -0
- package/dist/cjs/schemas/index.d.ts.map +1 -0
- package/dist/cjs/schemas/modal/1-0-0.d.ts +35 -0
- package/dist/cjs/schemas/modal/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/modal/index.d.ts +40 -0
- package/dist/cjs/schemas/modal/index.d.ts.map +1 -0
- package/dist/cjs/schemas/order/1-0-0.d.ts +45 -0
- package/dist/cjs/schemas/order/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/order/index.d.ts +50 -0
- package/dist/cjs/schemas/order/index.d.ts.map +1 -0
- package/dist/cjs/schemas/picked/1-0-0.d.ts +30 -0
- package/dist/cjs/schemas/picked/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/picked/index.d.ts +35 -0
- package/dist/cjs/schemas/picked/index.d.ts.map +1 -0
- package/dist/cjs/schemas/product_list/1-0-0.d.ts +81 -0
- package/dist/cjs/schemas/product_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/product_list/2-0-0.d.ts +162 -0
- package/dist/cjs/schemas/product_list/2-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/product_list/2-0-1.d.ts +168 -0
- package/dist/cjs/schemas/product_list/2-0-1.d.ts.map +1 -0
- package/dist/cjs/schemas/product_list/index.d.ts +412 -0
- package/dist/cjs/schemas/product_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/question_list/1-0-0.d.ts +89 -0
- package/dist/cjs/schemas/question_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/question_list/index.d.ts +93 -0
- package/dist/cjs/schemas/question_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/recommendation_list/1-0-0.d.ts +57 -0
- package/dist/cjs/schemas/recommendation_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/recommendation_list/index.d.ts +61 -0
- package/dist/cjs/schemas/recommendation_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/response_list/1-0-0.d.ts +64 -0
- package/dist/cjs/schemas/response_list/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/response_list/index.d.ts +69 -0
- package/dist/cjs/schemas/response_list/index.d.ts.map +1 -0
- package/dist/cjs/schemas/session/1-0-0.d.ts +28 -0
- package/dist/cjs/schemas/session/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/session/1-0-1.d.ts +32 -0
- package/dist/cjs/schemas/session/1-0-1.d.ts.map +1 -0
- package/dist/cjs/schemas/session/1-0-2.d.ts +37 -0
- package/dist/cjs/schemas/session/1-0-2.d.ts.map +1 -0
- package/dist/cjs/schemas/session/1-0-3.d.ts +51 -0
- package/dist/cjs/schemas/session/1-0-3.d.ts.map +1 -0
- package/dist/cjs/schemas/session/1-0-4.d.ts +58 -0
- package/dist/cjs/schemas/session/1-0-4.d.ts.map +1 -0
- package/dist/cjs/schemas/session/2-0-0.d.ts +59 -0
- package/dist/cjs/schemas/session/2-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/session/index.d.ts +258 -0
- package/dist/cjs/schemas/session/index.d.ts.map +1 -0
- package/dist/cjs/schemas/step/1-0-0.d.ts +33 -0
- package/dist/cjs/schemas/step/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/step/1-0-1.d.ts +41 -0
- package/dist/cjs/schemas/step/1-0-1.d.ts.map +1 -0
- package/dist/cjs/schemas/step/index.d.ts +77 -0
- package/dist/cjs/schemas/step/index.d.ts.map +1 -0
- package/dist/cjs/schemas/workspace/1-0-0.d.ts +35 -0
- package/dist/cjs/schemas/workspace/1-0-0.d.ts.map +1 -0
- package/dist/cjs/schemas/workspace/index.d.ts +40 -0
- package/dist/cjs/schemas/workspace/index.d.ts.map +1 -0
- package/dist/cjs/snowplow-plugins/event-meta.d.ts +25 -0
- package/dist/cjs/snowplow-plugins/event-meta.d.ts.map +1 -0
- package/dist/cjs/snowplow-plugins/url-scrub.d.ts +84 -0
- package/dist/cjs/snowplow-plugins/url-scrub.d.ts.map +1 -0
- package/dist/cjs/tracker.d.ts +17 -0
- package/dist/cjs/tracker.d.ts.map +1 -0
- package/dist/cjs/types.d.ts +327 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/user-interaction.d.ts +35 -0
- package/dist/cjs/user-interaction.d.ts.map +1 -0
- package/dist/cjs/utils.d.ts +268 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/types/events/app_close.d.ts +2 -2
- package/dist/types/events/app_initialize.d.ts +2 -2
- package/dist/types/events/app_load.d.ts +2 -2
- package/dist/types/events/app_open.d.ts +2 -2
- package/dist/types/events/cart_add.d.ts +3 -3
- package/dist/types/events/cart_remove.d.ts +3 -3
- package/dist/types/events/checkout_complete.d.ts +3 -3
- package/dist/types/events/checkout_start.d.ts +3 -3
- package/dist/types/events/custom.d.ts +2 -2
- package/dist/types/events/experience_load.d.ts +2 -2
- package/dist/types/events/feature_decide.d.ts +2 -2
- package/dist/types/events/field_validation_error.d.ts +2 -2
- package/dist/types/events/form_submit.d.ts +2 -2
- package/dist/types/events/form_submit_error.d.ts +2 -2
- package/dist/types/events/form_submit_success.d.ts +2 -2
- package/dist/types/events/identify.d.ts +3 -3
- package/dist/types/events/index.d.ts +36 -36
- package/dist/types/events/interaction/back.d.ts +2 -2
- package/dist/types/events/interaction/backspace.d.ts +2 -2
- package/dist/types/events/interaction/click.d.ts +2 -2
- package/dist/types/events/interaction/copy.d.ts +2 -2
- package/dist/types/events/interaction/drag.d.ts +2 -2
- package/dist/types/events/interaction/forward.d.ts +2 -2
- package/dist/types/events/interaction/mouse_shake.d.ts +2 -2
- package/dist/types/events/interaction/offline.d.ts +2 -2
- package/dist/types/events/interaction/online.d.ts +2 -2
- package/dist/types/events/interaction/page_hidden.d.ts +2 -2
- package/dist/types/events/interaction/page_hide.d.ts +2 -2
- package/dist/types/events/interaction/page_show.d.ts +2 -2
- package/dist/types/events/interaction/page_visible.d.ts +2 -2
- package/dist/types/events/interaction/paste.d.ts +2 -2
- package/dist/types/events/interaction/rapid_click.d.ts +2 -2
- package/dist/types/events/interaction/rapid_scroll.d.ts +2 -2
- package/dist/types/events/interaction/resize.d.ts +2 -2
- package/dist/types/events/interaction/right_click.d.ts +2 -2
- package/dist/types/events/interaction/scroll.d.ts +2 -2
- package/dist/types/events/interaction/unload.d.ts +2 -2
- package/dist/types/events/lead_capture.d.ts +2 -2
- package/dist/types/events/lead_created.d.ts +2 -2
- package/dist/types/events/lead_updated.d.ts +2 -2
- package/dist/types/events/modal_close.d.ts +2 -2
- package/dist/types/events/modal_open.d.ts +2 -2
- package/dist/types/events/order_create.d.ts +3 -3
- package/dist/types/events/page_view.d.ts +3 -3
- package/dist/types/events/product_list_view.d.ts +3 -3
- package/dist/types/events/product_select.d.ts +2 -2
- package/dist/types/events/product_view_details.d.ts +3 -3
- package/dist/types/events/recommendation_present.d.ts +2 -2
- package/dist/types/events/search_results_list_view.d.ts +2 -2
- package/dist/types/events/step_complete.d.ts +2 -2
- package/dist/types/events/step_enter.d.ts +2 -2
- package/dist/types/events/step_submit.d.ts +2 -2
- package/dist/types/events/step_submit_error.d.ts +2 -2
- package/dist/types/events/step_submit_success.d.ts +2 -2
- package/dist/types/events/waitlist_join.d.ts +2 -2
- package/dist/types/events/wishlist_add.d.ts +2 -2
- package/dist/types/index.d.ts +4 -4
- package/dist/types/interaction-events.d.ts +1 -1
- package/dist/types/interactions/document.d.ts +1 -1
- package/dist/types/listeners/backspace.d.ts +1 -1
- package/dist/types/listeners/click.d.ts +1 -1
- package/dist/types/listeners/copy.d.ts +1 -1
- package/dist/types/listeners/drag.d.ts +1 -1
- package/dist/types/listeners/mouse_shake.d.ts +1 -1
- package/dist/types/listeners/offline.d.ts +1 -1
- package/dist/types/listeners/online.d.ts +1 -1
- package/dist/types/listeners/pagehide.d.ts +1 -1
- package/dist/types/listeners/pageshow.d.ts +1 -1
- package/dist/types/listeners/paste.d.ts +1 -1
- package/dist/types/listeners/rapid_click.d.ts +1 -1
- package/dist/types/listeners/rapid_scroll.d.ts +1 -1
- package/dist/types/listeners/resize.d.ts +1 -1
- package/dist/types/listeners/right_click.d.ts +1 -1
- package/dist/types/listeners/scroll.d.ts +1 -1
- package/dist/types/listeners/unload.d.ts +1 -1
- package/dist/types/listeners/visibility.d.ts +1 -1
- package/dist/types/plugins/analytics/index.d.ts +3 -3
- package/dist/types/plugins/analytics/plugin.d.ts +2 -2
- package/dist/types/schemas/answer_list/index.d.ts +2 -2
- package/dist/types/schemas/app/index.d.ts +2 -2
- package/dist/types/schemas/cvly_funnel/index.d.ts +2 -2
- package/dist/types/schemas/cvly_x/index.d.ts +2 -2
- package/dist/types/schemas/deployment/index.d.ts +2 -2
- package/dist/types/schemas/element/index.d.ts +2 -2
- package/dist/types/schemas/event/index.d.ts +2 -2
- package/dist/types/schemas/exception/index.d.ts +2 -2
- package/dist/types/schemas/experience/index.d.ts +2 -2
- package/dist/types/schemas/feature_list/index.d.ts +2 -2
- package/dist/types/schemas/field_list/index.d.ts +2 -2
- package/dist/types/schemas/form/index.d.ts +2 -2
- package/dist/types/schemas/index.d.ts +44 -44
- package/dist/types/schemas/modal/index.d.ts +2 -2
- package/dist/types/schemas/order/index.d.ts +2 -2
- package/dist/types/schemas/picked/index.d.ts +2 -2
- package/dist/types/schemas/product_list/index.d.ts +2 -2
- package/dist/types/schemas/question_list/index.d.ts +2 -2
- package/dist/types/schemas/recommendation_list/index.d.ts +2 -2
- package/dist/types/schemas/response_list/index.d.ts +2 -2
- package/dist/types/schemas/session/index.d.ts +2 -2
- package/dist/types/schemas/step/index.d.ts +2 -2
- package/dist/types/schemas/workspace/index.d.ts +2 -2
- package/dist/types/snowplow-plugins/event-meta.d.ts +1 -1
- package/dist/types/tracker.d.ts +1 -1
- package/dist/types/types.d.ts +1 -1
- package/dist/types/user-interaction.d.ts +2 -2
- package/dist/types/utils.d.ts +2 -2
- package/package.json +28 -13
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
/** @file Analytics event types and interfaces for Snowplow tracking. */
|
|
2
|
+
import type { ActivityCallbackData, AnonymousTrackingOptions, CommonEventProperties, SelfDescribingEvent } from '@snowplow/browser-tracker';
|
|
3
|
+
import type { ExperienceStep, Field, FieldValue, Picked, ValidationError as FieldValidationError } from '@picked/client';
|
|
4
|
+
import type { AppSchema, AppUrl, CvlyFunnelSchema, CvlyFunnelUrl, CvlyXSchema, CvlyXUrl, DeploymentSchema, DeploymentUrl, ElementSchema, ElementUrl, EventSchema, EventUrl, ExceptionSchema, ExceptionUrl, ExperienceSchema, ExperienceUrl, FeatureListSchema, FeatureListUrl, FieldListSchema, FieldListUrl, FormSchema, FormUrl, ModalSchema, ModalUrl, OrderSchema, OrderUrl, PickedSchema, PickedUrl, ProductListSchema, ProductListUrl, ResponseListSchema, ResponseListUrl, SessionSchema, SessionUrl, StepSchema, StepUrl, WorkspaceSchema, WorkspaceUrl } from './schemas/index.js';
|
|
5
|
+
export type SnowplowSelfDescribingEvent = SelfDescribingEvent & CommonEventProperties;
|
|
6
|
+
export type SchemaUrl<Schema extends string, Version extends string> = `iglu:dev.pckd/${Schema}/jsonschema/${Version}`;
|
|
7
|
+
export interface Context<Url extends string, Schema extends Record<string, unknown>> {
|
|
8
|
+
schema: Url;
|
|
9
|
+
data: Schema;
|
|
10
|
+
}
|
|
11
|
+
type EventContext<T extends EventSchema> = Context<EventUrl, T>;
|
|
12
|
+
type TopLevelEvent<Type extends string> = EventContext<{
|
|
13
|
+
type: Type;
|
|
14
|
+
meta: EventSchema['meta'];
|
|
15
|
+
}>;
|
|
16
|
+
export type ContextItem = Context<string, Record<string, unknown>>;
|
|
17
|
+
export type ContextArray = ContextItem[];
|
|
18
|
+
/**
|
|
19
|
+
* Type representing an event with its required and conditional context.
|
|
20
|
+
*
|
|
21
|
+
* @template EventType - The event type.
|
|
22
|
+
* @template RequiredContext - The required context for the event.
|
|
23
|
+
* @template ConditionalContext - The conditional context for the event which should be supplied when available.
|
|
24
|
+
*/
|
|
25
|
+
export interface SnowplowEventWithContext<EventType extends string, RequiredContext extends ContextArray, ConditionalContext extends ContextArray = []> {
|
|
26
|
+
event: TopLevelEvent<EventType>;
|
|
27
|
+
context: ConditionalContext extends ContextArray ? [...RequiredContext, ...Partial<ConditionalContext>[number][]] : RequiredContext;
|
|
28
|
+
}
|
|
29
|
+
export type AppContext = Context<AppUrl, AppSchema>;
|
|
30
|
+
export type CvlyFunnelContext = Context<CvlyFunnelUrl, CvlyFunnelSchema>;
|
|
31
|
+
export type CvlyXContext = Context<CvlyXUrl, CvlyXSchema>;
|
|
32
|
+
export type ElementContext = Context<ElementUrl, ElementSchema>;
|
|
33
|
+
export type ExceptionContext = Context<ExceptionUrl, ExceptionSchema>;
|
|
34
|
+
export type ExperienceContext = Context<ExperienceUrl, ExperienceSchema>;
|
|
35
|
+
export type FeatureListContext = Context<FeatureListUrl, FeatureListSchema>;
|
|
36
|
+
export type FieldListContext = Context<FieldListUrl, FieldListSchema>;
|
|
37
|
+
export type FormContext = Context<FormUrl, FormSchema>;
|
|
38
|
+
export type ModalContext = Context<ModalUrl, ModalSchema>;
|
|
39
|
+
export type OrderContext = Context<OrderUrl, OrderSchema>;
|
|
40
|
+
export type PickedContext = Context<PickedUrl, PickedSchema>;
|
|
41
|
+
export type ProductListContext = Context<ProductListUrl, ProductListSchema>;
|
|
42
|
+
export type ResponseListContext = Context<ResponseListUrl, ResponseListSchema>;
|
|
43
|
+
export type SessionContext = Context<SessionUrl, SessionSchema>;
|
|
44
|
+
export type StepContext = Context<StepUrl, StepSchema>;
|
|
45
|
+
export type WorkspaceContext = Context<WorkspaceUrl, WorkspaceSchema>;
|
|
46
|
+
export type DeploymentContext = Context<DeploymentUrl, DeploymentSchema>;
|
|
47
|
+
/** Flat key-value meta a tracker stamps into every Picked event it sends. */
|
|
48
|
+
export type EventMeta = Readonly<Record<string, string | number | boolean>>;
|
|
49
|
+
/**
|
|
50
|
+
* A tracker's event meta: fixed keys, or a function returning the keys, which the tracker
|
|
51
|
+
* calls when each event is sent.
|
|
52
|
+
*/
|
|
53
|
+
export type EventMetaSource = EventMeta | (() => EventMeta);
|
|
54
|
+
export interface CreateTrackerOptions {
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated The organization ID is no longer used by the analytics tracker. The
|
|
57
|
+
* field is accepted for backwards compatibility but the value is ignored.
|
|
58
|
+
*/
|
|
59
|
+
organizationId?: string;
|
|
60
|
+
/**
|
|
61
|
+
* The project ID.
|
|
62
|
+
*/
|
|
63
|
+
projectId?: string;
|
|
64
|
+
/**
|
|
65
|
+
* The application ID. Defaults to `'picked-analytics'`.
|
|
66
|
+
*
|
|
67
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracker-setup/initialization-options/
|
|
68
|
+
*/
|
|
69
|
+
appId?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The collector host. Defaults to `'evnts.pckd.dev'`, Picked's production
|
|
72
|
+
* collector. The host is resolved by the caller — `createTracker` reads no
|
|
73
|
+
* environment variables — so an embedder that must not reach production passes
|
|
74
|
+
* its own value.
|
|
75
|
+
*
|
|
76
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracker-setup/initialization-options/
|
|
77
|
+
*/
|
|
78
|
+
collectorUrl?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Path on `collectorUrl` that receives events, in place of Snowplow's
|
|
81
|
+
* `/com.snowplowanalytics.snowplow/tp2`. Set it when `collectorUrl` is the site's own
|
|
82
|
+
* origin fronting the collector through a reverse proxy, which re-attaches the canonical
|
|
83
|
+
* path upstream. Supplying a path also pins the transport to POST, since a GET would
|
|
84
|
+
* address the collector's `/i` endpoint, which the proxy does not carry.
|
|
85
|
+
*
|
|
86
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracker-setup/initialization-options/
|
|
87
|
+
*/
|
|
88
|
+
collectorPath?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Enable activity tracking page pings.
|
|
91
|
+
*
|
|
92
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/previous-versions/javascript-tracker-v3/tracking-events/#activity-tracking-page-pings
|
|
93
|
+
*/
|
|
94
|
+
trackActivity?: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Callback for activity tracking.
|
|
97
|
+
*
|
|
98
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/previous-versions/javascript-tracker-v3/tracking-events/#enableactivitytrackingcallback
|
|
99
|
+
*/
|
|
100
|
+
trackActivityCallback?: (data: ActivityCallbackData) => void;
|
|
101
|
+
/**
|
|
102
|
+
* Attach the page view ID to all events.
|
|
103
|
+
*
|
|
104
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/page-views/#webpage-page-view-id-context-entity
|
|
105
|
+
*/
|
|
106
|
+
trackWebPage?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* Attach the session to all events.
|
|
109
|
+
*
|
|
110
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/session/
|
|
111
|
+
*/
|
|
112
|
+
trackSessions?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Attach the browser context to all events.
|
|
115
|
+
*
|
|
116
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/browsers/
|
|
117
|
+
*/
|
|
118
|
+
trackBrowser?: boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Enable the error tracking plugin.
|
|
121
|
+
*
|
|
122
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/errors/
|
|
123
|
+
*/
|
|
124
|
+
trackErrors?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Enable the core web vitals tracking plugin.
|
|
127
|
+
*
|
|
128
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/web-vitals/
|
|
129
|
+
*/
|
|
130
|
+
trackVitals?: boolean;
|
|
131
|
+
/**
|
|
132
|
+
* Enable the navigation performance tracking plugin.
|
|
133
|
+
*
|
|
134
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/timings/
|
|
135
|
+
*/
|
|
136
|
+
trackPerformance?: boolean;
|
|
137
|
+
/**
|
|
138
|
+
* Class-name allowlist for button click tracking. Setting it enables button click tracking.
|
|
139
|
+
*
|
|
140
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/button-click/#filter-function
|
|
141
|
+
*/
|
|
142
|
+
trackButtonClickAllowList?: string[];
|
|
143
|
+
/**
|
|
144
|
+
* Filter function for button click tracking. Setting it enables button click tracking; the
|
|
145
|
+
* filter applies when `trackButtonClickAllowList` is absent.
|
|
146
|
+
*
|
|
147
|
+
* @see https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/tracking-events/button-click/#filter-function
|
|
148
|
+
*/
|
|
149
|
+
trackButtonClickFilter?: (element: HTMLElement) => boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Keys stamped into the `meta` of every Picked event this tracker sends, and set as the
|
|
152
|
+
* `meta` of its global `app` context so native Snowplow events carry them too. A key here
|
|
153
|
+
* wins over a per-event key of the same name. Other trackers on the page are unaffected.
|
|
154
|
+
*
|
|
155
|
+
* A function is called when each event is sent, for the event's `meta` and again for its
|
|
156
|
+
* `app` context, so a key such as `signed_in` follows state that changes without a page load.
|
|
157
|
+
*
|
|
158
|
+
* @example { surface: 'marketing', env: 'production', signed_in: false }
|
|
159
|
+
* @example () => ({ surface: 'dashboard', env: 'production', signed_in: isSignedIn() })
|
|
160
|
+
*/
|
|
161
|
+
eventMeta?: EventMetaSource;
|
|
162
|
+
/**
|
|
163
|
+
* Snowplow's `anonymousTracking` tracker option, passed through unchanged. Absent,
|
|
164
|
+
* Snowplow's default (identified tracking) applies.
|
|
165
|
+
*/
|
|
166
|
+
anonymousTracking?: AnonymousTrackingOptions;
|
|
167
|
+
/**
|
|
168
|
+
* Parameters related to the CVLY-X environment.
|
|
169
|
+
*
|
|
170
|
+
* @deprecated
|
|
171
|
+
*/
|
|
172
|
+
cvlyX?: {
|
|
173
|
+
/**
|
|
174
|
+
* The Git commit SHA of the current deployment (GIT_COMMIT_SHA).
|
|
175
|
+
*/
|
|
176
|
+
gitCommitSha?: string;
|
|
177
|
+
/**
|
|
178
|
+
* The Vercel deployment ID (VERCEL_DEPLOYMENT_ID).
|
|
179
|
+
*/
|
|
180
|
+
vercelDeploymentId: string;
|
|
181
|
+
/**
|
|
182
|
+
* The Vercel environment in which the application is running (e.g., production, preview, development) (VERCEL_ENV).
|
|
183
|
+
*/
|
|
184
|
+
vercelEnv: string;
|
|
185
|
+
/**
|
|
186
|
+
* The Vercel URL of the current deployment (VERCEL_URL).
|
|
187
|
+
*/
|
|
188
|
+
vercelUrl: string;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* Parameters related to the application deployment environment.
|
|
192
|
+
*/
|
|
193
|
+
deployment: {
|
|
194
|
+
/**
|
|
195
|
+
* The deployment environment.
|
|
196
|
+
*/
|
|
197
|
+
env: string;
|
|
198
|
+
/**
|
|
199
|
+
* The Git commit SHA of the current deployment.
|
|
200
|
+
*/
|
|
201
|
+
sha?: string;
|
|
202
|
+
/**
|
|
203
|
+
* The deployment ID.
|
|
204
|
+
*/
|
|
205
|
+
id?: string;
|
|
206
|
+
/**
|
|
207
|
+
* The host address for the deployment.
|
|
208
|
+
*/
|
|
209
|
+
host?: string;
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
export interface AnalyticsExperience {
|
|
213
|
+
id: string;
|
|
214
|
+
title: string;
|
|
215
|
+
/** The stable experience key. */
|
|
216
|
+
key?: string;
|
|
217
|
+
}
|
|
218
|
+
export interface AnalyticsStep {
|
|
219
|
+
id: string;
|
|
220
|
+
title: string;
|
|
221
|
+
}
|
|
222
|
+
interface AnalyticsForm {
|
|
223
|
+
id: string;
|
|
224
|
+
title: string;
|
|
225
|
+
}
|
|
226
|
+
export interface AnalyticsQuestionOption {
|
|
227
|
+
id: string;
|
|
228
|
+
title: string;
|
|
229
|
+
value: string | number | Record<string, unknown> | boolean;
|
|
230
|
+
}
|
|
231
|
+
interface AnalyticsModal {
|
|
232
|
+
id: string;
|
|
233
|
+
title: string;
|
|
234
|
+
}
|
|
235
|
+
export interface AnalyticsQuestion {
|
|
236
|
+
id: string;
|
|
237
|
+
type: 'input' | 'multiple-choice' | 'text';
|
|
238
|
+
title: string;
|
|
239
|
+
options?: AnalyticsQuestionOption[];
|
|
240
|
+
}
|
|
241
|
+
export type AnalyticsField = Field;
|
|
242
|
+
export interface AnalyticsResponse {
|
|
243
|
+
fieldKey: string;
|
|
244
|
+
value: FieldValue | undefined;
|
|
245
|
+
}
|
|
246
|
+
export interface AnalyticsFeature {
|
|
247
|
+
feature: string;
|
|
248
|
+
name: string;
|
|
249
|
+
key: string;
|
|
250
|
+
bucket: boolean | string;
|
|
251
|
+
}
|
|
252
|
+
export type AnalyticsException = FieldValidationError | string;
|
|
253
|
+
export interface AnalyticsOrder {
|
|
254
|
+
id: string;
|
|
255
|
+
checkoutToken?: string;
|
|
256
|
+
customerId?: string;
|
|
257
|
+
cartToken?: string;
|
|
258
|
+
}
|
|
259
|
+
export interface AnalyticsProduct {
|
|
260
|
+
itemId?: string;
|
|
261
|
+
itemName?: string;
|
|
262
|
+
affiliation?: string;
|
|
263
|
+
coupon?: string;
|
|
264
|
+
currency?: string;
|
|
265
|
+
creativeName?: string;
|
|
266
|
+
creativeSlot?: string;
|
|
267
|
+
discount?: number | string;
|
|
268
|
+
index?: number | string;
|
|
269
|
+
itemBrand?: string;
|
|
270
|
+
itemCategory?: string;
|
|
271
|
+
itemCategory2?: string;
|
|
272
|
+
itemCategory3?: string;
|
|
273
|
+
itemCategory4?: string;
|
|
274
|
+
itemCategory5?: string;
|
|
275
|
+
itemListId?: string;
|
|
276
|
+
itemListName?: string;
|
|
277
|
+
itemVariant?: string;
|
|
278
|
+
locationId?: string;
|
|
279
|
+
price?: number | string;
|
|
280
|
+
promotionId?: string;
|
|
281
|
+
promotionName?: string;
|
|
282
|
+
quantity?: number | string;
|
|
283
|
+
inStock?: boolean;
|
|
284
|
+
}
|
|
285
|
+
export type AnalyticsProductList = AnalyticsProduct[] | {
|
|
286
|
+
title?: string;
|
|
287
|
+
items: AnalyticsProduct[];
|
|
288
|
+
};
|
|
289
|
+
export interface AnalyticsShopifySession {
|
|
290
|
+
clientId?: string;
|
|
291
|
+
customerId?: string;
|
|
292
|
+
checkoutToken?: string;
|
|
293
|
+
}
|
|
294
|
+
/** The workspace that served the project config. */
|
|
295
|
+
export interface AnalyticsWorkspace {
|
|
296
|
+
id?: string;
|
|
297
|
+
/** The published workspace version id; `null` when the workspace has no published version. */
|
|
298
|
+
versionId?: string | null;
|
|
299
|
+
status?: string;
|
|
300
|
+
}
|
|
301
|
+
export interface AnalyticsContext {
|
|
302
|
+
/** The Picked ID: the SDK's per-browser id of the visitor. */
|
|
303
|
+
pickedId?: string;
|
|
304
|
+
/** @deprecated Use `pickedId`. */
|
|
305
|
+
sessionId?: string;
|
|
306
|
+
isUser?: boolean;
|
|
307
|
+
projectId: string;
|
|
308
|
+
workspace?: AnalyticsWorkspace;
|
|
309
|
+
features?: AnalyticsFeature[];
|
|
310
|
+
experience?: AnalyticsExperience;
|
|
311
|
+
step?: ExperienceStep;
|
|
312
|
+
form?: AnalyticsForm;
|
|
313
|
+
fields?: AnalyticsField[];
|
|
314
|
+
responses?: AnalyticsResponse[];
|
|
315
|
+
modal?: AnalyticsModal;
|
|
316
|
+
productList?: AnalyticsProductList;
|
|
317
|
+
exception?: AnalyticsException;
|
|
318
|
+
shopifySession?: AnalyticsShopifySession;
|
|
319
|
+
order?: AnalyticsOrder;
|
|
320
|
+
identifiers?: Record<string, string>;
|
|
321
|
+
}
|
|
322
|
+
/** A capability `analyticsPlugin` sets up with the client and a reader of its analytics context. */
|
|
323
|
+
export interface AnalyticsPluginCapability {
|
|
324
|
+
setup: (client: Picked, readContext: () => AnalyticsContext) => void;
|
|
325
|
+
}
|
|
326
|
+
export {};
|
|
327
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Wires Picked experience targets to opt-in DOM interaction listeners and
|
|
3
|
+
* window/document level listeners.
|
|
4
|
+
*/
|
|
5
|
+
import { type InteractionEventName } from './interaction-events.js';
|
|
6
|
+
import type { AnalyticsContext } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Bind the listed DOM interaction listeners to the given target. Listeners not
|
|
9
|
+
* named in `enabledEvents` are not bound; the empty list is a no-op.
|
|
10
|
+
*
|
|
11
|
+
* @param {() => AnalyticsContext} createAnalyticsContext - Factory the bound
|
|
12
|
+
* listeners call to read the current analytics context at the moment an
|
|
13
|
+
* event fires.
|
|
14
|
+
* @param {EventTarget | null} target - Event target the listeners attach to
|
|
15
|
+
* (typically an experience shadow root). When `null`, no listeners are bound.
|
|
16
|
+
* @param {readonly InteractionEventName[]} enabledEvents - Names of interaction
|
|
17
|
+
* events to enable. Defaults to every known event for backwards compatibility
|
|
18
|
+
* with direct callers that pre-date the opt-in plugin option.
|
|
19
|
+
* @example
|
|
20
|
+
* bindUserInteractionListeners(createCtx, shadowRoot, ['click', 'scroll'])
|
|
21
|
+
*/
|
|
22
|
+
export declare function bindUserInteractionListeners(createAnalyticsContext: () => AnalyticsContext, target: EventTarget | null, enabledEvents?: readonly InteractionEventName[]): void;
|
|
23
|
+
/**
|
|
24
|
+
* Bind window/document-level listeners (page visibility, online/offline, resize,
|
|
25
|
+
* unload, etc.). Caller decides when to invoke this; it is gated by the plugin's
|
|
26
|
+
* `enableDocumentListeners` option.
|
|
27
|
+
*
|
|
28
|
+
* @param {() => AnalyticsContext} createAnalyticsContext - Factory the
|
|
29
|
+
* listeners call to read the current analytics context at the moment an
|
|
30
|
+
* event fires.
|
|
31
|
+
* @example
|
|
32
|
+
* bindGlobalEventListeners(createCtx)
|
|
33
|
+
*/
|
|
34
|
+
export declare function bindGlobalEventListeners(createAnalyticsContext: () => AnalyticsContext): void;
|
|
35
|
+
//# sourceMappingURL=user-interaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-interaction.d.ts","sourceRoot":"","sources":["../../src/user-interaction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,sBAAsB,EAAE,MAAM,gBAAgB,EAC9C,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,aAAa,GAAE,SAAS,oBAAoB,EAA4B,QAMzE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,sBAAsB,EAAE,MAAM,gBAAgB,QAQtF"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import type { ExperienceInstance } from '@picked/client';
|
|
2
|
+
import type { AnalyticsContext, AnalyticsExperience, AppContext, Context, ContextArray, ExceptionContext, ExperienceContext, FeatureListContext, FieldListContext, FormContext, ModalContext, OrderContext, ProductListContext, ResponseListContext, SchemaUrl, SessionContext, SnowplowEventWithContext, SnowplowSelfDescribingEvent, StepContext, WorkspaceContext } from './types.js';
|
|
3
|
+
import type { EventSchema } from './schemas/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Builds the Iglu URI that identifies a Snowplow schema and version.
|
|
6
|
+
*
|
|
7
|
+
* @param {string} schema - Schema name, such as `event` or `response_list`.
|
|
8
|
+
* @param {string} version - Schema version in Iglu's dash form, such as `1-0-0`.
|
|
9
|
+
* @returns {SchemaUrl} The fully qualified Iglu schema URI.
|
|
10
|
+
* @example schemaUrl('event', '1-0-0') // 'iglu:dev.pckd/event/jsonschema/1-0-0'
|
|
11
|
+
*/
|
|
12
|
+
export declare function schemaUrl<T extends string, U extends string>(schema: T, version: U): SchemaUrl<T, U>;
|
|
13
|
+
/**
|
|
14
|
+
* Records a debug message. The body is a stub until debug mode is wired up.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} _message - The message to record.
|
|
17
|
+
* @param {...unknown} _data - Values to record alongside the message.
|
|
18
|
+
* @example log('tracked', event)
|
|
19
|
+
*/
|
|
20
|
+
export declare function log(_message: string, ..._data: unknown[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* Records a warning. The body is a stub until debug mode is wired up.
|
|
23
|
+
*
|
|
24
|
+
* @param {string} _message - The message to record.
|
|
25
|
+
* @param {...unknown} _data - Values to record alongside the message.
|
|
26
|
+
* @example warn('"form" is required for this event', event)
|
|
27
|
+
*/
|
|
28
|
+
export declare function warn(_message: string, ..._data: unknown[]): void;
|
|
29
|
+
/**
|
|
30
|
+
* Records an error. The body is a stub until debug mode is wired up.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} _message - The message to record.
|
|
33
|
+
* @param {...unknown} _data - Values to record alongside the message.
|
|
34
|
+
* @example error('tracker failed', reason)
|
|
35
|
+
*/
|
|
36
|
+
export declare function error(_message: string, ..._data: unknown[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Assembles a self-describing Snowplow event from a type, its contexts and its meta.
|
|
39
|
+
* Contexts that resolved to `undefined` are dropped, so a caller can pass an optional
|
|
40
|
+
* context inline.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} type - The event type carried in the event's `data`.
|
|
43
|
+
* @param {ContextArray} context - The contexts to attach, `undefined` entries included.
|
|
44
|
+
* @param {EventSchema['meta']} [meta] - Event meta; defaults to an empty object.
|
|
45
|
+
* @returns {SnowplowSelfDescribingEvent} The event ready to hand to the tracker.
|
|
46
|
+
* @example createEvent('step_submit', [createContext('step', '1-0-1', step)])
|
|
47
|
+
*/
|
|
48
|
+
export declare function createEvent<E extends SnowplowEventWithContext<string, ContextArray, ContextArray>>(type: E['event']['data']['type'], context: E['context'], meta?: E['event']['data']['meta']): SnowplowSelfDescribingEvent;
|
|
49
|
+
/**
|
|
50
|
+
* Wraps context data in its Iglu schema envelope.
|
|
51
|
+
*
|
|
52
|
+
* @param {string} schema - Schema name for the context.
|
|
53
|
+
* @param {string} version - Schema version in Iglu's dash form.
|
|
54
|
+
* @param {Record<string, unknown>} data - The context payload.
|
|
55
|
+
* @returns {Context} The context with its `schema` and `data` members.
|
|
56
|
+
* @example createContext('app', '1-0-0', { project_id: 'proj1' })
|
|
57
|
+
*/
|
|
58
|
+
export declare function createContext<S extends string, V extends string, D extends Record<string, unknown>>(schema: S, version: V, data: D): Context<SchemaUrl<S, V>, D>;
|
|
59
|
+
/**
|
|
60
|
+
* Builds a tracking function for one event type. The returned function formats its
|
|
61
|
+
* payload through `formatter` and hands the result to the Snowplow tracker.
|
|
62
|
+
*
|
|
63
|
+
* @param {string} eventName - The event type the returned function tracks.
|
|
64
|
+
* @param {(payload: never, meta?: EventSchema['meta']) => SnowplowSelfDescribingEvent} formatter - Formats a payload into a self-describing event.
|
|
65
|
+
* @returns {(payload: never, meta?: EventSchema['meta']) => void} A function that formats and tracks one event.
|
|
66
|
+
* @example const trackStepSubmit = createTrackEvent('step_submit', formatEvent)
|
|
67
|
+
*/
|
|
68
|
+
export declare function createTrackEvent(eventName: string, formatter: (_: null, eventMeta?: EventSchema['meta']) => SnowplowSelfDescribingEvent): (eventMeta?: EventSchema['meta']) => void;
|
|
69
|
+
export declare function createTrackEvent<P>(eventName: string, formatter: (eventPayload: P, eventMeta?: EventSchema['meta']) => SnowplowSelfDescribingEvent): (eventPayload: P, eventMeta?: EventSchema['meta']) => void;
|
|
70
|
+
/**
|
|
71
|
+
* Builds a binder for one DOM event type. The returned function attaches the handler to
|
|
72
|
+
* a target at most once per type, and reads a fresh analytics context on every
|
|
73
|
+
* interaction.
|
|
74
|
+
*
|
|
75
|
+
* @param {string} type - The DOM event type to listen for.
|
|
76
|
+
* @param {(interaction: { analyticsContext: AnalyticsContext; event: Event }) => void} handler - Receives the event and the analytics context read at interaction time.
|
|
77
|
+
* @param {AddEventListenerOptions | boolean} [options] - Listener options; defaults to `{ passive: true }`.
|
|
78
|
+
* @returns {(target: EventTarget, createAnalyticsContext: () => AnalyticsContext) => void} A binder taking the target and a context factory.
|
|
79
|
+
* @example const bindClick = createBindListener('click', onClick)
|
|
80
|
+
*/
|
|
81
|
+
export declare function createBindListener<T extends Event = Event>(type: string, handler: (interaction: {
|
|
82
|
+
analyticsContext: AnalyticsContext;
|
|
83
|
+
event: T;
|
|
84
|
+
}) => void, options?: AddEventListenerOptions | boolean): (target: EventTarget, createAnalyticsContext: () => AnalyticsContext) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Builds a binder that attaches the handler to `document` at most once per event type.
|
|
87
|
+
* The binder is inert where there is no document.
|
|
88
|
+
*
|
|
89
|
+
* @param {string} type - The DOM event type to listen for.
|
|
90
|
+
* @param {(interaction: { analyticsContext: AnalyticsContext; event: Event }) => void} handler - Receives the event and the analytics context read at interaction time.
|
|
91
|
+
* @returns {(createAnalyticsContext: () => AnalyticsContext) => void} A binder taking a context factory.
|
|
92
|
+
* @example const bindVisibility = createDocumentBindListener('visibilitychange', onHide)
|
|
93
|
+
*/
|
|
94
|
+
export declare function createDocumentBindListener<T extends Event = Event>(type: string, handler: (interaction: {
|
|
95
|
+
analyticsContext: AnalyticsContext;
|
|
96
|
+
event: T;
|
|
97
|
+
}) => void): (createAnalyticsContext: () => AnalyticsContext) => void;
|
|
98
|
+
/**
|
|
99
|
+
* Builds a binder that attaches the handler to `window` at most once per event type.
|
|
100
|
+
* The binder is inert where there is no window.
|
|
101
|
+
*
|
|
102
|
+
* @param {string} type - The DOM event type to listen for.
|
|
103
|
+
* @param {(interaction: { analyticsContext: AnalyticsContext; event: Event }) => void} handler - Receives the event and the analytics context read at interaction time.
|
|
104
|
+
* @returns {(createAnalyticsContext: () => AnalyticsContext) => void} A binder taking a context factory.
|
|
105
|
+
* @example const bindUnload = createWindowBindListener('beforeunload', onLeave)
|
|
106
|
+
*/
|
|
107
|
+
export declare function createWindowBindListener<T extends Event = Event>(type: string, handler: (interaction: {
|
|
108
|
+
analyticsContext: AnalyticsContext;
|
|
109
|
+
event: T;
|
|
110
|
+
}) => void): (createAnalyticsContext: () => AnalyticsContext) => void;
|
|
111
|
+
/**
|
|
112
|
+
* Builds the Snowplow `feature_list` context from the features the session resolved.
|
|
113
|
+
* A context with no features carries an empty list.
|
|
114
|
+
*
|
|
115
|
+
* @param {AnalyticsContext} event - Analytics context carrying the resolved features.
|
|
116
|
+
* @returns {FeatureListContext['data']} The feature list context data.
|
|
117
|
+
* @example formatFeatureListContextData({ projectId: 'p', features: [] }) // { items: [] }
|
|
118
|
+
*/
|
|
119
|
+
export declare function formatFeatureListContextData(event: AnalyticsContext): FeatureListContext['data'];
|
|
120
|
+
/**
|
|
121
|
+
* Builds the Snowplow `app` context. A missing project id is reported and replaced with
|
|
122
|
+
* an `unknown` placeholder, so the event still reaches the collector.
|
|
123
|
+
*
|
|
124
|
+
* @param {AnalyticsContext} event - Analytics context carrying the project id.
|
|
125
|
+
* @returns {AppContext['data']} The app context data.
|
|
126
|
+
* @example formatAppContextData({ projectId: 'proj1' }) // { project_id: 'proj1' }
|
|
127
|
+
*/
|
|
128
|
+
export declare function formatAppContextData(event: AnalyticsContext): AppContext['data'];
|
|
129
|
+
/**
|
|
130
|
+
* Builds the Snowplow `workspace` context from the workspace that served the project config.
|
|
131
|
+
*
|
|
132
|
+
* @param {AnalyticsContext} event - Analytics context carrying the workspace.
|
|
133
|
+
* @returns {WorkspaceContext['data'] | undefined} The workspace context data, or `undefined` when the context carries no workspace.
|
|
134
|
+
* @example formatWorkspaceContextData({ projectId: 'p', workspace: { id: 'wsp_1', versionId: 'wspv_1', status: 'live' } }) // { id: 'wsp_1', version_id: 'wspv_1', status: 'live' }
|
|
135
|
+
*/
|
|
136
|
+
export declare function formatWorkspaceContextData(event: AnalyticsContext): WorkspaceContext['data'] | undefined;
|
|
137
|
+
/**
|
|
138
|
+
* Builds the Snowplow `session` context, folding in the session identifiers, the Google
|
|
139
|
+
* Analytics client id read from the `_ga` cookie, and any Shopify session tokens.
|
|
140
|
+
*
|
|
141
|
+
* @param {AnalyticsContext} event - Analytics context carrying the session.
|
|
142
|
+
* @returns {SessionContext['data']} The session context data.
|
|
143
|
+
* @example formatSessionContextData({ projectId: 'p', pickedId: 'v1' }) // { id: 'v1' }
|
|
144
|
+
*/
|
|
145
|
+
export declare function formatSessionContextData(event: AnalyticsContext): SessionContext['data'];
|
|
146
|
+
/**
|
|
147
|
+
* Builds the Snowplow `field_list` context from the fields on the current step. The
|
|
148
|
+
* context describes the fields themselves — their type, label and options — and carries
|
|
149
|
+
* no captured value.
|
|
150
|
+
*
|
|
151
|
+
* @param {AnalyticsContext} event - Analytics context carrying the fields.
|
|
152
|
+
* @returns {FieldListContext['data'] | undefined} The field list context data, or `undefined` when no fields are present.
|
|
153
|
+
* @example formatFieldListContextData({ projectId: 'p', fields }) // { items: [...] }
|
|
154
|
+
*/
|
|
155
|
+
export declare function formatFieldListContextData(event: AnalyticsContext): FieldListContext['data'] | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Builds the Snowplow `response_list` context from the responses whose fields carry
|
|
158
|
+
* `policies.trackValue`. Every event that carries this context passes through here, so
|
|
159
|
+
* this is the single point at which a field's tracking policy is enforced. The context
|
|
160
|
+
* is omitted when no response survives the filter.
|
|
161
|
+
*
|
|
162
|
+
* @param {AnalyticsContext} event - Analytics context carrying the responses and the fields they belong to.
|
|
163
|
+
* @returns {ResponseListContext['data'] | undefined} The response list context data, or `undefined` when nothing is trackable.
|
|
164
|
+
* @example
|
|
165
|
+
* const fields = [{ key: 'colour', policies: { trackValue: true }, ... }]
|
|
166
|
+
* formatResponseListContextData({ projectId: 'p', fields, responses: [{ fieldKey: 'colour', value: 'blue' }] })
|
|
167
|
+
* // { items: [{ field_id: 'colour', values: [{ value: 'blue' }] }] }
|
|
168
|
+
*/
|
|
169
|
+
export declare function formatResponseListContextData(event: AnalyticsContext): ResponseListContext['data'] | undefined;
|
|
170
|
+
/**
|
|
171
|
+
* Builds the Snowplow `step` context, emitting the stable `key` alongside the
|
|
172
|
+
* workspace-specific `id` so steps stay correlatable across workspaces.
|
|
173
|
+
*
|
|
174
|
+
* @param {AnalyticsContext} event - Analytics context carrying the current step.
|
|
175
|
+
* @param {boolean} [required] - When `true`, returns `unknown` placeholders instead of `undefined` if no step is present.
|
|
176
|
+
* @returns {StepContext['data'] | undefined} The step context data, or `undefined` when no step is present and not required.
|
|
177
|
+
* @example
|
|
178
|
+
* const step = { id: 'uuid', key: 'welcome', name: 'Welcome', fieldKeys: [] }
|
|
179
|
+
* formatStepContextData({ projectId: 'p', step }, true) // { id: 'uuid', title: 'Welcome', key: 'welcome' }
|
|
180
|
+
*/
|
|
181
|
+
export declare function formatStepContextData(event: AnalyticsContext, required: true): StepContext['data'];
|
|
182
|
+
export declare function formatStepContextData(event: AnalyticsContext, required?: false): StepContext['data'] | undefined;
|
|
183
|
+
/**
|
|
184
|
+
* Builds the Snowplow `product_list` context, accepting either a bare item array or an
|
|
185
|
+
* object carrying a title alongside its items. When the list is absent and `required` is
|
|
186
|
+
* set, the absence is reported and an `unknown` placeholder is returned.
|
|
187
|
+
*
|
|
188
|
+
* @param {AnalyticsContext} event - Analytics context carrying the product list.
|
|
189
|
+
* @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
|
|
190
|
+
* @returns {ProductListContext['data'] | undefined} The product list context data, or `undefined` when absent and not required.
|
|
191
|
+
* @example formatProductListContextData({ projectId: 'p', productList: [] }, true)
|
|
192
|
+
*/
|
|
193
|
+
export declare function formatProductListContextData(event: AnalyticsContext, required: true): ProductListContext['data'];
|
|
194
|
+
export declare function formatProductListContextData(event: AnalyticsContext, required?: false): ProductListContext['data'] | undefined;
|
|
195
|
+
/**
|
|
196
|
+
* Builds the Snowplow `order` context. When the order is absent and `required` is set,
|
|
197
|
+
* the absence is reported and an `unknown` placeholder is returned.
|
|
198
|
+
*
|
|
199
|
+
* @param {AnalyticsContext} event - Analytics context carrying the order.
|
|
200
|
+
* @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
|
|
201
|
+
* @returns {OrderContext['data'] | undefined} The order context data, or `undefined` when absent and not required.
|
|
202
|
+
* @example formatOrderContextData({ projectId: 'p', order: { id: 'o1' } })
|
|
203
|
+
*/
|
|
204
|
+
export declare function formatOrderContextData(event: AnalyticsContext, required: true): OrderContext['data'];
|
|
205
|
+
export declare function formatOrderContextData(event: AnalyticsContext, required?: false): OrderContext['data'] | undefined;
|
|
206
|
+
/**
|
|
207
|
+
* Builds the Snowplow `experience` context, emitting the stable `key` alongside the id
|
|
208
|
+
* and title. When the experience is absent and
|
|
209
|
+
* `required` is set, the absence is reported and an `unknown` placeholder is returned.
|
|
210
|
+
*
|
|
211
|
+
* @param {AnalyticsContext} event - Analytics context carrying the experience.
|
|
212
|
+
* @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
|
|
213
|
+
* @returns {ExperienceContext['data'] | undefined} The experience context data, or `undefined` when absent and not required.
|
|
214
|
+
* @example formatExperienceContextData({ projectId: 'p', experience })
|
|
215
|
+
*/
|
|
216
|
+
export declare function formatExperienceContextData(event: AnalyticsContext, required: true): ExperienceContext['data'];
|
|
217
|
+
export declare function formatExperienceContextData(event: AnalyticsContext, required?: false): ExperienceContext['data'] | undefined;
|
|
218
|
+
/**
|
|
219
|
+
* Reads the analytics view of an experience instance: its id, title and key.
|
|
220
|
+
*
|
|
221
|
+
* @param {Pick<ExperienceInstance, 'experienceId' | 'experienceName' | 'experienceKey'>} instance - The experience instance.
|
|
222
|
+
* @returns {AnalyticsExperience} The experience as the analytics context carries it.
|
|
223
|
+
* @example toAnalyticsExperience(instance) // { id: 'exp-1', title: 'Exp 1', key: 'exp-key' }
|
|
224
|
+
*/
|
|
225
|
+
export declare const toAnalyticsExperience: (instance: Pick<ExperienceInstance, 'experienceId' | 'experienceName' | 'experienceKey'>) => AnalyticsExperience;
|
|
226
|
+
/**
|
|
227
|
+
* Builds the Snowplow `exception` context from either a bare reason string or a field
|
|
228
|
+
* validation error. When the exception is absent and `required` is set, the absence is
|
|
229
|
+
* reported and an `unknown` placeholder is returned.
|
|
230
|
+
*
|
|
231
|
+
* @param {AnalyticsContext} event - Analytics context carrying the exception.
|
|
232
|
+
* @param {boolean} [required] - When `true`, returns a placeholder instead of `undefined`.
|
|
233
|
+
* @returns {ExceptionContext['data'] | undefined} The exception context data, or `undefined` when absent and not required.
|
|
234
|
+
* @example formatExceptionContextData({ projectId: 'p', exception: 'timeout' })
|
|
235
|
+
*/
|
|
236
|
+
export declare function formatExceptionContextData(event: AnalyticsContext, required: true): ExceptionContext['data'];
|
|
237
|
+
export declare function formatExceptionContextData(event: AnalyticsContext, required?: false): ExceptionContext['data'] | undefined;
|
|
238
|
+
/**
|
|
239
|
+
* Builds the Snowplow `form` context. A missing form is reported and replaced with an
|
|
240
|
+
* `unknown` placeholder, because every event carrying this context requires one.
|
|
241
|
+
*
|
|
242
|
+
* @param {AnalyticsContext} event - Analytics context carrying the form.
|
|
243
|
+
* @returns {FormContext['data']} The form context data.
|
|
244
|
+
* @example formatFormContextData({ projectId: 'p', form: { id: 'f1', title: 'Quote' } })
|
|
245
|
+
*/
|
|
246
|
+
export declare function formatFormContextData(event: AnalyticsContext): FormContext['data'];
|
|
247
|
+
/**
|
|
248
|
+
* Builds the Snowplow `modal` context. A missing modal is reported and replaced with an
|
|
249
|
+
* `unknown` placeholder, because every event carrying this context requires one.
|
|
250
|
+
*
|
|
251
|
+
* @param {AnalyticsContext} event - Analytics context carrying the modal.
|
|
252
|
+
* @returns {ModalContext['data']} The modal context data.
|
|
253
|
+
* @example formatModalContextData({ projectId: 'p', modal: { id: 'm1', title: 'Offer' } })
|
|
254
|
+
*/
|
|
255
|
+
export declare function formatModalContextData(event: AnalyticsContext): ModalContext['data'];
|
|
256
|
+
/**
|
|
257
|
+
* Creates a debounced version of the supplied function that will only invoke
|
|
258
|
+
* the original after `ms` milliseconds have elapsed since the last call.
|
|
259
|
+
*
|
|
260
|
+
* @template Fn
|
|
261
|
+
* @param {Fn} fn - The function to debounce.
|
|
262
|
+
* @param {number} ms - The debounce window in milliseconds.
|
|
263
|
+
* @returns {(...args: Parameters<Fn>) => void} A debounced wrapper around `fn`.
|
|
264
|
+
* @example
|
|
265
|
+
* const log = debounce((value: string) => console.log(value), 200)
|
|
266
|
+
*/
|
|
267
|
+
export declare function debounce<Fn extends (...args: never[]) => unknown>(fn: Fn, ms?: number): (...args: Parameters<Fn>) => void;
|
|
268
|
+
//# sourceMappingURL=utils.d.ts.map
|