@bigbinary/neeto-commons-frontend 4.13.162 → 4.13.164-beta1

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 (90) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/cjs/initializers/honeybadger/index.js +1 -1
  3. package/dist/cjs/initializers/honeybadger/index.js.map +1 -1
  4. package/dist/cjs/initializers/honeybadger/utils.js +17 -0
  5. package/dist/cjs/initializers/honeybadger/utils.js.map +1 -1
  6. package/dist/cjs/v2/initializers/honeybadger/index.js +1 -1
  7. package/dist/cjs/v2/initializers/honeybadger/index.js.map +1 -1
  8. package/dist/cjs/v2/initializers/honeybadger/utils.js +17 -0
  9. package/dist/cjs/v2/initializers/honeybadger/utils.js.map +1 -1
  10. package/dist/initializers/honeybadger/index.js +2 -2
  11. package/dist/initializers/honeybadger/index.js.map +1 -1
  12. package/dist/initializers/honeybadger/utils.js +17 -1
  13. package/dist/initializers/honeybadger/utils.js.map +1 -1
  14. package/dist/translations/ar.json +5 -0
  15. package/dist/translations/bg.json +5 -0
  16. package/dist/translations/ca.json +5 -0
  17. package/dist/translations/cs.json +5 -0
  18. package/dist/translations/da.json +5 -0
  19. package/dist/translations/de.json +5 -0
  20. package/dist/translations/es-MX.json +5 -0
  21. package/dist/translations/es.json +5 -0
  22. package/dist/translations/et.json +5 -0
  23. package/dist/translations/fi.json +5 -0
  24. package/dist/translations/fil.json +5 -0
  25. package/dist/translations/fr.json +5 -0
  26. package/dist/translations/he.json +5 -0
  27. package/dist/translations/hi.json +5 -0
  28. package/dist/translations/hr.json +5 -0
  29. package/dist/translations/hu.json +5 -0
  30. package/dist/translations/id.json +5 -0
  31. package/dist/translations/it.json +5 -0
  32. package/dist/translations/ja.json +5 -0
  33. package/dist/translations/ko.json +5 -0
  34. package/dist/translations/lv.json +5 -0
  35. package/dist/translations/nl.json +5 -0
  36. package/dist/translations/pl.json +5 -0
  37. package/dist/translations/pt-BR.json +5 -0
  38. package/dist/translations/pt.json +5 -0
  39. package/dist/translations/ro.json +5 -0
  40. package/dist/translations/ru.json +5 -0
  41. package/dist/translations/sk.json +5 -0
  42. package/dist/translations/sl.json +5 -0
  43. package/dist/translations/sv.json +5 -0
  44. package/dist/translations/th.json +5 -0
  45. package/dist/translations/tr.json +5 -0
  46. package/dist/translations/uk.json +5 -0
  47. package/dist/translations/vi.json +5 -0
  48. package/dist/translations/zh-CN.json +5 -0
  49. package/dist/translations/zh-TW.json +5 -0
  50. package/dist/v2/initializers/honeybadger/index.js +2 -2
  51. package/dist/v2/initializers/honeybadger/index.js.map +1 -1
  52. package/dist/v2/initializers/honeybadger/utils.js +17 -1
  53. package/dist/v2/initializers/honeybadger/utils.js.map +1 -1
  54. package/package.json +1 -1
  55. package/src/translations/ar.json +5 -0
  56. package/src/translations/bg.json +5 -0
  57. package/src/translations/ca.json +5 -0
  58. package/src/translations/cs.json +5 -0
  59. package/src/translations/da.json +5 -0
  60. package/src/translations/de.json +5 -0
  61. package/src/translations/es-MX.json +5 -0
  62. package/src/translations/es.json +5 -0
  63. package/src/translations/et.json +5 -0
  64. package/src/translations/fi.json +5 -0
  65. package/src/translations/fil.json +5 -0
  66. package/src/translations/fr.json +5 -0
  67. package/src/translations/he.json +5 -0
  68. package/src/translations/hi.json +5 -0
  69. package/src/translations/hr.json +5 -0
  70. package/src/translations/hu.json +5 -0
  71. package/src/translations/id.json +5 -0
  72. package/src/translations/it.json +5 -0
  73. package/src/translations/ja.json +5 -0
  74. package/src/translations/ko.json +5 -0
  75. package/src/translations/lv.json +5 -0
  76. package/src/translations/nl.json +5 -0
  77. package/src/translations/pl.json +5 -0
  78. package/src/translations/pt-BR.json +5 -0
  79. package/src/translations/pt.json +5 -0
  80. package/src/translations/ro.json +5 -0
  81. package/src/translations/ru.json +5 -0
  82. package/src/translations/sk.json +5 -0
  83. package/src/translations/sl.json +5 -0
  84. package/src/translations/sv.json +5 -0
  85. package/src/translations/th.json +5 -0
  86. package/src/translations/tr.json +5 -0
  87. package/src/translations/uk.json +5 -0
  88. package/src/translations/vi.json +5 -0
  89. package/src/translations/zh-CN.json +5 -0
  90. package/src/translations/zh-TW.json +5 -0
package/dist/.ready CHANGED
@@ -1 +1 @@
1
- Built at 2026-09-26T20:16:40.706Z
1
+ Built at 2026-10-06T08:53:48.496Z
@@ -21,7 +21,7 @@ function initializeHoneybadger() {
21
21
  react.Honeybadger.beforeNotify(function (notice) {
22
22
  var _activeFilterErrors, _window$globalProps;
23
23
  if (!notice) return false;
24
- var isIgnorable = initializers_honeybadger_constants.IGNORABLE_ERRORS_REGEX.test(notice.message) || initializers_honeybadger_constants.IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) || initializers_honeybadger_constants.IGNORABLE_STACKS_REGEX.test(notice.stack) || initializers_honeybadger_utils.isNeetoReplaySecurityError(notice) || ((_activeFilterErrors = activeFilterErrors) === null || _activeFilterErrors === void 0 ? void 0 : _activeFilterErrors(notice)) === false;
24
+ var isIgnorable = initializers_honeybadger_constants.IGNORABLE_ERRORS_REGEX.test(notice.message) || initializers_honeybadger_constants.IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) || initializers_honeybadger_constants.IGNORABLE_STACKS_REGEX.test(notice.stack) || initializers_honeybadger_utils.isNeetoReplaySecurityError(notice) || initializers_honeybadger_utils.isAnonymousScriptError(notice) || ((_activeFilterErrors = activeFilterErrors) === null || _activeFilterErrors === void 0 ? void 0 : _activeFilterErrors(notice)) === false;
25
25
  if (isIgnorable) return false;
26
26
  var context = {
27
27
  errorClass: notice.name
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/initializers/honeybadger/index.js"],"sourcesContent":["import { Honeybadger } from \"@honeybadger-io/react\";\n\nimport {\n IGNORABLE_ERROR_NAMES_REGEX,\n IGNORABLE_ERRORS_REGEX,\n IGNORABLE_STACKS_REGEX,\n} from \"./constants\";\nimport {\n attachContext,\n getSessionReplayUrl,\n isNeetoReplaySecurityError,\n} from \"./utils\";\n\nlet activeFilterErrors = null;\nlet beforeNotifyRegistered = false;\n\nexport default function initializeHoneybadger(overrides = {}) {\n if (!beforeNotifyRegistered) {\n beforeNotifyRegistered = true;\n\n Honeybadger.beforeNotify(notice => {\n if (!notice) return false;\n\n const isIgnorable =\n IGNORABLE_ERRORS_REGEX.test(notice.message) ||\n IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) ||\n IGNORABLE_STACKS_REGEX.test(notice.stack) ||\n isNeetoReplaySecurityError(notice) ||\n activeFilterErrors?.(notice) === false;\n\n if (isIgnorable) return false;\n\n const context = { errorClass: notice.name };\n\n const user = window.globalProps?.user?.email;\n if (user) context.user = user;\n\n const sessionReplay = getSessionReplayUrl();\n if (sessionReplay) context.sessionReplay = sessionReplay;\n\n attachContext(notice, context);\n\n return true;\n });\n }\n\n return Honeybadger.configure({\n apiKey: window.globalProps?.honeybadgerApiKey,\n environment: window.globalProps?.railsEnv,\n revision: window.globalProps?.honeybadgerRevision,\n developmentEnvironments: [\"development\", \"test\"],\n enableUncaught: true,\n async: true,\n breadcrumbsEnabled: true,\n projectRoot: \"\",\n enableUnhandledRejection: false,\n ...overrides,\n });\n}\n\nexport const setHoneybadgerErrorFilter = fn => {\n activeFilterErrors = fn;\n};\n"],"names":["activeFilterErrors","beforeNotifyRegistered","initializeHoneybadger","_window$globalProps2","_window$globalProps3","_window$globalProps4","overrides","arguments","length","undefined","Honeybadger","beforeNotify","notice","_activeFilterErrors","_window$globalProps","isIgnorable","IGNORABLE_ERRORS_REGEX","test","message","IGNORABLE_ERROR_NAMES_REGEX","name","IGNORABLE_STACKS_REGEX","stack","isNeetoReplaySecurityError","context","errorClass","user","window","globalProps","email","sessionReplay","getSessionReplayUrl","attachContext","configure","_objectSpread","apiKey","honeybadgerApiKey","environment","railsEnv","revision","honeybadgerRevision","developmentEnvironments","enableUncaught","async","breadcrumbsEnabled","projectRoot","enableUnhandledRejection","setHoneybadgerErrorFilter","fn"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/initializers/honeybadger/index.js"],"sourcesContent":["import { Honeybadger } from \"@honeybadger-io/react\";\n\nimport {\n IGNORABLE_ERROR_NAMES_REGEX,\n IGNORABLE_ERRORS_REGEX,\n IGNORABLE_STACKS_REGEX,\n} from \"./constants\";\nimport {\n attachContext,\n getSessionReplayUrl,\n isAnonymousScriptError,\n isNeetoReplaySecurityError,\n} from \"./utils\";\n\nlet activeFilterErrors = null;\nlet beforeNotifyRegistered = false;\n\nexport default function initializeHoneybadger(overrides = {}) {\n if (!beforeNotifyRegistered) {\n beforeNotifyRegistered = true;\n\n Honeybadger.beforeNotify(notice => {\n if (!notice) return false;\n\n const isIgnorable =\n IGNORABLE_ERRORS_REGEX.test(notice.message) ||\n IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) ||\n IGNORABLE_STACKS_REGEX.test(notice.stack) ||\n isNeetoReplaySecurityError(notice) ||\n isAnonymousScriptError(notice) ||\n activeFilterErrors?.(notice) === false;\n\n if (isIgnorable) return false;\n\n const context = { errorClass: notice.name };\n\n const user = window.globalProps?.user?.email;\n if (user) context.user = user;\n\n const sessionReplay = getSessionReplayUrl();\n if (sessionReplay) context.sessionReplay = sessionReplay;\n\n attachContext(notice, context);\n\n return true;\n });\n }\n\n return Honeybadger.configure({\n apiKey: window.globalProps?.honeybadgerApiKey,\n environment: window.globalProps?.railsEnv,\n revision: window.globalProps?.honeybadgerRevision,\n developmentEnvironments: [\"development\", \"test\"],\n enableUncaught: true,\n async: true,\n breadcrumbsEnabled: true,\n projectRoot: \"\",\n enableUnhandledRejection: false,\n ...overrides,\n });\n}\n\nexport const setHoneybadgerErrorFilter = fn => {\n activeFilterErrors = fn;\n};\n"],"names":["activeFilterErrors","beforeNotifyRegistered","initializeHoneybadger","_window$globalProps2","_window$globalProps3","_window$globalProps4","overrides","arguments","length","undefined","Honeybadger","beforeNotify","notice","_activeFilterErrors","_window$globalProps","isIgnorable","IGNORABLE_ERRORS_REGEX","test","message","IGNORABLE_ERROR_NAMES_REGEX","name","IGNORABLE_STACKS_REGEX","stack","isNeetoReplaySecurityError","isAnonymousScriptError","context","errorClass","user","window","globalProps","email","sessionReplay","getSessionReplayUrl","attachContext","configure","_objectSpread","apiKey","honeybadgerApiKey","environment","railsEnv","revision","honeybadgerRevision","developmentEnvironments","enableUncaught","async","breadcrumbsEnabled","projectRoot","enableUnhandledRejection","setHoneybadgerErrorFilter","fn"],"mappings":"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"}
@@ -13,7 +13,24 @@ var isNeetoReplaySecurityError = function isNeetoReplaySecurityError(notice) {
13
13
  return notice.name === "SecurityError" && ((_notice$stack = notice.stack) === null || _notice$stack === void 0 ? void 0 : _notice$stack.includes("neeto-replay-widget"));
14
14
  };
15
15
 
16
+ // Errors whose every backtrace frame is <anonymous> come from code evaluated
17
+ // without a source URL, such as scripts that extensions inject into the page
18
+ // via chrome.scripting.executeScript with world: "MAIN" (e.g. Clipto.AI).
19
+ // Application code always ships as script files, and code it evals is
20
+ // attributed to the calling bundle, so no frame from our code is <anonymous>.
21
+ // Built-in frames like `Array.forEach (<anonymous>)` also have an <anonymous>
22
+ // file but no line number, so requiring one still reports stacks made only
23
+ // of built-ins.
24
+ // https://github.com/neetozone/neeto-record-web/issues/5161
25
+ var isAnonymousScriptError = function isAnonymousScriptError(notice) {
26
+ var _notice$backtrace;
27
+ return ((_notice$backtrace = notice.backtrace) === null || _notice$backtrace === void 0 ? void 0 : _notice$backtrace.length) > 0 && notice.backtrace.every(function (frame) {
28
+ return frame.file === "<anonymous>" && Boolean(frame.number);
29
+ });
30
+ };
31
+
16
32
  exports.attachContext = attachContext;
17
33
  exports.getSessionReplayUrl = getSessionReplayUrl;
34
+ exports.isAnonymousScriptError = isAnonymousScriptError;
18
35
  exports.isNeetoReplaySecurityError = isNeetoReplaySecurityError;
19
36
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/initializers/honeybadger/utils.js"],"sourcesContent":["export const attachContext = (notice, context) => {\n if (notice.context) Object.assign(notice.context, context);\n else notice.context = context;\n};\n\nexport const getSessionReplayUrl = () => {\n const storage = sessionStorage.getItem(\"neeto-replay-widget--session\");\n const currentTimestamp = new Date().getTime();\n\n return storage ? `${JSON.parse(storage).url}?goto=${currentTimestamp}` : \"\";\n};\n\nexport const isNeetoReplaySecurityError = notice =>\n notice.name === \"SecurityError\" &&\n notice.stack?.includes(\"neeto-replay-widget\");\n"],"names":["attachContext","notice","context","Object","assign","getSessionReplayUrl","storage","sessionStorage","getItem","currentTimestamp","Date","getTime","concat","JSON","parse","url","isNeetoReplaySecurityError","_notice$stack","name","stack","includes"],"mappings":";;AAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAM,EAAEC,OAAO,EAAK;EAChD,IAAID,MAAM,CAACC,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACH,MAAM,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,KACtDD,MAAM,CAACC,OAAO,GAAGA,OAAO;AAC/B;IAEaG,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AACvC,EAAA,IAAMC,OAAO,GAAGC,cAAc,CAACC,OAAO,CAAC,8BAA8B,CAAC;EACtE,IAAMC,gBAAgB,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;AAE7C,EAAA,OAAOL,OAAO,GAAA,EAAA,CAAAM,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACR,OAAO,CAAC,CAACS,GAAG,EAAA,QAAA,CAAA,CAAAH,MAAA,CAASH,gBAAgB,IAAK,EAAE;AAC7E;IAEaO,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGf,MAAM,EAAA;AAAA,EAAA,IAAAgB,aAAA;AAAA,EAAA,OAC9ChB,MAAM,CAACiB,IAAI,KAAK,eAAe,KAAA,CAAAD,aAAA,GAC/BhB,MAAM,CAACkB,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/initializers/honeybadger/utils.js"],"sourcesContent":["export const attachContext = (notice, context) => {\n if (notice.context) Object.assign(notice.context, context);\n else notice.context = context;\n};\n\nexport const getSessionReplayUrl = () => {\n const storage = sessionStorage.getItem(\"neeto-replay-widget--session\");\n const currentTimestamp = new Date().getTime();\n\n return storage ? `${JSON.parse(storage).url}?goto=${currentTimestamp}` : \"\";\n};\n\nexport const isNeetoReplaySecurityError = notice =>\n notice.name === \"SecurityError\" &&\n notice.stack?.includes(\"neeto-replay-widget\");\n\n// Errors whose every backtrace frame is <anonymous> come from code evaluated\n// without a source URL, such as scripts that extensions inject into the page\n// via chrome.scripting.executeScript with world: \"MAIN\" (e.g. Clipto.AI).\n// Application code always ships as script files, and code it evals is\n// attributed to the calling bundle, so no frame from our code is <anonymous>.\n// Built-in frames like `Array.forEach (<anonymous>)` also have an <anonymous>\n// file but no line number, so requiring one still reports stacks made only\n// of built-ins.\n// https://github.com/neetozone/neeto-record-web/issues/5161\nexport const isAnonymousScriptError = notice =>\n notice.backtrace?.length > 0 &&\n notice.backtrace.every(\n frame => frame.file === \"<anonymous>\" && Boolean(frame.number)\n );\n"],"names":["attachContext","notice","context","Object","assign","getSessionReplayUrl","storage","sessionStorage","getItem","currentTimestamp","Date","getTime","concat","JSON","parse","url","isNeetoReplaySecurityError","_notice$stack","name","stack","includes","isAnonymousScriptError","_notice$backtrace","backtrace","length","every","frame","file","Boolean","number"],"mappings":";;AAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAM,EAAEC,OAAO,EAAK;EAChD,IAAID,MAAM,CAACC,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACH,MAAM,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,KACtDD,MAAM,CAACC,OAAO,GAAGA,OAAO;AAC/B;IAEaG,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AACvC,EAAA,IAAMC,OAAO,GAAGC,cAAc,CAACC,OAAO,CAAC,8BAA8B,CAAC;EACtE,IAAMC,gBAAgB,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;AAE7C,EAAA,OAAOL,OAAO,GAAA,EAAA,CAAAM,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACR,OAAO,CAAC,CAACS,GAAG,EAAA,QAAA,CAAA,CAAAH,MAAA,CAASH,gBAAgB,IAAK,EAAE;AAC7E;IAEaO,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGf,MAAM,EAAA;AAAA,EAAA,IAAAgB,aAAA;AAAA,EAAA,OAC9ChB,MAAM,CAACiB,IAAI,KAAK,eAAe,KAAA,CAAAD,aAAA,GAC/BhB,MAAM,CAACkB,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAAA;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGpB,MAAM,EAAA;AAAA,EAAA,IAAAqB,iBAAA;EAAA,OAC1C,CAAA,CAAAA,iBAAA,GAAArB,MAAM,CAACsB,SAAS,MAAA,IAAA,IAAAD,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAkBE,MAAM,IAAG,CAAC,IAC5BvB,MAAM,CAACsB,SAAS,CAACE,KAAK,CACpB,UAAAC,KAAK,EAAA;IAAA,OAAIA,KAAK,CAACC,IAAI,KAAK,aAAa,IAAIC,OAAO,CAACF,KAAK,CAACG,MAAM,CAAC;AAAA,EAAA,CAChE,CAAC;AAAA;;;;;;;"}
@@ -21,7 +21,7 @@ function initializeHoneybadger() {
21
21
  react.Honeybadger.beforeNotify(function (notice) {
22
22
  var _activeFilterErrors, _window$globalProps;
23
23
  if (!notice) return false;
24
- var isIgnorable = v2_initializers_honeybadger_constants.IGNORABLE_ERRORS_REGEX.test(notice.message) || v2_initializers_honeybadger_constants.IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) || v2_initializers_honeybadger_constants.IGNORABLE_STACKS_REGEX.test(notice.stack) || v2_initializers_honeybadger_utils.isNeetoReplaySecurityError(notice) || ((_activeFilterErrors = activeFilterErrors) === null || _activeFilterErrors === void 0 ? void 0 : _activeFilterErrors(notice)) === false;
24
+ var isIgnorable = v2_initializers_honeybadger_constants.IGNORABLE_ERRORS_REGEX.test(notice.message) || v2_initializers_honeybadger_constants.IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) || v2_initializers_honeybadger_constants.IGNORABLE_STACKS_REGEX.test(notice.stack) || v2_initializers_honeybadger_utils.isNeetoReplaySecurityError(notice) || v2_initializers_honeybadger_utils.isAnonymousScriptError(notice) || ((_activeFilterErrors = activeFilterErrors) === null || _activeFilterErrors === void 0 ? void 0 : _activeFilterErrors(notice)) === false;
25
25
  if (isIgnorable) return false;
26
26
  var context = {
27
27
  errorClass: notice.name
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/v2/initializers/honeybadger/index.js"],"sourcesContent":["import { Honeybadger } from \"@honeybadger-io/react\";\n\nimport {\n IGNORABLE_ERROR_NAMES_REGEX,\n IGNORABLE_ERRORS_REGEX,\n IGNORABLE_STACKS_REGEX,\n} from \"./constants\";\nimport {\n attachContext,\n getSessionReplayUrl,\n isNeetoReplaySecurityError,\n} from \"./utils\";\n\nlet activeFilterErrors = null;\nlet beforeNotifyRegistered = false;\n\nexport default function initializeHoneybadger(overrides = {}) {\n if (!beforeNotifyRegistered) {\n beforeNotifyRegistered = true;\n\n Honeybadger.beforeNotify(notice => {\n if (!notice) return false;\n\n const isIgnorable =\n IGNORABLE_ERRORS_REGEX.test(notice.message) ||\n IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) ||\n IGNORABLE_STACKS_REGEX.test(notice.stack) ||\n isNeetoReplaySecurityError(notice) ||\n activeFilterErrors?.(notice) === false;\n\n if (isIgnorable) return false;\n\n const context = { errorClass: notice.name };\n\n const user = window.globalProps?.user?.email;\n if (user) context.user = user;\n\n const sessionReplay = getSessionReplayUrl();\n if (sessionReplay) context.sessionReplay = sessionReplay;\n\n attachContext(notice, context);\n\n return true;\n });\n }\n\n return Honeybadger.configure({\n apiKey: window.globalProps?.honeybadgerApiKey,\n environment: window.globalProps?.railsEnv,\n revision: window.globalProps?.honeybadgerRevision,\n developmentEnvironments: [\"development\", \"test\"],\n enableUncaught: true,\n async: true,\n breadcrumbsEnabled: true,\n projectRoot: \"\",\n enableUnhandledRejection: false,\n ...overrides,\n });\n}\n\nexport const setHoneybadgerErrorFilter = fn => {\n activeFilterErrors = fn;\n};\n"],"names":["activeFilterErrors","beforeNotifyRegistered","initializeHoneybadger","_window$globalProps2","_window$globalProps3","_window$globalProps4","overrides","arguments","length","undefined","Honeybadger","beforeNotify","notice","_activeFilterErrors","_window$globalProps","isIgnorable","IGNORABLE_ERRORS_REGEX","test","message","IGNORABLE_ERROR_NAMES_REGEX","name","IGNORABLE_STACKS_REGEX","stack","isNeetoReplaySecurityError","context","errorClass","user","window","globalProps","email","sessionReplay","getSessionReplayUrl","attachContext","configure","_objectSpread","apiKey","honeybadgerApiKey","environment","railsEnv","revision","honeybadgerRevision","developmentEnvironments","enableUncaught","async","breadcrumbsEnabled","projectRoot","enableUnhandledRejection","setHoneybadgerErrorFilter","fn"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/v2/initializers/honeybadger/index.js"],"sourcesContent":["import { Honeybadger } from \"@honeybadger-io/react\";\n\nimport {\n IGNORABLE_ERROR_NAMES_REGEX,\n IGNORABLE_ERRORS_REGEX,\n IGNORABLE_STACKS_REGEX,\n} from \"./constants\";\nimport {\n attachContext,\n getSessionReplayUrl,\n isAnonymousScriptError,\n isNeetoReplaySecurityError,\n} from \"./utils\";\n\nlet activeFilterErrors = null;\nlet beforeNotifyRegistered = false;\n\nexport default function initializeHoneybadger(overrides = {}) {\n if (!beforeNotifyRegistered) {\n beforeNotifyRegistered = true;\n\n Honeybadger.beforeNotify(notice => {\n if (!notice) return false;\n\n const isIgnorable =\n IGNORABLE_ERRORS_REGEX.test(notice.message) ||\n IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) ||\n IGNORABLE_STACKS_REGEX.test(notice.stack) ||\n isNeetoReplaySecurityError(notice) ||\n isAnonymousScriptError(notice) ||\n activeFilterErrors?.(notice) === false;\n\n if (isIgnorable) return false;\n\n const context = { errorClass: notice.name };\n\n const user = window.globalProps?.user?.email;\n if (user) context.user = user;\n\n const sessionReplay = getSessionReplayUrl();\n if (sessionReplay) context.sessionReplay = sessionReplay;\n\n attachContext(notice, context);\n\n return true;\n });\n }\n\n return Honeybadger.configure({\n apiKey: window.globalProps?.honeybadgerApiKey,\n environment: window.globalProps?.railsEnv,\n revision: window.globalProps?.honeybadgerRevision,\n developmentEnvironments: [\"development\", \"test\"],\n enableUncaught: true,\n async: true,\n breadcrumbsEnabled: true,\n projectRoot: \"\",\n enableUnhandledRejection: false,\n ...overrides,\n });\n}\n\nexport const setHoneybadgerErrorFilter = fn => {\n activeFilterErrors = fn;\n};\n"],"names":["activeFilterErrors","beforeNotifyRegistered","initializeHoneybadger","_window$globalProps2","_window$globalProps3","_window$globalProps4","overrides","arguments","length","undefined","Honeybadger","beforeNotify","notice","_activeFilterErrors","_window$globalProps","isIgnorable","IGNORABLE_ERRORS_REGEX","test","message","IGNORABLE_ERROR_NAMES_REGEX","name","IGNORABLE_STACKS_REGEX","stack","isNeetoReplaySecurityError","isAnonymousScriptError","context","errorClass","user","window","globalProps","email","sessionReplay","getSessionReplayUrl","attachContext","configure","_objectSpread","apiKey","honeybadgerApiKey","environment","railsEnv","revision","honeybadgerRevision","developmentEnvironments","enableUncaught","async","breadcrumbsEnabled","projectRoot","enableUnhandledRejection","setHoneybadgerErrorFilter","fn"],"mappings":"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"}
@@ -13,7 +13,24 @@ var isNeetoReplaySecurityError = function isNeetoReplaySecurityError(notice) {
13
13
  return notice.name === "SecurityError" && ((_notice$stack = notice.stack) === null || _notice$stack === void 0 ? void 0 : _notice$stack.includes("neeto-replay-widget"));
14
14
  };
15
15
 
16
+ // Errors whose every backtrace frame is <anonymous> come from code evaluated
17
+ // without a source URL, such as scripts that extensions inject into the page
18
+ // via chrome.scripting.executeScript with world: "MAIN" (e.g. Clipto.AI).
19
+ // Application code always ships as script files, and code it evals is
20
+ // attributed to the calling bundle, so no frame from our code is <anonymous>.
21
+ // Built-in frames like `Array.forEach (<anonymous>)` also have an <anonymous>
22
+ // file but no line number, so requiring one still reports stacks made only
23
+ // of built-ins.
24
+ // https://github.com/neetozone/neeto-record-web/issues/5161
25
+ var isAnonymousScriptError = function isAnonymousScriptError(notice) {
26
+ var _notice$backtrace;
27
+ return ((_notice$backtrace = notice.backtrace) === null || _notice$backtrace === void 0 ? void 0 : _notice$backtrace.length) > 0 && notice.backtrace.every(function (frame) {
28
+ return frame.file === "<anonymous>" && Boolean(frame.number);
29
+ });
30
+ };
31
+
16
32
  exports.attachContext = attachContext;
17
33
  exports.getSessionReplayUrl = getSessionReplayUrl;
34
+ exports.isAnonymousScriptError = isAnonymousScriptError;
18
35
  exports.isNeetoReplaySecurityError = isNeetoReplaySecurityError;
19
36
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/v2/initializers/honeybadger/utils.js"],"sourcesContent":["export const attachContext = (notice, context) => {\n if (notice.context) Object.assign(notice.context, context);\n else notice.context = context;\n};\n\nexport const getSessionReplayUrl = () => {\n const storage = sessionStorage.getItem(\"neeto-replay-widget--session\");\n const currentTimestamp = new Date().getTime();\n\n return storage ? `${JSON.parse(storage).url}?goto=${currentTimestamp}` : \"\";\n};\n\nexport const isNeetoReplaySecurityError = notice =>\n notice.name === \"SecurityError\" &&\n notice.stack?.includes(\"neeto-replay-widget\");\n"],"names":["attachContext","notice","context","Object","assign","getSessionReplayUrl","storage","sessionStorage","getItem","currentTimestamp","Date","getTime","concat","JSON","parse","url","isNeetoReplaySecurityError","_notice$stack","name","stack","includes"],"mappings":";;AAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAM,EAAEC,OAAO,EAAK;EAChD,IAAID,MAAM,CAACC,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACH,MAAM,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,KACtDD,MAAM,CAACC,OAAO,GAAGA,OAAO;AAC/B;IAEaG,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AACvC,EAAA,IAAMC,OAAO,GAAGC,cAAc,CAACC,OAAO,CAAC,8BAA8B,CAAC;EACtE,IAAMC,gBAAgB,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;AAE7C,EAAA,OAAOL,OAAO,GAAA,EAAA,CAAAM,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACR,OAAO,CAAC,CAACS,GAAG,EAAA,QAAA,CAAA,CAAAH,MAAA,CAASH,gBAAgB,IAAK,EAAE;AAC7E;IAEaO,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGf,MAAM,EAAA;AAAA,EAAA,IAAAgB,aAAA;AAAA,EAAA,OAC9ChB,MAAM,CAACiB,IAAI,KAAK,eAAe,KAAA,CAAAD,aAAA,GAC/BhB,MAAM,CAACkB,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAAA;;;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/v2/initializers/honeybadger/utils.js"],"sourcesContent":["export const attachContext = (notice, context) => {\n if (notice.context) Object.assign(notice.context, context);\n else notice.context = context;\n};\n\nexport const getSessionReplayUrl = () => {\n const storage = sessionStorage.getItem(\"neeto-replay-widget--session\");\n const currentTimestamp = new Date().getTime();\n\n return storage ? `${JSON.parse(storage).url}?goto=${currentTimestamp}` : \"\";\n};\n\nexport const isNeetoReplaySecurityError = notice =>\n notice.name === \"SecurityError\" &&\n notice.stack?.includes(\"neeto-replay-widget\");\n\n// Errors whose every backtrace frame is <anonymous> come from code evaluated\n// without a source URL, such as scripts that extensions inject into the page\n// via chrome.scripting.executeScript with world: \"MAIN\" (e.g. Clipto.AI).\n// Application code always ships as script files, and code it evals is\n// attributed to the calling bundle, so no frame from our code is <anonymous>.\n// Built-in frames like `Array.forEach (<anonymous>)` also have an <anonymous>\n// file but no line number, so requiring one still reports stacks made only\n// of built-ins.\n// https://github.com/neetozone/neeto-record-web/issues/5161\nexport const isAnonymousScriptError = notice =>\n notice.backtrace?.length > 0 &&\n notice.backtrace.every(\n frame => frame.file === \"<anonymous>\" && Boolean(frame.number)\n );\n"],"names":["attachContext","notice","context","Object","assign","getSessionReplayUrl","storage","sessionStorage","getItem","currentTimestamp","Date","getTime","concat","JSON","parse","url","isNeetoReplaySecurityError","_notice$stack","name","stack","includes","isAnonymousScriptError","_notice$backtrace","backtrace","length","every","frame","file","Boolean","number"],"mappings":";;AAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAM,EAAEC,OAAO,EAAK;EAChD,IAAID,MAAM,CAACC,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACH,MAAM,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,KACtDD,MAAM,CAACC,OAAO,GAAGA,OAAO;AAC/B;IAEaG,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AACvC,EAAA,IAAMC,OAAO,GAAGC,cAAc,CAACC,OAAO,CAAC,8BAA8B,CAAC;EACtE,IAAMC,gBAAgB,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;AAE7C,EAAA,OAAOL,OAAO,GAAA,EAAA,CAAAM,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACR,OAAO,CAAC,CAACS,GAAG,EAAA,QAAA,CAAA,CAAAH,MAAA,CAASH,gBAAgB,IAAK,EAAE;AAC7E;IAEaO,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGf,MAAM,EAAA;AAAA,EAAA,IAAAgB,aAAA;AAAA,EAAA,OAC9ChB,MAAM,CAACiB,IAAI,KAAK,eAAe,KAAA,CAAAD,aAAA,GAC/BhB,MAAM,CAACkB,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAAA;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGpB,MAAM,EAAA;AAAA,EAAA,IAAAqB,iBAAA;EAAA,OAC1C,CAAA,CAAAA,iBAAA,GAAArB,MAAM,CAACsB,SAAS,MAAA,IAAA,IAAAD,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAkBE,MAAM,IAAG,CAAC,IAC5BvB,MAAM,CAACsB,SAAS,CAACE,KAAK,CACpB,UAAAC,KAAK,EAAA;IAAA,OAAIA,KAAK,CAACC,IAAI,KAAK,aAAa,IAAIC,OAAO,CAACF,KAAK,CAACG,MAAM,CAAC;AAAA,EAAA,CAChE,CAAC;AAAA;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { _ as _defineProperty } from '../../defineProperty-Dcer7TUY.js';
2
2
  import { Honeybadger } from '@honeybadger-io/react';
3
3
  import { IGNORABLE_ERRORS_REGEX, IGNORABLE_ERROR_NAMES_REGEX, IGNORABLE_STACKS_REGEX } from './constants.js';
4
- import { isNeetoReplaySecurityError, getSessionReplayUrl, attachContext } from './utils.js';
4
+ import { isNeetoReplaySecurityError, isAnonymousScriptError, getSessionReplayUrl, attachContext } from './utils.js';
5
5
  import '../../toPropertyKey-BAXkSB3z.js';
6
6
  import '../../typeof-D-UKOauR.js';
7
7
 
@@ -17,7 +17,7 @@ function initializeHoneybadger() {
17
17
  Honeybadger.beforeNotify(function (notice) {
18
18
  var _activeFilterErrors, _window$globalProps;
19
19
  if (!notice) return false;
20
- var isIgnorable = IGNORABLE_ERRORS_REGEX.test(notice.message) || IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) || IGNORABLE_STACKS_REGEX.test(notice.stack) || isNeetoReplaySecurityError(notice) || ((_activeFilterErrors = activeFilterErrors) === null || _activeFilterErrors === void 0 ? void 0 : _activeFilterErrors(notice)) === false;
20
+ var isIgnorable = IGNORABLE_ERRORS_REGEX.test(notice.message) || IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) || IGNORABLE_STACKS_REGEX.test(notice.stack) || isNeetoReplaySecurityError(notice) || isAnonymousScriptError(notice) || ((_activeFilterErrors = activeFilterErrors) === null || _activeFilterErrors === void 0 ? void 0 : _activeFilterErrors(notice)) === false;
21
21
  if (isIgnorable) return false;
22
22
  var context = {
23
23
  errorClass: notice.name
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/initializers/honeybadger/index.js"],"sourcesContent":["import { Honeybadger } from \"@honeybadger-io/react\";\n\nimport {\n IGNORABLE_ERROR_NAMES_REGEX,\n IGNORABLE_ERRORS_REGEX,\n IGNORABLE_STACKS_REGEX,\n} from \"./constants\";\nimport {\n attachContext,\n getSessionReplayUrl,\n isNeetoReplaySecurityError,\n} from \"./utils\";\n\nlet activeFilterErrors = null;\nlet beforeNotifyRegistered = false;\n\nexport default function initializeHoneybadger(overrides = {}) {\n if (!beforeNotifyRegistered) {\n beforeNotifyRegistered = true;\n\n Honeybadger.beforeNotify(notice => {\n if (!notice) return false;\n\n const isIgnorable =\n IGNORABLE_ERRORS_REGEX.test(notice.message) ||\n IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) ||\n IGNORABLE_STACKS_REGEX.test(notice.stack) ||\n isNeetoReplaySecurityError(notice) ||\n activeFilterErrors?.(notice) === false;\n\n if (isIgnorable) return false;\n\n const context = { errorClass: notice.name };\n\n const user = window.globalProps?.user?.email;\n if (user) context.user = user;\n\n const sessionReplay = getSessionReplayUrl();\n if (sessionReplay) context.sessionReplay = sessionReplay;\n\n attachContext(notice, context);\n\n return true;\n });\n }\n\n return Honeybadger.configure({\n apiKey: window.globalProps?.honeybadgerApiKey,\n environment: window.globalProps?.railsEnv,\n revision: window.globalProps?.honeybadgerRevision,\n developmentEnvironments: [\"development\", \"test\"],\n enableUncaught: true,\n async: true,\n breadcrumbsEnabled: true,\n projectRoot: \"\",\n enableUnhandledRejection: false,\n ...overrides,\n });\n}\n\nexport const setHoneybadgerErrorFilter = fn => {\n activeFilterErrors = fn;\n};\n"],"names":["activeFilterErrors","beforeNotifyRegistered","initializeHoneybadger","_window$globalProps2","_window$globalProps3","_window$globalProps4","overrides","arguments","length","undefined","Honeybadger","beforeNotify","notice","_activeFilterErrors","_window$globalProps","isIgnorable","IGNORABLE_ERRORS_REGEX","test","message","IGNORABLE_ERROR_NAMES_REGEX","name","IGNORABLE_STACKS_REGEX","stack","isNeetoReplaySecurityError","context","errorClass","user","window","globalProps","email","sessionReplay","getSessionReplayUrl","attachContext","configure","_objectSpread","apiKey","honeybadgerApiKey","environment","railsEnv","revision","honeybadgerRevision","developmentEnvironments","enableUncaught","async","breadcrumbsEnabled","projectRoot","enableUnhandledRejection","setHoneybadgerErrorFilter","fn"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/initializers/honeybadger/index.js"],"sourcesContent":["import { Honeybadger } from \"@honeybadger-io/react\";\n\nimport {\n IGNORABLE_ERROR_NAMES_REGEX,\n IGNORABLE_ERRORS_REGEX,\n IGNORABLE_STACKS_REGEX,\n} from \"./constants\";\nimport {\n attachContext,\n getSessionReplayUrl,\n isAnonymousScriptError,\n isNeetoReplaySecurityError,\n} from \"./utils\";\n\nlet activeFilterErrors = null;\nlet beforeNotifyRegistered = false;\n\nexport default function initializeHoneybadger(overrides = {}) {\n if (!beforeNotifyRegistered) {\n beforeNotifyRegistered = true;\n\n Honeybadger.beforeNotify(notice => {\n if (!notice) return false;\n\n const isIgnorable =\n IGNORABLE_ERRORS_REGEX.test(notice.message) ||\n IGNORABLE_ERROR_NAMES_REGEX.test(notice.name) ||\n IGNORABLE_STACKS_REGEX.test(notice.stack) ||\n isNeetoReplaySecurityError(notice) ||\n isAnonymousScriptError(notice) ||\n activeFilterErrors?.(notice) === false;\n\n if (isIgnorable) return false;\n\n const context = { errorClass: notice.name };\n\n const user = window.globalProps?.user?.email;\n if (user) context.user = user;\n\n const sessionReplay = getSessionReplayUrl();\n if (sessionReplay) context.sessionReplay = sessionReplay;\n\n attachContext(notice, context);\n\n return true;\n });\n }\n\n return Honeybadger.configure({\n apiKey: window.globalProps?.honeybadgerApiKey,\n environment: window.globalProps?.railsEnv,\n revision: window.globalProps?.honeybadgerRevision,\n developmentEnvironments: [\"development\", \"test\"],\n enableUncaught: true,\n async: true,\n breadcrumbsEnabled: true,\n projectRoot: \"\",\n enableUnhandledRejection: false,\n ...overrides,\n });\n}\n\nexport const setHoneybadgerErrorFilter = fn => {\n activeFilterErrors = fn;\n};\n"],"names":["activeFilterErrors","beforeNotifyRegistered","initializeHoneybadger","_window$globalProps2","_window$globalProps3","_window$globalProps4","overrides","arguments","length","undefined","Honeybadger","beforeNotify","notice","_activeFilterErrors","_window$globalProps","isIgnorable","IGNORABLE_ERRORS_REGEX","test","message","IGNORABLE_ERROR_NAMES_REGEX","name","IGNORABLE_STACKS_REGEX","stack","isNeetoReplaySecurityError","isAnonymousScriptError","context","errorClass","user","window","globalProps","email","sessionReplay","getSessionReplayUrl","attachContext","configure","_objectSpread","apiKey","honeybadgerApiKey","environment","railsEnv","revision","honeybadgerRevision","developmentEnvironments","enableUncaught","async","breadcrumbsEnabled","projectRoot","enableUnhandledRejection","setHoneybadgerErrorFilter","fn"],"mappings":"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"}
@@ -11,5 +11,21 @@ var isNeetoReplaySecurityError = function isNeetoReplaySecurityError(notice) {
11
11
  return notice.name === "SecurityError" && ((_notice$stack = notice.stack) === null || _notice$stack === void 0 ? void 0 : _notice$stack.includes("neeto-replay-widget"));
12
12
  };
13
13
 
14
- export { attachContext, getSessionReplayUrl, isNeetoReplaySecurityError };
14
+ // Errors whose every backtrace frame is <anonymous> come from code evaluated
15
+ // without a source URL, such as scripts that extensions inject into the page
16
+ // via chrome.scripting.executeScript with world: "MAIN" (e.g. Clipto.AI).
17
+ // Application code always ships as script files, and code it evals is
18
+ // attributed to the calling bundle, so no frame from our code is <anonymous>.
19
+ // Built-in frames like `Array.forEach (<anonymous>)` also have an <anonymous>
20
+ // file but no line number, so requiring one still reports stacks made only
21
+ // of built-ins.
22
+ // https://github.com/neetozone/neeto-record-web/issues/5161
23
+ var isAnonymousScriptError = function isAnonymousScriptError(notice) {
24
+ var _notice$backtrace;
25
+ return ((_notice$backtrace = notice.backtrace) === null || _notice$backtrace === void 0 ? void 0 : _notice$backtrace.length) > 0 && notice.backtrace.every(function (frame) {
26
+ return frame.file === "<anonymous>" && Boolean(frame.number);
27
+ });
28
+ };
29
+
30
+ export { attachContext, getSessionReplayUrl, isAnonymousScriptError, isNeetoReplaySecurityError };
15
31
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/initializers/honeybadger/utils.js"],"sourcesContent":["export const attachContext = (notice, context) => {\n if (notice.context) Object.assign(notice.context, context);\n else notice.context = context;\n};\n\nexport const getSessionReplayUrl = () => {\n const storage = sessionStorage.getItem(\"neeto-replay-widget--session\");\n const currentTimestamp = new Date().getTime();\n\n return storage ? `${JSON.parse(storage).url}?goto=${currentTimestamp}` : \"\";\n};\n\nexport const isNeetoReplaySecurityError = notice =>\n notice.name === \"SecurityError\" &&\n notice.stack?.includes(\"neeto-replay-widget\");\n"],"names":["attachContext","notice","context","Object","assign","getSessionReplayUrl","storage","sessionStorage","getItem","currentTimestamp","Date","getTime","concat","JSON","parse","url","isNeetoReplaySecurityError","_notice$stack","name","stack","includes"],"mappings":"AAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAM,EAAEC,OAAO,EAAK;EAChD,IAAID,MAAM,CAACC,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACH,MAAM,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,KACtDD,MAAM,CAACC,OAAO,GAAGA,OAAO;AAC/B;IAEaG,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AACvC,EAAA,IAAMC,OAAO,GAAGC,cAAc,CAACC,OAAO,CAAC,8BAA8B,CAAC;EACtE,IAAMC,gBAAgB,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;AAE7C,EAAA,OAAOL,OAAO,GAAA,EAAA,CAAAM,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACR,OAAO,CAAC,CAACS,GAAG,EAAA,QAAA,CAAA,CAAAH,MAAA,CAASH,gBAAgB,IAAK,EAAE;AAC7E;IAEaO,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGf,MAAM,EAAA;AAAA,EAAA,IAAAgB,aAAA;AAAA,EAAA,OAC9ChB,MAAM,CAACiB,IAAI,KAAK,eAAe,KAAA,CAAAD,aAAA,GAC/BhB,MAAM,CAACkB,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/initializers/honeybadger/utils.js"],"sourcesContent":["export const attachContext = (notice, context) => {\n if (notice.context) Object.assign(notice.context, context);\n else notice.context = context;\n};\n\nexport const getSessionReplayUrl = () => {\n const storage = sessionStorage.getItem(\"neeto-replay-widget--session\");\n const currentTimestamp = new Date().getTime();\n\n return storage ? `${JSON.parse(storage).url}?goto=${currentTimestamp}` : \"\";\n};\n\nexport const isNeetoReplaySecurityError = notice =>\n notice.name === \"SecurityError\" &&\n notice.stack?.includes(\"neeto-replay-widget\");\n\n// Errors whose every backtrace frame is <anonymous> come from code evaluated\n// without a source URL, such as scripts that extensions inject into the page\n// via chrome.scripting.executeScript with world: \"MAIN\" (e.g. Clipto.AI).\n// Application code always ships as script files, and code it evals is\n// attributed to the calling bundle, so no frame from our code is <anonymous>.\n// Built-in frames like `Array.forEach (<anonymous>)` also have an <anonymous>\n// file but no line number, so requiring one still reports stacks made only\n// of built-ins.\n// https://github.com/neetozone/neeto-record-web/issues/5161\nexport const isAnonymousScriptError = notice =>\n notice.backtrace?.length > 0 &&\n notice.backtrace.every(\n frame => frame.file === \"<anonymous>\" && Boolean(frame.number)\n );\n"],"names":["attachContext","notice","context","Object","assign","getSessionReplayUrl","storage","sessionStorage","getItem","currentTimestamp","Date","getTime","concat","JSON","parse","url","isNeetoReplaySecurityError","_notice$stack","name","stack","includes","isAnonymousScriptError","_notice$backtrace","backtrace","length","every","frame","file","Boolean","number"],"mappings":"AAAO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAM,EAAEC,OAAO,EAAK;EAChD,IAAID,MAAM,CAACC,OAAO,EAAEC,MAAM,CAACC,MAAM,CAACH,MAAM,CAACC,OAAO,EAAEA,OAAO,CAAC,CAAC,KACtDD,MAAM,CAACC,OAAO,GAAGA,OAAO;AAC/B;IAEaG,mBAAmB,GAAG,SAAtBA,mBAAmBA,GAAS;AACvC,EAAA,IAAMC,OAAO,GAAGC,cAAc,CAACC,OAAO,CAAC,8BAA8B,CAAC;EACtE,IAAMC,gBAAgB,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;AAE7C,EAAA,OAAOL,OAAO,GAAA,EAAA,CAAAM,MAAA,CAAMC,IAAI,CAACC,KAAK,CAACR,OAAO,CAAC,CAACS,GAAG,EAAA,QAAA,CAAA,CAAAH,MAAA,CAASH,gBAAgB,IAAK,EAAE;AAC7E;IAEaO,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGf,MAAM,EAAA;AAAA,EAAA,IAAAgB,aAAA;AAAA,EAAA,OAC9ChB,MAAM,CAACiB,IAAI,KAAK,eAAe,KAAA,CAAAD,aAAA,GAC/BhB,MAAM,CAACkB,KAAK,MAAA,IAAA,IAAAF,aAAA,KAAA,MAAA,GAAA,MAAA,GAAZA,aAAA,CAAcG,QAAQ,CAAC,qBAAqB,CAAC,CAAA;AAAA;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACaC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAGpB,MAAM,EAAA;AAAA,EAAA,IAAAqB,iBAAA;EAAA,OAC1C,CAAA,CAAAA,iBAAA,GAAArB,MAAM,CAACsB,SAAS,MAAA,IAAA,IAAAD,iBAAA,KAAA,MAAA,GAAA,MAAA,GAAhBA,iBAAA,CAAkBE,MAAM,IAAG,CAAC,IAC5BvB,MAAM,CAACsB,SAAS,CAACE,KAAK,CACpB,UAAAC,KAAK,EAAA;IAAA,OAAIA,KAAK,CAACC,IAAI,KAAK,aAAa,IAAIC,OAAO,CAACF,KAAK,CAACG,MAAM,CAAC;AAAA,EAAA,CAChE,CAAC;AAAA;;;;"}
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "فشل في النسخ إلى الحافظة"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "تاريخ غير معروف",
112
+ "today": "اليوم",
113
+ "yesterday": "أمس"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Неуспешно копиране в клипборда"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Неизвестна дата",
112
+ "today": "Днес",
113
+ "yesterday": "Вчера"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "No s'ha pogut copiar al porta-retalls"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Data desconeguda",
112
+ "today": "Avui",
113
+ "yesterday": "Ahir"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Nepodařilo se zkopírovat do schránky"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Neznámé datum",
112
+ "today": "Dnes",
113
+ "yesterday": "Včera"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Kopiering til udklipsholderen mislykkedes"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Ukendt dato",
112
+ "today": "I dag",
113
+ "yesterday": "I går"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Das Kopieren in die Zwischenablage ist fehlgeschlagen."
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Unbekanntes Datum",
112
+ "today": "Heute",
113
+ "yesterday": "Gestern"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "No se pudo copiar al portapapeles"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Fecha desconocida",
112
+ "today": "Hoy",
113
+ "yesterday": "Ayer"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "No se pudo copiar al portapapeles"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Fecha desconocida",
112
+ "today": "Hoy",
113
+ "yesterday": "Ayer"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Lõikelauale kopeerimine ebaõnnestus."
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Tundmatu kuupäev",
112
+ "today": "Täna",
113
+ "yesterday": "Eile"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Leikepöydälle kopioiminen epäonnistui"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Tuntematon päivämäärä",
112
+ "today": "Tänään",
113
+ "yesterday": "Eilen"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Nabigong kopyahin sa clipboard"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Hindi alam na petsa",
112
+ "today": "Ngayon",
113
+ "yesterday": "Kahapon"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Échec de la copie dans le presse-papiers"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Date inconnue",
112
+ "today": "Aujourd'hui",
113
+ "yesterday": "Hier"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "כישלון בהעתקה ללוח"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "תאריך לא ידוע",
112
+ "today": "היום",
113
+ "yesterday": "אתמול"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "क्लिपबोर्ड में कॉपी करने में विफल"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "अनजान तारीख",
112
+ "today": "आज",
113
+ "yesterday": "कल"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Nije uspjelo kopirati u međuspremnik"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Nepoznati datum",
112
+ "today": "Danas",
113
+ "yesterday": "Jučer"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "A vágólapra másolás nem sikerült"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Ismeretlen dátum",
112
+ "today": "Ma",
113
+ "yesterday": "Tegnap"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Gagal menyalin ke clipboard"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Tanggal tidak dikenal",
112
+ "today": "Hari ini",
113
+ "yesterday": "Kemarin"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Impossibile copiare negli appunti"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Data sconosciuta",
112
+ "today": "Oggi",
113
+ "yesterday": "Ieri"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "クリップボードへのコピーに失敗しました"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "不明な日付",
112
+ "today": "今日",
113
+ "yesterday": "昨日"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "클립보드에 복사하는 데 실패했습니다."
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "알 수 없는 날짜",
112
+ "today": "오늘",
113
+ "yesterday": "어제"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Neizdevās kopēt uz starpliktuvi."
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Nezināma datums",
112
+ "today": "Šodien",
113
+ "yesterday": "Vakar"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Kopiëren naar klembord is mislukt."
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Onbekende datum",
112
+ "today": "Vandaag",
113
+ "yesterday": "Gisteren"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Nie udało się skopiować do schowka"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Nieznana data",
112
+ "today": "Dziś",
113
+ "yesterday": "Wczoraj"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Falha ao copiar para a área de transferência"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Data desconhecida",
112
+ "today": "Hoje",
113
+ "yesterday": "Ontem"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Falha ao copiar para a área de transferência"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Data desconhecida",
112
+ "today": "Hoje",
113
+ "yesterday": "Ontem"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Nu s-a reușit copierea în clipboard"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Dată necunoscută",
112
+ "today": "Astăzi",
113
+ "yesterday": "Ieri"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Не удалось скопировать в буфер обмена"
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Неизвестная дата",
112
+ "today": "Сегодня",
113
+ "yesterday": "Вчера"
109
114
  }
110
115
  }
111
116
  }
@@ -106,6 +106,11 @@
106
106
  },
107
107
  "copyToClipboard": {
108
108
  "failed": "Nepodarilo sa skopírovať do schránky."
109
+ },
110
+ "globalSearch": {
111
+ "unknownDate": "Neznámy dátum",
112
+ "today": "Dnes",
113
+ "yesterday": "Včera"
109
114
  }
110
115
  }
111
116
  }