@elastic/synthetics 1.0.0-beta.2 → 1.0.0-beta.22

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 (122) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/NOTICE.txt +250 -0
  3. package/README.md +2 -1
  4. package/dist/cli.js +87 -56
  5. package/dist/cli.js.map +1 -1
  6. package/dist/common_types.d.ts +116 -14
  7. package/dist/common_types.d.ts.map +1 -1
  8. package/dist/config.d.ts +2 -5
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +5 -5
  11. package/dist/config.js.map +1 -1
  12. package/dist/core/browser-service.js +5 -5
  13. package/dist/core/browser-service.js.map +1 -1
  14. package/dist/core/expect.d.ts +177 -0
  15. package/dist/core/expect.d.ts.map +1 -0
  16. package/dist/core/expect.js +33 -0
  17. package/dist/core/expect.js.map +1 -0
  18. package/dist/core/gatherer.d.ts +4 -7
  19. package/dist/core/gatherer.d.ts.map +1 -1
  20. package/dist/core/gatherer.js +39 -12
  21. package/dist/core/gatherer.js.map +1 -1
  22. package/dist/core/index.d.ts +5 -5
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +2 -2
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/logger.d.ts +0 -1
  27. package/dist/core/logger.d.ts.map +1 -1
  28. package/dist/core/logger.js +3 -16
  29. package/dist/core/logger.js.map +1 -1
  30. package/dist/core/runner.d.ts +54 -45
  31. package/dist/core/runner.d.ts.map +1 -1
  32. package/dist/core/runner.js +181 -71
  33. package/dist/core/runner.js.map +1 -1
  34. package/dist/dsl/journey.d.ts +13 -4
  35. package/dist/dsl/journey.d.ts.map +1 -1
  36. package/dist/dsl/journey.js +40 -1
  37. package/dist/dsl/journey.js.map +1 -1
  38. package/dist/formatter/javascript.d.ts +73 -0
  39. package/dist/formatter/javascript.d.ts.map +1 -0
  40. package/dist/formatter/javascript.js +274 -0
  41. package/dist/formatter/javascript.js.map +1 -0
  42. package/dist/helpers.d.ts +33 -12
  43. package/dist/helpers.d.ts.map +1 -1
  44. package/dist/helpers.js +108 -54
  45. package/dist/helpers.js.map +1 -1
  46. package/dist/index.d.ts +8 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +6 -7
  49. package/dist/index.js.map +1 -1
  50. package/dist/parse_args.d.ts +5 -2
  51. package/dist/parse_args.d.ts.map +1 -1
  52. package/dist/parse_args.js +59 -16
  53. package/dist/parse_args.js.map +1 -1
  54. package/dist/plugins/browser-console.d.ts +5 -8
  55. package/dist/plugins/browser-console.d.ts.map +1 -1
  56. package/dist/plugins/browser-console.js +27 -8
  57. package/dist/plugins/browser-console.js.map +1 -1
  58. package/dist/plugins/network.d.ts +23 -20
  59. package/dist/plugins/network.d.ts.map +1 -1
  60. package/dist/plugins/network.js +149 -124
  61. package/dist/plugins/network.js.map +1 -1
  62. package/dist/plugins/performance.d.ts +5 -5
  63. package/dist/plugins/performance.d.ts.map +1 -1
  64. package/dist/plugins/performance.js +5 -5
  65. package/dist/plugins/performance.js.map +1 -1
  66. package/dist/plugins/plugin-manager.d.ts +11 -11
  67. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  68. package/dist/plugins/plugin-manager.js +40 -24
  69. package/dist/plugins/plugin-manager.js.map +1 -1
  70. package/dist/plugins/tracing.d.ts +10 -25
  71. package/dist/plugins/tracing.d.ts.map +1 -1
  72. package/dist/plugins/tracing.js +40 -26
  73. package/dist/plugins/tracing.js.map +1 -1
  74. package/dist/reporters/base.d.ts +0 -1
  75. package/dist/reporters/base.d.ts.map +1 -1
  76. package/dist/reporters/base.js +34 -32
  77. package/dist/reporters/base.js.map +1 -1
  78. package/dist/reporters/json.d.ts +46 -59
  79. package/dist/reporters/json.d.ts.map +1 -1
  80. package/dist/reporters/json.js +188 -70
  81. package/dist/reporters/json.js.map +1 -1
  82. package/dist/reporters/junit.d.ts.map +1 -1
  83. package/dist/reporters/junit.js +7 -7
  84. package/dist/reporters/junit.js.map +1 -1
  85. package/dist/sdk/lh-trace-processor.d.ts +304 -0
  86. package/dist/sdk/lh-trace-processor.d.ts.map +1 -0
  87. package/dist/sdk/lh-trace-processor.js +832 -0
  88. package/dist/sdk/lh-trace-processor.js.map +1 -0
  89. package/dist/sdk/trace-metrics.d.ts +61 -0
  90. package/dist/sdk/trace-metrics.d.ts.map +1 -0
  91. package/dist/sdk/trace-metrics.js +252 -0
  92. package/dist/sdk/trace-metrics.js.map +1 -0
  93. package/dist/sdk/trace-processor.d.ts +106 -0
  94. package/dist/sdk/trace-processor.d.ts.map +1 -0
  95. package/dist/sdk/trace-processor.js +74 -0
  96. package/dist/sdk/trace-processor.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -1575
  98. package/package.json +27 -16
  99. package/src/cli.ts +68 -45
  100. package/src/common_types.ts +138 -14
  101. package/src/config.ts +2 -5
  102. package/src/core/expect.ts +187 -0
  103. package/src/core/gatherer.ts +48 -24
  104. package/src/core/index.ts +6 -6
  105. package/src/core/logger.ts +1 -12
  106. package/src/core/runner.ts +259 -112
  107. package/src/dsl/journey.ts +28 -6
  108. package/src/formatter/javascript.ts +330 -0
  109. package/src/helpers.ts +114 -24
  110. package/src/index.ts +7 -6
  111. package/src/parse_args.ts +97 -22
  112. package/src/plugins/browser-console.ts +30 -13
  113. package/src/plugins/network.ts +175 -159
  114. package/src/plugins/performance.ts +7 -7
  115. package/src/plugins/plugin-manager.ts +47 -36
  116. package/src/plugins/tracing.ts +43 -54
  117. package/src/reporters/base.ts +29 -23
  118. package/src/reporters/json.ts +259 -80
  119. package/src/reporters/junit.ts +1 -1
  120. package/src/sdk/lh-trace-processor.ts +1033 -0
  121. package/src/sdk/trace-metrics.ts +287 -0
  122. package/src/sdk/trace-processor.ts +147 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lh-trace-processor.js","sourceRoot":"","sources":["../../src/sdk/lh-trace-processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,CAAC;;AAEb;;;;;;;;;GASG;AAEH,kIAAkI;AAClI,0HAA0H;AAC1H,yKAAyK;AACzK,+LAA+L;AAC/L,iKAAiK;AAEjK,2CAAqC;AAErC,MAAM,+BAA+B,GAAG,mBAAmB,CAAC;AAE5D,4EAA4E;AAC5E,+BAA+B;AAC/B,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,oEAAoE;AACpE,MAAM,yBAAyB,GAAG,SAAS,CAAC;AAC5C,2HAA2H;AAC3H,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AACpE,sEAAsE;AACtE,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AACnE,kBAAkB;AAClB,MAAM,2BAA2B,GAC/B,4CAA4C,CAAC;AAE/C,MAAM,cAAc;IAClB,MAAM,KAAK,kBAAkB;QAC3B,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gCAAgC;QACrC,OAAO,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,2BAA2B;QAChC,OAAO,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iCAAiC;QACtC,OAAO,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,6BAA6B;QAClC,OAAO,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,4BAA4B,CAAC,KAAK;QACvC,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;gBACf,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAClC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,wBAAwB,CAC7B,cAAc,EACd,sBAAsB,EACtB,0BAA0B,EAC1B,WAAW;QAEX;;;;;;;;;;YAUI;QACJ,wBAAwB;QACxB,MAAM,yBAAyB,GAAG,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACjE,wBAAwB;QACxB,MAAM,oBAAoB,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,4BAA4B;QAC5B,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,4BAA4B;QAC5B,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG,EAAE,CAAC;QAE7B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE;YACpC,4EAA4E;YAC5E,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG;gBAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAChD,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG;gBAC3C,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;gBAC7B,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACzC;QAED,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;YAClC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,EAAE,KAAK,GAAG,EAAE;gBACpB,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;aACzC;iBAAM;gBACL,6GAA6G;gBAC7G,IAAI,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;gBACvC,iGAAiG;gBACjG,IAAI,kCAAkC,GAAG,CAAC,CAAC;gBAC3C,MAAM,UAAU,GAAG,0BAA0B,GAAG,cAAc,CAAC,MAAM,CAAC;gBACtE,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,sBAAsB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC/D,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;oBACvD,MAAM,YAAY,GAChB,sBAAsB,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;wBAC1C,sBAAsB,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG;wBACxC,sBAAsB,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;oBAE3C,yCAAyC;oBACzC,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAE5B,IACE,sBAAsB,CAAC,EAAE,KAAK,GAAG;wBACjC,kCAAkC,KAAK,CAAC,EACxC;wBACA,oFAAoF;wBACpF,QAAQ,GAAG,sBAAsB,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;wBAChD,MAAM;qBACP;yBAAM,IAAI,sBAAsB,CAAC,EAAE,KAAK,GAAG,EAAE;wBAC5C,+EAA+E;wBAC/E,kCAAkC,EAAE,CAAC;qBACtC;yBAAM,IAAI,sBAAsB,CAAC,EAAE,KAAK,GAAG,EAAE;wBAC5C,8DAA8D;wBAC9D,kCAAkC,EAAE,CAAC;qBACtC;iBACF;gBAED,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;aACxC;SACF;QAED,cAAc,CAAC,IAAI,CACjB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CACjB,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAClC,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,GAAG,MAAM,CAC5D,CAAC;QAEF,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QAE5D,OAAO,CAAC,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE,GAAG,iBAAiB,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,MAAM;QAC1C,sDAAsD;QACtD,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAChE,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACxB;SACF;QAED,qCAAqC;QACrC,OAAO,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CACpE,CAAC;QAEF,sFAAsF;QACtF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE;oBAAE,MAAM;gBAC7C,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACxB;YAED,4EAA4E;YAC5E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAE1C,wEAAwE;YACxE,MAAM,eAAe,GAAG,cAAc,CAAC,wBAAwB,CAC7D,cAAc,EACd,OAAO,EACP,CAAC,EACD,WAAW,CACZ,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC;YAC9D,uFAAuF;YACvF,kCAAkC;YAClC,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;SAChC;QAED,sEAAsE;QACtE,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM;QACnC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,SAAS,EACT,WAAW,EACX,aAAa,GAAG,CAAC;QAEjB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1B;QACD,QAAQ,IAAI,aAAa,CAAC;QAE1B,yCAAyC;QACzC,IAAI,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;QACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,GAAG,aAAa,CAAC;QAC5B,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;QACvB,IAAI,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1C,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,mFAAmF;YACnF,cAAc,EAAE,CAAC;SAClB;QAED,0CAA0C;QAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,0EAA0E;YAC1E,yBAAyB;YACzB,MAAM,cAAc,GAAG,UAAU,GAAG,SAAS,CAAC;YAC9C,OAAO,OAAO,GAAG,cAAc,IAAI,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvE,aAAa,IAAI,QAAQ,CAAC;gBAC1B,cAAc,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExC,IAAI,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;oBACrE,QAAQ,GAAG,CAAC,aAAa,CAAC;oBAC1B,aAAa,GAAG,CAAC,CAAC;iBACnB;qBAAM;oBACL,aAAa,EAAE,CAAC;oBAChB,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;iBACrC;gBAED,iFAAiF;gBACjF,OAAO,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC;aAC/D;YAED,oFAAoF;YACpF,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU;gBACV,IAAI,EACF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,cAAc,GAAG,aAAa,CAAC,GAAG,cAAc,CAAC;oBAC9D,qBAAqB;aACxB,CAAC,CAAC;SACJ;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,uBAAuB,CAC5B,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,IAAI,CAAC,mCAAmC,CAClD,MAAM,EACN,SAAS,EACT,OAAO,CACR,CAAC;QACF,OAAO,IAAI,CAAC,gBAAgB,CAC1B,GAAG,CAAC,SAAS,EACb,SAAS,EACT,WAAW,EACX,GAAG,CAAC,aAAa,CAClB,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,mCAAmC,CACxC,cAAc,EACd,SAAS,GAAG,CAAC,EACb,OAAO,GAAG,QAAQ;QAElB,qDAAqD;QACrD,4BAA4B;QAC5B,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE;YAClC,IAAI,KAAK,CAAC,GAAG,GAAG,SAAS,IAAI,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE;gBAClD,SAAS;aACV;YAED,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAC7B,IAAI,UAAU,GAAG,SAAS,EAAE;gBAC1B,mDAAmD;gBACnD,UAAU,GAAG,SAAS,CAAC;gBACvB,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC;aAClC;YAED,IAAI,KAAK,CAAC,GAAG,GAAG,OAAO,EAAE;gBACvB,mEAAmE;gBACnE,aAAa,GAAG,QAAQ,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC;aACnD;YAED,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEhC,OAAO;YACL,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,2BAA2B,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,EAAE,OAAO,GAAG,QAAQ;QACzE,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,0DAA0D;QAC1D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,gBAAgB,EAAE;YAC1C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBAAE,SAAS;YAE5D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACzD,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;YACnE,IAAI,KAAK,GAAG,OAAO,IAAI,GAAG,GAAG,SAAS;gBAAE,SAAS;YAEjD,cAAc,CAAC,IAAI,CAAC;gBAClB,KAAK;gBACL,GAAG;gBACH,QAAQ,EAAE,KAAK,CAAC,GAAG,GAAG,IAAI;aAC3B,CAAC,CAAC;SACJ;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM;QAC5B,qEAAqE;QACrE,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,yBAAyB,CAC1C,CAAC;QACF,IACE,mBAAmB;YACnB,mBAAmB,CAAC,IAAI,CAAC,IAAI;YAC7B,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EACpC;YACA,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CACzD,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CACvB,CAAC;YACF,MAAM,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;YAC7C,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC;YAE7C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,CACF,CAAC,CAAC,GAAG,KAAK,GAAG;gBACb,CAAC,CAAC,EAAE,KAAK,GAAG;gBACZ,CAAC,CAAC,GAAG,KAAK,YAAY;gBACtB,CAAC,CAAC,IAAI,KAAK,aAAa;gBACxB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CACnC,CAAC;YACF,MAAM,GAAG,GAAG,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC;YAE/C,IAAI,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE;gBACzB,OAAO;oBACL,GAAG;oBACH,GAAG;oBACH,OAAO;iBACR,CAAC;aACH;SACF;QAED,kFAAkF;QAClF,4FAA4F;QAC5F,qFAAqF;QACrF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CACvC,CAAC;QACF,IACE,gBAAgB;YAChB,gBAAgB,CAAC,IAAI;YACrB,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAC1B;YACA,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAChD,IAAI,OAAO,EAAE;gBACX,OAAO;oBACL,GAAG,EAAE,gBAAgB,CAAC,GAAG;oBACzB,GAAG,EAAE,gBAAgB,CAAC,GAAG;oBACzB,OAAO;iBACR,CAAC;aACH;SACF;QAED,4GAA4G;QAC5G,+FAA+F;QAC/F,8FAA8F;QAC9F,wFAAwF;QACxF,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAClC,OAAO,CACL,CAAC,CAAC,IAAI,KAAK,iBAAiB;YAC1B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAChC,CACF,CAAC;QACF,gFAAgF;QAChF,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CACtC,CAAC;QACF,+EAA+E;QAC/E,IACE,WAAW;YACX,WAAW,CAAC,IAAI;YAChB,WAAW,CAAC,IAAI,CAAC,IAAI;YACrB,oBAAoB;YACpB,oBAAoB,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG;YAC5C,oBAAoB,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,EAC5C;YACA,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,IAAI,OAAO,EAAE;gBACX,OAAO;oBACL,GAAG,EAAE,WAAW,CAAC,GAAG;oBACpB,GAAG,EAAE,WAAW,CAAC,GAAG;oBACpB,OAAO;iBACR,CAAC;aACH;SACF;QAED,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,GAAG;QAC3B,OAAO,CACL,GAAG,CAAC,IAAI,KAAK,yBAAyB;YACtC,GAAG,CAAC,IAAI,KAAK,2BAA2B;YACxC,GAAG,CAAC,IAAI,KAAK,2BAA2B;YACxC,GAAG,CAAC,IAAI,KAAK,2BAA2B,CACzC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG;QACnB,IACE,GAAG,CAAC,IAAI,KAAK,oCAAoC;YACjD,GAAG,CAAC,IAAI,KAAK,mCAAmC;YAEhD,OAAO,KAAK,CAAC;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,GAAG;QAC5B,OAAO,OAAO,CACZ,GAAG,CAAC,IAAI,KAAK,mCAAmC;YAC9C,GAAG,CAAC,IAAI;YACR,GAAG,CAAC,IAAI,CAAC,KAAK;YACd,GAAG,CAAC,IAAI,CAAC,IAAI;YACb,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CACnC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,eAAe;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3D,oCAAoC;QACpC,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;YACzB,IAAI,CAAC,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE;gBAAE,MAAM;YAEtC,+CAA+C;YAC/C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3B,IAAI,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;YAE/C,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACrC;QAED,4CAA4C;QAC5C,IAAI,kBAAkB,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC7C,IACE,CAAC,kBAAkB;gBACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EACtD;gBACA,kBAAkB,GAAG,GAAG,CAAC;aAC1B;SACF;QAED,OAAO;YACL,GAAG,EAAE,kBAAkB;YACvB,qFAAqF;YACrF,WAAW,EAAE,OAAO,CAAC,CAAC,kBAAkB,IAAI,qBAAqB,CAAC,IAAI,CAAC;SACxE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM;QAC7B,kCAAkC;QAClC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,SAAS;YAC5B,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;SAC1C;QAED,kCAAkC;QAClC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,IAAI,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC5B,GAAG,GAAG,qBAAqB,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACnD;YACD,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SACzC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO;QAChC,MAAM,EAAE,6BAA6B,GAAG,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;QAEjE,4EAA4E;QAC5E,oDAAoD;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;YAC9D,OAAO,CACL,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACnC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACnC,CAAC,CAAC,GAAG,KAAK,YAAY,CACvB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,SAAS;aACrB,MAAM;QACL,2CAA2C,CAAC,GAAG,CAAC,EAAE;YAChD,OAAO,OAAO,CACZ,GAAG,CAAC,IAAI,KAAK,yBAAyB;gBACpC,GAAG,CAAC,IAAI,CAAC,IAAI;gBACb,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpB,CAAC;QACJ,CAAC,CACF;aACA,GAAG,CAAC,GAAG,CAAC,EAAE;YACT,OAAO;gBACL,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;gBACvB,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBACtB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM;aAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAE5D,uEAAuE;QACvE,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,YAAY,CAAC,OAAO,CAC3C,CAAC;QAEF,2EAA2E;QAC3E,+FAA+F;QAC/F,qGAAqG;QACrG,0FAA0F;QAC1F,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;YAClD,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrC,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,KAAK;oBACZ,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,YAAY,CAAC,OAAO,CAChE,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAA,YAAG,EACD,2FAA2F,CAC5F,CAAC;YACF,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;YACrE,eAAe,GAAG,WAAW,CAAC;SAC/B;QAED,2DAA2D;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAC1C,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,EACxC,6BAA6B,CAC9B,CAAC;QAEF,mFAAmF;QACnF,oDAAoD;QACpD,MAAM,aAAa,GAAG,cAAc,CAAC,iBAAiB,CACpD,KAAK,CAAC,WAAW,EACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAChC,CAAC;QAEF,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAChC,CAAC;QAEF,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAExE,gGAAgG;QAChG,+BAA+B;QAC/B,OAAO;YACL,MAAM;YACN,gBAAgB;YAChB,WAAW;YACX,eAAe;YACf,aAAa;YACb,YAAY;YACZ,aAAa;YACb,OAAO,EAAE;gBACP,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,QAAQ,CAAC,MAAM;aAC1B;YACD,UAAU,EAAE;gBACV,UAAU,EAAE,aAAa,CAAC,EAAE;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,SAAS;aAC7B;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,cAAc;QACrC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,GACxE,cAAc,CAAC;QAEjB,oDAAoD;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,gCAAgC,CAAC,WAAW,EAAE;YACtE,aAAa;SACd,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAClE,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;SAChD;QAED,8BAA8B;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,wBAAwB,CACnD,eAAe,EACf,aAAa,CACd,CAAC,GAAG,CAAC;QAEN,yBAAyB;QACzB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACvD,0BAA0B;QAC1B,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5E,OAAO;YACL,OAAO,EAAE;gBACP,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,UAAU;gBAC3C,oBAAoB,EAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB;gBAC/D,6BAA6B,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5D,oBAAoB,EAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB;gBAC/D,sBAAsB,EAAE,YAAY,CAAC,OAAO,CAAC,sBAAsB;gBACnE,+BAA+B,EAAE,cAAc,CAC7C,eAAe,IAAI,eAAe,CAAC,EAAE,CACtC;gBACD,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI;gBAC/B,gBAAgB,EAAE,YAAY,CAAC,OAAO,CAAC,gBAAgB;gBACvD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B;YACD,UAAU,EAAE;gBACV,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,UAAU;gBAC9C,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC,oBAAoB;gBAClE,6BAA6B,EAAE,eAAe,CAAC,EAAE;gBACjD,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC,oBAAoB;gBAClE,sBAAsB,EAAE,YAAY,CAAC,UAAU,CAAC,sBAAsB;gBACtE,+BAA+B,EAAE,eAAe,IAAI,eAAe,CAAC,EAAE;gBACtE,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI;gBAClC,gBAAgB,EAAE,YAAY,CAAC,UAAU,CAAC,gBAAgB;gBAC1D,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B;YACD,aAAa,EAAE,YAAY,CAAC,aAAa;YACzC,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;YAC7D,gCAAgC,EAAE,eAAe;YACjD,uBAAuB,EAAE,YAAY,CAAC,uBAAuB;YAC7D,yBAAyB,EAAE,YAAY,CAAC,yBAAyB;YACjE,kCAAkC,EAAE,eAAe;YACnD,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,mBAAmB,EAAE,YAAY,CAAC,mBAAmB;YACrD,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,cAAc,EAAE,YAAY,CAAC,cAAc;SAC5C,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa;QAC1C,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACtD;QAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,GAAG,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,MAAM;QAChD,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,iEAAiE;YACjE,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;YAClD,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAG,EAAE,CAAC;QACrE,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC5B,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,CAAC;YAChD,OAAO,WAAW,CAAC,IAAI,CACrB,GAAG,CAAC,EAAE,CACJ,GAAG,CAAC,IAAI,KAAK,YAAY;gBACzB,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,cAAc,CAAC,kBAAkB,CACzD,CAAC;QACJ,CAAC,CAAC;QAEF,QAAQ,MAAM,EAAE;YACd,KAAK,0BAA0B,CAAC,CAAC;gBAC/B,uFAAuF;gBACvF,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB;wBAAE,OAAO,KAAK,CAAC;oBACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;oBACnC,OAAO,IAAI,CAAC,KAAK,KAAK,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC;gBAC/D,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,CAAC,gCAAgC,EAAE,CAAC;gBAC/D,OAAO,UAAU,CAAC;aACnB;YACD,KAAK,qBAAqB,CAAC,CAAC;gBAC1B,MAAM,eAAe,GAAG,mBAAmB,EAAE,CAAC;gBAC9C,IAAI,CAAC,eAAe;oBAAE,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACzD,OAAO,eAAe,CAAC;aACxB;YACD,KAAK,kBAAkB,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;gBAClC,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACxD,OAAO,MAAM,CAAC;aACf;YACD,KAAK,MAAM,CAAC,CAAC;gBACX,MAAM,MAAM,GAAG,gBAAgB,EAAE,IAAI,mBAAmB,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM;oBAAE,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAChD,OAAO,MAAM,CAAC;aACf;SACF;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gCAAgC,CAAC,WAAW,EAAE,OAAO;QAC1D,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QAElC,qCAAqC;QACrC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CACxD,CAAC;QAEF,yEAAyE;QACzE,MAAM,oBAAoB,GAAG,WAAW,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAClE,CAAC;QAEF,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,IAAI,CAAC,iCAAiC,EAAE,CAAC;SAChD;QAED,kCAAkC;QAClC,IAAI,oBAAoB,GAAG,WAAW,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAClE,CAAC;QACF,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,4FAA4F;QAC5F,kEAAkE;QAClE,8EAA8E;QAC9E,yEAAyE;QACzE,IAAI,CAAC,oBAAoB,EAAE;YACzB,MAAM,OAAO,GAAG,+BAA+B,CAAC;YAChD,WAAW,GAAG,IAAI,CAAC;YACnB,IAAA,YAAG,EAAC,uDAAuD,OAAO,EAAE,CAAC,CAAC;YACtE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YACxE,IAAI,CAAC,aAAa,EAAE;gBAClB,IAAA,YAAG,EAAC,0DAA0D,CAAC,CAAC;aACjE;YACD,oBAAoB,GAAG,aAAa,CAAC;SACtC;QAED,sHAAsH;QACtH,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE5E,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAC3B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAC1D,CAAC;QACF,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,0BAA0B,IAAI,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CACtE,CAAC;QAEF,mCAAmC;QACnC,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,CAAC;QAChD,2CAA2C;QAC3C,MAAM,UAAU,GAAG;YACjB,UAAU,EAAE,aAAa,CAAC,EAAE;YAC5B,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC;YACpC,oBAAoB,EAAE,oBAAoB,CAAC,EAAE;YAC7C,oBAAoB,EAAE,YAAY,CAAC,oBAAoB,CAAC;YACxD,sBAAsB,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC;YACnD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;YACxB,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,CAAC;SACjD,CAAC;QAEF,yBAAyB;QACzB,MAAM,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACvD,0BAA0B;QAC1B,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,2CAA2C;QAC3C,MAAM,OAAO,GAAG;YACd,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC;YACjD,oBAAoB,EAAE,SAAS,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAChE,oBAAoB,EAAE,cAAc,CAAC,UAAU,CAAC,oBAAoB,CAAC;YACrE,sBAAsB,EAAE,cAAc,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACzE,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;YACrC,gBAAgB,EAAE,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC;SAC9D,CAAC;QAEF,OAAO;YACL,OAAO;YACP,UAAU;YACV,aAAa,EAAE,aAAa;YAC5B,aAAa,EAAE,UAAU;YACzB,uBAAuB,EAAE,oBAAoB;YAC7C,uBAAuB,EAAE,oBAAoB;YAC7C,yBAAyB,EAAE,SAAS,CAAC,GAAG;YACxC,OAAO,EAAE,IAAI;YACb,mBAAmB,EAAE,gBAAgB;YACrC,WAAW;YACX,cAAc,EAAE,SAAS,CAAC,WAAW;SACtC,CAAC;IACJ,CAAC;CACF;AAED,kBAAe,cAAc,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * MIT License
3
+ *
4
+ * Copyright (c) 2020-present, Elastic NV
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ * THE SOFTWARE.
23
+ *
24
+ */
25
+ import { Filmstrip, TraceOutput } from '../common_types';
26
+ import type { LHProcessedNavigation, LHProcessedTrace, TraceEvent } from './trace-processor';
27
+ export declare class UserTimings {
28
+ static compute(trace: LHProcessedTrace): TraceOutput[];
29
+ }
30
+ export declare class ExperienceMetrics {
31
+ static buildMetric(name: string, timestamp?: number): {
32
+ name: string;
33
+ type: string;
34
+ start: {
35
+ us: number;
36
+ };
37
+ };
38
+ static compute(trace: LHProcessedNavigation): {
39
+ metrics: {};
40
+ traces: TraceOutput[];
41
+ };
42
+ }
43
+ export declare class CumulativeLayoutShift {
44
+ static getLayoutShiftEvents(traceEvents: Array<TraceEvent>): any[];
45
+ /**
46
+ * Calculate cumulative layout shift per sesion window where each session
47
+ * windows lasts for 5 seconds since the last layoutShift event and has 1 second
48
+ * gap between them. Return the maximum score between all windows.
49
+ * More details - https://web.dev/evolving-cls/
50
+ */
51
+ static calculateScore(layoutShiftEvents: any): number;
52
+ static compute(trace: LHProcessedTrace): {
53
+ cls: number;
54
+ traces: TraceOutput[];
55
+ };
56
+ }
57
+ export declare class Filmstrips {
58
+ static filterExcesssiveScreenshots(events: Array<TraceEvent>): TraceEvent[];
59
+ static compute(traceEvents: Array<TraceEvent>): Array<Filmstrip>;
60
+ }
61
+ //# sourceMappingURL=trace-metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-metrics.d.ts","sourceRoot":"","sources":["../../src/sdk/trace-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,WAAW;IACtB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB;CAqDvC;AAED,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;;;IAanD,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB;;;;CAsD5C;AAED,qBAAa,qBAAqB;IAChC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC;IAiC1D;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,iBAAiB,KAAA;IAkCvC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB;;;;CAmBvC;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;IAuB5D,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;CASjE"}
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * MIT License
4
+ *
5
+ * Copyright (c) 2020-present, Elastic NV
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+ *
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.Filmstrips = exports.CumulativeLayoutShift = exports.ExperienceMetrics = exports.UserTimings = void 0;
28
+ class UserTimings {
29
+ static compute(trace) {
30
+ const { processEvents } = trace;
31
+ const measuresMap = new Map();
32
+ const userTimings = [];
33
+ for (const event of processEvents) {
34
+ const { name, ph, ts, args } = event;
35
+ if (!event.cat.includes('blink.user_timing')) {
36
+ continue;
37
+ }
38
+ // discard all browser level mark events with frame data
39
+ if (name === 'requestStart' ||
40
+ name === 'navigationStart' ||
41
+ name === 'paintNonDefaultBackgroundColor' ||
42
+ args.frame !== undefined) {
43
+ continue;
44
+ }
45
+ /**
46
+ * user timing mark events falls under `R` and i or I
47
+ * measure events starts with `b` and ends with `e`
48
+ * Doc - https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit#heading=h.puwqg050lyuy
49
+ */
50
+ const phase = ph.toLowerCase();
51
+ if (phase === 'r' || phase === 'i') {
52
+ userTimings.push({
53
+ name,
54
+ type: 'mark',
55
+ start: {
56
+ us: ts,
57
+ },
58
+ });
59
+ }
60
+ else if (phase === 'b') {
61
+ measuresMap.set(name, ts);
62
+ }
63
+ else if (phase === 'e') {
64
+ const startTime = measuresMap.get(name);
65
+ userTimings.push({
66
+ name,
67
+ type: 'measure',
68
+ start: {
69
+ us: startTime,
70
+ },
71
+ duration: {
72
+ us: ts - startTime,
73
+ },
74
+ });
75
+ }
76
+ }
77
+ return userTimings;
78
+ }
79
+ }
80
+ exports.UserTimings = UserTimings;
81
+ class ExperienceMetrics {
82
+ static buildMetric(name, timestamp) {
83
+ if (!timestamp) {
84
+ return;
85
+ }
86
+ return {
87
+ name,
88
+ type: 'mark',
89
+ start: {
90
+ us: timestamp,
91
+ },
92
+ };
93
+ }
94
+ static compute(trace) {
95
+ const traces = [];
96
+ const { timestamps, timings, lcpInvalidated } = trace;
97
+ traces.push(this.buildMetric('navigationStart', timestamps.timeOrigin));
98
+ traces.push(this.buildMetric('firstContentfulPaint', timestamps.firstContentfulPaint));
99
+ /**
100
+ * lcpInvalidated - Denotes when all of the LCP events that comes from the
101
+ * current trace are invalidated. Happens if the previous LCP candidates were
102
+ * suppressed by another event coming later during the page load
103
+ * More info - https://github.com/WICG/largest-contentful-paint/#the-last-candidate
104
+ */
105
+ !lcpInvalidated &&
106
+ traces.push(this.buildMetric('largestContentfulPaint', timestamps.largestContentfulPaint));
107
+ traces.push(this.buildMetric('domContentLoaded', timestamps.domContentLoaded));
108
+ traces.push(this.buildMetric('loadEvent', timestamps.load));
109
+ /**
110
+ * Lighthouse tracer extracts these metrics in milliseconds resolution,
111
+ * we convert them to microseconds resolution to keep them in sync with
112
+ * other timings
113
+ */
114
+ const millisToMicros = (value) => value ? value * 1000 : undefined;
115
+ const keys = [
116
+ 'firstContentfulPaint',
117
+ 'largestContentfulPaint',
118
+ 'domContentLoaded',
119
+ 'load',
120
+ ];
121
+ const values = ['fcp', 'lcp', 'dcl', 'load'];
122
+ const metrics = {};
123
+ for (let i = 0; i < keys.length; i++) {
124
+ const microSecs = millisToMicros(timings[keys[i]]);
125
+ if (microSecs) {
126
+ metrics[values[i]] = { us: microSecs };
127
+ }
128
+ }
129
+ return {
130
+ metrics,
131
+ traces: traces.filter(b => Boolean(b)),
132
+ };
133
+ }
134
+ }
135
+ exports.ExperienceMetrics = ExperienceMetrics;
136
+ class CumulativeLayoutShift {
137
+ static getLayoutShiftEvents(traceEvents) {
138
+ var _a, _b;
139
+ const layoutShiftEvents = [];
140
+ // Chromium will set `had_recent_input` if there was recent user input, which
141
+ // skips shift events from contributing to CLS. This results in the first few shift
142
+ // events having `had_recent_input` set to true, so ignore it for those events.
143
+ // See https://crbug.com/1094974
144
+ let ignoreHadRecentInput = true;
145
+ for (const event of traceEvents) {
146
+ // weighted_score_delta was added in chrome 90 - https://crbug.com/1173139
147
+ if (event.name !== 'LayoutShift' ||
148
+ !((_a = event.args) === null || _a === void 0 ? void 0 : _a.data.is_main_frame) ||
149
+ !((_b = event.args) === null || _b === void 0 ? void 0 : _b.data.weighted_score_delta)) {
150
+ continue;
151
+ }
152
+ if (event.args.data.had_recent_input) {
153
+ if (!ignoreHadRecentInput)
154
+ continue;
155
+ }
156
+ else {
157
+ ignoreHadRecentInput = false;
158
+ }
159
+ layoutShiftEvents.push({
160
+ ts: event.ts,
161
+ weightedScore: event.args.data.weighted_score_delta,
162
+ });
163
+ }
164
+ return layoutShiftEvents;
165
+ }
166
+ /**
167
+ * Calculate cumulative layout shift per sesion window where each session
168
+ * windows lasts for 5 seconds since the last layoutShift event and has 1 second
169
+ * gap between them. Return the maximum score between all windows.
170
+ * More details - https://web.dev/evolving-cls/
171
+ */
172
+ static calculateScore(layoutShiftEvents) {
173
+ const gapMicroseconds = 1000000; // 1 seconds gap
174
+ const limitMicroseconds = 5000000; // 5 seconds window
175
+ let maxScore = 0;
176
+ let currentScore = 0;
177
+ let firstTimestamp = Number.NEGATIVE_INFINITY;
178
+ let prevTimestamp = Number.NEGATIVE_INFINITY;
179
+ for (const event of layoutShiftEvents) {
180
+ const currTimestamp = event.ts;
181
+ /**
182
+ * Two cases
183
+ * - When the next layout shift event happened after the session window of
184
+ * 5 seconds.
185
+ * - When the next and previous layout shift event has a gap of 1 second
186
+ *
187
+ * Then consider the layout shift event as the start of
188
+ * the current session window and reset the cumulative score.
189
+ */
190
+ if (currTimestamp - firstTimestamp > limitMicroseconds ||
191
+ currTimestamp - prevTimestamp > gapMicroseconds) {
192
+ firstTimestamp = currTimestamp;
193
+ currentScore = 0;
194
+ }
195
+ prevTimestamp = currTimestamp;
196
+ currentScore += event.weightedScore;
197
+ maxScore = Math.max(maxScore, currentScore);
198
+ }
199
+ return maxScore;
200
+ }
201
+ static compute(trace) {
202
+ const layoutShiftEvents = this.getLayoutShiftEvents(trace.frameTreeEvents);
203
+ const traces = layoutShiftEvents.map(event => {
204
+ return {
205
+ name: 'layoutShift',
206
+ type: 'mark',
207
+ start: {
208
+ us: event.ts,
209
+ },
210
+ score: event.weightedScore,
211
+ };
212
+ });
213
+ const cumulativeLayoutShiftScore = this.calculateScore(layoutShiftEvents);
214
+ return {
215
+ cls: cumulativeLayoutShiftScore,
216
+ traces,
217
+ };
218
+ }
219
+ }
220
+ exports.CumulativeLayoutShift = CumulativeLayoutShift;
221
+ class Filmstrips {
222
+ static filterExcesssiveScreenshots(events) {
223
+ const screenshotEvents = events.filter(evt => { var _a; return evt.name === 'Screenshot' && ((_a = evt.args) === null || _a === void 0 ? void 0 : _a.snapshot); });
224
+ const screenshotTimestamps = screenshotEvents.map(event => event.ts);
225
+ let lastScreenshotTs = -Infinity;
226
+ return screenshotEvents.filter(evt => {
227
+ const timeSinceLastScreenshot = evt.ts - lastScreenshotTs;
228
+ const nextScreenshotTs = screenshotTimestamps.find(ts => ts > evt.ts);
229
+ const timeUntilNextScreenshot = nextScreenshotTs
230
+ ? nextScreenshotTs - evt.ts
231
+ : Infinity;
232
+ const threshold = 500 * 1000; // Throttle to ~2fps
233
+ // Keep the frame if it's been more than 500ms since the last frame we kept or the next frame won't happen for at least 500ms
234
+ const shouldKeep = timeUntilNextScreenshot > threshold ||
235
+ timeSinceLastScreenshot > threshold;
236
+ if (shouldKeep)
237
+ lastScreenshotTs = evt.ts;
238
+ return shouldKeep;
239
+ });
240
+ }
241
+ static compute(traceEvents) {
242
+ return Filmstrips.filterExcesssiveScreenshots(traceEvents).map(event => ({
243
+ blob: event.args.snapshot,
244
+ mime: 'image/jpeg',
245
+ start: {
246
+ us: event.ts,
247
+ },
248
+ }));
249
+ }
250
+ }
251
+ exports.Filmstrips = Filmstrips;
252
+ //# sourceMappingURL=trace-metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-metrics.js","sourceRoot":"","sources":["../../src/sdk/trace-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * MIT License
3
+ *
4
+ * Copyright (c) 2020-present, Elastic NV
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ * THE SOFTWARE.
23
+ *
24
+ */
25
+ import LighthouseTraceProcessor from './lh-trace-processor';
26
+ import { PerfMetrics } from '../common_types';
27
+ /**
28
+ * Trace Event Format
29
+ * https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU
30
+ */
31
+ export declare type TraceEvent = {
32
+ name: string;
33
+ cat: string;
34
+ pid: number;
35
+ tid: number;
36
+ ph?: string;
37
+ args?: {
38
+ snapshot?: string;
39
+ frame: string;
40
+ data: {
41
+ had_recent_input: boolean;
42
+ is_main_frame: boolean;
43
+ cumulative_score: number;
44
+ score: number;
45
+ weighted_score_delta: number;
46
+ } & Record<string, unknown>;
47
+ };
48
+ /**
49
+ * Platform specific monotonic non decreasing clock time
50
+ * https://source.chromium.org/chromium/chromium/src/+/master:base/time/time.h;l=936;bpv=0;bpt=0
51
+ *
52
+ * The tracing clock timestamp of the event. The timestamps are provided at microsecond granularity.
53
+ */
54
+ ts: number;
55
+ };
56
+ /**
57
+ * Exported data from Lighthouse trace processor
58
+ */
59
+ declare type LHTraceTime = {
60
+ timeOrigin: number;
61
+ firstPaint: number;
62
+ firstContentfulPaint: number;
63
+ largestContentfulPaint: number;
64
+ largestContentfulPaintAllFrames: number;
65
+ domContentLoaded: number;
66
+ load: number;
67
+ traceEnd: number;
68
+ };
69
+ export declare type LHProcessedNavigation = {
70
+ domContentLoadedEvt: TraceEvent;
71
+ firstContentfulPaintEvt: TraceEvent;
72
+ largestContentfulPaintEvt: TraceEvent;
73
+ loadEvt: TraceEvent;
74
+ timestamps: LHTraceTime;
75
+ timings: LHTraceTime;
76
+ lcpInvalidated: boolean;
77
+ };
78
+ export declare type LHProcessedTrace = {
79
+ processEvents: Array<TraceEvent>;
80
+ frameEvents: Array<TraceEvent>;
81
+ mainThreadEvents: Array<TraceEvent>;
82
+ frameTreeEvents: Array<TraceEvent>;
83
+ timeOriginEvt: TraceEvent;
84
+ timestamps: Partial<LHTraceTime>;
85
+ timings: Partial<LHTraceTime>;
86
+ };
87
+ /**
88
+ * Extends the lighthouse trace processor which extracts all the meaningful trace
89
+ * events in chronological order from the tab's process
90
+ *
91
+ * We extend Lighthouse Processor instead of calling it directy as we want to control
92
+ * what is the interest event for Navigation start and also in future we want to measure
93
+ * metrics based on multiple navigations instead of a single navigation.
94
+ */
95
+ export declare class TraceProcessor extends LighthouseTraceProcessor {
96
+ static _isNavigationStartOfInterest(event: any): boolean;
97
+ static computeTrace(traceEvents: Array<TraceEvent>): {
98
+ traces: import("../common_types").TraceOutput[];
99
+ metrics: Partial<PerfMetrics>;
100
+ } | {
101
+ traces?: undefined;
102
+ metrics?: undefined;
103
+ };
104
+ }
105
+ export {};
106
+ //# sourceMappingURL=trace-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-processor.d.ts","sourceRoot":"","sources":["../../src/sdk/trace-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,wBAAwB,MAAM,sBAAsB,CAAC;AAM5D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C;;;GAGG;AACH,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IAEb,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,GAAG,EAAE,MAAM,CAAC;IAEZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,gBAAgB,EAAE,OAAO,CAAC;YAC1B,aAAa,EAAE,OAAO,CAAC;YACvB,gBAAgB,EAAE,MAAM,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC;YACd,oBAAoB,EAAE,MAAM,CAAC;SAC9B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7B,CAAC;IACF;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,aAAK,WAAW,GAAG;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,+BAA+B,EAAE,MAAM,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,mBAAmB,EAAE,UAAU,CAAC;IAChC,uBAAuB,EAAE,UAAU,CAAC;IACpC,yBAAyB,EAAE,UAAU,CAAC;IACtC,OAAO,EAAE,UAAU,CAAC;IACpB,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,aAAa,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACjC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,gBAAgB,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACnC,aAAa,EAAE,UAAU,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,cAAe,SAAQ,wBAAwB;WAC1C,4BAA4B,CAAC,KAAK,KAAA;IASlD,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC;;;;;;;CAwBnD"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ /**
3
+ * MIT License
4
+ *
5
+ * Copyright (c) 2020-present, Elastic NV
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+ *
25
+ */
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.TraceProcessor = void 0;
31
+ const lh_trace_processor_1 = __importDefault(require("./lh-trace-processor"));
32
+ const trace_metrics_1 = require("./trace-metrics");
33
+ const logger_1 = require("../core/logger");
34
+ const ACCEPTABLE_NAVIGATION_URL_REGEX = /^(file|https?):/;
35
+ /**
36
+ * Extends the lighthouse trace processor which extracts all the meaningful trace
37
+ * events in chronological order from the tab's process
38
+ *
39
+ * We extend Lighthouse Processor instead of calling it directy as we want to control
40
+ * what is the interest event for Navigation start and also in future we want to measure
41
+ * metrics based on multiple navigations instead of a single navigation.
42
+ */
43
+ class TraceProcessor extends lh_trace_processor_1.default {
44
+ static _isNavigationStartOfInterest(event) {
45
+ return (event.name === 'navigationStart' &&
46
+ (!event.args.data ||
47
+ !event.args.data.documentLoaderURL ||
48
+ ACCEPTABLE_NAVIGATION_URL_REGEX.test(event.args.data.documentLoaderURL)));
49
+ }
50
+ static computeTrace(traceEvents) {
51
+ // Origin of the trace is based on the last navigation event
52
+ const options = {
53
+ timeOriginDeterminationMethod: 'lastNavigationStart',
54
+ };
55
+ try {
56
+ const processedTrace = this.processTrace({ traceEvents }, options);
57
+ const processedNavigation = this.processNavigation(processedTrace);
58
+ const userTiming = trace_metrics_1.UserTimings.compute(processedTrace);
59
+ const { traces: expTraces, metrics } = trace_metrics_1.ExperienceMetrics.compute(processedNavigation);
60
+ const { cls, traces: layoutTraces } = trace_metrics_1.CumulativeLayoutShift.compute(processedTrace);
61
+ const perfMetrics = { cls, ...metrics };
62
+ return {
63
+ traces: userTiming.concat(expTraces, layoutTraces),
64
+ metrics: perfMetrics,
65
+ };
66
+ }
67
+ catch (e) {
68
+ (0, logger_1.log)(e);
69
+ return {};
70
+ }
71
+ }
72
+ }
73
+ exports.TraceProcessor = TraceProcessor;
74
+ //# sourceMappingURL=trace-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-processor.js","sourceRoot":"","sources":["../../src/sdk/trace-processor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;AAEH,8EAA4D;AAC5D,mDAIyB;AAEzB,2CAAqC;AAErC,MAAM,+BAA+B,GAAG,iBAAiB,CAAC;AAsE1D;;;;;;;GAOG;AACH,MAAa,cAAe,SAAQ,4BAAwB;IAC1D,MAAM,CAAU,4BAA4B,CAAC,KAAK;QAChD,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;gBACf,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAClC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,WAA8B;QAChD,4DAA4D;QAC5D,MAAM,OAAO,GAAG;YACd,6BAA6B,EAAE,qBAAqB;SACrD,CAAC;QACF,IAAI;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YACnE,MAAM,UAAU,GAAG,2BAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACvD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAClC,iCAAiB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACjD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,GACjC,qCAAqB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,WAAW,GAAyB,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAE9D,OAAO;gBACL,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;gBAClD,OAAO,EAAE,WAAW;aACrB,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,YAAG,EAAC,CAAC,CAAC,CAAC;YACP,OAAO,EAAE,CAAC;SACX;IACH,CAAC;CACF;AAlCD,wCAkCC"}