logster 2.9.3 → 2.9.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7de00b1dd1b414f3a589e3775c0f21cbc1b93902370b2d4ab60fc837cfe5f6b2
4
- data.tar.gz: c48939f729a45ccbe5ba61f11b7e0375f59d30dca469e9067eeeccc1eedaeee5
3
+ metadata.gz: d9d6c7cc98a47f68d74d25ae8773f30b94958b8fa819e5c57e505ef89ad070e3
4
+ data.tar.gz: 7ccedd348aea7ff1e64461e5482cf0f5522913ea0f14f9df8d47f5106dbb071c
5
5
  SHA512:
6
- metadata.gz: 01e9a444878311565c0e2acc9cd711d7e4c56080d109855a729faa35ed7bba1f33263e19e84e5a07d65070ca2cc20e727af6d4b8ed68d14a8e65d7a81888804a
7
- data.tar.gz: bee2fa32126d20f4e7f4a515633c2094c989c58699c09ef282c668517acba7a57ef81e30074327743c7ffda1b36a55cb4201a591916c087c6f3885aab6275f0c
6
+ metadata.gz: efb91b85854b7cd7d5db010a7f079d4cf26ec21d6e7de8a09837e78ac2f213c4691a2478ae9f15dc94eab6fae6c9876e1c1d73a9ff3e9167c9840e26bba98f5e
7
+ data.tar.gz: 327df331e58de16eb76519b23aae53bc934486a5ecde2026b083bf885944c26df590ceaf189810f274ab53627471b1bfe69f5466a9e6d5b8eaed2eba482d6ffd
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ - 2020-09-01: 2.9.4
4
+
5
+ - FEATURE: Merge messages differing only by numbers (#118)
6
+ - DEV: Bump dependencies
7
+ - UX: Turn severities below `Error` off by default and remember changes using localStorage (#125)
8
+
3
9
  - 2020-08-20: 2.9.3
4
10
 
5
11
  - FIX: fix code that causes warning from recent redis gem
@@ -1,5 +1,5 @@
1
1
  "use strict"
2
- define("client-app/app",["exports","client-app/resolver","ember-load-initializers","client-app/config/environment"],(function(e,t,n,r){function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){return(s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function i(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1
2
+ define("client-app/app",["exports","client-app/resolver","ember-load-initializers","client-app/config/environment"],(function(e,t,n,r){function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1
3
3
  if(Reflect.construct.sham)return!1
4
4
  if("function"==typeof Proxy)return!0
5
5
  try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}()
@@ -9,38 +9,38 @@ n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments)
9
9
  return l(this,n)}}function l(e,t){return!t||"object"!==a(t)&&"function"!=typeof t?u(e):t}function u(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
10
10
  return e}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11
11
  var p=function(e){(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function")
12
- e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)})(a,Ember.Application)
13
- var n=i(a)
12
+ e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&i(e,t)})(a,Ember.Application)
13
+ var n=s(a)
14
14
  function a(){var e
15
15
  o(this,a)
16
- for(var s=arguments.length,i=new Array(s),l=0;l<s;l++)i[l]=arguments[l]
17
- return d(u(e=n.call.apply(n,[this].concat(i))),"modulePrefix",r.default.modulePrefix),d(u(e),"podModulePrefix",r.default.podModulePrefix),d(u(e),"Resolver",t.default),e}return a}()
16
+ for(var i=arguments.length,s=new Array(i),l=0;l<i;l++)s[l]=arguments[l]
17
+ return d(u(e=n.call.apply(n,[this].concat(s))),"modulePrefix",r.default.modulePrefix),d(u(e),"podModulePrefix",r.default.podModulePrefix),d(u(e),"Resolver",t.default),e}return a}()
18
18
  e.default=p,(0,n.default)(p,r.default.modulePrefix)})),define("client-app/component-managers/glimmer",["exports","@glimmer/component/-private/ember-component-manager"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("client-app/components/actions-menu",["exports","client-app/lib/decorators"],(function(e,t){var n
19
19
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
20
- var r,a,o,s,i,l,u=Ember.Component.extend((r=n={showMenu:!1,tagName:"span",outsideClickHandler:function(e){this.element&&!this.element.contains(e.target)&&this.element!==e.target&&(this.set("showMenu",!1),this.updateMenu())},updateMenu:function(){this.showMenu?this.addOutsideClickHandler():this.removeOutsideClickHandler()},addOutsideClickHandler:function(){document.addEventListener("click",this.outsideClickHandler)},removeOutsideClickHandler:function(){document.removeEventListener("click",this.outsideClickHandler)},willDestroyElement:function(){this._super.apply(this,arguments),this.removeOutsideClickHandler()},actions:{expandMenu:function(){this.toggleProperty("showMenu"),this.updateMenu()},share:function(){this.share()}}},a="outsideClickHandler",o=[t.bound],s=Object.getOwnPropertyDescriptor(n,"outsideClickHandler"),i=n,l={},Object.keys(s).forEach((function(e){l[e]=s[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=o.slice().reverse().reduce((function(e,t){return t(r,a,e)||e}),l),i&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(i):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(r,a,l),l=null),n))
20
+ var r,a,o,i,s,l,u=Ember.Component.extend((r=n={showMenu:!1,tagName:"span",outsideClickHandler:function(e){this.element&&!this.element.contains(e.target)&&this.element!==e.target&&(this.set("showMenu",!1),this.updateMenu())},updateMenu:function(){this.showMenu?this.addOutsideClickHandler():this.removeOutsideClickHandler()},addOutsideClickHandler:function(){document.addEventListener("click",this.outsideClickHandler)},removeOutsideClickHandler:function(){document.removeEventListener("click",this.outsideClickHandler)},willDestroyElement:function(){this._super.apply(this,arguments),this.removeOutsideClickHandler()},actions:{expandMenu:function(){this.toggleProperty("showMenu"),this.updateMenu()},share:function(){this.share()}}},a="outsideClickHandler",o=[t.bound],i=Object.getOwnPropertyDescriptor(n,"outsideClickHandler"),s=n,l={},Object.keys(i).forEach((function(e){l[e]=i[e]})),l.enumerable=!!l.enumerable,l.configurable=!!l.configurable,("value"in l||l.initializer)&&(l.writable=!0),l=o.slice().reverse().reduce((function(e,t){return t(r,a,e)||e}),l),s&&void 0!==l.initializer&&(l.value=l.initializer?l.initializer.call(s):void 0,l.initializer=void 0),void 0===l.initializer&&(Object.defineProperty(r,a,l),l=null),n))
21
21
  e.default=u})),define("client-app/components/back-trace",["exports","client-app/lib/preload"],(function(e,t){function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return
22
22
  var n=[],r=!0,a=!1,o=void 0
23
- try{for(var s,i=e[Symbol.iterator]();!(r=(s=i.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(l){a=!0,o=l}finally{try{r||null==i.return||i.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return
23
+ try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(l){a=!0,o=l}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}(e,t)||function(e,t){if(!e)return
24
24
  if("string"==typeof e)return r(e,t)
25
25
  var n=Object.prototype.toString.call(e).slice(8,-1)
26
26
  "Object"===n&&e.constructor&&(n=e.constructor.name)
27
27
  if("Map"===n||"Set"===n)return Array.from(e)
28
28
  if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,t){(null==t||t>e.length)&&(t=e.length)
29
29
  for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n]
30
- return r}function a(e,t){return!(!e||!t||t.length>e.length)&&e.substring(0,t.length)===t}function o(){return t.default.get("backtrace_links_enabled")}function s(e){return e&&"/"!==e[e.length-1]?e+"/":e}function i(e){var t=e.repo,n=e.path,r=e.filename,a=e.lineNumber,o=e.commitSha,i=void 0===o?null:o,l=s(t)
31
- return/\/tree\//.test(l)||(l+="blob/",l+=i?"".concat(i,"/"):"master/"),l+=n+r,/^[0-9]+$/.test(a)&&(l+="#L".concat(a)),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
30
+ return r}function a(e,t){return!(!e||!t||t.length>e.length)&&e.substring(0,t.length)===t}function o(){return t.default.get("backtrace_links_enabled")}function i(e){return e&&"/"!==e[e.length-1]?e+"/":e}function s(e){var t=e.repo,n=e.path,r=e.filename,a=e.lineNumber,o=e.commitSha,s=void 0===o?null:o,l=i(t)
31
+ return/\/tree\//.test(l)||(l+="blob/",l+=s?"".concat(s,"/"):"master/"),l+=n+r,/^[0-9]+$/.test(a)&&(l+="#L".concat(a)),l}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
32
32
  var l=Ember.Component.extend({GithubURLForGem:function(e){var r=null
33
33
  if(!o())return r
34
- var s=n(e.match(/([^/]+)\/(.+\/)(.+):(\d+):.*/)||[],5),l=s[1],u=s[2],c=s[3],d=s[4],p=t.default.get("gems_data").filter((function(e){return a(l,"".concat(e.name,"-"))})).sortBy("name.length").reverse()[0]
35
- return p&&(r=i({repo:p.url,path:u,filename:c,lineNumber:d})),r},GithubURLForApp:function(e){var r=null
34
+ var i=n(e.match(/([^/]+)\/(.+\/)(.+):(\d+):.*/)||[],5),l=i[1],u=i[2],c=i[3],d=i[4],p=t.default.get("gems_data").filter((function(e){return a(l,"".concat(e.name,"-"))})).sortBy("name.length").reverse()[0]
35
+ return p&&(r=s({repo:p.url,path:u,filename:c,lineNumber:d})),r},GithubURLForApp:function(e){var r=null
36
36
  if(!o())return r
37
37
  var l=t.default.get("directories").filter((function(t){return a(e,t.path)})).sortBy("path.length").reverse()[0]
38
- if(l){var u,c,d,p=s(l.path),f=e.substring(p.length),m="",h=-1!==f.indexOf("/"),v=h?/(.+\/)(.+):(\d+)(:.*)/:/(.+):(\d+)(:.*)/
38
+ if(l){var u,c,d,p=i(l.path),f=e.substring(p.length),m="",h=-1!==f.indexOf("/"),v=h?/(.+\/)(.+):(\d+)(:.*)/:/(.+):(\d+)(:.*)/
39
39
  if(h){var b=n(f.match(v)||[],5)
40
40
  m=b[1],u=b[2],c=b[3],d=b[4]}else{var g=n(f.match(v)||[],4)
41
41
  u=g[1],c=g[2],d=g[3]}if(u&&c&&d){var y=l.main_app?this.commitSha:null
42
- r=i({repo:l.url,path:m,filename:u,lineNumber:c,commitSha:y})}}return r},findGithubURL:function(e,n){var r=t.default.get("directories")||[],o=a(e,t.default.get("gems_dir")),s=r.some((function(t){return a(e,t.path)}))
43
- return o||!s?this.GithubURLForGem(n):this.GithubURLForApp(e)},commitSha:Ember.computed("env",(function(){var e=null
42
+ r=s({repo:l.url,path:m,filename:u,lineNumber:c,commitSha:y})}}return r},findGithubURL:function(e,n){var r=t.default.get("directories")||[],o=a(e,t.default.get("gems_dir")),i=r.some((function(t){return a(e,t.path)}))
43
+ return o||!i?this.GithubURLForGem(n):this.GithubURLForApp(e)},commitSha:Ember.computed("env",(function(){var e=null
44
44
  return Array.isArray(this.env)?e=this.env.map((function(e){return e.application_version})).filter((function(e){return e}))[0]:this.env&&(e=this.env.application_version),e||t.default.get("application_version")})),lines:Ember.computed("backtrace","commitSha",(function(){var e=this
45
45
  return this.backtrace&&0!==this.backtrace.length?this.backtrace.split("\n").map((function(n){var r=function(e){if(a(e,t.default.get("gems_dir"))){var n=t.default.get("gems_dir")
46
46
  return e.substring(n.length)}return e}(n)
@@ -70,16 +70,16 @@ this.navigate(t)}}})
70
70
  e.default=t})),define("client-app/components/panel-resizer",["exports","client-app/lib/decorators"],(function(e,t){var n
71
71
  function r(e,t,n,r,a){var o={}
72
72
  return Object.keys(r).forEach((function(e){o[e]=r[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),o),a&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(a):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
73
- var a=["touchmove","mousemove"],o=["touchend","mouseup"],s=["touchstart","mousedown"],i=Ember.Component.extend((r(n={resizing:!1,classNames:["divider"],divideView:function(e){var t=window.innerHeight,n=t-e
73
+ var a=["touchmove","mousemove"],o=["touchend","mouseup"],i=["touchstart","mousedown"],s=Ember.Component.extend((r(n={resizing:!1,classNames:["divider"],divideView:function(e){var t=window.innerHeight,n=t-e
74
74
  e<100||e+170>t||(this.divider.style.bottom="".concat(n-5,"px"),this.events.trigger("panelResized",n))},performDrag:function(e){Ember.run.throttle(this,this.throttledPerformDrag,e,25)},throttledPerformDrag:function(e){this.resizing&&this.divideView(e.clientY||e.touches&&e.touches[0]&&e.touches[0].clientY)},endDrag:function(){var e=this,t=document.getElementById("overlay")
75
75
  t&&t.parentElement.removeChild(t),this.set("resizing",!1),localStorage&&(localStorage.logster_divider_bottom=parseInt(this.divider.style.bottom,10)),a.forEach((function(t){return document.removeEventListener(t,e.performDrag)})),o.forEach((function(t){return document.removeEventListener(t,e.endDrag)}))},dividerClickHandler:function(e){var t=this
76
76
  e.preventDefault()
77
77
  var n=document.createElement("DIV")
78
78
  n.id="overlay",document.body.appendChild(n),this.set("resizing",!0),a.forEach((function(e){return document.addEventListener(e,t.performDrag)})),o.forEach((function(e){return document.addEventListener(e,t.endDrag)}))},didInsertElement:function(){var e=this
79
- this.set("divider",document.querySelector(".divider")),s.forEach((function(t){e.divider.addEventListener(t,e.dividerClickHandler)})),Ember.run.scheduleOnce("afterRender",this,"initialDivideView")},initialDivideView:function(){var e=localStorage&&localStorage.logster_divider_bottom||300,t=window.innerHeight-parseInt(e,10)
79
+ this.set("divider",document.querySelector(".divider")),i.forEach((function(t){e.divider.addEventListener(t,e.dividerClickHandler)})),Ember.run.scheduleOnce("afterRender",this,"initialDivideView")},initialDivideView:function(){var e=localStorage&&localStorage.logster_divider_bottom||300,t=window.innerHeight-parseInt(e,10)
80
80
  this.divideView(t)},willDestroyElement:function(){var e=this
81
- s.forEach((function(t){return e.divider.removeEventListener(t,e.dividerClickHandler)}))}},"performDrag",[t.bound],Object.getOwnPropertyDescriptor(n,"performDrag"),n),r(n,"endDrag",[t.bound],Object.getOwnPropertyDescriptor(n,"endDrag"),n),r(n,"dividerClickHandler",[t.bound],Object.getOwnPropertyDescriptor(n,"dividerClickHandler"),n),n))
82
- e.default=i})),define("client-app/components/patterns-list",["exports","client-app/models/pattern-item","client-app/lib/utilities"],(function(e,t,n){function r(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return
81
+ i.forEach((function(t){return e.divider.removeEventListener(t,e.dividerClickHandler)}))}},"performDrag",[t.bound],Object.getOwnPropertyDescriptor(n,"performDrag"),n),r(n,"endDrag",[t.bound],Object.getOwnPropertyDescriptor(n,"endDrag"),n),r(n,"dividerClickHandler",[t.bound],Object.getOwnPropertyDescriptor(n,"dividerClickHandler"),n),n))
82
+ e.default=s})),define("client-app/components/patterns-list",["exports","client-app/models/pattern-item","client-app/lib/utilities"],(function(e,t,n){function r(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return
83
83
  if("string"==typeof e)return a(e,t)
84
84
  var n=Object.prototype.toString.call(e).slice(8,-1)
85
85
  "Object"===n&&e.constructor&&(n=e.constructor.name)
@@ -107,20 +107,19 @@ var n=Ember.Component.extend({didInsertElement:function(){Ember.run.later(this,t
107
107
  if(n){var r=(0,t.formatTime)(n)
108
108
  r!==e.innerText&&(e.innerText=r)}})),Ember.run.later(this,this.updateTimes,6e4)}})
109
109
  e.default=n})),define("client-app/controllers/index",["exports","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
110
- var r=Ember.Controller.extend({showDebug:!0,showInfo:!0,showWarn:!0,showErr:!0,showFatal:!0,search:"",queryParams:["search"],showSettings:Ember.computed((function(){return n.default.get("patterns_enabled")})),resizePanels:function(e){var t=document.getElementById("bottom-panel"),n=document.getElementById("top-panel")
110
+ var r=Ember.Controller.extend({showDebug:(0,t.getLocalStorage)("showDebug",!1),showInfo:(0,t.getLocalStorage)("showInfo",!1),showWarn:(0,t.getLocalStorage)("showWarn",!1),showErr:(0,t.getLocalStorage)("showErr",!0),showFatal:(0,t.getLocalStorage)("showFatal",!0),search:"",queryParams:["search"],showSettings:Ember.computed((function(){return n.default.get("patterns_enabled")})),resizePanels:function(e){var t=document.getElementById("bottom-panel"),n=document.getElementById("top-panel")
111
111
  t.style.height="".concat(e-13,"px"),n.style.bottom="".concat(e+12,"px")},actionsInMenu:Ember.computed((function(){return this.site.isMobile})),actions:{expandMessage:function(e){e.expand()},selectRowAction:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}
112
112
  this.model.selectRow(e,t)},tabChangedAction:function(e){this.model.tabChanged(e)},showMoreBefore:function(){this.model.showMoreBefore()},loadMore:function(){return this.model.loadMore()},clear:function(){var e=this
113
113
  confirm("Clear the logs?\n\nCancel = No, OK = Clear")&&(0,t.ajax)("/clear",{type:"POST"}).then((function(){e.model.reload()}))},removeMessage:function(e){var t=this.model.currentRow.group?this.model.currentRow:null,n=this.model.rows,r=t?n.indexOf(t):n.indexOf(e)
114
114
  e.destroy(),e.set("selected",!1),this.model.set("total",this.model.total-1)
115
115
  var a=!1,o=0
116
- t?(o=t.messages.indexOf(e),t.messages.removeObject(e),o=Math.min(o,t.messages.length-1),0===t.messages.length&&(n.removeObject(t),a=!0)):(n.removeObject(e),a=!0),a?r>0?this.model.selectRow(n[r-1]):this.model.total>0?this.model.selectRow(n[0]):this.model.reload():t&&this.model.selectRow(n[r],{messageIndex:o})},solveMessage:function(e){this.model.solve(e)},groupedMessageChangedAction:function(e){this.model.groupedMessageChanged(e)},envChangedAction:function(e){this.model.envChanged(e)},updateFilter:function(e){var t=this
117
- this.toggleProperty(e)
118
- var n=[];["Debug","Info","Warn","Err","Fatal"].forEach((function(e,r){t.get("show".concat(e))&&n.push(r)})),n.push(5),this.model.set("filter",n),this.model.reload().then((function(){return t.model.updateSelectedRow()}))},updateSearch:function(e){e!==this.search&&(e&&1===e.length||Ember.run.debounce(this,this.doSearch,e,250))}},doSearch:function(e){var t=this
116
+ t?(o=t.messages.indexOf(e),t.messages.removeObject(e),o=Math.min(o,t.messages.length-1),0===t.messages.length&&(n.removeObject(t),a=!0)):(n.removeObject(e),a=!0),a?r>0?this.model.selectRow(n[r-1]):this.model.total>0?this.model.selectRow(n[0]):this.model.reload():t&&this.model.selectRow(n[r],{messageIndex:o})},solveMessage:function(e){this.model.solve(e)},groupedMessageChangedAction:function(e){this.model.groupedMessageChanged(e)},envChangedAction:function(e){this.model.envChanged(e)},updateFilter:function(e){var n=this
117
+ this.toggleProperty(e),this.model.set(e,this[e]),(0,t.setLocalStorage)(e,this[e]),this.model.reload().then((function(){return n.model.updateSelectedRow()}))},updateSearch:function(e){e!==this.search&&(e&&1===e.length||Ember.run.debounce(this,this.doSearch,e,250))}},doSearch:function(e){var t=this
119
118
  this.model.set("search",e),this.model.reload().then((function(){return t.model.updateSelectedRow()}))}})
120
119
  e.default=r})),define("client-app/controllers/show",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
121
120
  var t=Ember.Controller.extend({envPosition:0,actions:{protect:function(){this.get("model").protect()},unprotect:function(){this.get("model").unprotect()},envChanged:function(e){this.set("envPosition",e)}}})
122
- e.default=t})),define("client-app/helpers/app-version",["exports","client-app/config/environment","ember-cli-app-version/utils/regexp"],(function(e,t,n){function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.default.APP.version,o=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,i=null
123
- return o&&(r.showExtended&&(i=a.match(n.versionExtendedRegExp)),i||(i=a.match(n.versionRegExp))),s&&(i=a.match(n.shaRegExp)),i?i[0]:a}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
121
+ e.default=t})),define("client-app/helpers/app-version",["exports","client-app/config/environment","ember-cli-app-version/utils/regexp"],(function(e,t,n){function r(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=t.default.APP.version,o=r.versionOnly||r.hideSha,i=r.shaOnly||r.hideVersion,s=null
122
+ return o&&(r.showExtended&&(s=a.match(n.versionExtendedRegExp)),s||(s=a.match(n.versionRegExp))),i&&(s=a.match(n.shaRegExp)),s?s[0]:a}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
124
123
  var a=Ember.Helper.helper(r)
125
124
  e.default=a})),define("client-app/helpers/logster-url",["exports","client-app/lib/preload"],(function(e,t){function n(e){var n=e[0]
126
125
  return"/"!==n[0]&&(n="/".concat(n)),(0,t.getRootPath)()+n}Object.defineProperty(e,"__esModule",{value:!0}),e.logsterUrl=n,e.default=void 0
@@ -129,10 +128,10 @@ e.default=r})),define("client-app/helpers/or",["exports"],(function(e){function
129
128
  var n=Ember.Helper.helper(t)
130
129
  e.default=n})),define("client-app/initializers/app-init",["exports","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.initialize=a,e.default=void 0
131
130
  var r=["component","route"]
132
- function a(e){var a,o,s=e.resolveRegistration("config:environment");(0,n.setRootPath)(s.rootURL.replace(/\/$/,"")),"development"===s.environment&&(e.deferReadiness(),(0,t.ajax)("/development-preload.json").then((function(e){document.getElementById("preloaded-data").setAttribute("data-preloaded",JSON.stringify(e))})).catch((function(e){return console.error("Fetching preload data failed.",e)})).finally((function(){return e.advanceReadiness()}))),moment.updateLocale("en",{relativeTime:{future:"in %s",past:"%s ago",s:"secs",m:"a min",mm:"%d mins",h:"an hr",hh:"%d hrs",d:"a day",dd:"%d days",M:"a mth",MM:"%d mths",y:"a yr",yy:"%d yrs"}}),["","webkit","ms","moz","ms"].forEach((function(e){var t=e+(""===e?"hidden":"Hidden")
131
+ function a(e){var a,o,i=e.resolveRegistration("config:environment");(0,n.setRootPath)(i.rootURL.replace(/\/$/,"")),"development"===i.environment&&(e.deferReadiness(),(0,t.ajax)("/development-preload.json").then((function(e){document.getElementById("preloaded-data").setAttribute("data-preloaded",JSON.stringify(e))})).catch((function(e){return console.error("Fetching preload data failed.",e)})).finally((function(){return e.advanceReadiness()}))),moment.updateLocale("en",{relativeTime:{future:"in %s",past:"%s ago",s:"secs",m:"a min",mm:"%d mins",h:"an hr",hh:"%d hrs",d:"a day",dd:"%d days",M:"a mth",MM:"%d mths",y:"a yr",yy:"%d yrs"}}),["","webkit","ms","moz","ms"].forEach((function(e){var t=e+(""===e?"hidden":"Hidden")
133
132
  void 0===document[t]||a||(a=t,o=e+"visibilitychange")})),(0,t.updateHiddenProperty)(a),document.addEventListener(o,(function(){(0,t.resetTitleCount)()}),!1),e.register("events:main",Ember.Object.extend(Ember.Evented).create(),{instantiate:!1}),r.forEach((function(t){return e.inject(t,"events","events:main")}))
134
- var i=/mobile/i.test(navigator.userAgent)&&!/iPad/.test(navigator.userAgent)
135
- i&&document.body.classList.add("mobile"),e.register("site:main",{isMobile:i},{instantiate:!1}),e.inject("controller","site","site:main")}var o={initialize:a}
133
+ var s=/mobile/i.test(navigator.userAgent)&&!/iPad/.test(navigator.userAgent)
134
+ s&&document.body.classList.add("mobile"),e.register("site:main",{isMobile:s},{instantiate:!1}),e.inject("controller","site","site:main")}var o={initialize:a}
136
135
  e.default=o})),define("client-app/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","client-app/config/environment"],(function(e,t,n){var r,a
137
136
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,a=n.default.APP.version)
138
137
  var o={name:"App Version",initialize:(0,t.default)(r,a)}
@@ -152,35 +151,44 @@ return{get:function(){return this[a]?this[a]:(this.set(a,r.bind(this)),this[a])}
152
151
  Em.set(n,e,t)},e.uninitialize=function(){r=!1},e.default=void 0
153
152
  var t,n={},r=!1
154
153
  function a(){var e=document.getElementById("preloaded-data").dataset;(n=JSON.parse(e.preloaded)).rootPath=t,r=!0}var o={get:function(e){return r||a(),Em.get(n,e)}}
155
- e.default=o})),define("client-app/lib/utilities",["exports","client-app/lib/preload"],(function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.escapeHtml=i,e.ajax=l,e.preloadOrAjax=function(e,n){var r=t.default.get(e.replace(".json",""))
154
+ e.default=o})),define("client-app/lib/utilities",["exports","client-app/lib/preload"],(function(e,t){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.escapeHtml=s,e.ajax=l,e.preloadOrAjax=function(e,n){var r=t.default.get(e.replace(".json",""))
156
155
  return r?Ember.RSVP.resolve(r):l(e,n)},e.updateHiddenProperty=function(e){r=e},e.isHidden=u,e.increaseTitleCount=function(e){if(!u())return
157
156
  a=a||document.title,o=o||0,o+=e,document.title="".concat(a," (").concat(o,")")},e.resetTitleCount=function(){o=0,document.title=a||document.title},e.formatTime=c,e.buildArrayString=d,e.buildHashString=function e(r,a){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[]
158
157
  if(!r)return""
159
- var s=[],l=[],u=t.default.get("env_expandable_keys")||[]
158
+ var i=[],l=[],u=t.default.get("env_expandable_keys")||[]
160
159
  Object.keys(r).forEach((function(e){var t=r[e]
161
- if(null===t)s.push("null")
160
+ if(null===t)i.push("null")
162
161
  else if("[object Array]"===Object.prototype.toString.call(t)){var p=""
163
- p=-1!==u.indexOf(e)&&!a&&-1===o.indexOf(e)&&t.length>3?"".concat(i(t[0]),', <a class="expand-list" data-key=').concat(e,">").concat(t.length-1," more</a>"):"".concat(i(t[0]),", ").concat(d(t.slice(1,t.length))),s.push("<tr><td>".concat(i(e),"</td><td>").concat(p,"</td></tr>"))}else if("object"===n(t))l.push(e)
162
+ p=-1!==u.indexOf(e)&&!a&&-1===o.indexOf(e)&&t.length>3?"".concat(s(t[0]),', <a class="expand-list" data-key=').concat(e,">").concat(t.length-1," more</a>"):"".concat(s(t[0]),", ").concat(d(t.slice(1,t.length))),i.push("<tr><td>".concat(s(e),"</td><td>").concat(p,"</td></tr>"))}else if("object"===n(t))l.push(e)
164
163
  else if("time"===e&&"number"==typeof t){var f=moment(t).format(),m=c(t)
165
- s.push('<tr title="'.concat(f,'"><td>').concat(e,"</td><td>").concat(m,"</td></tr>"))}else s.push("<tr><td>".concat(i(e),"</td><td>").concat(i(t),"</td></tr>"))})),l.length>0&&l.forEach((function(t){var n=r[t]
166
- s.push("<tr><td></td><td><table>"),s.push("<td>".concat(i(t),"</td><td>").concat(e(n,!0),"</td>")),s.push("</table></td></tr>")}))
164
+ i.push('<tr title="'.concat(f,'"><td>').concat(e,"</td><td>").concat(m,"</td></tr>"))}else i.push("<tr><td>".concat(s(e),"</td><td>").concat(s(t),"</td></tr>"))})),l.length>0&&l.forEach((function(t){var n=r[t]
165
+ i.push("<tr><td></td><td><table>"),i.push("<td>".concat(s(t),"</td><td>").concat(e(n,!0),"</td>")),i.push("</table></td></tr>")}))
167
166
  var p=a?"":"env-table"
168
- return"<table class='".concat(p,"'>").concat(s.join("\n"),"</table>")},e.clone=function(e){var t={}
169
- return Object.keys(e).forEach((function(n){t[n]=e[n]})),t}
170
- var r,a,o,s={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"}
171
- function i(e){return String(e).replace(/[&<>"'/]/g,(function(e){return s[e]}))}function l(e,n){return new Ember.RSVP.Promise((function(r,a){n=n||{}
167
+ return"<table class='".concat(p,"'>").concat(i.join("\n"),"</table>")},e.clone=function(e){var t={}
168
+ return Object.keys(e).forEach((function(n){t[n]=e[n]})),t},e.setLocalStorage=function(e,t){try{window.localStorage&&(e="logster-"+e,window.localStorage.setItem(e,t))}catch(n){}},e.getLocalStorage=function(e,t){try{if(window.localStorage){e="logster-"+e
169
+ var n=window.localStorage.getItem(e)
170
+ return null===n?t:"true"===n||"false"!==n&&n}return t}catch(r){return t}}
171
+ var r,a,o,i={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"}
172
+ function s(e){return String(e).replace(/[&<>"'/]/g,(function(e){return i[e]}))}function l(e,n){return new Ember.RSVP.Promise((function(r,a){n=n||{}
172
173
  var o=new XMLHttpRequest
173
- if(e=(0,t.getRootPath)()+e,n.data)for(var s in n.data){var i=-1===e.indexOf("?")?"?":"&"
174
- e+=i,e+="".concat(s,"=").concat(encodeURIComponent(n.data[s]))}if(o.open(n.method||n.type||"GET",e),o.setRequestHeader("X-SILENCE-LOGGER",!0),n.headers)for(var l in n.headers)o.setRequestHeader(l,n.headers[l])
174
+ if(e=(0,t.getRootPath)()+e,n.data)for(var i in n.data){var s=-1===e.indexOf("?")?"?":"&"
175
+ e+=s,e+="".concat(i,"=").concat(encodeURIComponent(n.data[i]))}if(o.open(n.method||n.type||"GET",e),o.setRequestHeader("X-SILENCE-LOGGER",!0),n.headers)for(var l in n.headers)o.setRequestHeader(l,n.headers[l])
175
176
  o.onreadystatechange=function(){if(4===o.readyState){var e=o.status
176
177
  if(e>=200&&e<300||304===e){var t=o.getResponseHeader("Content-Type"),n=o.responseText;/\bjson\b/.test(t)&&(n=JSON.parse(n)),r(n)}else a(o)}},o.send()}))}function u(){return void 0!==r?document[r]:!document.hasFocus}function c(e){var t=moment(e),n=moment()
177
178
  return t.diff(n.startOf("day"))>0?t.format("h:mm a"):t.diff(n.startOf("week"))>0?t.format("dd h:mm a"):t.diff(n.startOf("year"))>0?t.format("D MMM h:mm a"):t.format("D MMM YY")}function d(e){var t=[]
178
- return e.forEach((function(e){null===e?t.push("null"):"[object Array]"===Object.prototype.toString.call(e)?t.push(d(e)):t.push(i(e.toString()))})),"["+t.join(", ")+"]"}})),define("client-app/models/group",["exports","client-app/models/message","client-app/lib/utilities"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
179
+ return e.forEach((function(e){null===e?t.push("null"):"[object Array]"===Object.prototype.toString.call(e)?t.push(d(e)):t.push(s(e.toString()))})),"["+t.join(", ")+"]"}})),define("client-app/models/group",["exports","client-app/models/message","client-app/lib/utilities"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
179
180
  var r=Ember.Object.extend({selected:!1,showCount:!0,key:Ember.computed.reads("regex"),displayMessage:Ember.computed.reads("messages.firstObject.message"),init:function(){this._super.apply(this,arguments)
180
181
  var e=this.messages.map((function(e){return t.default.create(e)}))
181
182
  this.set("messages",e)},glyph:Ember.computed((function(){return"clone"})),prefix:Ember.computed((function(){return"far"})),solveAll:function(){return(0,n.ajax)("/solve-group",{type:"POST",data:{regex:this.regex}})}})
182
- e.default=r})),define("client-app/models/message-collection",["exports","client-app/lib/utilities","client-app/models/message","client-app/models/group"],(function(e,t,n,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
183
- var a=[0,1,2,3,4,5],o=Ember.Object.extend({total:0,rows:null,currentRow:null,currentTab:null,currentEnvPosition:0,currentGroupedMessagesPosition:0,init:function(){this._super.apply(this,arguments),this.setProperties({filter:a,search:"",rows:Ember.A()})},currentMessage:Ember.computed("currentRow","currentGroupedMessagesPosition",(function(){var e=this.currentRow,t=this.currentGroupedMessagesPosition
183
+ e.default=r})),define("client-app/models/message-collection",["exports","client-app/lib/utilities","client-app/models/message","client-app/models/group"],(function(e,t,n,r){function a(e,t){(null==t||t>e.length)&&(t=e.length)
184
+ for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n]
185
+ return r}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SEVERITIES=void 0
186
+ var o=["Debug","Info","Warn","Err","Fatal"]
187
+ e.SEVERITIES=o
188
+ var i,s=Ember.Object.extend({total:0,rows:null,currentRow:null,currentTab:null,currentEnvPosition:0,currentGroupedMessagesPosition:0,filter:Ember.computed.apply(void 0,(i=o.map((function(e){return"show".concat(e)})),function(e){if(Array.isArray(e))return a(e)}(i)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return a(e,t)
189
+ var n=Object.prototype.toString.call(e).slice(8,-1)
190
+ return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).concat([function(){var e=this,t=[]
191
+ return o.forEach((function(n,r){e["show".concat(n)]&&t.push(r)})),t.push(5),t}])),init:function(){this._super.apply(this,arguments),this.setProperties({search:"",rows:Ember.A()})},currentMessage:Ember.computed("currentRow","currentGroupedMessagesPosition",(function(){var e=this.currentRow,t=this.currentGroupedMessagesPosition
184
192
  return e&&e.group?e.messages[t]:e})),solve:function(e){var t=this
185
193
  e.solve().then((function(){t.reload()}))},selectRow:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=this.currentRow
186
194
  n&&n.set("selected",!1),e.set("selected",!0)
@@ -208,7 +216,7 @@ return this.search&&this.search.length>0||e&&e.length<6})),moreBefore:Ember.comp
208
216
  this.load({before:r,knownGroups:a}).then((function(t){return e.updateCanLoadMore(t)}))},regexSearch:Ember.computed("search",(function(){var e=this.search
209
217
  if(e&&e.length>2&&"/"===e[0]){var t=e.match(/\/(.*)\/(.*)/)
210
218
  if(t&&3===t.length)try{return new RegExp(t[1],t[2])}catch(n){}}return null})),toObjects:function(e){return e.map((function(e){return e.group?r.default.create(e):n.default.create(e)}))}})
211
- e.default=o})),define("client-app/models/message",["exports","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
219
+ e.default=s})),define("client-app/models/message",["exports","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
212
220
  var r=Em.Object.extend({MAX_LEN:200,fetchEnv:function(){var e=this
213
221
  return(0,t.ajax)("/fetch-env/".concat(this.key,".json")).then((function(t){return e.set("env",t)}))},expand:function(){this.set("expanded",!0)},solve:function(){return(0,t.ajax)("/solve/".concat(this.key),{type:"PUT"})},destroy:function(){return(0,t.ajax)("/message/".concat(this.key),{type:"DELETE"})},protect:function(){return this.set("protected",!0),(0,t.ajax)("/protect/".concat(this.key),{type:"PUT"})},unprotect:function(){return this.set("protected",!1),(0,t.ajax)("/unprotect/".concat(this.key),{type:"DELETE"})},showCount:Ember.computed("count",(function(){return this.count>1})),hasMore:Ember.computed("message","expanded",(function(){return!this.expanded&&this.message.length>this.MAX_LEN})),shareUrl:Ember.computed("key",(function(){return"".concat((0,n.getRootPath)(),"/show/").concat(this.key)})),displayMessage:Ember.computed("message","expanded",(function(){var e=this.message
214
222
  return!this.expanded&&this.message.length>this.MAX_LEN&&(e=this.message.substr(0,this.MAX_LEN)),e})),updateFromObject:function(e){this.set("count",e.get("count"))},canSolve:Ember.computed("env.{application_version,length}",(function(){return(Array.isArray(this.env)?this.env.map((function(e){return e.application_version})).compact().join(""):this.env&&this.env.application_version)&&this.backtrace&&this.backtrace.length>0})),rowClass:Ember.computed("severity",(function(){switch(this.get("severity")){case 0:return"debug"
@@ -236,25 +244,25 @@ try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){})
236
244
  return function(){var n,r=l(e)
237
245
  if(t){var a=l(this).constructor
238
246
  n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments)
239
- return s(this,n)}}function s(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?i(e):t}function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
247
+ return i(this,n)}}function i(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?s(e):t}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
240
248
  return e}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
241
249
  var c=function(e){(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function")
242
- e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)})(s,Ember.Router)
243
- var n=o(s)
244
- function s(){var e
245
- r(this,s)
250
+ e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&a(e,t)})(i,Ember.Router)
251
+ var n=o(i)
252
+ function i(){var e
253
+ r(this,i)
246
254
  for(var a=arguments.length,o=new Array(a),l=0;l<a;l++)o[l]=arguments[l]
247
- return u(i(e=n.call.apply(n,[this].concat(o))),"location",t.default.locationType),u(i(e),"rootURL",t.default.rootURL),e}return s}()
255
+ return u(s(e=n.call.apply(n,[this].concat(o))),"location",t.default.locationType),u(s(e),"rootURL",t.default.rootURL),e}return i}()
248
256
  e.default=c,c.map((function(){this.route("index",{path:"/"}),this.route("show",{path:"/show/:id"}),this.route("settings")}))})),define("client-app/routes/index",["exports","client-app/models/message-collection","client-app/lib/utilities"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
249
- var r=Ember.Route.extend({model:function(){return t.default.create()},setupController:function(e,t){this._super(e,t),t.reload()
250
- var r=0,a=1
251
- this.refreshInterval=setInterval((function(){if(!t.loading){r+=1
252
- var e=(0,n.isHidden)(),o=!e
253
- e&&r%a==0&&(o=!0,a<20&&a++),o&&(t.loadMore(),e||(a=1))}}),3e3),this.events.on("panelResized",(function(t){e.resizePanels(t)}))},deactivate:function(){clearInterval(this.refreshInterval)}})
257
+ var r=Ember.Route.extend({model:function(){return t.default.create()},setupController:function(e,r){this._super(e,r),t.SEVERITIES.forEach((function(t){return r.set("show".concat(t),e["show".concat(t)])})),r.reload()
258
+ var a=0,o=1
259
+ this.refreshInterval=setInterval((function(){if(!r.loading){a+=1
260
+ var e=(0,n.isHidden)(),t=!e
261
+ e&&a%o==0&&(t=!0,o<20&&o++),t&&(r.loadMore(),e||(o=1))}}),3e3),this.events.on("panelResized",(function(t){e.resizePanels(t)}))},deactivate:function(){clearInterval(this.refreshInterval)}})
254
262
  e.default=r})),define("client-app/routes/settings",["exports","client-app/lib/utilities","client-app/models/pattern-item"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
255
263
  var r=Ember.Route.extend({model:function(){return(0,t.ajax)("/settings.json")},setupController:function(e,t){this._super.apply(this,arguments)
256
- var r=t.suppression,a=r.filter((function(e){return e.hard})).map((function(e){return n.default.create(e)})),o=r.reject((function(e){return e.hard})).map((function(e){return n.default.create(e)})),s=t.grouping.map((function(e){return n.default.create(e)})),i=a.length>0
257
- e.setProperties({showCodedSuppression:i,codedSuppression:a,customSuppression:o,grouping:s})}})
264
+ var r=t.suppression,a=r.filter((function(e){return e.hard})).map((function(e){return n.default.create(e)})),o=r.reject((function(e){return e.hard})).map((function(e){return n.default.create(e)})),i=t.grouping.map((function(e){return n.default.create(e)})),s=a.length>0
265
+ e.setProperties({showCodedSuppression:s,codedSuppression:a,customSuppression:o,grouping:i})}})
258
266
  e.default=r})),define("client-app/routes/show",["exports","client-app/models/message","client-app/lib/utilities"],(function(e,t,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
259
267
  var r=Ember.Route.extend({model:function(e){return(0,n.preloadOrAjax)("/show/"+e.id+".json")},setupController:function(e,n){this._super.apply(this,arguments),e.set("model",t.default.create(n))}})
260
268
  e.default=r})),define("client-app/templates/application",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -286,4 +294,4 @@ var t=Ember.HTMLBars.template({id:"QRu+EVou",block:'{"symbols":[],"statements":[
286
294
  e.default=t})),define("client-app/templates/show",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
287
295
  var t=Ember.HTMLBars.template({id:"Xt+M1cRV",block:'{"symbols":[],"statements":[[4,"link-to",null,[["route"],["index"]],{"statements":[[0,"Recent"]],"parameters":[]},null],[0,"\\n"],[7,"div",true],[10,"id","bottom-panel"],[10,"class","full"],[8],[0,"\\n "],[1,[28,"message-info",null,[["currentMessage","showTitle","envChangedAction","currentEnvPosition","actionsInMenu"],[[24,["model"]],"true",[28,"action",[[23,0,[]],"envChanged"],null],[24,["envPosition"]],false]]],false],[0,"\\n"],[9],[0,"\\n"]],"hasEval":false}',meta:{moduleName:"client-app/templates/show.hbs"}})
288
296
  e.default=t})),define("client-app/config/environment",[],(function(){try{var e="client-app/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))}
289
- return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}})),runningTests||require("client-app/app").default.create({name:"client-app",version:"0.0.0+63634ced"})
297
+ return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}})),runningTests||require("client-app/app").default.create({name:"client-app",version:"0.0.0+f6ee4769"})
@@ -1,15 +1,19 @@
1
1
  import Controller from "@ember/controller";
2
- import { ajax } from "client-app/lib/utilities";
2
+ import {
3
+ ajax,
4
+ getLocalStorage,
5
+ setLocalStorage
6
+ } from "client-app/lib/utilities";
3
7
  import { computed } from "@ember/object";
4
8
  import Preload from "client-app/lib/preload";
5
9
  import { debounce } from "@ember/runloop";
6
10
 
7
11
  export default Controller.extend({
8
- showDebug: true,
9
- showInfo: true,
10
- showWarn: true,
11
- showErr: true,
12
- showFatal: true,
12
+ showDebug: getLocalStorage("showDebug", false),
13
+ showInfo: getLocalStorage("showInfo", false),
14
+ showWarn: getLocalStorage("showWarn", false),
15
+ showErr: getLocalStorage("showErr", true),
16
+ showFatal: getLocalStorage("showFatal", true),
13
17
  search: "",
14
18
  queryParams: ["search"],
15
19
 
@@ -108,14 +112,8 @@ export default Controller.extend({
108
112
 
109
113
  updateFilter(name) {
110
114
  this.toggleProperty(name);
111
- const filter = [];
112
- ["Debug", "Info", "Warn", "Err", "Fatal"].forEach((severity, index) => {
113
- if (this.get(`show${severity}`)) {
114
- filter.push(index);
115
- }
116
- });
117
- filter.push(5); // always show unknown, rare
118
- this.model.set("filter", filter);
115
+ this.model.set(name, this[name]);
116
+ setLocalStorage(name, this[name]);
119
117
  this.model.reload().then(() => this.model.updateSelectedRow());
120
118
  },
121
119
 
@@ -193,3 +193,37 @@ export function clone(object) {
193
193
  });
194
194
  return copy;
195
195
  }
196
+
197
+ export function setLocalStorage(key, value) {
198
+ try {
199
+ if (window.localStorage) {
200
+ key = "logster-" + key;
201
+ window.localStorage.setItem(key, value);
202
+ }
203
+ } catch { /* do nothing */ }
204
+ }
205
+
206
+ export function getLocalStorage(key, fallback) {
207
+ try {
208
+ if (window.localStorage) {
209
+ key = "logster-" + key;
210
+ const value = window.localStorage.getItem(key);
211
+ if (value === null) {
212
+ // key doesn't exist
213
+ return fallback;
214
+ }
215
+ if (value === "true") {
216
+ return true;
217
+ }
218
+ if (value === "false") {
219
+ return false;
220
+ }
221
+ // Add more cases here for numbers, null, undefined etc. as/when needed
222
+ return value;
223
+ } else {
224
+ return fallback;
225
+ }
226
+ } catch {
227
+ return fallback;
228
+ }
229
+ }
@@ -6,7 +6,8 @@ import { default as EmberObject, computed } from "@ember/object";
6
6
  import { A } from "@ember/array";
7
7
 
8
8
  const BATCH_SIZE = 50;
9
- const DEFAULT_FILTER = [0, 1, 2, 3, 4, 5];
9
+
10
+ export const SEVERITIES = ["Debug", "Info", "Warn", "Err", "Fatal"];
10
11
 
11
12
  export default EmberObject.extend({
12
13
  total: 0,
@@ -16,10 +17,20 @@ export default EmberObject.extend({
16
17
  currentEnvPosition: 0,
17
18
  currentGroupedMessagesPosition: 0,
18
19
 
20
+ filter: computed(...SEVERITIES.map(s => `show${s}`), function() {
21
+ const filter = [];
22
+ SEVERITIES.forEach((severity, index) => {
23
+ if (this[`show${severity}`]) {
24
+ filter.push(index);
25
+ }
26
+ });
27
+ filter.push(5); // always show unknown, rare
28
+ return filter;
29
+ }),
30
+
19
31
  init() {
20
32
  this._super(...arguments);
21
33
  this.setProperties({
22
- filter: DEFAULT_FILTER,
23
34
  search: "",
24
35
  rows: A()
25
36
  });
@@ -1,5 +1,8 @@
1
1
  import Route from "@ember/routing/route";
2
- import MessageCollection from "client-app/models/message-collection";
2
+ import {
3
+ default as MessageCollection,
4
+ SEVERITIES
5
+ } from "client-app/models/message-collection";
3
6
  import { isHidden } from "client-app/lib/utilities";
4
7
 
5
8
  export default Route.extend({
@@ -10,6 +13,9 @@ export default Route.extend({
10
13
 
11
14
  setupController(controller, model) {
12
15
  this._super(controller, model);
16
+ SEVERITIES.forEach(severity =>
17
+ model.set(`show${severity}`, controller[`show${severity}`])
18
+ );
13
19
  model.reload();
14
20
 
15
21
  let times = 0;
@@ -17096,9 +17096,9 @@
17096
17096
  }
17097
17097
  },
17098
17098
  "lodash": {
17099
- "version": "4.17.15",
17100
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
17101
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
17099
+ "version": "4.17.19",
17100
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
17101
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
17102
17102
  "dev": true
17103
17103
  },
17104
17104
  "lodash._baseassign": {
@@ -22087,9 +22087,9 @@
22087
22087
  }
22088
22088
  },
22089
22089
  "websocket-extensions": {
22090
- "version": "0.1.3",
22091
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
22092
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
22090
+ "version": "0.1.4",
22091
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
22092
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
22093
22093
  "dev": true
22094
22094
  },
22095
22095
  "whatwg-encoding": {
@@ -113,7 +113,8 @@ module Logster
113
113
 
114
114
  # in its own method so it can be overridden
115
115
  def grouping_hash
116
- { message: self.message, severity: self.severity, backtrace: self.backtrace }
116
+ message = self.message.gsub(/[0-9a-f]+/i, "X")
117
+ { message: message, severity: self.severity, backtrace: self.backtrace }
117
118
  end
118
119
 
119
120
  # todo - memoize?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Logster
4
- VERSION = "2.9.3"
4
+ VERSION = "2.9.4"
5
5
  end
@@ -28,19 +28,19 @@ class TestReporter < Minitest::Test
28
28
 
29
29
  reporter = Logster::Middleware::Reporter.new(nil)
30
30
  env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello")
31
- status, = reporter.call(env)
31
+ reporter.call(env)
32
32
 
33
33
  assert_equal(Logger::Severity::WARN, Logster.store.latest[-1].severity)
34
34
 
35
35
  reporter = Logster::Middleware::Reporter.new(nil)
36
36
  env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello&severity=invalid")
37
- status, = reporter.call(env)
37
+ reporter.call(env)
38
38
 
39
39
  assert_equal(Logger::Severity::WARN, Logster.store.latest[-1].severity)
40
40
 
41
41
  reporter = Logster::Middleware::Reporter.new(nil)
42
42
  env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello&severity=error")
43
- status, = reporter.call(env)
43
+ reporter.call(env)
44
44
 
45
45
  assert_equal(Logger::Severity::ERROR, Logster.store.latest[-1].severity)
46
46
  end
@@ -1044,6 +1044,24 @@ class TestRedisStore < Minitest::Test
1044
1044
  end
1045
1045
  end
1046
1046
 
1047
+ def test_messages_that_differ_only_by_numbers_or_hashes_are_merged
1048
+ config_reset(allow_grouping: true) do
1049
+ first_message = <<~TEXT
1050
+ DistributedMutex("download_20450e291e8f1e5ba03ca7f20fb7d9da570c94a6"):
1051
+ held for too long, expected max: 60 secs, took an extra 73 secs
1052
+ TEXT
1053
+ msg = @store.report(Logger::WARN, '', first_message, backtrace: caller)
1054
+
1055
+ second_message = <<~TEXT
1056
+ DistributedMutex("download_e09ae082c60a351dedec67ed869652862b232a0b"):
1057
+ held for too long, expected max: 60 secs, took an extra 287 secs
1058
+ TEXT
1059
+ msg2 = @store.report(Logger::WARN, '', second_message, backtrace: caller)
1060
+
1061
+ assert_equal(msg.key, msg2.key)
1062
+ end
1063
+ end
1064
+
1047
1065
  private
1048
1066
 
1049
1067
  def config_reset(configs)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logster
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.3
4
+ version: 2.9.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-19 00:00:00.000000000 Z
11
+ date: 2020-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -280,7 +280,7 @@ homepage: https://github.com/discourse/logster
280
280
  licenses:
281
281
  - MIT
282
282
  metadata: {}
283
- post_install_message:
283
+ post_install_message:
284
284
  rdoc_options: []
285
285
  require_paths:
286
286
  - lib
@@ -295,8 +295,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
295
295
  - !ruby/object:Gem::Version
296
296
  version: '0'
297
297
  requirements: []
298
- rubygems_version: 3.0.3
299
- signing_key:
298
+ rubygems_version: 3.1.2
299
+ signing_key:
300
300
  specification_version: 4
301
301
  summary: UI for viewing logs in Rack
302
302
  test_files: