@dynatrace/rum-javascript-sdk 1.329.6 → 1.331.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/README.md +8 -8
  2. package/dist/testing/install.js +4 -1
  3. package/dist/testing/test.js +105 -15
  4. package/dist/types/index-typedoc.d.ts +1 -0
  5. package/dist/types/index-typedoc.js +2 -1
  6. package/dist/types/internal/beacon-query.d.ts +4 -1
  7. package/dist/types/internal/beacon-query.js +4 -1
  8. package/dist/types/rum-events/event-context/event-context.d.ts +3 -0
  9. package/dist/types/rum-events/event-context/event-context.js +1 -1
  10. package/dist/types/rum-events/event-updates.d.ts +3 -0
  11. package/dist/types/rum-events/event-updates.js +1 -1
  12. package/dist/types/rum-events/index.d.ts +1 -0
  13. package/dist/types/rum-events/index.js +2 -1
  14. package/dist/types/rum-events/json-event.d.ts +5 -8
  15. package/dist/types/rum-events/json-event.js +1 -1
  16. package/dist/types/rum-events/rum-biz-event.d.ts +8 -4
  17. package/dist/types/rum-events/rum-biz-event.js +2 -8
  18. package/dist/types/rum-events/rum-event-keys.d.ts +342 -0
  19. package/dist/types/rum-events/rum-event-keys.js +469 -0
  20. package/dist/types/rum-events/rum-event.d.ts +4 -3
  21. package/dist/types/rum-events/rum-event.js +1 -1
  22. package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +36 -9
  23. package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +21 -5
  24. package/dist/types/rum-events/rum-long-task-event.d.ts +15 -16
  25. package/dist/types/rum-events/rum-long-task-event.js +2 -10
  26. package/dist/types/rum-events/rum-page-summary-event.d.ts +109 -166
  27. package/dist/types/rum-events/rum-page-summary-event.js +2 -88
  28. package/dist/types/rum-events/rum-selfmonitoring-event.d.ts +13 -11
  29. package/dist/types/rum-events/rum-selfmonitoring-event.js +1 -7
  30. package/dist/types/rum-events/rum-session-properties-event.d.ts +4 -3
  31. package/dist/types/rum-events/rum-session-properties-event.js +1 -1
  32. package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.d.ts +6 -6
  33. package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.js +1 -1
  34. package/dist/types/rum-events/rum-standalone-exception-event.d.ts +6 -6
  35. package/dist/types/rum-events/rum-standalone-exception-event.js +1 -1
  36. package/dist/types/rum-events/rum-standalone-navigation-event.d.ts +11 -7
  37. package/dist/types/rum-events/rum-standalone-navigation-event.js +2 -5
  38. package/dist/types/rum-events/rum-user-action-event.d.ts +96 -86
  39. package/dist/types/rum-events/rum-user-action-event.js +22 -37
  40. package/dist/types/rum-events/rum-user-interaction-event.d.ts +126 -152
  41. package/dist/types/rum-events/rum-user-interaction-event.js +4 -90
  42. package/dist/types/rum-events/rum-visibility-change-event.d.ts +12 -9
  43. package/dist/types/rum-events/rum-visibility-change-event.js +2 -6
  44. package/dist/types/rum-events/rum-web-request-event.d.ts +84 -105
  45. package/dist/types/rum-events/rum-web-request-event.js +9 -57
  46. package/dist/types/rum-events/schema-versions.d.ts +1 -1
  47. package/dist/types/rum-events/schema-versions.js +2 -2
  48. package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.d.ts +18 -30
  49. package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.js +3 -22
  50. package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.d.ts +12 -18
  51. package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.js +2 -19
  52. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.d.ts +6 -6
  53. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.js +1 -10
  54. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +50 -94
  55. package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -75
  56. package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.d.ts +7 -8
  57. package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.js +2 -10
  58. package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.d.ts +10 -10
  59. package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.js +5 -15
  60. package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.d.ts +8 -4
  61. package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.js +2 -5
  62. package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.d.ts +7 -7
  63. package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.js +2 -9
  64. package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.d.ts +7 -7
  65. package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.js +2 -9
  66. package/dist/types/user-actions/user-action-end-event.d.ts +2 -2
  67. package/dist/types/user-actions/user-action-end-event.js +1 -1
  68. package/docs/testing.md +92 -0
  69. package/docs/types.md +1 -1
  70. package/package.json +4 -4
@@ -1,10 +1,3 @@
1
1
  // https://dt-rnd.atlassian.net/wiki/spaces/DEX/pages/165349687/Request+fields+URL+and+network+namespace
2
- /**
3
- * @category Shared Namespaces & Fields
4
- */
5
- export var RequestFieldsKeys;
6
- (function (RequestFieldsKeys) {
7
- RequestFieldsKeys["NETWORK$PROTOCOL$NAME"] = "network.protocol.name";
8
- RequestFieldsKeys["URL$FULL"] = "url.full";
9
- })(RequestFieldsKeys || (RequestFieldsKeys = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3JlcXVlc3QtZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdHQUF3RztBQUV4Rzs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFrQixpQkFHakI7QUFIRCxXQUFrQixpQkFBaUI7SUFDL0Isb0VBQStDLENBQUE7SUFDL0MsMENBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUhpQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBR2xDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9kdC1ybmQuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9ERVgvcGFnZXMvMTY1MzQ5Njg3L1JlcXVlc3QrZmllbGRzK1VSTCthbmQrbmV0d29yaytuYW1lc3BhY2VcblxuLyoqXG4gKiBAY2F0ZWdvcnkgU2hhcmVkIE5hbWVzcGFjZXMgJiBGaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gUmVxdWVzdEZpZWxkc0tleXMge1xuICAgIE5FVFdPUkskUFJPVE9DT0wkTkFNRSA9IFwibmV0d29yay5wcm90b2NvbC5uYW1lXCIsXG4gICAgVVJMJEZVTEwgPSBcInVybC5mdWxsXCJcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0RmllbGRzIHtcbiAgICBbUmVxdWVzdEZpZWxkc0tleXMuVVJMJEZVTExdOiBzdHJpbmc7XG4gICAgW1JlcXVlc3RGaWVsZHNLZXlzLk5FVFdPUkskUFJPVE9DT0wkTkFNRV06IHN0cmluZztcbn1cbiJdfQ==
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3JlcXVlc3QtZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdHQUF3RyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZHQtcm5kLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvREVYL3BhZ2VzLzE2NTM0OTY4Ny9SZXF1ZXN0K2ZpZWxkcytVUkwrYW5kK25ldHdvcmsrbmFtZXNwYWNlXG5cbmltcG9ydCB0eXBlIHsgUnVtRXZlbnRLZXlzIH0gZnJvbSBcIi4uL3J1bS1ldmVudC1rZXlzLmpzXCI7XG5cbi8qKlxuICogUmVxdWVzdCBVUkwgYW5kIG5ldHdvcmsgcHJvdG9jb2wgZmllbGRzLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdEZpZWxkc0tleXMgPVxuICAgIHwgUnVtRXZlbnRLZXlzLk5FVFdPUkskUFJPVE9DT0wkTkFNRVxuICAgIHwgUnVtRXZlbnRLZXlzLlVSTCRGVUxMO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBSZXF1ZXN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RGaWVsZHMge1xuICAgIFtSdW1FdmVudEtleXMuVVJMJEZVTExdOiBzdHJpbmc7XG4gICAgW1J1bUV2ZW50S2V5cy5ORVRXT1JLJFBST1RPQ09MJE5BTUVdOiBzdHJpbmc7XG59XG4iXX0=
@@ -1,14 +1,14 @@
1
+ import type { RumEventKeys } from "../rum-event-keys.js";
1
2
  /**
2
- * @category Shared Namespaces & Fields
3
+ * View source fields.
4
+ *
5
+ * @ignore
3
6
  */
4
- export declare const enum ViewSourceFieldsKeys {
5
- VIEW$SOURCE$DETECTED_NAME = "view.source.detected_name",
6
- VIEW$SOURCE$URL$FULL = "view.source.url.full"
7
- }
7
+ export type ViewSourceFieldsKeys = RumEventKeys.VIEW$SOURCE$DETECTED_NAME | RumEventKeys.VIEW$SOURCE$URL$FULL;
8
8
  /**
9
9
  * @category Lifecycle & Navigation
10
10
  */
11
11
  export interface ViewSourceFields {
12
- [ViewSourceFieldsKeys.VIEW$SOURCE$URL$FULL]?: string;
13
- [ViewSourceFieldsKeys.VIEW$SOURCE$DETECTED_NAME]?: string;
12
+ [RumEventKeys.VIEW$SOURCE$URL$FULL]?: string;
13
+ [RumEventKeys.VIEW$SOURCE$DETECTED_NAME]?: string;
14
14
  }
@@ -1,9 +1,2 @@
1
- /**
2
- * @category Shared Namespaces & Fields
3
- */
4
- export var ViewSourceFieldsKeys;
5
- (function (ViewSourceFieldsKeys) {
6
- ViewSourceFieldsKeys["VIEW$SOURCE$DETECTED_NAME"] = "view.source.detected_name";
7
- ViewSourceFieldsKeys["VIEW$SOURCE$URL$FULL"] = "view.source.url.full";
8
- })(ViewSourceFieldsKeys || (ViewSourceFieldsKeys = {}));
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zb3VyY2UtZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc291cmNlL3R5cGVzL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy92aWV3LXNvdXJjZS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBa0Isb0JBR2pCO0FBSEQsV0FBa0Isb0JBQW9CO0lBQ2xDLCtFQUF1RCxDQUFBO0lBQ3ZELHFFQUE2QyxDQUFBO0FBQ2pELENBQUMsRUFIaUIsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUdyQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNhdGVnb3J5IFNoYXJlZCBOYW1lc3BhY2VzICYgRmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFZpZXdTb3VyY2VGaWVsZHNLZXlzIHtcbiAgICBWSUVXJFNPVVJDRSRERVRFQ1RFRF9OQU1FID0gXCJ2aWV3LnNvdXJjZS5kZXRlY3RlZF9uYW1lXCIsXG4gICAgVklFVyRTT1VSQ0UkVVJMJEZVTEwgPSBcInZpZXcuc291cmNlLnVybC5mdWxsXCJcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgTGlmZWN5Y2xlICYgTmF2aWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdTb3VyY2VGaWVsZHMge1xuICAgIFtWaWV3U291cmNlRmllbGRzS2V5cy5WSUVXJFNPVVJDRSRVUkwkRlVMTF0/OiBzdHJpbmc7XG4gICAgW1ZpZXdTb3VyY2VGaWVsZHNLZXlzLlZJRVckU09VUkNFJERFVEVDVEVEX05BTUVdPzogc3RyaW5nO1xufVxuIl19
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zb3VyY2UtZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc291cmNlL3R5cGVzL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy92aWV3LXNvdXJjZS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVtRXZlbnRLZXlzIH0gZnJvbSBcIi4uL3J1bS1ldmVudC1rZXlzLmpzXCI7XG5cbi8qKlxuICogVmlldyBzb3VyY2UgZmllbGRzLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgVmlld1NvdXJjZUZpZWxkc0tleXMgPVxuICAgIHwgUnVtRXZlbnRLZXlzLlZJRVckU09VUkNFJERFVEVDVEVEX05BTUVcbiAgICB8IFJ1bUV2ZW50S2V5cy5WSUVXJFNPVVJDRSRVUkwkRlVMTDtcblxuLyoqXG4gKiBAY2F0ZWdvcnkgTGlmZWN5Y2xlICYgTmF2aWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdTb3VyY2VGaWVsZHMge1xuICAgIFtSdW1FdmVudEtleXMuVklFVyRTT1VSQ0UkVVJMJEZVTExdPzogc3RyaW5nO1xuICAgIFtSdW1FdmVudEtleXMuVklFVyRTT1VSQ0UkREVURUNURURfTkFNRV0/OiBzdHJpbmc7XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import type { BaseRUMUserActionEvent } from "../rum-events/rum-user-action-event.js";
2
- import type { GeneralRumEventFieldsKeys } from "../rum-events/shared-namespaces-and-fields/general-rum-event-fields.js";
2
+ import type { RumEventKeys } from "../rum-events/rum-event-keys.js";
3
3
  /**
4
4
  * @category User Actions
5
5
  * @inline
6
6
  * @experimental
7
7
  */
8
- export type UserActionTrackerMetadata = Omit<BaseRUMUserActionEvent, GeneralRumEventFieldsKeys.DURATION | GeneralRumEventFieldsKeys.START_TIME>;
8
+ export type UserActionTrackerMetadata = Omit<BaseRUMUserActionEvent, RumEventKeys.DURATION | RumEventKeys.START_TIME>;
9
9
  /**
10
10
  * Data provided to the callback of [dynatrace.userActions.subscribe]{@link UserActions.subscribe}.
11
11
  *
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tZW5kLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3R5cGVzL3VzZXItYWN0aW9ucy91c2VyLWFjdGlvbi1lbmQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZVJVTVVzZXJBY3Rpb25FdmVudCB9IGZyb20gXCIuLi9ydW0tZXZlbnRzL3J1bS11c2VyLWFjdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBHZW5lcmFsUnVtRXZlbnRGaWVsZHNLZXlzIH0gZnJvbSBcIi4uL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy9nZW5lcmFsLXJ1bS1ldmVudC1maWVsZHMuanNcIjtcblxuLyoqXG4gKiBAY2F0ZWdvcnkgVXNlciBBY3Rpb25zXG4gKiBAaW5saW5lXG4gKiBAZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCB0eXBlIFVzZXJBY3Rpb25UcmFja2VyTWV0YWRhdGEgPSBPbWl0PEJhc2VSVU1Vc2VyQWN0aW9uRXZlbnQsIEdlbmVyYWxSdW1FdmVudEZpZWxkc0tleXMuRFVSQVRJT04gfCBHZW5lcmFsUnVtRXZlbnRGaWVsZHNLZXlzLlNUQVJUX1RJTUU+O1xuXG4vKipcbiAqIERhdGEgcHJvdmlkZWQgdG8gdGhlIGNhbGxiYWNrIG9mIFtkeW5hdHJhY2UudXNlckFjdGlvbnMuc3Vic2NyaWJlXXtAbGluayBVc2VyQWN0aW9ucy5zdWJzY3JpYmV9LlxuICpcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQWN0aW9uRW5kRXZlbnQge1xuICAgIC8qKlxuICAgICAqIElmIGFuIGFjdGl2aXR5IHdhcyByZWNvcmRlZCBgdHJ1ZWAsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGhhZEFjdGl2aXR5OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aW1lIHRoZSB1c2VyIGFjdGlvbiBlbmRlZC5cbiAgICAgKi9cbiAgICBlbmQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBNZXRhZGF0YSBhYm91dCB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgbWV0YWRhdGE6IFVzZXJBY3Rpb25UcmFja2VyTWV0YWRhdGE7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tZW5kLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3R5cGVzL3VzZXItYWN0aW9ucy91c2VyLWFjdGlvbi1lbmQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZVJVTVVzZXJBY3Rpb25FdmVudCB9IGZyb20gXCIuLi9ydW0tZXZlbnRzL3J1bS11c2VyLWFjdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSdW1FdmVudEtleXMgfSBmcm9tIFwiLi4vcnVtLWV2ZW50cy9ydW0tZXZlbnQta2V5cy5qc1wiO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBpbmxpbmVcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IHR5cGUgVXNlckFjdGlvblRyYWNrZXJNZXRhZGF0YSA9IE9taXQ8QmFzZVJVTVVzZXJBY3Rpb25FdmVudCwgUnVtRXZlbnRLZXlzLkRVUkFUSU9OIHwgUnVtRXZlbnRLZXlzLlNUQVJUX1RJTUU+O1xuXG4vKipcbiAqIERhdGEgcHJvdmlkZWQgdG8gdGhlIGNhbGxiYWNrIG9mIFtkeW5hdHJhY2UudXNlckFjdGlvbnMuc3Vic2NyaWJlXXtAbGluayBVc2VyQWN0aW9ucy5zdWJzY3JpYmV9LlxuICpcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQWN0aW9uRW5kRXZlbnQge1xuICAgIC8qKlxuICAgICAqIElmIGFuIGFjdGl2aXR5IHdhcyByZWNvcmRlZCBgdHJ1ZWAsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGhhZEFjdGl2aXR5OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aW1lIHRoZSB1c2VyIGFjdGlvbiBlbmRlZC5cbiAgICAgKi9cbiAgICBlbmQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBNZXRhZGF0YSBhYm91dCB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgbWV0YWRhdGE6IFVzZXJBY3Rpb25UcmFja2VyTWV0YWRhdGE7XG59XG4iXX0=
package/docs/testing.md CHANGED
@@ -52,12 +52,104 @@ test("expect specific event", async ({ page, dynatraceTesting }) => {
52
52
  });
53
53
  ```
54
54
 
55
+ ## Important: Fixture Destructuring Order
56
+
57
+ ⚠️ **The order of fixture destructuring matters!**
58
+
59
+ The `dynatraceTesting` fixture must be destructured **before** any custom fixtures that navigate the page. This ensures the RUM JavaScript is injected before navigation occurs.
60
+
61
+ ### ✅ Correct Order
62
+ ```typescript
63
+ test("my test", async ({ dynatraceTesting, myCustomFixture, page }) => {
64
+ // dynatraceTesting is initialized first
65
+ // RUM script is injected via page.addInitScript
66
+ // Then myCustomFixture can safely navigate
67
+ await page.goto("https://example.com");
68
+ });
69
+ ```
70
+
71
+ ### ❌ Incorrect Order
72
+ ```typescript
73
+ test("my test", async ({ myCustomFixture, dynatraceTesting, page }) => {
74
+ // If myCustomFixture navigates the page, it happens BEFORE
75
+ // dynatraceTesting is initialized, so RUM script is not injected
76
+ // This will cause the test to fail with "no events received"
77
+ });
78
+ ```
79
+
80
+ ### Why This Happens
81
+
82
+ Playwright initializes fixtures in the order they appear in the destructuring pattern. The `dynatraceTesting` fixture uses `page.addInitScript()` to inject the RUM JavaScript, which only affects subsequent page navigations.
83
+
84
+ ### Custom Fixtures That Navigate
85
+
86
+ If you have custom fixtures that call `page.goto()`, always destructure `dynatraceTesting` first:
87
+
88
+ ```typescript
89
+ // Define custom fixture
90
+ const test = base.extend<{ myApp: MyApp }>({
91
+ myApp: async ({ page }, use) => {
92
+ await page.goto("https://myapp.com"); // Navigation happens here
93
+ await use(new MyApp(page));
94
+ }
95
+ });
96
+
97
+ // Use fixtures in correct order
98
+ test("test", async ({ dynatraceTesting, myApp }) => {
99
+ // ✅ Correct: dynatraceTesting initialized before myApp
100
+ });
101
+ ```
102
+
55
103
  ## Troubleshooting
56
104
 
57
105
  The test fixture works by intercepting network requests to the RUM ingestion endpoint and capturing
58
106
  the events sent by the RUM JavaScript.
59
107
  Note that this has an impact on your capturing environment, since these beacons report real data.
60
108
 
109
+ ### Missing Configuration Error
110
+
111
+ If you see an error like:
112
+ ```
113
+ [Dynatrace Testing] Missing required configuration fields: endpointUrl, appId, token
114
+ ```
115
+
116
+ This means the required configuration was not provided. Make sure to configure the fixture using `test.use()`:
117
+
118
+ ```typescript
119
+ test.use({
120
+ dynatraceConfig: {
121
+ endpointUrl: process.env.DT_ENDPOINT_URL!,
122
+ appId: process.env.DT_APP_ID!,
123
+ token: process.env.DT_TOKEN!
124
+ }
125
+ });
126
+ ```
127
+
128
+ ### No Events Received
129
+
130
+ If your tests fail with "Dynatrace didn't send any events":
131
+
132
+ 1. **Check fixture ordering** - Ensure `dynatraceTesting` is destructured before any fixtures that navigate the page
133
+ 2. **Check the page URL** - If you see a warning about the page already being navigated, fix the fixture order
134
+
135
+ ### Event Dumping
136
+
137
+ When `dumpEventsOnFail` is enabled, the framework will output detailed information about received events when assertions fail:
138
+
139
+ ```
140
+ [Dynatrace Testing] Event Dump (expectToHaveSentEvent - no match)
141
+ Total events received: 3
142
+ Total beacons received: 2
143
+
144
+ Received events:
145
+
146
+ Event 1: { "event_properties.custom_val": "load", ... }
147
+ Event 2: { "event_properties.custom_val": "user-action", ... }
148
+ Event 3: { "event_properties.custom_val": "custom", ... }
149
+ ```
150
+
151
+ This helps identify why expected events weren't matched.
152
+
61
153
  ## Testing API
62
154
  The `DynatraceTesting` interface provides utility methods for validating observability-related events and beacon
63
155
  requests during tests.
package/docs/types.md CHANGED
@@ -41,4 +41,4 @@ if (window.dynatrace) {
41
41
  }
42
42
  ```
43
43
 
44
- Refer to the [user actions documentation](USERACTIONS.md) for details about `dynatrace.userActions`.
44
+ Refer to the [user actions documentation](./USERACTIONS.md) for details about `dynatrace.userActions`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynatrace/rum-javascript-sdk",
3
- "version": "1.329.6",
3
+ "version": "1.331.5",
4
4
  "description": "JavaScript API for Real User Monitoring (RUM)",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -12,8 +12,8 @@
12
12
  "dist/types/**/*.d.ts",
13
13
  "dist/testing/**/*.js",
14
14
  "dist/testing/**/*.d.ts",
15
- "README.md",
16
- "docs/*.md"
15
+ "docs/*.md",
16
+ "README.md"
17
17
  ],
18
18
  "exports": {
19
19
  "./api": {
@@ -93,7 +93,7 @@
93
93
  "author": "Dynatrace",
94
94
  "license": "ISC",
95
95
  "devDependencies": {
96
- "@types/node": "22.10.1",
96
+ "@types/node": "25.0.3",
97
97
  "@vitest/coverage-v8": "3.2.3",
98
98
  "@vitest/ui": "3.2.3",
99
99
  "eslint": "9.38.0",