@dynatrace/rum-javascript-sdk 1.333.15 → 1.337.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.
Files changed (49) hide show
  1. package/dist/api/index.d.ts +16 -0
  2. package/dist/api/index.js +25 -1
  3. package/dist/api/interactions.d.ts +25 -0
  4. package/dist/api/interactions.js +51 -0
  5. package/dist/api/promises/index.d.ts +23 -0
  6. package/dist/api/promises/index.js +36 -7
  7. package/dist/api/promises/interactions.d.ts +18 -0
  8. package/dist/api/promises/interactions.js +22 -0
  9. package/dist/api/promises/wait-for-interactions.d.ts +9 -0
  10. package/dist/api/promises/wait-for-interactions.js +18 -0
  11. package/dist/api/user-actions.d.ts +5 -5
  12. package/dist/api/user-actions.js +6 -6
  13. package/dist/testing/index.d.ts +3 -1
  14. package/dist/testing/index.js +1 -1
  15. package/dist/testing/install.js +1 -1
  16. package/dist/testing/test.d.ts +1 -119
  17. package/dist/testing/test.js +12 -11
  18. package/dist/testing/types/dynatrace-config.d.ts +36 -0
  19. package/dist/testing/types/dynatrace-config.js +2 -0
  20. package/dist/testing/types/dynatrace-testing-fixtures.d.ts +24 -0
  21. package/dist/testing/types/dynatrace-testing-fixtures.js +2 -0
  22. package/dist/testing/types/dynatrace-testing.d.ts +66 -0
  23. package/dist/testing/types/dynatrace-testing.js +2 -0
  24. package/dist/types/api/dynatrace-api-types.d.ts +126 -24
  25. package/dist/types/api/dynatrace-api-types.js +1 -1
  26. package/dist/types/index-typedoc.d.ts +1 -0
  27. package/dist/types/index-typedoc.js +2 -1
  28. package/dist/types/rum-events/index.d.ts +1 -0
  29. package/dist/types/rum-events/index.js +2 -1
  30. package/dist/types/rum-events/json-event.d.ts +0 -6
  31. package/dist/types/rum-events/json-event.js +1 -1
  32. package/dist/types/rum-events/open-fields.d.ts +74 -0
  33. package/dist/types/rum-events/open-fields.js +84 -0
  34. package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +21 -1
  35. package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +21 -1
  36. package/dist/types/rum-events/rum-user-interaction-event.d.ts +47 -0
  37. package/dist/types/rum-events/rum-user-interaction-event.js +43 -1
  38. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +3 -2
  39. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -1
  40. package/dist/types/user-actions/user-action-start-options.d.ts +13 -0
  41. package/dist/types/user-actions/user-action-start-options.js +1 -1
  42. package/dist/types/user-actions/user-action-tracker.d.ts +35 -3
  43. package/dist/types/user-actions/user-action-tracker.js +1 -1
  44. package/docs/1-overview.md +95 -0
  45. package/docs/2-testing.md +3 -3
  46. package/docs/3-types.md +1 -0
  47. package/docs/4-useractions.md +94 -76
  48. package/docs/5-interactions.md +85 -0
  49. package/package.json +24 -8
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tdHJhY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy91c2VyLWFjdGlvbnMvdXNlci1hY3Rpb24tdHJhY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVbnN1YnNjcmliZXIgfSBmcm9tIFwiLi4vYXBpL2R5bmF0cmFjZS1hcGktdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgVXNlckFjdGlvbkVuZEV2ZW50IH0gZnJvbSBcIi4vdXNlci1hY3Rpb24tZW5kLWV2ZW50LmpzXCI7XG5cbi8qKlxuICogQW4gb2JqZWN0IHRvIHdvcmsgd2l0aCB1c2VyIGFjdGlvbnMuXG4gKlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBY3Rpb25UcmFja2VyIHtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZXMgdGhpcyB1c2VyIGFjdGlvbiBhbmQgc2VuZHMgYSB1c2VyIGFjdGlvbiBldmVudCBmb3IgaXQuXG4gICAgICovXG4gICAgZmluaXNoKCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmVzIHRvIHRoaXMgdXNlciBhY3Rpb24gdG8gYmUgbm90aWZpZWQgd2hlbiBpdCB3b3VsZCBhdXRvbWF0aWNhbGx5IGNvbXBsZXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1YnNjcmliZXIgVGhlIGxpc3RlbmVyIHRvIGJlIGNhbGxlZC5cbiAgICAgKi9cbiAgICBzdWJzY3JpYmUoc3Vic2NyaWJlcjogKGV2ZW50OiBVc2VyQWN0aW9uRW5kRXZlbnQpID0+IHZvaWQpOiBVbnN1YnNjcmliZXI7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdG8gY29uZmlndXJlIHRoaXMgdXNlciBhY3Rpb24gdG8gc3RvcCBhdXRvbWF0aWNhbGx5LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0b3BBdXRvbWF0aWNhbGx5IElmIHNldCB0byBmYWxzZSwgdGhlIHVzZXIgYWN0aW9uIGhhcyB0byBiZSBzdG9wcGVkIHdpdGggYSBjYWxsIHRvIHtAbGluayBmaW5pc2h9LlxuICAgICAqL1xuICAgIHNldCBhdXRvQ2xvc2Uoc3RvcEF1dG9tYXRpY2FsbHk6IGJvb2xlYW4pO1xuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGlzIHVzZXIgYWN0aW9uIHN0b3BzIGF1dG9tYXRpY2FsbHkuIElmIGZhbHNlLCB0aGUgdXNlciBhY3Rpb24gaGFzIHRvIGJlIHN0b3BwZWQgd2l0aCBhIGNhbGwgdG8ge0BsaW5rIGZpbmlzaH0uXG4gICAgICovXG4gICAgZ2V0IGF1dG9DbG9zZSgpOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB1c2VyIGFjdGlvbiwgd2hpY2ggY2FuIGJlIGVpdGhlciBcImFjdGl2ZVwiIG9yIFwiY29tcGxldGVcIi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKi9cbiAgICBnZXQgc3RhdGUoKTogXCJhY3RpdmVcIiB8IFwiY29tcGxldGVcIjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGV2ZW50IHByb3BlcnRpZXMgZm9yIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBwcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIHRvIHNldCBmb3IgdGhlIGV2ZW50LlxuICAgICAqL1xuICAgIHNldCBldmVudF9wcm9wZXJ0aWVzKHByb3BlcnRpZXM6IFJlY29yZDxgZXZlbnRfcHJvcGVydGllcy4ke3N0cmluZ31gLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiB8IHVuZGVmaW5lZCk7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGV2ZW50IHByb3BlcnRpZXMgZm9yIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBldmVudCBwcm9wZXJ0aWVzIGZvciB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgZ2V0IGV2ZW50X3Byb3BlcnRpZXMoKTogUmVjb3JkPGBldmVudF9wcm9wZXJ0aWVzLiR7c3RyaW5nfWAsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBzdGFydCB0aW1lIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFRoZSBzdGFydCB0aW1lIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKi9cbiAgICBnZXQgc3RhcnRUaW1lKCk6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXJ0IHRpbWUgb2YgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBzdGFydCB0aW1lIHRvIHNldCBmb3IgdGhlIHVzZXIgYWN0aW9uLiBNdXN0IG5vdCBiZSBpbiB0aGUgZnV0dXJlLlxuICAgICAqL1xuICAgIHNldCBzdGFydFRpbWUodmFsdWU6IG51bWJlcik7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqXG4gICAgICogQHJldHVybnMgVGhlIG5hbWUgb2YgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqL1xuICAgIGdldCBuYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIG5hbWUgb2YgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSBuYW1lIHRvIHNldCBmb3IgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqL1xuICAgIHNldCBuYW1lKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tdHJhY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NvdXJjZS90eXBlcy91c2VyLWFjdGlvbnMvdXNlci1hY3Rpb24tdHJhY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBVbnN1YnNjcmliZXIgfSBmcm9tIFwiLi4vYXBpL2R5bmF0cmFjZS1hcGktdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgVXNlckFjdGlvbkVuZEV2ZW50IH0gZnJvbSBcIi4vdXNlci1hY3Rpb24tZW5kLWV2ZW50LmpzXCI7XG5cbi8qKlxuICogQW4gb2JqZWN0IHRvIHdvcmsgd2l0aCB1c2VyIGFjdGlvbnMuXG4gKlxuICogQGNhdGVnb3J5IFVzZXIgQWN0aW9uc1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJBY3Rpb25UcmFja2VyIHtcbiAgICAvKipcbiAgICAgKiBDb21wbGV0ZXMgdGhpcyB1c2VyIGFjdGlvbiBhbmQgc2VuZHMgYSB1c2VyIGFjdGlvbiBldmVudCBmb3IgaXQuXG4gICAgICovXG4gICAgY29tcGxldGUoKTogdm9pZDtcblxuICAgIC8qKlxuICAgICAqIENvbXBsZXRlcyB0aGlzIHVzZXIgYWN0aW9uIGFuZCBzZW5kcyBhIHVzZXIgYWN0aW9uIGV2ZW50IGZvciBpdC5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgY29tcGxldGV9IGluc3RlYWQuXG4gICAgICovXG4gICAgZmluaXNoKCk6IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTdWJzY3JpYmVzIHRvIHRoaXMgdXNlciBhY3Rpb24gdG8gYmUgbm90aWZpZWQgd2hlbiBpdCB3b3VsZCBhdXRvbWF0aWNhbGx5IGNvbXBsZXRlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1YnNjcmliZXIgVGhlIGxpc3RlbmVyIHRvIGJlIGNhbGxlZC5cbiAgICAgKi9cbiAgICBzdWJzY3JpYmUoc3Vic2NyaWJlcjogKGV2ZW50OiBVc2VyQWN0aW9uRW5kRXZlbnQpID0+IHZvaWQpOiBVbnN1YnNjcmliZXI7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdG8gY29uZmlndXJlIHRoaXMgdXNlciBhY3Rpb24gdG8gY29tcGxldGUgYXV0b21hdGljYWxseS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb21wbGV0ZUF1dG9tYXRpY2FsbHkgSWYgc2V0IHRvIGZhbHNlLCB0aGUgdXNlciBhY3Rpb24gaGFzIHRvIGJlIGNvbXBsZXRlZCB3aXRoIGEgY2FsbCB0byB7QGxpbmsgY29tcGxldGV9LlxuICAgICAqL1xuICAgIHNldCBjb21wbGV0ZUF1dG9tYXRpY2FsbHkoY29tcGxldGVBdXRvbWF0aWNhbGx5OiBib29sZWFuKTtcblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIFRydWUgaWYgdGhpcyB1c2VyIGFjdGlvbiBjb21wbGV0ZXMgYXV0b21hdGljYWxseS4gSWYgZmFsc2UsIHRoZSB1c2VyIGFjdGlvbiBoYXMgdG8gYmUgY29tcGxldGVkIHdpdGggYSBjYWxsIHRvIHtAbGluayBjb21wbGV0ZX0uXG4gICAgICovXG4gICAgZ2V0IGNvbXBsZXRlQXV0b21hdGljYWxseSgpOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQWxsb3dzIHRvIGNvbmZpZ3VyZSB0aGlzIHVzZXIgYWN0aW9uIHRvIHN0b3AgYXV0b21hdGljYWxseS5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgY29tcGxldGVBdXRvbWF0aWNhbGx5fSBpbnN0ZWFkLlxuICAgICAqIEBwYXJhbSAgICAgIHN0b3BBdXRvbWF0aWNhbGx5IElmIHNldCB0byBmYWxzZSwgdGhlIHVzZXIgYWN0aW9uIGhhcyB0byBiZSBzdG9wcGVkIHdpdGggYSBjYWxsIHRvIHtAbGluayBjb21wbGV0ZX0uXG4gICAgICovXG4gICAgc2V0IGF1dG9DbG9zZShzdG9wQXV0b21hdGljYWxseTogYm9vbGVhbik7XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIGNvbXBsZXRlQXV0b21hdGljYWxseX0gaW5zdGVhZC5cbiAgICAgKiBAcmV0dXJucyBUcnVlIGlmIHRoaXMgdXNlciBhY3Rpb24gc3RvcHMgYXV0b21hdGljYWxseS4gSWYgZmFsc2UsIHRoZSB1c2VyIGFjdGlvbiBoYXMgdG8gYmUgc3RvcHBlZCB3aXRoIGEgY2FsbCB0byB7QGxpbmsgY29tcGxldGV9LlxuICAgICAqL1xuICAgIGdldCBhdXRvQ2xvc2UoKTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdXNlciBhY3Rpb24sIHdoaWNoIGNhbiBiZSBlaXRoZXIgXCJhY3RpdmVcIiBvciBcImNvbXBsZXRlXCIuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgZ2V0IHN0YXRlKCk6IFwiYWN0aXZlXCIgfCBcImNvbXBsZXRlXCI7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBldmVudCBwcm9wZXJ0aWVzIGZvciB0aGUgdXNlciBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gcHJvcGVydGllcyBUaGUgcHJvcGVydGllcyB0byBzZXQgZm9yIHRoZSBldmVudC5cbiAgICAgKi9cbiAgICBzZXQgZXZlbnRfcHJvcGVydGllcyhwcm9wZXJ0aWVzOiBSZWNvcmQ8YGV2ZW50X3Byb3BlcnRpZXMuJHtzdHJpbmd9YCwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4gfCB1bmRlZmluZWQpO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBldmVudCBwcm9wZXJ0aWVzIGZvciB0aGUgdXNlciBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgZXZlbnQgcHJvcGVydGllcyBmb3IgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqL1xuICAgIGdldCBldmVudF9wcm9wZXJ0aWVzKCk6IFJlY29yZDxgZXZlbnRfcHJvcGVydGllcy4ke3N0cmluZ31gLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFJldHJpZXZlcyB0aGUgc3RhcnQgdGltZSBvZiB0aGUgdXNlciBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgc3RhcnQgdGltZSBvZiB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgZ2V0IHN0YXJ0VGltZSgpOiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGFydCB0aW1lIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgc3RhcnQgdGltZSB0byBzZXQgZm9yIHRoZSB1c2VyIGFjdGlvbi4gTXVzdCBub3QgYmUgaW4gdGhlIGZ1dHVyZS5cbiAgICAgKi9cbiAgICBzZXQgc3RhcnRUaW1lKHZhbHVlOiBudW1iZXIpO1xuXG4gICAgLyoqXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXN0b20gbmFtZSBvZiB0aGUgdXNlciBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBUaGUgY3VzdG9tIG5hbWUgb2YgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqL1xuICAgIGdldCBjdXN0b21OYW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGN1c3RvbSBuYW1lIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgY3VzdG9tIG5hbWUgdG8gc2V0IGZvciB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgc2V0IGN1c3RvbU5hbWUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCk7XG5cbiAgICAvKipcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIG5hbWUgb2YgdGhlIHVzZXIgYWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBjdXN0b21OYW1lfSBpbnN0ZWFkLlxuICAgICAqIEByZXR1cm5zIFRoZSBuYW1lIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKi9cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBuYW1lIG9mIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgY3VzdG9tTmFtZX0gaW5zdGVhZC5cbiAgICAgKiBAcGFyYW0gICAgICB2YWx1ZSBUaGUgbmFtZSB0byBzZXQgZm9yIHRoZSB1c2VyIGFjdGlvbi5cbiAgICAgKi9cbiAgICBzZXQgbmFtZSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTtcbn1cbiJdfQ==
@@ -18,6 +18,7 @@ This package provides two main API approaches for interacting with the Dynatrace
18
18
  - **Synchronous API**: Safe wrapper functions that gracefully handle cases where the RUM JavaScript is not available
19
19
  - **Asynchronous API**: Promise-based functions that wait for the RUM JavaScript to become available
20
20
  - **User Actions API**: Manual control over user action creation and lifecycle (see [User Actions API](./4-useractions.md))
21
+ - **Interactions API**: Report custom user interaction events (see [Interactions API](./5-interactions.md))
21
22
  - **TypeScript Support**: Comprehensive type definitions for all RUM API functions
22
23
  - **Testing Framework**: Playwright-based utilities for testing RUM integration
23
24
 
@@ -151,6 +152,30 @@ import { identifyUser } from '@dynatrace/rum-javascript-sdk/api';
151
152
  identifyUser('john.doe@example.com');
152
153
  ```
153
154
 
155
+ #### `userOptIn(): void`
156
+
157
+ Grants consent for data collection. When consent management is enabled, calls to other APIs (e.g., `sendEvent`, `identifyUser`) are blocked until consent is granted.
158
+
159
+ **Example:**
160
+ ```typescript
161
+ import { userOptIn } from '@dynatrace/rum-javascript-sdk/api';
162
+
163
+ // Grant consent after the user accepts the cookie banner
164
+ userOptIn();
165
+ ```
166
+
167
+ #### `userOptOut(): void`
168
+
169
+ Revokes consent for data collection. When opted out, no events or beacons are sent, but consent APIs remain callable.
170
+
171
+ **Example:**
172
+ ```typescript
173
+ import { userOptOut } from '@dynatrace/rum-javascript-sdk/api';
174
+
175
+ // Revoke consent when the user opts out
176
+ userOptOut();
177
+ ```
178
+
154
179
  #### `sendSessionPropertyEvent(fields): void`
155
180
 
156
181
  Sends session-level properties that will be attached to all subsequent events in the session.
@@ -195,6 +220,33 @@ const yourError = new Error("Your Error Message");
195
220
  sendExceptionEvent(yourError, { "event_properties.component": "myExampleComponent" });
196
221
  ```
197
222
 
223
+ ### Interactions API (`@dynatrace/rum-javascript-sdk/api/interactions`)
224
+
225
+ #### `sendKeyPressEvent(fields, elementOrEvent?): void`
226
+
227
+ Sends a user interaction event to report custom keyboard shortcuts or key combinations.
228
+ Only available if the User Interaction module is enabled.
229
+
230
+ **Parameters:**
231
+
232
+ - `fields: SendUserInteractionFields` - Must be a JSON-serializable object with a `keys` array (at least one key).
233
+ Keys can be `UserInteractionSpecialKey` members or raw [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) strings — raw values are normalized internally.
234
+ Optional `ui_element.custom_name` and `event_properties.*` entries are allowed.
235
+ - `elementOrEvent?: Element | KeyboardEvent` - Optional Element or KeyboardEvent to auto-capture UI element fields.
236
+
237
+ **Example:**
238
+ ```typescript
239
+ import * as interactions from '@dynatrace/rum-javascript-sdk/api/interactions';
240
+ import { UserInteractionSpecialKey } from '@dynatrace/rum-javascript-sdk/types/rum-events';
241
+
242
+ interactions.sendKeyPressEvent({
243
+ keys: [UserInteractionSpecialKey.CTRL, "S"],
244
+ "event_properties.context": "editor"
245
+ });
246
+ ```
247
+
248
+ For detailed documentation and examples, see [Interactions API](./5-interactions.md).
249
+
198
250
  ### Asynchronous API (`@dynatrace/rum-javascript-sdk/promises`)
199
251
 
200
252
  The asynchronous API provides Promise-based functions that wait for the Dynatrace RUM JavaScript to become available. These functions will throw a `DynatraceError` if the RUM JavaScript is not available within the specified timeout. This is useful for scenarios where you don't want to
@@ -266,6 +318,34 @@ Async wrapper for user identification, with automatic waiting for RUM JavaScript
266
318
  - `value: string` - User identifier
267
319
  - `timeout?: number` - Timeout in milliseconds to wait for RUM JavaScript (default: 10,000)
268
320
 
321
+ #### `userOptIn(timeout?): Promise<void>`
322
+
323
+ Async wrapper for granting consent for data collection, with automatic waiting for RUM JavaScript availability.
324
+
325
+ **Parameters:**
326
+ - `timeout?: number` - Timeout in milliseconds to wait for RUM JavaScript (default: 10,000)
327
+
328
+ **Example:**
329
+ ```typescript
330
+ import { userOptIn } from '@dynatrace/rum-javascript-sdk/api/promises';
331
+
332
+ await userOptIn();
333
+ ```
334
+
335
+ #### `userOptOut(timeout?): Promise<void>`
336
+
337
+ Async wrapper for revoking consent for data collection, with automatic waiting for RUM JavaScript availability.
338
+
339
+ **Parameters:**
340
+ - `timeout?: number` - Timeout in milliseconds to wait for RUM JavaScript (default: 10,000)
341
+
342
+ **Example:**
343
+ ```typescript
344
+ import { userOptOut } from '@dynatrace/rum-javascript-sdk/api/promises';
345
+
346
+ await userOptOut();
347
+ ```
348
+
269
349
  #### `sendSessionPropertyEvent(fields, timeout?): Promise<void>`
270
350
 
271
351
  Async wrapper for sending session properties, with automatic waiting for RUM JavaScript availability.
@@ -285,6 +365,21 @@ Only available if the Errors module is enabled.
285
365
  - `error: Error` - The error object to report. Must be an instance of the standard JavaScript `Error` class.
286
366
  - `fields: ApiCreatedEventPropertiesEvent` - Optional Event properties object. Must be serializable JSON with properties prefixed with `event_properties.`, plus optional `duration` and `start_time` properties.
287
367
 
368
+ ### Interactions API (`@dynatrace/rum-javascript-sdk/api/promises/interactions`)
369
+
370
+ #### `sendKeyPressEvent(fields, elementOrEvent?, timeout?): Promise<void>`
371
+
372
+ Async wrapper for sending a user interaction event, with automatic waiting for RUM JavaScript availability.
373
+ Only available if the User Interaction module is enabled.
374
+
375
+ **Parameters:**
376
+
377
+ - `fields: SendUserInteractionFields` - Must be a JSON-serializable object with a `keys` array (at least one key).
378
+ Keys can be `UserInteractionSpecialKey` members or raw [`KeyboardEvent.key`](https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key) strings — raw values are normalized internally.
379
+ Optional `ui_element.custom_name` and `event_properties.*` entries are allowed.
380
+ - `elementOrEvent?: Element | KeyboardEvent` - Optional Element or KeyboardEvent to auto-capture UI element fields.
381
+ - `timeout?: number` - Timeout in milliseconds to wait for RUM JavaScript (default: 10,000)
382
+
288
383
  ### User Actions API
289
384
 
290
385
  Both synchronous and asynchronous wrappers are available for the User Actions API. For detailed documentation and examples, see [User Actions API](./4-useractions.md).
package/docs/2-testing.md CHANGED
@@ -372,10 +372,10 @@ The snapshot files contain JSON-formatted event data with ignored fields replace
372
372
 
373
373
  #### Updating Snapshots
374
374
 
375
- To update snapshots when event structures change intentionally, run Playwright with the `--update-snapshots` flag:
375
+ To update snapshots when event structures change intentionally, run Playwright with the `--update-snapshots=all` flag:
376
376
 
377
377
  ```bash
378
- npx playwright test --update-snapshots
378
+ npx playwright test --update-snapshots=all
379
379
  ```
380
380
 
381
381
  #### Default Ignored Fields
@@ -417,7 +417,7 @@ When a snapshot comparison fails, the error message includes:
417
417
  3. Instructions for updating the snapshot
418
418
 
419
419
  Common causes of snapshot failures:
420
- - **New fields added to events**: Update the snapshot with `--update-snapshots`
420
+ - **New fields added to events**: Update the snapshot with `--update-snapshots=all`
421
421
  - **Volatile field values**: Add the field to `ignoredFields` to replace values with `[IGNORED]`
422
422
  - **Varying field presence**: Add the field to `removedFields` (use `fieldname.*` wildcard to remove all fields with that prefix)
423
423
  - **Unwanted events**: Add an event pattern to `ignoreEvents` to filter them out
package/docs/3-types.md CHANGED
@@ -48,3 +48,4 @@ if (window.dynatrace) {
48
48
  ```
49
49
 
50
50
  Refer to the [User Actions API](./4-useractions.md) for details about `dynatrace.userActions`.
51
+ Refer to the [Interactions API](./5-interactions.md) for details about `dynatrace.interactions`.