@atlaskit/editor-common 128.3.2 → 128.4.0

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 (71) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/block-node-badges/package.json +10 -0
  3. package/dist/cjs/analytics/types/enums.js +0 -12
  4. package/dist/cjs/block-node-badges.js +98 -0
  5. package/dist/cjs/extensibility/Extension/Extension/index.js +20 -2
  6. package/dist/cjs/extensibility/Extension/ExtensionCommentBadge.js +110 -0
  7. package/dist/cjs/media-single/MediaBadges.js +12 -85
  8. package/dist/cjs/monitoring/error.js +1 -1
  9. package/dist/cjs/react-node-view/getInlineNodeViewProducer.js +0 -13
  10. package/dist/cjs/react-node-view/index.js +0 -14
  11. package/dist/cjs/ui/DropList/index.js +1 -1
  12. package/dist/cjs/utils/index.js +0 -47
  13. package/dist/es2019/analytics/types/enums.js +0 -12
  14. package/dist/es2019/block-node-badges.js +84 -0
  15. package/dist/es2019/extensibility/Extension/Extension/index.js +17 -3
  16. package/dist/es2019/extensibility/Extension/ExtensionCommentBadge.js +60 -0
  17. package/dist/es2019/media-single/MediaBadges.js +12 -79
  18. package/dist/es2019/monitoring/error.js +1 -1
  19. package/dist/es2019/react-node-view/getInlineNodeViewProducer.js +1 -15
  20. package/dist/es2019/react-node-view/index.js +0 -15
  21. package/dist/es2019/ui/DropList/index.js +1 -1
  22. package/dist/es2019/utils/index.js +0 -5
  23. package/dist/esm/analytics/types/enums.js +0 -12
  24. package/dist/esm/block-node-badges.js +88 -0
  25. package/dist/esm/extensibility/Extension/Extension/index.js +21 -3
  26. package/dist/esm/extensibility/Extension/ExtensionCommentBadge.js +101 -0
  27. package/dist/esm/media-single/MediaBadges.js +12 -82
  28. package/dist/esm/monitoring/error.js +1 -1
  29. package/dist/esm/react-node-view/getInlineNodeViewProducer.js +1 -14
  30. package/dist/esm/react-node-view/index.js +0 -14
  31. package/dist/esm/ui/DropList/index.js +1 -1
  32. package/dist/esm/utils/index.js +0 -5
  33. package/dist/types/analytics/index.d.ts +1 -2
  34. package/dist/types/analytics/types/enums.d.ts +0 -12
  35. package/dist/types/analytics/types/events.d.ts +1 -3
  36. package/dist/types/analytics/types/general-events.d.ts +2 -15
  37. package/dist/types/block-node-badges.d.ts +14 -0
  38. package/dist/types/extensibility/Extension/ExtensionCommentBadge.d.ts +8 -0
  39. package/dist/types/extensibility/types.d.ts +29 -2
  40. package/dist/types/media-single/MediaBadges.d.ts +4 -8
  41. package/dist/types/types/index.d.ts +1 -1
  42. package/dist/types/types/performance-tracking.d.ts +0 -22
  43. package/dist/types/utils/index.d.ts +0 -5
  44. package/package.json +5 -1
  45. package/analytics/types/performance-report/package.json +0 -10
  46. package/dist/cjs/analytics/types/performance-report.js +0 -1
  47. package/dist/cjs/utils/get-performance-options.js +0 -65
  48. package/dist/cjs/utils/performance/TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.js +0 -10
  49. package/dist/cjs/utils/performance/TTI_SEVERITY_THRESHOLD_DEFAULTS.js +0 -10
  50. package/dist/cjs/utils/performance/measure-tti.js +0 -112
  51. package/dist/cjs/utils/startMeasureReactNodeViewRendered.js +0 -11
  52. package/dist/es2019/analytics/types/performance-report.js +0 -0
  53. package/dist/es2019/utils/get-performance-options.js +0 -54
  54. package/dist/es2019/utils/performance/TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.js +0 -4
  55. package/dist/es2019/utils/performance/TTI_SEVERITY_THRESHOLD_DEFAULTS.js +0 -4
  56. package/dist/es2019/utils/performance/measure-tti.js +0 -91
  57. package/dist/es2019/utils/startMeasureReactNodeViewRendered.js +0 -6
  58. package/dist/esm/analytics/types/performance-report.js +0 -0
  59. package/dist/esm/utils/get-performance-options.js +0 -53
  60. package/dist/esm/utils/performance/TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.js +0 -4
  61. package/dist/esm/utils/performance/TTI_SEVERITY_THRESHOLD_DEFAULTS.js +0 -4
  62. package/dist/esm/utils/performance/measure-tti.js +0 -94
  63. package/dist/esm/utils/startMeasureReactNodeViewRendered.js +0 -5
  64. package/dist/types/analytics/types/performance-report.d.ts +0 -24
  65. package/dist/types/utils/get-performance-options.d.ts +0 -14
  66. package/dist/types/utils/performance/TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.d.ts +0 -4
  67. package/dist/types/utils/performance/TTI_SEVERITY_THRESHOLD_DEFAULTS.d.ts +0 -4
  68. package/dist/types/utils/performance/measure-tti.d.ts +0 -8
  69. package/dist/types/utils/startMeasureReactNodeViewRendered.d.ts +0 -3
  70. package/performance/measure-tti/package.json +0 -10
  71. package/utils/get-performance-options/package.json +0 -10
@@ -1,65 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getPerformanceOptions = getPerformanceOptions;
7
- Object.defineProperty(exports, "startMeasureReactNodeViewRendered", {
8
- enumerable: true,
9
- get: function get() {
10
- return _startMeasureReactNodeViewRendered.startMeasureReactNodeViewRendered;
11
- }
12
- });
13
- exports.stopMeasureReactNodeViewRendered = stopMeasureReactNodeViewRendered;
14
- var _analytics = require("../analytics");
15
- var _performanceMeasures = require("../performance-measures");
16
- var _startMeasureReactNodeViewRendered = require("./startMeasureReactNodeViewRendered");
17
- // This was existing logic when converting from ReactNodeView
18
- // our current sampling for this event is not bound by node.type
19
- var nodeViewRenderedEventsCounter = 0;
20
- var DEFAULT_SAMPLING_RATE = 100;
21
- var DEFAULT_SLOW_THRESHOLD = 7;
22
- function getPerformanceOptions(view) {
23
- var _nodeViewTracking$sam, _nodeViewTracking$slo;
24
- // Please, do not copy or use this kind of code below
25
- // @ts-ignore
26
- var fakePluginKey = {
27
- key: 'analyticsPlugin$',
28
- getState: function getState(state) {
29
- // Ignored via go/ees005
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- return state['analyticsPlugin$'];
32
- }
33
- };
34
- var pluginState = fakePluginKey.getState(view.state);
35
- var nodeViewTracking = pluginState && pluginState.performanceTracking ? pluginState.performanceTracking.nodeViewTracking || {} : {};
36
- var samplingRate = (_nodeViewTracking$sam = nodeViewTracking.samplingRate) !== null && _nodeViewTracking$sam !== void 0 ? _nodeViewTracking$sam : DEFAULT_SAMPLING_RATE;
37
- var slowThreshold = (_nodeViewTracking$slo = nodeViewTracking.slowThreshold) !== null && _nodeViewTracking$slo !== void 0 ? _nodeViewTracking$slo : DEFAULT_SLOW_THRESHOLD;
38
- return {
39
- trackingEnabled: !!nodeViewTracking.enabled,
40
- samplingRate: samplingRate,
41
- slowThreshold: slowThreshold
42
- };
43
- }
44
-
45
- // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
46
- function stopMeasureReactNodeViewRendered(_ref) {
47
- var nodeTypeName = _ref.nodeTypeName,
48
- dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent,
49
- samplingRate = _ref.samplingRate,
50
- slowThreshold = _ref.slowThreshold;
51
- (0, _performanceMeasures.stopMeasure)("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"), function (duration) {
52
- if (++nodeViewRenderedEventsCounter % samplingRate === 0 && duration > slowThreshold) {
53
- dispatchAnalyticsEvent({
54
- action: _analytics.ACTION.REACT_NODEVIEW_RENDERED,
55
- actionSubject: _analytics.ACTION_SUBJECT.EDITOR,
56
- eventType: _analytics.EVENT_TYPE.OPERATIONAL,
57
- attributes: {
58
- node: nodeTypeName,
59
- duration: duration
60
- }
61
- });
62
- }
63
- });
64
- }
65
- // eslint-disable-next-line @atlaskit/editor/no-re-export
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS = void 0;
7
- var TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS = exports.TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS = {
8
- NORMAL: 5000,
9
- DEGRADED: 8000
10
- };
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TTI_SEVERITY_THRESHOLD_DEFAULTS = void 0;
7
- var TTI_SEVERITY_THRESHOLD_DEFAULTS = exports.TTI_SEVERITY_THRESHOLD_DEFAULTS = {
8
- NORMAL: 40000,
9
- DEGRADED: 60000
10
- };
@@ -1,112 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS", {
7
- enumerable: true,
8
- get: function get() {
9
- return _TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS;
10
- }
11
- });
12
- Object.defineProperty(exports, "TTI_SEVERITY_THRESHOLD_DEFAULTS", {
13
- enumerable: true,
14
- get: function get() {
15
- return _TTI_SEVERITY_THRESHOLD_DEFAULTS.TTI_SEVERITY_THRESHOLD_DEFAULTS;
16
- }
17
- });
18
- exports.getTTISeverity = getTTISeverity;
19
- exports.measureTTI = measureTTI;
20
- var _SEVERITY = require("../SEVERITY");
21
- var _isPerformanceApiAvailable = require("./is-performance-api-available");
22
- var _measureRender = require("./measure-render");
23
- var _TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS = require("./TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS");
24
- var _TTI_SEVERITY_THRESHOLD_DEFAULTS = require("./TTI_SEVERITY_THRESHOLD_DEFAULTS");
25
- function measureTTI(onMeasureComplete) {
26
- var idleThreshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
27
- var cancelAfter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
28
- var
29
- // Dependency Injection for easier testing
30
- PerfObserver = arguments.length > 3 ? arguments[3] : undefined;
31
- if (!(0, _isPerformanceApiAvailable.isPerformanceObserverLongTaskAvailable)()) {
32
- return;
33
- }
34
- var start = performance.now();
35
- // Keeping track of users moving away from the tab, which distorts the TTI measurement
36
- var distortedDurationMonitor = (0, _measureRender.getDistortedDurationMonitor)();
37
- var prevLongTask;
38
- var lastLongTask = {
39
- startTime: start,
40
- duration: 0
41
- };
42
- var cancelAfterMs = cancelAfter * 1000;
43
- var observer = new (PerfObserver || PerformanceObserver)(function (list) {
44
- var entries = list.getEntries();
45
- if (entries.length) {
46
- prevLongTask = lastLongTask;
47
- lastLongTask = entries[entries.length - 1];
48
- }
49
- });
50
- observer.observe({
51
- entryTypes: ['longtask']
52
- });
53
- var _checkIdle = function checkIdle() {
54
- // 1. There hasn't been any long task in `idleThreshold` time: Interactive from the start.
55
- // 2. Only 1 long task: Interactive from the end of the only long task.
56
- // 3. Several long tasks:
57
- // 3.1 Interactive from the end of prevLongTask if `lastLongTask.start - prevLongTask.end >= idleThreshold`
58
- // 3.2 Interactive from the end of lastLongTask if `lastLongTask.start - prevLongTask.end < idleThreshold`
59
-
60
- var now = performance.now();
61
- var lastEnd = lastLongTask.startTime + lastLongTask.duration;
62
- var prevEnd = prevLongTask ? prevLongTask.startTime + prevLongTask.duration : lastEnd;
63
- var elapsedTimeMs = now - start;
64
- var canceled = elapsedTimeMs > cancelAfterMs;
65
- if (!prevLongTask) {
66
- observer.disconnect();
67
- distortedDurationMonitor.cleanup();
68
- return onMeasureComplete(prevEnd, 0, false, distortedDurationMonitor.distortedDuration);
69
- } else if (lastLongTask.startTime - prevEnd >= idleThreshold) {
70
- observer.disconnect();
71
- distortedDurationMonitor.cleanup();
72
- return onMeasureComplete(prevEnd, prevEnd - start, canceled, distortedDurationMonitor.distortedDuration);
73
- } else if (now - lastEnd >= idleThreshold || canceled) {
74
- observer.disconnect();
75
- distortedDurationMonitor.cleanup();
76
- return onMeasureComplete(lastEnd, lastEnd - start, canceled, distortedDurationMonitor.distortedDuration);
77
- }
78
- return setTimeout(_checkIdle, idleThreshold);
79
- };
80
- setTimeout(_checkIdle, idleThreshold);
81
- }
82
-
83
- // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
84
- function getTTISeverity(tti, ttiFromInvocation, ttiSeverityNormalThreshold, ttiSeverityDegradedThreshold, ttiFromInvocationSeverityNormalThreshold, ttiFromInvocationSeverityDegradedThreshold) {
85
- var ttiNormalThreshold = ttiSeverityNormalThreshold || _TTI_SEVERITY_THRESHOLD_DEFAULTS.TTI_SEVERITY_THRESHOLD_DEFAULTS.NORMAL;
86
- var ttiDegradedThreshold = ttiSeverityDegradedThreshold || _TTI_SEVERITY_THRESHOLD_DEFAULTS.TTI_SEVERITY_THRESHOLD_DEFAULTS.DEGRADED;
87
- var ttiSeverity;
88
- if (tti >= ttiNormalThreshold && tti < ttiDegradedThreshold) {
89
- ttiSeverity = _SEVERITY.SEVERITY.DEGRADED;
90
- } else if (tti >= ttiDegradedThreshold) {
91
- ttiSeverity = _SEVERITY.SEVERITY.BLOCKING;
92
- } else {
93
- ttiSeverity = _SEVERITY.SEVERITY.NORMAL;
94
- }
95
- var ttiFromInvocationNormalThreshold = ttiFromInvocationSeverityNormalThreshold || _TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.NORMAL;
96
- var ttiFromInvocationDegradedThreshold = ttiFromInvocationSeverityDegradedThreshold || _TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.DEGRADED;
97
- var ttiFromInvocationSeverity;
98
- if (ttiFromInvocation >= ttiFromInvocationNormalThreshold && ttiFromInvocation < ttiFromInvocationDegradedThreshold) {
99
- ttiFromInvocationSeverity = _SEVERITY.SEVERITY.DEGRADED;
100
- } else if (ttiFromInvocation >= ttiFromInvocationDegradedThreshold) {
101
- ttiFromInvocationSeverity = _SEVERITY.SEVERITY.BLOCKING;
102
- } else {
103
- ttiFromInvocationSeverity = _SEVERITY.SEVERITY.NORMAL;
104
- }
105
- return {
106
- ttiSeverity: ttiSeverity,
107
- ttiFromInvocationSeverity: ttiFromInvocationSeverity
108
- };
109
- }
110
- // eslint-disable-next-line @atlaskit/editor/no-re-export
111
-
112
- // eslint-disable-next-line @atlaskit/editor/no-re-export
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.startMeasureReactNodeViewRendered = startMeasureReactNodeViewRendered;
7
- var _performanceMeasures = require("../performance-measures");
8
- function startMeasureReactNodeViewRendered(_ref) {
9
- var nodeTypeName = _ref.nodeTypeName;
10
- (0, _performanceMeasures.startMeasure)("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"));
11
- }
File without changes
@@ -1,54 +0,0 @@
1
- import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../analytics';
2
- import { stopMeasure } from '../performance-measures';
3
-
4
- // This was existing logic when converting from ReactNodeView
5
- // our current sampling for this event is not bound by node.type
6
- let nodeViewRenderedEventsCounter = 0;
7
- const DEFAULT_SAMPLING_RATE = 100;
8
- const DEFAULT_SLOW_THRESHOLD = 7;
9
- export function getPerformanceOptions(view) {
10
- var _nodeViewTracking$sam, _nodeViewTracking$slo;
11
- // Please, do not copy or use this kind of code below
12
- // @ts-ignore
13
- const fakePluginKey = {
14
- key: 'analyticsPlugin$',
15
- getState: state => {
16
- // Ignored via go/ees005
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- return state['analyticsPlugin$'];
19
- }
20
- };
21
- const pluginState = fakePluginKey.getState(view.state);
22
- const nodeViewTracking = pluginState && pluginState.performanceTracking ? pluginState.performanceTracking.nodeViewTracking || {} : {};
23
- const samplingRate = (_nodeViewTracking$sam = nodeViewTracking.samplingRate) !== null && _nodeViewTracking$sam !== void 0 ? _nodeViewTracking$sam : DEFAULT_SAMPLING_RATE;
24
- const slowThreshold = (_nodeViewTracking$slo = nodeViewTracking.slowThreshold) !== null && _nodeViewTracking$slo !== void 0 ? _nodeViewTracking$slo : DEFAULT_SLOW_THRESHOLD;
25
- return {
26
- trackingEnabled: !!nodeViewTracking.enabled,
27
- samplingRate,
28
- slowThreshold
29
- };
30
- }
31
-
32
- // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
33
- export function stopMeasureReactNodeViewRendered({
34
- nodeTypeName,
35
- dispatchAnalyticsEvent,
36
- samplingRate,
37
- slowThreshold
38
- }) {
39
- stopMeasure(`🦉${nodeTypeName}::ReactNodeView`, duration => {
40
- if (++nodeViewRenderedEventsCounter % samplingRate === 0 && duration > slowThreshold) {
41
- dispatchAnalyticsEvent({
42
- action: ACTION.REACT_NODEVIEW_RENDERED,
43
- actionSubject: ACTION_SUBJECT.EDITOR,
44
- eventType: EVENT_TYPE.OPERATIONAL,
45
- attributes: {
46
- node: nodeTypeName,
47
- duration
48
- }
49
- });
50
- }
51
- });
52
- }
53
- // eslint-disable-next-line @atlaskit/editor/no-re-export
54
- export { startMeasureReactNodeViewRendered } from './startMeasureReactNodeViewRendered';
@@ -1,4 +0,0 @@
1
- export const TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS = {
2
- NORMAL: 5000,
3
- DEGRADED: 8000
4
- };
@@ -1,4 +0,0 @@
1
- export const TTI_SEVERITY_THRESHOLD_DEFAULTS = {
2
- NORMAL: 40000,
3
- DEGRADED: 60000
4
- };
@@ -1,91 +0,0 @@
1
- import { SEVERITY } from '../SEVERITY';
2
- import { isPerformanceObserverLongTaskAvailable } from './is-performance-api-available';
3
- import { getDistortedDurationMonitor } from './measure-render';
4
- import { TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS';
5
- import { TTI_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_SEVERITY_THRESHOLD_DEFAULTS';
6
- export function measureTTI(onMeasureComplete, idleThreshold = 1000, cancelAfter = 60,
7
- // Dependency Injection for easier testing
8
- PerfObserver) {
9
- if (!isPerformanceObserverLongTaskAvailable()) {
10
- return;
11
- }
12
- const start = performance.now();
13
- // Keeping track of users moving away from the tab, which distorts the TTI measurement
14
- const distortedDurationMonitor = getDistortedDurationMonitor();
15
- let prevLongTask;
16
- let lastLongTask = {
17
- startTime: start,
18
- duration: 0
19
- };
20
- const cancelAfterMs = cancelAfter * 1000;
21
- const observer = new (PerfObserver || PerformanceObserver)(list => {
22
- const entries = list.getEntries();
23
- if (entries.length) {
24
- prevLongTask = lastLongTask;
25
- lastLongTask = entries[entries.length - 1];
26
- }
27
- });
28
- observer.observe({
29
- entryTypes: ['longtask']
30
- });
31
- const checkIdle = () => {
32
- // 1. There hasn't been any long task in `idleThreshold` time: Interactive from the start.
33
- // 2. Only 1 long task: Interactive from the end of the only long task.
34
- // 3. Several long tasks:
35
- // 3.1 Interactive from the end of prevLongTask if `lastLongTask.start - prevLongTask.end >= idleThreshold`
36
- // 3.2 Interactive from the end of lastLongTask if `lastLongTask.start - prevLongTask.end < idleThreshold`
37
-
38
- const now = performance.now();
39
- const lastEnd = lastLongTask.startTime + lastLongTask.duration;
40
- const prevEnd = prevLongTask ? prevLongTask.startTime + prevLongTask.duration : lastEnd;
41
- const elapsedTimeMs = now - start;
42
- const canceled = elapsedTimeMs > cancelAfterMs;
43
- if (!prevLongTask) {
44
- observer.disconnect();
45
- distortedDurationMonitor.cleanup();
46
- return onMeasureComplete(prevEnd, 0, false, distortedDurationMonitor.distortedDuration);
47
- } else if (lastLongTask.startTime - prevEnd >= idleThreshold) {
48
- observer.disconnect();
49
- distortedDurationMonitor.cleanup();
50
- return onMeasureComplete(prevEnd, prevEnd - start, canceled, distortedDurationMonitor.distortedDuration);
51
- } else if (now - lastEnd >= idleThreshold || canceled) {
52
- observer.disconnect();
53
- distortedDurationMonitor.cleanup();
54
- return onMeasureComplete(lastEnd, lastEnd - start, canceled, distortedDurationMonitor.distortedDuration);
55
- }
56
- return setTimeout(checkIdle, idleThreshold);
57
- };
58
- setTimeout(checkIdle, idleThreshold);
59
- }
60
-
61
- // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
62
- export function getTTISeverity(tti, ttiFromInvocation, ttiSeverityNormalThreshold, ttiSeverityDegradedThreshold, ttiFromInvocationSeverityNormalThreshold, ttiFromInvocationSeverityDegradedThreshold) {
63
- const ttiNormalThreshold = ttiSeverityNormalThreshold || TTI_SEVERITY_THRESHOLD_DEFAULTS.NORMAL;
64
- const ttiDegradedThreshold = ttiSeverityDegradedThreshold || TTI_SEVERITY_THRESHOLD_DEFAULTS.DEGRADED;
65
- let ttiSeverity;
66
- if (tti >= ttiNormalThreshold && tti < ttiDegradedThreshold) {
67
- ttiSeverity = SEVERITY.DEGRADED;
68
- } else if (tti >= ttiDegradedThreshold) {
69
- ttiSeverity = SEVERITY.BLOCKING;
70
- } else {
71
- ttiSeverity = SEVERITY.NORMAL;
72
- }
73
- const ttiFromInvocationNormalThreshold = ttiFromInvocationSeverityNormalThreshold || TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.NORMAL;
74
- const ttiFromInvocationDegradedThreshold = ttiFromInvocationSeverityDegradedThreshold || TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.DEGRADED;
75
- let ttiFromInvocationSeverity;
76
- if (ttiFromInvocation >= ttiFromInvocationNormalThreshold && ttiFromInvocation < ttiFromInvocationDegradedThreshold) {
77
- ttiFromInvocationSeverity = SEVERITY.DEGRADED;
78
- } else if (ttiFromInvocation >= ttiFromInvocationDegradedThreshold) {
79
- ttiFromInvocationSeverity = SEVERITY.BLOCKING;
80
- } else {
81
- ttiFromInvocationSeverity = SEVERITY.NORMAL;
82
- }
83
- return {
84
- ttiSeverity,
85
- ttiFromInvocationSeverity
86
- };
87
- }
88
- // eslint-disable-next-line @atlaskit/editor/no-re-export
89
- export { TTI_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_SEVERITY_THRESHOLD_DEFAULTS';
90
- // eslint-disable-next-line @atlaskit/editor/no-re-export
91
- export { TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS';
@@ -1,6 +0,0 @@
1
- import { startMeasure } from '../performance-measures';
2
- export function startMeasureReactNodeViewRendered({
3
- nodeTypeName
4
- }) {
5
- startMeasure(`🦉${nodeTypeName}::ReactNodeView`);
6
- }
File without changes
@@ -1,53 +0,0 @@
1
- import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '../analytics';
2
- import { stopMeasure } from '../performance-measures';
3
-
4
- // This was existing logic when converting from ReactNodeView
5
- // our current sampling for this event is not bound by node.type
6
- var nodeViewRenderedEventsCounter = 0;
7
- var DEFAULT_SAMPLING_RATE = 100;
8
- var DEFAULT_SLOW_THRESHOLD = 7;
9
- export function getPerformanceOptions(view) {
10
- var _nodeViewTracking$sam, _nodeViewTracking$slo;
11
- // Please, do not copy or use this kind of code below
12
- // @ts-ignore
13
- var fakePluginKey = {
14
- key: 'analyticsPlugin$',
15
- getState: function getState(state) {
16
- // Ignored via go/ees005
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- return state['analyticsPlugin$'];
19
- }
20
- };
21
- var pluginState = fakePluginKey.getState(view.state);
22
- var nodeViewTracking = pluginState && pluginState.performanceTracking ? pluginState.performanceTracking.nodeViewTracking || {} : {};
23
- var samplingRate = (_nodeViewTracking$sam = nodeViewTracking.samplingRate) !== null && _nodeViewTracking$sam !== void 0 ? _nodeViewTracking$sam : DEFAULT_SAMPLING_RATE;
24
- var slowThreshold = (_nodeViewTracking$slo = nodeViewTracking.slowThreshold) !== null && _nodeViewTracking$slo !== void 0 ? _nodeViewTracking$slo : DEFAULT_SLOW_THRESHOLD;
25
- return {
26
- trackingEnabled: !!nodeViewTracking.enabled,
27
- samplingRate: samplingRate,
28
- slowThreshold: slowThreshold
29
- };
30
- }
31
-
32
- // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
33
- export function stopMeasureReactNodeViewRendered(_ref) {
34
- var nodeTypeName = _ref.nodeTypeName,
35
- dispatchAnalyticsEvent = _ref.dispatchAnalyticsEvent,
36
- samplingRate = _ref.samplingRate,
37
- slowThreshold = _ref.slowThreshold;
38
- stopMeasure("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"), function (duration) {
39
- if (++nodeViewRenderedEventsCounter % samplingRate === 0 && duration > slowThreshold) {
40
- dispatchAnalyticsEvent({
41
- action: ACTION.REACT_NODEVIEW_RENDERED,
42
- actionSubject: ACTION_SUBJECT.EDITOR,
43
- eventType: EVENT_TYPE.OPERATIONAL,
44
- attributes: {
45
- node: nodeTypeName,
46
- duration: duration
47
- }
48
- });
49
- }
50
- });
51
- }
52
- // eslint-disable-next-line @atlaskit/editor/no-re-export
53
- export { startMeasureReactNodeViewRendered } from './startMeasureReactNodeViewRendered';
@@ -1,4 +0,0 @@
1
- export var TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS = {
2
- NORMAL: 5000,
3
- DEGRADED: 8000
4
- };
@@ -1,4 +0,0 @@
1
- export var TTI_SEVERITY_THRESHOLD_DEFAULTS = {
2
- NORMAL: 40000,
3
- DEGRADED: 60000
4
- };
@@ -1,94 +0,0 @@
1
- import { SEVERITY } from '../SEVERITY';
2
- import { isPerformanceObserverLongTaskAvailable } from './is-performance-api-available';
3
- import { getDistortedDurationMonitor } from './measure-render';
4
- import { TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS';
5
- import { TTI_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_SEVERITY_THRESHOLD_DEFAULTS';
6
- export function measureTTI(onMeasureComplete) {
7
- var idleThreshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
8
- var cancelAfter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;
9
- var
10
- // Dependency Injection for easier testing
11
- PerfObserver = arguments.length > 3 ? arguments[3] : undefined;
12
- if (!isPerformanceObserverLongTaskAvailable()) {
13
- return;
14
- }
15
- var start = performance.now();
16
- // Keeping track of users moving away from the tab, which distorts the TTI measurement
17
- var distortedDurationMonitor = getDistortedDurationMonitor();
18
- var prevLongTask;
19
- var lastLongTask = {
20
- startTime: start,
21
- duration: 0
22
- };
23
- var cancelAfterMs = cancelAfter * 1000;
24
- var observer = new (PerfObserver || PerformanceObserver)(function (list) {
25
- var entries = list.getEntries();
26
- if (entries.length) {
27
- prevLongTask = lastLongTask;
28
- lastLongTask = entries[entries.length - 1];
29
- }
30
- });
31
- observer.observe({
32
- entryTypes: ['longtask']
33
- });
34
- var _checkIdle = function checkIdle() {
35
- // 1. There hasn't been any long task in `idleThreshold` time: Interactive from the start.
36
- // 2. Only 1 long task: Interactive from the end of the only long task.
37
- // 3. Several long tasks:
38
- // 3.1 Interactive from the end of prevLongTask if `lastLongTask.start - prevLongTask.end >= idleThreshold`
39
- // 3.2 Interactive from the end of lastLongTask if `lastLongTask.start - prevLongTask.end < idleThreshold`
40
-
41
- var now = performance.now();
42
- var lastEnd = lastLongTask.startTime + lastLongTask.duration;
43
- var prevEnd = prevLongTask ? prevLongTask.startTime + prevLongTask.duration : lastEnd;
44
- var elapsedTimeMs = now - start;
45
- var canceled = elapsedTimeMs > cancelAfterMs;
46
- if (!prevLongTask) {
47
- observer.disconnect();
48
- distortedDurationMonitor.cleanup();
49
- return onMeasureComplete(prevEnd, 0, false, distortedDurationMonitor.distortedDuration);
50
- } else if (lastLongTask.startTime - prevEnd >= idleThreshold) {
51
- observer.disconnect();
52
- distortedDurationMonitor.cleanup();
53
- return onMeasureComplete(prevEnd, prevEnd - start, canceled, distortedDurationMonitor.distortedDuration);
54
- } else if (now - lastEnd >= idleThreshold || canceled) {
55
- observer.disconnect();
56
- distortedDurationMonitor.cleanup();
57
- return onMeasureComplete(lastEnd, lastEnd - start, canceled, distortedDurationMonitor.distortedDuration);
58
- }
59
- return setTimeout(_checkIdle, idleThreshold);
60
- };
61
- setTimeout(_checkIdle, idleThreshold);
62
- }
63
-
64
- // eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports
65
- export function getTTISeverity(tti, ttiFromInvocation, ttiSeverityNormalThreshold, ttiSeverityDegradedThreshold, ttiFromInvocationSeverityNormalThreshold, ttiFromInvocationSeverityDegradedThreshold) {
66
- var ttiNormalThreshold = ttiSeverityNormalThreshold || TTI_SEVERITY_THRESHOLD_DEFAULTS.NORMAL;
67
- var ttiDegradedThreshold = ttiSeverityDegradedThreshold || TTI_SEVERITY_THRESHOLD_DEFAULTS.DEGRADED;
68
- var ttiSeverity;
69
- if (tti >= ttiNormalThreshold && tti < ttiDegradedThreshold) {
70
- ttiSeverity = SEVERITY.DEGRADED;
71
- } else if (tti >= ttiDegradedThreshold) {
72
- ttiSeverity = SEVERITY.BLOCKING;
73
- } else {
74
- ttiSeverity = SEVERITY.NORMAL;
75
- }
76
- var ttiFromInvocationNormalThreshold = ttiFromInvocationSeverityNormalThreshold || TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.NORMAL;
77
- var ttiFromInvocationDegradedThreshold = ttiFromInvocationSeverityDegradedThreshold || TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS.DEGRADED;
78
- var ttiFromInvocationSeverity;
79
- if (ttiFromInvocation >= ttiFromInvocationNormalThreshold && ttiFromInvocation < ttiFromInvocationDegradedThreshold) {
80
- ttiFromInvocationSeverity = SEVERITY.DEGRADED;
81
- } else if (ttiFromInvocation >= ttiFromInvocationDegradedThreshold) {
82
- ttiFromInvocationSeverity = SEVERITY.BLOCKING;
83
- } else {
84
- ttiFromInvocationSeverity = SEVERITY.NORMAL;
85
- }
86
- return {
87
- ttiSeverity: ttiSeverity,
88
- ttiFromInvocationSeverity: ttiFromInvocationSeverity
89
- };
90
- }
91
- // eslint-disable-next-line @atlaskit/editor/no-re-export
92
- export { TTI_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_SEVERITY_THRESHOLD_DEFAULTS';
93
- // eslint-disable-next-line @atlaskit/editor/no-re-export
94
- export { TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS';
@@ -1,5 +0,0 @@
1
- import { startMeasure } from '../performance-measures';
2
- export function startMeasureReactNodeViewRendered(_ref) {
3
- var nodeTypeName = _ref.nodeTypeName;
4
- startMeasure("\uD83E\uDD89".concat(nodeTypeName, "::ReactNodeView"));
5
- }
@@ -1,24 +0,0 @@
1
- export interface PluginMethodReport {
2
- onEditorViewStateUpdated: number;
3
- stateApply: number;
4
- viewUpdate: number;
5
- }
6
- export interface PluginsReport {
7
- [name: string]: PluginMethodReport;
8
- }
9
- export type NodeCount = Record<string, number>;
10
- export interface PluginPerformanceReportData {
11
- duration: number;
12
- extensionNodes: NodeCount;
13
- nodes: NodeCount;
14
- plugins: PluginsReport;
15
- slowPlugins: PluginsReport;
16
- stepDurations: {
17
- countNodes: number;
18
- onChange: number;
19
- onEditorViewStateUpdated: number;
20
- stateApply: number;
21
- viewUpdate: number;
22
- };
23
- trigger: string;
24
- }
@@ -1,14 +0,0 @@
1
- import type { EditorView } from '@atlaskit/editor-prosemirror/view';
2
- import type { AnalyticsEventPayload } from '../analytics';
3
- export declare function getPerformanceOptions(view: EditorView): {
4
- samplingRate: number;
5
- slowThreshold: number;
6
- trackingEnabled: boolean;
7
- };
8
- export declare function stopMeasureReactNodeViewRendered({ nodeTypeName, dispatchAnalyticsEvent, samplingRate, slowThreshold, }: {
9
- dispatchAnalyticsEvent: (payload: AnalyticsEventPayload) => void;
10
- nodeTypeName: string;
11
- samplingRate: number;
12
- slowThreshold: number;
13
- }): void;
14
- export { startMeasureReactNodeViewRendered } from './startMeasureReactNodeViewRendered';
@@ -1,4 +0,0 @@
1
- export declare const TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS: {
2
- NORMAL: number;
3
- DEGRADED: number;
4
- };
@@ -1,4 +0,0 @@
1
- export declare const TTI_SEVERITY_THRESHOLD_DEFAULTS: {
2
- NORMAL: number;
3
- DEGRADED: number;
4
- };
@@ -1,8 +0,0 @@
1
- import { SEVERITY } from '../SEVERITY';
2
- export declare function measureTTI(onMeasureComplete: (tti: number, ttiFromInvocation: number, canceled: boolean, distortedDuration: boolean) => void, idleThreshold?: number, cancelAfter?: number, PerfObserver?: typeof window.PerformanceObserver): void;
3
- export declare function getTTISeverity(tti: number, ttiFromInvocation: number, ttiSeverityNormalThreshold?: number, ttiSeverityDegradedThreshold?: number, ttiFromInvocationSeverityNormalThreshold?: number, ttiFromInvocationSeverityDegradedThreshold?: number): {
4
- ttiFromInvocationSeverity: SEVERITY;
5
- ttiSeverity: SEVERITY;
6
- };
7
- export { TTI_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_SEVERITY_THRESHOLD_DEFAULTS';
8
- export { TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS } from './TTI_FROM_INVOCATION_SEVERITY_THRESHOLD_DEFAULTS';
@@ -1,3 +0,0 @@
1
- export declare function startMeasureReactNodeViewRendered({ nodeTypeName, }: {
2
- nodeTypeName: string;
3
- }): void;
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@atlaskit/editor-common/performance/measure-tti",
3
- "main": "../../dist/cjs/utils/performance/measure-tti.js",
4
- "module": "../../dist/esm/utils/performance/measure-tti.js",
5
- "module:es2019": "../../dist/es2019/utils/performance/measure-tti.js",
6
- "sideEffects": [
7
- "**/*.compiled.css"
8
- ],
9
- "types": "../../dist/types/utils/performance/measure-tti.d.ts"
10
- }
@@ -1,10 +0,0 @@
1
- {
2
- "name": "@atlaskit/editor-common/utils/get-performance-options",
3
- "main": "../../dist/cjs/utils/get-performance-options.js",
4
- "module": "../../dist/esm/utils/get-performance-options.js",
5
- "module:es2019": "../../dist/es2019/utils/get-performance-options.js",
6
- "sideEffects": [
7
- "**/*.compiled.css"
8
- ],
9
- "types": "../../dist/types/utils/get-performance-options.d.ts"
10
- }