@adobe/helix-rum-enhancer 2.42.0 → 2.43.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,39 @@
1
+ # [2.43.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.42.4...v2.43.0) (2025-10-22)
2
+
3
+
4
+ ### Features
5
+
6
+ * adding tracking of dynamic forms in the page ([#483](https://github.com/adobe/helix-rum-enhancer/issues/483)) ([c2d5495](https://github.com/adobe/helix-rum-enhancer/commit/c2d5495736f2693d31126bddbcce4c66c6fd40f4))
7
+
8
+ ## [2.42.4](https://github.com/adobe/helix-rum-enhancer/compare/v2.42.3...v2.42.4) (2025-10-17)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * trigger release to test npm trusted publisher configuration ([e11606d](https://github.com/adobe/helix-rum-enhancer/commit/e11606d4a5e81b24c20277feff5ab363b557ec96))
14
+
15
+ ## [2.42.3](https://github.com/adobe/helix-rum-enhancer/compare/v2.42.2...v2.42.3) (2025-10-17)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * upgrade to @semantic-release/npm v13 for OIDC support ([b780819](https://github.com/adobe/helix-rum-enhancer/commit/b78081961841d038ca24aadf53ffe4dbb856404c))
21
+
22
+ ## [2.42.2](https://github.com/adobe/helix-rum-enhancer/compare/v2.42.1...v2.42.2) (2025-10-17)
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * configure npm provenance for OIDC publishing with 2FA ([e01fa6a](https://github.com/adobe/helix-rum-enhancer/commit/e01fa6a920f93048053a509ce54a05eb7dd92666))
28
+ * configure npm provenance for OIDC publishing with 2FA ([033eba5](https://github.com/adobe/helix-rum-enhancer/commit/033eba56bef2184d7bf1a09a44f72c4464dc8b98))
29
+
30
+ ## [2.42.1](https://github.com/adobe/helix-rum-enhancer/compare/v2.42.0...v2.42.1) (2025-10-16)
31
+
32
+
33
+ ### Bug Fixes
34
+
35
+ * update semantic-release to v25 and node to 24.x for OIDC ([5629fdd](https://github.com/adobe/helix-rum-enhancer/commit/5629fdd8b7b88b4f2655a4ce0d00477e369581c2))
36
+
1
37
  # [2.42.0](https://github.com/adobe/helix-rum-enhancer/compare/v2.41.0...v2.42.0) (2025-10-09)
2
38
 
3
39
 
package/modules/index.js CHANGED
@@ -53,7 +53,15 @@ const PLUGINS = {
53
53
  cwv: `${pluginBasePath}/cwv.js`,
54
54
  a11y: `${pluginBasePath}/a11y.js`,
55
55
  // Interactive elements
56
- form: { url: `${pluginBasePath}/form.js`, when: () => document.querySelector('form'), isBlockDependent: true },
56
+ form: {
57
+ url: `${pluginBasePath}/form.js`,
58
+ when: () => document.querySelector('form'),
59
+ isBlockDependent: true,
60
+ mutationObserverParams: {
61
+ target: document.body,
62
+ options: { attributes: false, childList: true, subtree: false },
63
+ },
64
+ },
57
65
  video: { url: `${pluginBasePath}/video.js`, when: () => document.querySelector('video'), isBlockDependent: true },
58
66
  webcomponent: {
59
67
  url: `${pluginBasePath}/webcomponent.js`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/helix-rum-enhancer",
3
- "version": "2.42.0",
3
+ "version": "2.43.0",
4
4
  "description": "Helix RUM Enhancer",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
@@ -33,8 +33,8 @@
33
33
  "reporter-options": "configFile=.mocha-multi.json"
34
34
  },
35
35
  "devDependencies": {
36
- "@adobe/eslint-config-helix": "3.0.11",
37
- "@adobe/helix-rum-js": "2.13.1",
36
+ "@adobe/eslint-config-helix": "3.0.12",
37
+ "@adobe/helix-rum-js": "2.13.6",
38
38
  "@adobe/rollup-plugin-checksum": "1.2.0",
39
39
  "@eslint/config-helpers": "0.4.0",
40
40
  "@esm-bundle/chai": "4.3.4-fix.0",
@@ -42,7 +42,7 @@
42
42
  "@semantic-release/changelog": "6.0.3",
43
43
  "@semantic-release/exec": "7.1.0",
44
44
  "@semantic-release/git": "10.0.1",
45
- "@semantic-release/npm": "12.0.2",
45
+ "@semantic-release/npm": "13.0.0",
46
46
  "@web/test-runner": "0.20.2",
47
47
  "@web/test-runner-commands": "0.9.0",
48
48
  "@web/test-runner-junit-reporter": "0.8.0",
@@ -55,14 +55,14 @@
55
55
  "eslint-plugin-import": "2.32.0",
56
56
  "globals": "16.4.0",
57
57
  "husky": "9.1.7",
58
- "jsdoc-to-markdown": "9.1.2",
58
+ "jsdoc-to-markdown": "9.1.3",
59
59
  "junit-report-builder": "5.1.1",
60
- "lint-staged": "16.2.0",
61
- "mocha": "11.7.2",
60
+ "lint-staged": "16.2.3",
61
+ "mocha": "11.7.4",
62
62
  "mocha-multi-reporters": "1.5.1",
63
- "rollup": "4.52.0",
63
+ "rollup": "4.52.4",
64
64
  "rollup-plugin-eslint-bundle": "9.0.0",
65
- "semantic-release": "24.2.9",
65
+ "semantic-release": "25.0.0",
66
66
  "semantic-release-slack-bot": "^4.0.2",
67
67
  "web-vitals": "5.1.0"
68
68
  },
package/plugins/form.js CHANGED
@@ -23,10 +23,15 @@ export const getSubmitType = (el) => {
23
23
  return 'formsubmit';
24
24
  };
25
25
 
26
+ let rootMo = null;
27
+
26
28
  export default function addFormTracking({
29
+ createMO,
27
30
  sampleRUM, sourceSelector, targetSelector, context, getIntersectionObserver,
28
31
  }) {
29
- context.querySelectorAll('form').forEach((form) => {
32
+ // Track existing forms
33
+
34
+ function trackForm(form) {
30
35
  form.addEventListener('submit', (e) => {
31
36
  // Check for form validation errors before submitting
32
37
  const invalidFields = form.querySelectorAll(':invalid');
@@ -72,5 +77,29 @@ export default function addFormTracking({
72
77
  sampleRUM('click', { source: sourceSelector(e.target) });
73
78
  }
74
79
  });
80
+ }
81
+
82
+ context.querySelectorAll('form').forEach((form) => {
83
+ trackForm(form);
75
84
  });
85
+
86
+ // Create mutation observer to track dynamically added forms
87
+ if (!rootMo) {
88
+ rootMo = createMO((mutationList) => {
89
+ mutationList.forEach((mutation) => {
90
+ if (mutation.addedNodes) {
91
+ [...mutation.addedNodes]
92
+ .filter((node) => node.tagName === 'FORM' || node.querySelector('form'))
93
+ .forEach((e) => trackForm(e.querySelector('form') || e));
94
+ }
95
+ });
96
+ });
97
+
98
+ // Start observing the document for form additions
99
+ rootMo.observe(document.body, {
100
+ childList: true,
101
+ attributes: false,
102
+ subtree: true,
103
+ });
104
+ }
76
105
  }
package/src/index.js CHANGED
@@ -145,7 +145,15 @@
145
145
  form: {
146
146
  url: `${pluginBasePath}/form.js`,
147
147
  when: () => document.querySelector('form'),
148
- isBlockDependent: true
148
+ isBlockDependent: true,
149
+ mutationObserverParams: {
150
+ target: document.body,
151
+ options: {
152
+ attributes: false,
153
+ childList: true,
154
+ subtree: false
155
+ }
156
+ }
149
157
  },
150
158
  video: {
151
159
  url: `${pluginBasePath}/video.js`,
package/src/index.md5 CHANGED
@@ -1 +1 @@
1
- cb37696dfeac0fbfaaa5df6fd45f35e6
1
+ 7fff4d07aeb579ec049d5d061d2f7f81
package/src/index.sri CHANGED
@@ -1 +1 @@
1
- sha384-ypbqCoXRZ7tp+5FmOXF6lim2OxTiSO4vEKbpGgEM5NM+XWXV7WCeVhF8KWjBCbHW
1
+ sha384-xpEanSFpw/+Q+q8VSZptdQLRHuYSu/y5ebfVx6zriz35TsWMeGOOzJxgCFkZgE/E
@@ -1 +1 @@
1
- ac0a97e1c4b43a11eed0a7c4f50389cf
1
+ 214afb5bc6408240a88bae4d20224cf3
@@ -17,14 +17,16 @@ const getSubmitType = el => {
17
17
  if (pwCount > 1) return 'signup';
18
18
  return 'formsubmit';
19
19
  };
20
+ let rootMo = null;
20
21
  function addFormTracking({
22
+ createMO,
21
23
  sampleRUM,
22
24
  sourceSelector,
23
25
  targetSelector,
24
26
  context,
25
27
  getIntersectionObserver
26
28
  }) {
27
- context.querySelectorAll('form').forEach(form => {
29
+ function trackForm(form) {
28
30
  form.addEventListener('submit', e => {
29
31
  const invalidFields = form.querySelectorAll(':invalid');
30
32
  invalidFields.forEach(field => {
@@ -66,7 +68,24 @@ function addFormTracking({
66
68
  });
67
69
  }
68
70
  });
71
+ }
72
+ context.querySelectorAll('form').forEach(form => {
73
+ trackForm(form);
69
74
  });
75
+ if (!rootMo) {
76
+ rootMo = createMO(mutationList => {
77
+ mutationList.forEach(mutation => {
78
+ if (mutation.addedNodes) {
79
+ [...mutation.addedNodes].filter(node => node.tagName === 'FORM' || node.querySelector('form')).forEach(e => trackForm(e.querySelector('form') || e));
80
+ }
81
+ });
82
+ });
83
+ rootMo.observe(document.body, {
84
+ childList: true,
85
+ attributes: false,
86
+ subtree: true
87
+ });
88
+ }
70
89
  }
71
90
 
72
91
  export { addFormTracking as default, getSubmitType };
@@ -17,14 +17,16 @@ const getSubmitType = el => {
17
17
  if (pwCount > 1) return 'signup';
18
18
  return 'formsubmit';
19
19
  };
20
+ let rootMo = null;
20
21
  function addFormTracking({
22
+ createMO,
21
23
  sampleRUM,
22
24
  sourceSelector,
23
25
  targetSelector,
24
26
  context,
25
27
  getIntersectionObserver
26
28
  }) {
27
- context.querySelectorAll('form').forEach(form => {
29
+ function trackForm(form) {
28
30
  form.addEventListener('submit', e => {
29
31
  const invalidFields = form.querySelectorAll(':invalid');
30
32
  invalidFields.forEach(field => {
@@ -66,8 +68,25 @@ function addFormTracking({
66
68
  });
67
69
  }
68
70
  });
71
+ }
72
+ context.querySelectorAll('form').forEach(form => {
73
+ trackForm(form);
69
74
  });
75
+ if (!rootMo) {
76
+ rootMo = createMO(mutationList => {
77
+ mutationList.forEach(mutation => {
78
+ if (mutation.addedNodes) {
79
+ [...mutation.addedNodes].filter(node => node.tagName === 'FORM' || node.querySelector('form')).forEach(e => trackForm(e.querySelector('form') || e));
80
+ }
81
+ });
82
+ });
83
+ rootMo.observe(document.body, {
84
+ childList: true,
85
+ attributes: false,
86
+ subtree: true
87
+ });
88
+ }
70
89
  }
71
90
 
72
91
  export { addFormTracking as default, getSubmitType };
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvZm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFN1Ym1pdFR5cGUgPSAoZWwpID0+IHtcbiAgaWYgKCFlbCB8fCBlbC50YWdOYW1lICE9PSAnRk9STScpIHJldHVybiB1bmRlZmluZWQ7XG4gIC8vIGlmIHRoZSBmb3JtIGhhcyBhIHNlYXJjaCByb2xlIG9yIGEgc2VhcmNoIGZpZWxkLCBpdCdzIGEgc2VhcmNoIGZvcm1cbiAgaWYgKGVsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnc2VhcmNoJ1xuICAgIHx8IGVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3JvbGU9XCJzZWFyY2hib3hcIl0nKSkgcmV0dXJuICdzZWFyY2gnO1xuICAvLyBpZiB0aGUgZm9ybSBoYXMgb25lIHBhc3N3b3JkIGlucHV0LCBpdCdzIGEgbG9naW4gZm9ybVxuICAvLyBpZiB0aGUgZm9ybSBoYXMgbW9yZSB0aGFuIG9uZSBwYXNzd29yZCBpbnB1dCwgaXQncyBhIHNpZ251cCBmb3JtXG4gIGNvbnN0IHB3Q291bnQgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nKS5sZW5ndGg7XG4gIGlmIChwd0NvdW50ID09PSAxKSByZXR1cm4gJ2xvZ2luJztcbiAgaWYgKHB3Q291bnQgPiAxKSByZXR1cm4gJ3NpZ251cCc7XG4gIHJldHVybiAnZm9ybXN1Ym1pdCc7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhZGRGb3JtVHJhY2tpbmcoe1xuICBzYW1wbGVSVU0sIHNvdXJjZVNlbGVjdG9yLCB0YXJnZXRTZWxlY3RvciwgY29udGV4dCwgZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIsXG59KSB7XG4gIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Ym1pdCcsIChlKSA9PiB7XG4gICAgICAvLyBDaGVjayBmb3IgZm9ybSB2YWxpZGF0aW9uIGVycm9ycyBiZWZvcmUgc3VibWl0dGluZ1xuICAgICAgY29uc3QgaW52YWxpZEZpZWxkcyA9IGZvcm0ucXVlcnlTZWxlY3RvckFsbCgnOmludmFsaWQnKTtcbiAgICAgIC8vIFNlbmQgZXJyb3IgY2hlY2twb2ludHMgZm9yIGVhY2ggaW52YWxpZCBmaWVsZFxuICAgICAgaW52YWxpZEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQudmFsaWRpdHkpIHtcbiAgICAgICAgICBjb25zdCBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZmllbGQudmFsaWRpdHkpO1xuICAgICAgICAgIGNvbnN0IGVycm9yVHlwZSA9IHByb3RvdHlwZVxuICAgICAgICAgICAgPyBPYmplY3Qua2V5cyhPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhwcm90b3R5cGUpKVxuICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IGtleSAhPT0gJ3ZhbGlkJyAmJiBrZXkgIT09ICdjb25zdHJ1Y3RvcicgJiYgIWtleS5zdGFydHNXaXRoKCdTeW1ib2wnKSlcbiAgICAgICAgICAgICAgLmZpbmQoKGtleSkgPT4gZmllbGQudmFsaWRpdHlba2V5XSkgfHwgJ2N1c3RvbSdcbiAgICAgICAgICAgIDogJ2N1c3RvbSc7XG5cbiAgICAgICAgICBzYW1wbGVSVU0oJ2Vycm9yJywge1xuICAgICAgICAgICAgdGFyZ2V0OiBlcnJvclR5cGUsXG4gICAgICAgICAgICBzb3VyY2U6IHNvdXJjZVNlbGVjdG9yKGZpZWxkKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICAvLyBPbmx5IHNlbmQgZm9ybXN1Ym1pdCBldmVudCBpZiB0aGVyZSBhcmUgbm8gdmFsaWRhdGlvbiBlcnJvcnNcbiAgICAgIGlmIChpbnZhbGlkRmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBzYW1wbGVSVU0oZ2V0U3VibWl0VHlwZShlLnRhcmdldCksIHtcbiAgICAgICAgICB0YXJnZXQ6IHRhcmdldFNlbGVjdG9yKGUudGFyZ2V0KSxcbiAgICAgICAgICBzb3VyY2U6IHNvdXJjZVNlbGVjdG9yKGUudGFyZ2V0KSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSwgeyBvbmNlOiB0cnVlIH0pO1xuXG4gICAgZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIoJ3ZpZXdibG9jaycpLm9ic2VydmUoZm9ybSk7XG4gICAgbGV0IGxhc3RTb3VyY2U7XG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgaWYgKGUudGFyZ2V0LmNoZWNrVmlzaWJpbGl0eSAmJiBlLnRhcmdldC5jaGVja1Zpc2liaWxpdHkoKSkge1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBzb3VyY2VTZWxlY3RvcihlLnRhcmdldCk7XG4gICAgICAgIGlmIChzb3VyY2UgIT09IGxhc3RTb3VyY2UpIHtcbiAgICAgICAgICBzYW1wbGVSVU0oJ2ZpbGwnLCB7IHNvdXJjZSB9KTtcbiAgICAgICAgICBsYXN0U291cmNlID0gc291cmNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdmb2N1c2luJywgKGUpID0+IHtcbiAgICAgIGlmIChbJ0lOUFVUJywgJ1RFWFRBUkVBJywgJ1NFTEVDVCcsICdCVVRUT04nXS5pbmNsdWRlcyhlLnRhcmdldC50YWdOYW1lKVxuICAgICAgICB8fCBlLnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpID09PSAndHJ1ZScpIHtcbiAgICAgICAgc2FtcGxlUlVNKCdjbGljaycsIHsgc291cmNlOiBzb3VyY2VTZWxlY3RvcihlLnRhcmdldCkgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImdldFN1Ym1pdFR5cGUiLCJlbCIsInRhZ05hbWUiLCJ1bmRlZmluZWQiLCJnZXRBdHRyaWJ1dGUiLCJxdWVyeVNlbGVjdG9yIiwicHdDb3VudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJhZGRGb3JtVHJhY2tpbmciLCJzYW1wbGVSVU0iLCJzb3VyY2VTZWxlY3RvciIsInRhcmdldFNlbGVjdG9yIiwiY29udGV4dCIsImdldEludGVyc2VjdGlvbk9ic2VydmVyIiwiZm9yRWFjaCIsImZvcm0iLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsImludmFsaWRGaWVsZHMiLCJmaWVsZCIsInZhbGlkaXR5IiwicHJvdG90eXBlIiwiT2JqZWN0IiwiZ2V0UHJvdG90eXBlT2YiLCJlcnJvclR5cGUiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImZpbHRlciIsImtleSIsInN0YXJ0c1dpdGgiLCJmaW5kIiwidGFyZ2V0Iiwic291cmNlIiwib25jZSIsIm9ic2VydmUiLCJsYXN0U291cmNlIiwiY2hlY2tWaXNpYmlsaXR5IiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBWU8sTUFBTUEsYUFBYSxHQUFJQyxFQUFFLElBQUs7RUFDbkMsSUFBSSxDQUFDQSxFQUFFLElBQUlBLEVBQUUsQ0FBQ0MsT0FBTyxLQUFLLE1BQU0sRUFBRSxPQUFPQyxTQUFTO0FBRWxELEVBQUEsSUFBSUYsRUFBRSxDQUFDRyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssUUFBUSxJQUNuQ0gsRUFBRSxDQUFDSSxhQUFhLENBQUMsK0NBQStDLENBQUMsRUFBRSxPQUFPLFFBQVE7RUFHdkYsTUFBTUMsT0FBTyxHQUFHTCxFQUFFLENBQUNNLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLENBQUNDLE1BQU07QUFDcEUsRUFBQSxJQUFJRixPQUFPLEtBQUssQ0FBQyxFQUFFLE9BQU8sT0FBTztBQUNqQyxFQUFBLElBQUlBLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxRQUFRO0FBQ2hDLEVBQUEsT0FBTyxZQUFZO0FBQ3JCO0FBRWUsU0FBU0csZUFBZUEsQ0FBQztFQUN0Q0MsU0FBUztFQUFFQyxjQUFjO0VBQUVDLGNBQWM7RUFBRUMsT0FBTztBQUFFQyxFQUFBQTtBQUN0RCxDQUFDLEVBQUU7RUFDREQsT0FBTyxDQUFDTixnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQ1EsT0FBTyxDQUFFQyxJQUFJLElBQUs7QUFDakRBLElBQUFBLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFHQyxDQUFDLElBQUs7QUFFckMsTUFBQSxNQUFNQyxhQUFhLEdBQUdILElB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
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tYXAuanMiLCJzb3VyY2VzIjpbIi4uLy4uL3BsdWdpbnMvZm9ybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMjQgQWRvYmUuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weVxuICogb2YgdGhlIExpY2Vuc2UgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlclxuICogdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TXG4gKiBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2VcbiAqIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGNvbnN0IGdldFN1Ym1pdFR5cGUgPSAoZWwpID0+IHtcbiAgaWYgKCFlbCB8fCBlbC50YWdOYW1lICE9PSAnRk9STScpIHJldHVybiB1bmRlZmluZWQ7XG4gIC8vIGlmIHRoZSBmb3JtIGhhcyBhIHNlYXJjaCByb2xlIG9yIGEgc2VhcmNoIGZpZWxkLCBpdCdzIGEgc2VhcmNoIGZvcm1cbiAgaWYgKGVsLmdldEF0dHJpYnV0ZSgncm9sZScpID09PSAnc2VhcmNoJ1xuICAgIHx8IGVsLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9XCJzZWFyY2hcIl0sIGlucHV0W3JvbGU9XCJzZWFyY2hib3hcIl0nKSkgcmV0dXJuICdzZWFyY2gnO1xuICAvLyBpZiB0aGUgZm9ybSBoYXMgb25lIHBhc3N3b3JkIGlucHV0LCBpdCdzIGEgbG9naW4gZm9ybVxuICAvLyBpZiB0aGUgZm9ybSBoYXMgbW9yZSB0aGFuIG9uZSBwYXNzd29yZCBpbnB1dCwgaXQncyBhIHNpZ251cCBmb3JtXG4gIGNvbnN0IHB3Q291bnQgPSBlbC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nKS5sZW5ndGg7XG4gIGlmIChwd0NvdW50ID09PSAxKSByZXR1cm4gJ2xvZ2luJztcbiAgaWYgKHB3Q291bnQgPiAxKSByZXR1cm4gJ3NpZ251cCc7XG4gIHJldHVybiAnZm9ybXN1Ym1pdCc7XG59O1xuXG5sZXQgcm9vdE1vID0gbnVsbDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkRm9ybVRyYWNraW5nKHtcbiAgY3JlYXRlTU8sXG4gIHNhbXBsZVJVTSwgc291cmNlU2VsZWN0b3IsIHRhcmdldFNlbGVjdG9yLCBjb250ZXh0LCBnZXRJbnRlcnNlY3Rpb25PYnNlcnZlcixcbn0pIHtcbiAgLy8gVHJhY2sgZXhpc3RpbmcgZm9ybXNcblxuICBmdW5jdGlvbiB0cmFja0Zvcm0oZm9ybSkge1xuICAgIGZvcm0uYWRkRXZlbnRMaXN0ZW5lcignc3VibWl0JywgKGUpID0+IHtcbiAgICAgIC8vIENoZWNrIGZvciBmb3JtIHZhbGlkYXRpb24gZXJyb3JzIGJlZm9yZSBzdWJtaXR0aW5nXG4gICAgICBjb25zdCBpbnZhbGlkRmllbGRzID0gZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCc6aW52YWxpZCcpO1xuICAgICAgLy8gU2VuZCBlcnJvciBjaGVja3BvaW50cyBmb3IgZWFjaCBpbnZhbGlkIGZpZWxkXG4gICAgICBpbnZhbGlkRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC52YWxpZGl0eSkge1xuICAgICAgICAgIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihmaWVsZC52YWxpZGl0eSk7XG4gICAgICAgICAgY29uc3QgZXJyb3JUeXBlID0gcHJvdG90eXBlXG4gICAgICAgICAgICA/IE9iamVjdC5rZXlzKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHByb3RvdHlwZSkpXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5ICE9PSAndmFsaWQnICYmIGtleSAhPT0gJ2NvbnN0cnVjdG9yJyAmJiAha2V5LnN0YXJ0c1dpdGgoJ1N5bWJvbCcpKVxuICAgICAgICAgICAgICAuZmluZCgoa2V5KSA9PiBmaWVsZC52YWxpZGl0eVtrZXldKSB8fCAnY3VzdG9tJ1xuICAgICAgICAgICAgOiAnY3VzdG9tJztcblxuICAgICAgICAgIHNhbXBsZVJVTSgnZXJyb3InLCB7XG4gICAgICAgICAgICB0YXJnZXQ6IGVycm9yVHlwZSxcbiAgICAgICAgICAgIHNvdXJjZTogc291cmNlU2VsZWN0b3IoZmllbGQpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIC8vIE9ubHkgc2VuZCBmb3Jtc3VibWl0IGV2ZW50IGlmIHRoZXJlIGFyZSBubyB2YWxpZGF0aW9uIGVycm9yc1xuICAgICAgaWYgKGludmFsaWRGaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHNhbXBsZVJVTShnZXRTdWJtaXRUeXBlKGUudGFyZ2V0KSwge1xuICAgICAgICAgIHRhcmdldDogdGFyZ2V0U2VsZWN0b3IoZS50YXJnZXQpLFxuICAgICAgICAgIHNvdXJjZTogc291cmNlU2VsZWN0b3IoZS50YXJnZXQpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9LCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgICBnZXRJbnRlcnNlY3Rpb25PYnNlcnZlcigndmlld2Jsb2NrJykub2JzZXJ2ZShmb3JtKTtcbiAgICBsZXQgbGFzdFNvdXJjZTtcbiAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7XG4gICAgICBpZiAoZS50YXJnZXQuY2hlY2tWaXNpYmlsaXR5ICYmIGUudGFyZ2V0LmNoZWNrVmlzaWJpbGl0eSgpKSB7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHNvdXJjZVNlbGVjdG9yKGUudGFyZ2V0KTtcbiAgICAgICAgaWYgKHNvdXJjZSAhPT0gbGFzdFNvdXJjZSkge1xuICAgICAgICAgIHNhbXBsZVJVTSgnZmlsbCcsIHsgc291cmNlIH0pO1xuICAgICAgICAgIGxhc3RTb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICBmb3JtLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzaW4nLCAoZSkgPT4ge1xuICAgICAgaWYgKFsnSU5QVVQnLCAnVEVYVEFSRUEnLCAnU0VMRUNUJywgJ0JVVFRPTiddLmluY2x1ZGVzKGUudGFyZ2V0LnRhZ05hbWUpXG4gICAgICAgIHx8IGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJykgPT09ICd0cnVlJykge1xuICAgICAgICBzYW1wbGVSVU0oJ2NsaWNrJywgeyBzb3VyY2U6IHNvdXJjZVNlbGVjdG9yKGUudGFyZ2V0KSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpLmZvckVhY2goKGZvcm0pID0+IHtcbiAgICB0cmFja0Zvcm0oZm9ybSk7XG4gIH0pO1xuXG4gIC8vIENyZWF0ZSBtdXRhdGlvbiBvYnNlcnZlciB0byB0cmFjayBkeW5hbWljYWxseSBhZGRlZCBmb3Jtc1xuICBpZiAoIXJvb3RNbykge1xuICAgIHJvb3RNbyA9IGNyZWF0ZU1PKChtdXRhdGlvbkxpc3QpID0+IHtcbiAgICAgIG11dGF0aW9uTGlzdC5mb3JFYWNoKChtdXRhdGlvbikgPT4ge1xuICAgICAgICBpZiAobXV0YXRpb24uYWRkZWROb2Rlcykge1xuICAgICAgICAgIFsuLi5tdXRhdGlvbi5hZGRlZE5vZGVzXVxuICAgICAgICAgICAgLmZpbHRlcigobm9kZSkgPT4gbm9kZS50YWdOYW1lID09PSAnRk9STScgfHwgbm9kZS5xdWVyeVNlbGVjdG9yKCdmb3JtJykpXG4gICAgICAgICAgICAuZm9yRWFjaCgoZSkgPT4gdHJhY2tGb3JtKGUucXVlcnlTZWxlY3RvcignZm9ybScpIHx8IGUpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IGZvciBmb3JtIGFkZGl0aW9uc1xuICAgIHJvb3RNby5vYnNlcnZlKGRvY3VtZW50LmJvZHksIHtcbiAgICAgIGNoaWxkTGlzdDogdHJ1ZSxcbiAgICAgIGF0dHJpYnV0ZXM6IGZhbHNlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldFN1Ym1pdFR5cGUiLCJlbCIsInRhZ05hbWUiLCJ1bmRlZmluZWQiLCJnZXRBdHRyaWJ1dGUiLCJxdWVyeVNlbGVjdG9yIiwicHdDb3VudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJyb290TW8iLCJhZGRGb3JtVHJhY2tpbmciLCJjcmVhdGVNTyIsInNhbXBsZVJVTSIsInNvdXJjZVNlbGVjdG9yIiwidGFyZ2V0U2VsZWN0b3IiLCJjb250ZXh0IiwiZ2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJ0cmFja0Zvcm0iLCJmb3JtIiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJpbnZhbGlkRmllbGRzIiwiZm9yRWFjaCIsImZpZWxkIiwidmFsaWRpdHkiLCJwcm90b3R5cGUiLCJPYmplY3QiLCJnZXRQcm90b3R5cGVPZiIsImVycm9yVHlwZSIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZmlsdGVyIiwia2V5Iiwic3RhcnRzV2l0aCIsImZpbmQiLCJ0YXJnZXQiLCJzb3VyY2UiLCJvbmNlIiwib2JzZXJ2ZSIsImxhc3RTb3VyY2UiLCJjaGVja1Zpc2liaWxpdHkiLCJpbmNsdWRlcyIsIm11dGF0aW9uTGlzdCIsIm11dGF0aW9uIiwiYWRkZWROb2RlcyIsIm5vZGUiLCJkb2N1bWVudCIsImJvZHkiLCJjaGlsZExpc3QiLCJhdHRyaWJ1dGVzIiwic3VidHJlZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFZTyxNQUFNQSxhQUFhLEdBQUlDLEVBQUUsSUFBSztFQUNuQyxJQUFJLENBQUNBLEVBQUUsSUFBSUEsRUFBRSxDQUFDQyxPQUFPLEtBQUssTUFBTSxFQUFFLE9BQU9DLFNBQVM7QUFFbEQsRUFBQSxJQUFJRixFQUFFLENBQUNHLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxRQUFRLElBQ25DSCxFQUFFLENBQUNJLGFBQWEsQ0FBQywrQ0FBK0MsQ0FBQyxFQUFFLE9BQU8sUUFBUTtFQUd2RixNQUFNQyxPQUFPLEdBQUdMLEVBQUUsQ0FBQ00sZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQ0MsTUFBTTtBQUNwRSxFQUFBLElBQUlGLE9BQU8sS0FBSyxDQUFDLEVBQUUsT0FBTyxPQUFPO0FBQ2pDLEVBQUEsSUFBSUEsT0FBTyxHQUFHLENBQUMsRUFBRSxPQUFPLFFBQVE7QUFDaEMsRUFBQSxPQUFPLFlBQVk7QUFDckI7QUFFQSxJQUFJRyxNQUFNLEdBQUcsSUFBSTtBQUVGLFNBQVNDLGVBQWVBLENBQUM7RUFDdENDLFFBQVE7RUFDUkMsU0FBUztFQUFFQyxjQUFjO0VBQUVDLGNBQWM7RUFBRUMsT0FBTztBQUFFQyxFQUFBQTtBQUN0RCxDQUFDLEVBQUU7RUFHRCxTQUFTQyxTQUFTQSxDQUFDQyxJQUFJLEVBQUU7QUFDdkJBLElBQUFBLElBQUksQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFHQyxDQUFDLElBQUs7QUFFckMsTUFBQSxNQUFNQyxhQUFhLEdBQUdILElBQUksQ0FBQ1gsZ0JBQWdCLENBQUMsVUFBVSxDQUFD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
@@ -1 +1 @@
1
- 96374e9ade98371933bddc8869536de2
1
+ 3e409dc1a29c3602bbf4c8b258f8ef69
@@ -1 +1 @@
1
- 4b5cf6c41be188be11c519f419592e7e
1
+ c00518b019647f564ce00dce9d07c74b
@@ -1 +1 @@
1
- 907a29e9b683d52ab45c0fc02038916e
1
+ b4b27fd1bc3bb7a309c377448c22529c
@@ -1 +1 @@
1
- d241929d3af96465ac32a4158c0e0fe8
1
+ ebe320b3bc258db22786d472559793c1
@@ -1 +1 @@
1
- 3476ee246a6b4c1599651d8a7580e2c7
1
+ 69d98a5cc1e1f11f6bedc2dbe91d8f8f