logster 2.12.2 → 2.13.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +5 -0
  3. data/.streerc +2 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Gemfile +1 -1
  6. data/README.md +7 -6
  7. data/assets/javascript/{chunk.143.f61340b825c6a3bf6dbe.js → chunk.143.5bf090e78cbca9ee78cc.js} +4 -4
  8. data/assets/javascript/{chunk.178.6d9ae01775c898e7b748.js → chunk.178.135370942038cfbbe65e.js} +3 -3
  9. data/assets/javascript/client-app.js +103 -35
  10. data/client-app/app/controllers/show.js +17 -1
  11. data/client-app/app/templates/show.hbs +2 -0
  12. data/client-app/package.json +1 -1
  13. data/client-app/preload-json-manager.rb +10 -17
  14. data/client-app/yarn.lock +131 -44
  15. data/lib/examples/sidekiq_logster_reporter.rb +5 -7
  16. data/lib/logster/base_store.rb +26 -22
  17. data/lib/logster/cache.rb +2 -1
  18. data/lib/logster/configuration.rb +3 -3
  19. data/lib/logster/defer_logger.rb +2 -4
  20. data/lib/logster/group.rb +17 -20
  21. data/lib/logster/ignore_pattern.rb +1 -2
  22. data/lib/logster/logger.rb +18 -16
  23. data/lib/logster/message.rb +53 -57
  24. data/lib/logster/middleware/debug_exceptions.rb +12 -10
  25. data/lib/logster/middleware/reporter.rb +17 -26
  26. data/lib/logster/middleware/viewer.rb +77 -97
  27. data/lib/logster/pattern.rb +4 -7
  28. data/lib/logster/rails/railtie.rb +10 -13
  29. data/lib/logster/redis_rate_limiter.rb +2 -7
  30. data/lib/logster/redis_store.rb +79 -99
  31. data/lib/logster/scheduler.rb +1 -5
  32. data/lib/logster/suppression_pattern.rb +7 -5
  33. data/lib/logster/version.rb +1 -1
  34. data/lib/logster/web.rb +1 -1
  35. data/lib/logster.rb +15 -17
  36. data/logster.gemspec +14 -14
  37. data/test/examples/test_sidekiq_reporter_example.rb +8 -9
  38. data/test/fake_data/generate.rb +14 -3
  39. data/test/logster/middleware/test_reporter.rb +9 -7
  40. data/test/logster/middleware/test_viewer.rb +117 -101
  41. data/test/logster/test_base_store.rb +79 -58
  42. data/test/logster/test_cache.rb +5 -11
  43. data/test/logster/test_defer_logger.rb +3 -3
  44. data/test/logster/test_group.rb +14 -18
  45. data/test/logster/test_ignore_pattern.rb +2 -3
  46. data/test/logster/test_logger.rb +14 -14
  47. data/test/logster/test_message.rb +29 -31
  48. data/test/logster/test_pattern.rb +7 -15
  49. data/test/logster/test_redis_rate_limiter.rb +35 -21
  50. data/test/logster/test_redis_store.rb +239 -151
  51. data/test/test_helper.rb +9 -9
  52. metadata +19 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: af6cad548aad16357be97a4dc20016c356bcf93536682586e59aa22ed2117a37
4
- data.tar.gz: 0627ac8ba4a6ce06967c28cdca503f65f9c16dc14532ab59c1e1aac0ea1d2c49
3
+ metadata.gz: cbd5030e77e7ee009ca700ce5a1754785c07118582de0c7333e8f74f59a55355
4
+ data.tar.gz: 1255730dff7b3481c1c1a35b656e1ef6c9f7efa734645cbddc2b5ee062909f48
5
5
  SHA512:
6
- metadata.gz: 8e64cbd0e84b5096f05f829dcea797a6cfeba93e811d8cadc3c1f7c7ac41f195a424f4b639c6b2d3983159c8e3e0b1d50f49cec127541b26e079c9646dbc481c
7
- data.tar.gz: 37cec132177320ceeda68d95c81db38c33461dd10f9bd1985793e20c6006c7e3e71cdfd620e767181596407035e18b16da078b71fad1bfe300ab373270b3aa71
6
+ metadata.gz: 346563948481856dc04d82ad1d23d050c0be8f60afa5d242cb61dd7652e6f9efec545e446b87e23b5f7de942db84f64fcd58f8098eb64d5f2de69997e039c2a9
7
+ data.tar.gz: 20611b61dcc99c3fe224ae5fdca7432edc1a0e95faf9ee8bbb2000b00629a65692e816e6aabb140e67abfdc20c10ca1ba2f859312ff53b9c17f93095aa067246
@@ -92,6 +92,11 @@ jobs:
92
92
  working-directory: client-app
93
93
  run: yarn install
94
94
 
95
+ - name: Syntax Tree
96
+ if: ${{ !cancelled() }}
97
+ run: |
98
+ bundle exec stree check Gemfile $(git ls-files '*.rb') $(git ls-files '*.rake') $(git ls-files '*.thor')
99
+
95
100
  - name: JS linting
96
101
  if: ${{ !cancelled() }}
97
102
  working-directory: client-app
data/.streerc ADDED
@@ -0,0 +1,2 @@
1
+ --print-width=100
2
+ --plugins=plugin/trailing_comma
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # CHANGELOG
2
2
 
3
+ - 2023-11-01: 2.13.1
4
+
5
+ - FIX: Solve/remove buttons on 'share' page
6
+
7
+ - 2023-10-03: 2.13.0
8
+
9
+ - FEATURE: Format messages with Logster::Logger#formatter before storing
10
+
3
11
  - 2023-03-10: 2.12.2
4
12
 
5
13
  - FIX: Don't throw on non-gem backtrace lines
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source 'https://rubygems.org'
3
+ source "https://rubygems.org"
4
4
 
5
5
  # Specify your gem's dependencies in rack-log-viewer.gemspec
6
6
  gemspec
data/README.md CHANGED
@@ -140,10 +140,11 @@ Logster UI is built using [Ember.js](http://emberjs.com/)
140
140
 
141
141
  1. Fork it ( https://github.com/discourse/logster/fork )
142
142
  2. Create your feature branch (`git checkout -b my-new-feature`)
143
- 3. Run `cd client-app && npm install`
143
+ 3. Run `cd client-app && yarn install`
144
144
  4. Run `cd website && bundle install`
145
- 5. Run `bundle exec rake client_dev` to start Sinatra server (port 9292) and Ember server (port 4200). Use Ember server for hot reload for client code.
146
- 6. Once you're done making changes, run `./build_client_app.sh` to make and copy a production build to the assets folder.
147
- 7. Commit your changes (`git commit -am 'Add some feature'`)
148
- 8. Push to the branch (`git push origin my-new-feature`)
149
- 9. Create a new Pull Request
145
+ 5. In the root directory, run `bundle exec rake client_dev` to start Sinatra server (port 9292) and Ember server (port 4200). Use Ember server for hot reload for client code.
146
+ 6. Visit `http://localhost:4200/logs/` (with trailing slash) to test the application. Reload `http://localhost:4200/report_error` to add sample log data.
147
+ 7. Once you're done making changes, run `./build_client_app.sh` to make and copy a production build to the assets folder.
148
+ 8. Commit your changes (`git commit -am 'Add some feature'`)
149
+ 9. Push to the branch (`git push origin my-new-feature`)
150
+ 10. Create a new Pull Request
@@ -1,6 +1,6 @@
1
1
  var __ember_auto_import__
2
- !function(){var e,r={654:function(e,r,n){var o,t
3
- e.exports=(o=_eai_d,t=_eai_r,window.emberAutoImportDynamic=function(e){return 1===arguments.length?t("_eai_dyn_"+e):t("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return t("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},o("__v1-addons__early-boot-set__",[],(function(){})),void o("sinon",["__v1-addons__early-boot-set__"],(function(){return n(468)})))},338:function(e,r){window._eai_r=require,window._eai_d=define}},n={}
2
+ !function(){var e,r={728:function(e,r,n){var o,t
3
+ e.exports=(o=_eai_d,t=_eai_r,window.emberAutoImportDynamic=function(e){return 1===arguments.length?t("_eai_dyn_"+e):t("_eai_dynt_"+e)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(e){return t("_eai_sync_"+e)(Array.prototype.slice.call(arguments,1))},o("__v1-addons__early-boot-set__",[],(function(){})),void o("sinon",["__v1-addons__early-boot-set__"],(function(){return n(468)})))},889:function(e,r){window._eai_r=require,window._eai_d=define}},n={}
4
4
  function o(e){var t=n[e]
5
5
  if(void 0!==t)return t.exports
6
6
  var i=n[e]={exports:{}}
@@ -17,6 +17,6 @@ var r=function(r,n){var t,i,u=n[0],_=n[1],a=n[2],f=0
17
17
  if(u.some((function(r){return 0!==e[r]}))){for(t in _)o.o(_,t)&&(o.m[t]=_[t])
18
18
  if(a)var c=a(o)}for(r&&r(n);f<u.length;f++)i=u[f],o.o(e,i)&&e[i]&&e[i][0](),e[i]=0
19
19
  return o.O(c)},n=self.webpackChunk_ember_auto_import_=self.webpackChunk_ember_auto_import_||[]
20
- n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))}(),o.O(void 0,[468],(function(){return o(338)}))
21
- var t=o.O(void 0,[468],(function(){return o(654)}))
20
+ n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))}(),o.O(void 0,[468],(function(){return o(889)}))
21
+ var t=o.O(void 0,[468],(function(){return o(728)}))
22
22
  t=o.O(t),__ember_auto_import__=t}()
@@ -1,5 +1,5 @@
1
1
  var __ember_auto_import__
2
- !function(){var r,n={338:function(r,n){window._eai_r=require,window._eai_d=define},691:function(r,n,e){var t,o
2
+ !function(){var r,n={889:function(r,n){window._eai_r=require,window._eai_d=define},732:function(r,n,e){var t,o
3
3
  r.exports=(t=_eai_d,o=_eai_r,window.emberAutoImportDynamic=function(r){return 1===arguments.length?o("_eai_dyn_"+r):o("_eai_dynt_"+r)(Array.prototype.slice.call(arguments,1))},window.emberAutoImportSync=function(r){return o("_eai_sync_"+r)(Array.prototype.slice.call(arguments,1))},t("__v1-addons__early-boot-set__",[],(function(){})),void t("qunit",["__v1-addons__early-boot-set__"],(function(){return e(916)})))}},e={}
4
4
  function t(r){var o=e[r]
5
5
  if(void 0!==o)return o.exports
@@ -17,6 +17,6 @@ var n=function(n,e){var o,i,_=e[0],u=e[1],a=e[2],c=0
17
17
  if(_.some((function(n){return 0!==r[n]}))){for(o in u)t.o(u,o)&&(t.m[o]=u[o])
18
18
  if(a)var f=a(t)}for(n&&n(e);c<_.length;c++)i=_[c],t.o(r,i)&&r[i]&&r[i][0](),r[i]=0
19
19
  return t.O(f)},e=self.webpackChunk_ember_auto_import_=self.webpackChunk_ember_auto_import_||[]
20
- e.forEach(n.bind(null,0)),e.push=n.bind(null,e.push.bind(e))}(),t.O(void 0,[916],(function(){return t(338)}))
21
- var o=t.O(void 0,[916],(function(){return t(691)}))
20
+ e.forEach(n.bind(null,0)),e.push=n.bind(null,e.push.bind(e))}(),t.O(void 0,[916],(function(){return t(889)}))
21
+ var o=t.O(void 0,[916],(function(){return t(732)}))
22
22
  o=t.O(o),__ember_auto_import__=o}()
@@ -266,8 +266,8 @@ document.addEventListener(c,this.endDrag)}}}],r&&l(t.prototype,r),n&&l(t,n),Obje
266
266
  e.default=w})),define("client-app/components/patterns-list",["exports","@ember/object/computed","@ember/component","@ember/object","client-app/models/pattern-item","client-app/lib/utilities"],(function(e,t,r,n,o,i){var a,c,u,l,f,s
267
267
  function p(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */p=function(){return e}
268
268
  var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag"
269
- function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(R){u=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),c=new k(o||[])
270
- return n(a,"_invoke",{value:j(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}e.wrap=l
269
+ function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(L){u=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),c=new k(o||[])
270
+ return n(a,"_invoke",{value:j(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=l
271
271
  var s={}
272
272
  function y(){}function d(){}function h(){}var v={}
273
273
  u(v,i,(function(){return this}))
@@ -464,8 +464,8 @@ function c(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cann
464
464
  e.default=m})),define("client-app/controllers/index",["exports","@ember/runloop","@ember/object","@ember/controller","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,r,n,o,i){var a,c
465
465
  function u(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */u=function(){return e}
466
466
  var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag"
467
- function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(R){l=function(e,t,r){return e[t]=r}}function f(e,t,r,o){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),c=new k(o||[])
468
- return n(a,"_invoke",{value:j(e,r,c)}),a}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}e.wrap=f
467
+ function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(L){l=function(e,t,r){return e[t]=r}}function f(e,t,r,o){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),c=new k(o||[])
468
+ return n(a,"_invoke",{value:j(e,r,c)}),a}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=f
469
469
  var p={}
470
470
  function y(){}function d(){}function h(){}var v={}
471
471
  l(v,i,(function(){return this}))
@@ -563,32 +563,100 @@ t?(i=t.messages.indexOf(e),t.messages.removeObject(e),i=Math.min(i,t.messages.le
563
563
  case 5:this.model.updateSelectedRow()
564
564
  case 6:case"end":return e.stop()}}),e,this)}))),function(e){return c.apply(this,arguments)})},{key:"updateSearch",value:function(e){var r=e.target.value
565
565
  r!==this.search&&(r&&1===r.length||(0,t.debounce)(this,this.doSearch,r,250))}}],n&&s(r.prototype,n),a&&s(r,a),Object.defineProperty(r,"prototype",{writable:!1}),m}(n.default),m(c.prototype,"showSettings",[r.computed],Object.getOwnPropertyDescriptor(c.prototype,"showSettings"),c.prototype),m(c.prototype,"searchTerm",[a],Object.getOwnPropertyDescriptor(c.prototype,"searchTerm"),c.prototype),m(c.prototype,"expandMessage",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"expandMessage"),c.prototype),m(c.prototype,"selectRowAction",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"selectRowAction"),c.prototype),m(c.prototype,"tabChangedAction",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"tabChangedAction"),c.prototype),m(c.prototype,"showMoreBefore",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"showMoreBefore"),c.prototype),m(c.prototype,"loadMore",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"loadMore"),c.prototype),m(c.prototype,"clear",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"clear"),c.prototype),m(c.prototype,"removeMessage",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"removeMessage"),c.prototype),m(c.prototype,"solveMessage",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"solveMessage"),c.prototype),m(c.prototype,"groupedMessageChangedAction",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"groupedMessageChangedAction"),c.prototype),m(c.prototype,"envChangedAction",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"envChangedAction"),c.prototype),m(c.prototype,"updateFilter",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"updateFilter"),c.prototype),m(c.prototype,"updateSearch",[r.action],Object.getOwnPropertyDescriptor(c.prototype,"updateSearch"),c.prototype),c)
566
- e.default=g})),define("client-app/controllers/show",["exports","@ember/controller","@ember/object"],(function(e,t,r){var n
567
- function o(e,t){for(var r=0;r<t.length;r++){var n=t[r]
568
- n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,l(n.key),n)}}function i(e,t){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},i(e,t)}function a(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1
566
+ e.default=g})),define("client-app/controllers/show",["exports","@ember/controller","@ember/object","@ember/service"],(function(e,t,r,n){var o,i,a,c
567
+ function u(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */u=function(){return e}
568
+ var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag"
569
+ function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(L){l=function(e,t,r){return e[t]=r}}function f(e,t,r,o){var i=t&&t.prototype instanceof y?t:y,a=Object.create(i.prototype),c=new k(o||[])
570
+ return n(a,"_invoke",{value:j(e,r,c)}),a}function s(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=f
571
+ var p={}
572
+ function y(){}function d(){}function h(){}var v={}
573
+ l(v,i,(function(){return this}))
574
+ var b=Object.getPrototypeOf,m=b&&b(b(S([])))
575
+ m&&m!==t&&r.call(m,i)&&(v=m)
576
+ var g=h.prototype=y.prototype=Object.create(v)
577
+ function w(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function O(e,t){function o(n,i,a,c){var u=s(e[n],e,i)
578
+ if("throw"!==u.type){var l=u.arg,f=l.value
579
+ return f&&"object"==_typeof(f)&&r.call(f,"__await")?t.resolve(f.__await).then((function(e){o("next",e,a,c)}),(function(e){o("throw",e,a,c)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return o("throw",e,a,c)}))}c(u.arg)}var i
580
+ n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return i=i?i.then(n,n):n()}})}function j(e,t,r){var n="suspendedStart"
581
+ return function(o,i){if("executing"===n)throw new Error("Generator is already running")
582
+ if("completed"===n){if("throw"===o)throw i
583
+ return E()}for(r.method=o,r.arg=i;;){var a=r.delegate
584
+ if(a){var c=P(a,r)
585
+ if(c){if(c===p)continue
586
+ return c}}if("next"===r.method)r.sent=r._sent=r.arg
587
+ else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg
588
+ r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg)
589
+ n="executing"
590
+ var u=s(e,t,r)
591
+ if("normal"===u.type){if(n=r.done?"completed":"suspendedYield",u.arg===p)continue
592
+ return{value:u.arg,done:r.done}}"throw"===u.type&&(n="completed",r.method="throw",r.arg=u.arg)}}}function P(e,t){var r=t.method,n=e.iterator[r]
593
+ if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,P(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),p
594
+ var o=s(n,e.iterator,t.arg)
595
+ if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,p
596
+ var i=o.arg
597
+ return i?i.done?(t[e.resultName]=i.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,p):i:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,p)}function _(e){var t={tryLoc:e[0]}
598
+ 1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{}
599
+ t.type="normal",delete t.arg,e.completion=t}function k(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function S(e){if(e){var t=e[i]
600
+ if(t)return t.call(e)
601
+ if("function"==typeof e.next)return e
602
+ if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t
603
+ return t.value=void 0,t.done=!0,t}
604
+ return o.next=o}}return{next:E}}function E(){return{value:void 0,done:!0}}return d.prototype=h,n(g,"constructor",{value:h,configurable:!0}),n(h,"constructor",{value:d,configurable:!0}),d.displayName=l(h,c,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor
605
+ return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,h):(e.__proto__=h,l(e,c,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},w(O.prototype),l(O.prototype,a,(function(){return this})),e.AsyncIterator=O,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise)
606
+ var a=new O(f(t,r,n,o),i)
607
+ return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},w(g),l(g,c,"Generator"),l(g,i,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[]
608
+ for(var n in t)r.push(n)
609
+ return r.reverse(),function e(){for(;r.length;){var n=r.pop()
610
+ if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=S,k.prototype={constructor:k,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(x),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0
611
+ var e=this.tryEntries[0].completion
612
+ if("throw"===e.type)throw e.arg
613
+ return this.rval},dispatchException:function(e){if(this.done)throw e
614
+ var t=this
615
+ function n(r,n){return a.type="throw",a.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion
616
+ if("root"===i.tryLoc)return n("end")
617
+ if(i.tryLoc<=this.prev){var c=r.call(i,"catchLoc"),u=r.call(i,"finallyLoc")
618
+ if(c&&u){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)
619
+ if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally")
620
+ if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n]
621
+ if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o
622
+ break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null)
623
+ var a=i?i.completion:{}
624
+ return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg
625
+ return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),p},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t]
626
+ if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),x(r),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t]
627
+ if(r.tryLoc===e){var n=r.completion
628
+ if("throw"===n.type){var o=n.arg
629
+ x(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},e}function l(e,t,r,n,o,i,a){try{var c=e[i](a),u=c.value}catch(l){return void r(l)}c.done?t(u):Promise.resolve(u).then(n,o)}function f(e){return function(){var t=this,r=arguments
630
+ return new Promise((function(n,o){var i=e.apply(t,r)
631
+ function a(e){l(i,n,o,a,c,"next",e)}function c(e){l(i,n,o,a,c,"throw",e)}a(void 0)}))}}function s(e,t,r,n){r&&Object.defineProperty(e,t,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}function p(e,t){for(var r=0;r<t.length;r++){var n=t[r]
632
+ n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,b(n.key),n)}}function y(e,t){return y=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},y(e,t)}function d(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1
569
633
  if(Reflect.construct.sham)return!1
570
634
  if("function"==typeof Proxy)return!0
571
635
  try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}()
572
- return function(){var r,n=u(e)
573
- if(t){var o=u(this).constructor
636
+ return function(){var r,n=v(e)
637
+ if(t){var o=v(this).constructor
574
638
  r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments)
575
639
  return function(e,t){if(t&&("object"===_typeof(t)||"function"==typeof t))return t
576
640
  if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined")
577
- return c(e)}(this,r)}}function c(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
578
- return e}function u(e){return u=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},u(e)}function l(e){var t=function(e,t){if("object"!==_typeof(e)||null===e)return e
641
+ return h(e)}(this,r)}}function h(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called")
642
+ return e}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},v(e)}function b(e){var t=function(e,t){if("object"!==_typeof(e)||null===e)return e
579
643
  var r=e[Symbol.toPrimitive]
580
644
  if(void 0!==r){var n=r.call(e,t||"default")
581
645
  if("object"!==_typeof(n))return n
582
646
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
583
- return"symbol"===_typeof(t)?t:String(t)}function f(e,t,r,n,o){var i={}
647
+ return"symbol"===_typeof(t)?t:String(t)}function m(e,t,r,n,o){var i={}
584
648
  return Object.keys(n).forEach((function(e){i[e]=n[e]})),i.enumerable=!!i.enumerable,i.configurable=!!i.configurable,("value"in i||i.initializer)&&(i.writable=!0),i=r.slice().reverse().reduce((function(r,n){return n(e,t,r)||r}),i),o&&void 0!==i.initializer&&(i.value=i.initializer?i.initializer.call(o):void 0,i.initializer=void 0),void 0===i.initializer&&(Object.defineProperty(e,t,i),i=null),i}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
585
- var s=(n=function(e){(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function")
586
- e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&i(e,t)})(f,e)
587
- var t,r,n,u=a(f)
588
- function f(){var e,t,r,n;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,f)
589
- for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a]
590
- return e=u.call.apply(u,[this].concat(i)),t=c(e),n=0,(r=l(r="envPosition"))in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,e}return t=f,(r=[{key:"protect",value:function(){this.model.protect()}},{key:"unprotect",value:function(){this.model.unprotect()}},{key:"envChanged",value:function(e){this.set("envPosition",e)}}])&&o(t.prototype,r),n&&o(t,n),Object.defineProperty(t,"prototype",{writable:!1}),f}(t.default),f(n.prototype,"protect",[r.action],Object.getOwnPropertyDescriptor(n.prototype,"protect"),n.prototype),f(n.prototype,"unprotect",[r.action],Object.getOwnPropertyDescriptor(n.prototype,"unprotect"),n.prototype),f(n.prototype,"envChanged",[r.action],Object.getOwnPropertyDescriptor(n.prototype,"envChanged"),n.prototype),n)
591
- e.default=s})),define("client-app/helpers/app-version",["exports","@ember/component/helper","client-app/config/environment","ember-cli-app-version/utils/regexp"],(function(e,t,r,n){function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.default.APP.version,i=t.versionOnly||t.hideSha,a=t.shaOnly||t.hideVersion,c=null
649
+ var g=(o=(0,t.inject)("index"),i=function(e){(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function")
650
+ e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&y(e,t)})(v,e)
651
+ var t,r,n,o,i,l=d(v)
652
+ function v(){var e,t,r,n;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,v)
653
+ for(var o=arguments.length,i=new Array(o),u=0;u<o;u++)i[u]=arguments[u]
654
+ return s(h(e=l.call.apply(l,[this].concat(i))),"router",a,h(e)),s(h(e),"indexController",c,h(e)),t=h(e),n=0,(r=b(r="envPosition"))in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,e}return t=v,r=[{key:"protect",value:function(){this.model.protect()}},{key:"unprotect",value:function(){this.model.unprotect()}},{key:"solveMessage",value:(i=f(u().mark((function e(t){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.solve()
655
+ case 2:this.router.transitionTo("index")
656
+ case 3:case"end":return e.stop()}}),e,this)}))),function(e){return i.apply(this,arguments)})},{key:"removeMessage",value:(o=f(u().mark((function e(t){return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.destroy()
657
+ case 2:this.router.transitionTo("index")
658
+ case 3:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"envChanged",value:function(e){this.set("envPosition",e)}}],r&&p(t.prototype,r),n&&p(t,n),Object.defineProperty(t,"prototype",{writable:!1}),v}(t.default),a=m(i.prototype,"router",[n.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(i.prototype,"indexController",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(i.prototype,"protect",[r.action],Object.getOwnPropertyDescriptor(i.prototype,"protect"),i.prototype),m(i.prototype,"unprotect",[r.action],Object.getOwnPropertyDescriptor(i.prototype,"unprotect"),i.prototype),m(i.prototype,"solveMessage",[r.action],Object.getOwnPropertyDescriptor(i.prototype,"solveMessage"),i.prototype),m(i.prototype,"removeMessage",[r.action],Object.getOwnPropertyDescriptor(i.prototype,"removeMessage"),i.prototype),m(i.prototype,"envChanged",[r.action],Object.getOwnPropertyDescriptor(i.prototype,"envChanged"),i.prototype),i)
659
+ e.default=g})),define("client-app/helpers/app-version",["exports","@ember/component/helper","client-app/config/environment","ember-cli-app-version/utils/regexp"],(function(e,t,r,n){function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=r.default.APP.version,i=t.versionOnly||t.hideSha,a=t.shaOnly||t.hideVersion,c=null
592
660
  return i&&(t.showExtended&&(c=o.match(n.versionExtendedRegExp)),c||(c=o.match(n.versionRegExp))),a&&(c=o.match(n.shaRegExp)),c?c[0]:o}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=o,e.default=void 0
593
661
  var i=(0,t.helper)(o)
594
662
  e.default=i})),define("client-app/helpers/ensure-safe-component",["exports","@embroider/util"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.EnsureSafeComponentHelper}})})),define("client-app/helpers/logster-url",["exports","@ember/component/helper","client-app/lib/preload"],(function(e,t,r){function n(e){var t=e[0]
@@ -600,8 +668,8 @@ e.default=n})),define("client-app/helpers/page-title",["exports","ember-page-tit
600
668
  var r=t.default
601
669
  e.default=r})),define("client-app/initializers/app-init",["exports","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,r){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},n(e)}function o(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */o=function(){return e}
602
670
  var e={},t=Object.prototype,r=t.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},c=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag"
603
- function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(L){f=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),c=new S(n||[])
604
- return i(a,"_invoke",{value:P(e,r,c)}),a}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=s
671
+ function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(R){f=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),c=new S(n||[])
672
+ return i(a,"_invoke",{value:P(e,r,c)}),a}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}e.wrap=s
605
673
  var y={}
606
674
  function d(){}function h(){}function v(){}var b={}
607
675
  f(b,c,(function(){return this}))
@@ -614,7 +682,7 @@ return s&&"object"==n(s)&&r.call(s,"__await")?t.resolve(s.__await).then((functio
614
682
  i(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function P(e,t,r){var n="suspendedStart"
615
683
  return function(o,i){if("executing"===n)throw new Error("Generator is already running")
616
684
  if("completed"===n){if("throw"===o)throw i
617
- return R()}for(r.method=o,r.arg=i;;){var a=r.delegate
685
+ return L()}for(r.method=o,r.arg=i;;){var a=r.delegate
618
686
  if(a){var c=_(a,r)
619
687
  if(c){if(c===y)continue
620
688
  return c}}if("next"===r.method)r.sent=r._sent=r.arg
@@ -635,7 +703,7 @@ if(t)return t.call(e)
635
703
  if("function"==typeof e.next)return e
636
704
  if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t
637
705
  return t.value=void 0,t.done=!0,t}
638
- return o.next=o}}return{next:R}}function R(){return{value:void 0,done:!0}}return h.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:h,configurable:!0}),h.displayName=f(v,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor
706
+ return o.next=o}}return{next:L}}function L(){return{value:void 0,done:!0}}return h.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:h,configurable:!0}),h.displayName=f(v,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor
639
707
  return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,f(e,l,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},O(j.prototype),f(j.prototype,u,(function(){return this})),e.AsyncIterator=j,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise)
640
708
  var a=new j(s(t,r,n,o),i)
641
709
  return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},O(w),f(w,l,"Generator"),f(w,c,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[]
@@ -698,8 +766,8 @@ var r,n={},o=!1
698
766
  function i(){var e=document.getElementById("preloaded-data").dataset;(n=e.preloaded?JSON.parse(e.preloaded):{}).rootPath=r,o=!0}var a={get:function(e){return o||i(),n[e]}}
699
767
  e.default=a})),define("client-app/lib/utilities",["exports","client-app/lib/preload"],(function(e,t){function r(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */r=function(){return e}
700
768
  var e={},t=Object.prototype,o=t.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},a="function"==typeof Symbol?Symbol:{},c=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag"
701
- function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(L){f=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),c=new S(n||[])
702
- return i(a,"_invoke",{value:P(e,r,c)}),a}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=s
769
+ function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(R){f=function(e,t,r){return e[t]=r}}function s(e,t,r,n){var o=t&&t.prototype instanceof d?t:d,a=Object.create(o.prototype),c=new S(n||[])
770
+ return i(a,"_invoke",{value:P(e,r,c)}),a}function p(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}e.wrap=s
703
771
  var y={}
704
772
  function d(){}function h(){}function v(){}var b={}
705
773
  f(b,c,(function(){return this}))
@@ -712,7 +780,7 @@ return s&&"object"==n(s)&&o.call(s,"__await")?t.resolve(s.__await).then((functio
712
780
  i(this,"_invoke",{value:function(e,n){function o(){return new t((function(t,o){r(e,n,t,o)}))}return a=a?a.then(o,o):o()}})}function P(e,t,r){var n="suspendedStart"
713
781
  return function(o,i){if("executing"===n)throw new Error("Generator is already running")
714
782
  if("completed"===n){if("throw"===o)throw i
715
- return R()}for(r.method=o,r.arg=i;;){var a=r.delegate
783
+ return L()}for(r.method=o,r.arg=i;;){var a=r.delegate
716
784
  if(a){var c=_(a,r)
717
785
  if(c){if(c===y)continue
718
786
  return c}}if("next"===r.method)r.sent=r._sent=r.arg
@@ -733,7 +801,7 @@ if(t)return t.call(e)
733
801
  if("function"==typeof e.next)return e
734
802
  if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(o.call(e,r))return t.value=e[r],t.done=!1,t
735
803
  return t.value=void 0,t.done=!0,t}
736
- return n.next=n}}return{next:R}}function R(){return{value:void 0,done:!0}}return h.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:h,configurable:!0}),h.displayName=f(v,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor
804
+ return n.next=n}}return{next:L}}function L(){return{value:void 0,done:!0}}return h.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:h,configurable:!0}),h.displayName=f(v,l,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor
737
805
  return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,f(e,l,"GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},O(j.prototype),f(j.prototype,u,(function(){return this})),e.AsyncIterator=j,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise)
738
806
  var a=new j(s(t,r,n,o),i)
739
807
  return e.isGeneratorFunction(r)?a:a.next().then((function(e){return e.done?e.value:a.next()}))},O(w),f(w,l,"Generator"),f(w,c,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[]
@@ -833,8 +901,8 @@ return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:f
833
901
  return{s:function(){r=r.call(e)},n:function(){var e=r.next()
834
902
  return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function h(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */h=function(){return e}
835
903
  var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag"
836
- function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(R){u=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),c=new k(o||[])
837
- return n(a,"_invoke",{value:j(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}e.wrap=l
904
+ function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(L){u=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),c=new k(o||[])
905
+ return n(a,"_invoke",{value:j(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=l
838
906
  var s={}
839
907
  function p(){}function y(){}function d(){}var v={}
840
908
  u(v,i,(function(){return this}))
@@ -919,7 +987,7 @@ for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r]
919
987
  return n}Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.SEVERITIES=void 0
920
988
  var E=["Debug","Info","Warn","Err","Fatal"]
921
989
  e.SEVERITIES=E
922
- var R,L=(c=i.computed.apply(void 0,function(e){if(Array.isArray(e))return S(e)}(R=E.map((function(e){return"show".concat(e)})))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(R)||k(R)||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.")}()),u=(0,i.computed)("currentRow","currentGroupedMessagesPosition"),l=(0,i.computed)("filter","search.length"),f=(0,i.computed)("rows.length","canLoadMore"),s=(0,i.computed)("total","rows.length"),p=(0,i.computed)("search"),y=function(e){(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function")
990
+ var L,R=(c=i.computed.apply(void 0,function(e){if(Array.isArray(e))return S(e)}(L=E.map((function(e){return"show".concat(e)})))||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(L)||k(L)||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.")}()),u=(0,i.computed)("currentRow","currentGroupedMessagesPosition"),l=(0,i.computed)("filter","search.length"),f=(0,i.computed)("rows.length","canLoadMore"),s=(0,i.computed)("total","rows.length"),p=(0,i.computed)("search"),y=function(e){(function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function")
923
991
  e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&g(e,t)})(v,e)
924
992
  var i,c,u,l,f,s,p,y=w(v)
925
993
  function v(){var e;(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,v)
@@ -983,12 +1051,12 @@ this.load({after:t})}else this.load({})}},{key:"showMoreBefore",value:(l=b(h().m
983
1051
  return h().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.rows[0],r=t.group?t.row_id:t.key,n=this.rows.filterBy("group").mapBy("regex"),e.next=5,this.load({before:r,knownGroups:n})
984
1052
  case 5:o=e.sent,this.updateCanLoadMore(o)
985
1053
  case 7:case"end":return e.stop()}}),e,this)}))),function(){return l.apply(this,arguments)})},{key:"toObjects",value:function(e){return e.map((function(e){return e.group?n.default.create(e):r.default.create(e)}))}}],c&&m(i.prototype,c),u&&m(i,u),Object.defineProperty(i,"prototype",{writable:!1}),v}(i.default),x(y.prototype,"filter",[c],Object.getOwnPropertyDescriptor(y.prototype,"filter"),y.prototype),x(y.prototype,"currentMessage",[u],Object.getOwnPropertyDescriptor(y.prototype,"currentMessage"),y.prototype),x(y.prototype,"hideCountInLoadMore",[l],Object.getOwnPropertyDescriptor(y.prototype,"hideCountInLoadMore"),y.prototype),x(y.prototype,"moreBefore",[f],Object.getOwnPropertyDescriptor(y.prototype,"moreBefore"),y.prototype),x(y.prototype,"totalBefore",[s],Object.getOwnPropertyDescriptor(y.prototype,"totalBefore"),y.prototype),x(y.prototype,"regexSearch",[p],Object.getOwnPropertyDescriptor(y.prototype,"regexSearch"),y.prototype),y)
986
- e.default=L}))
1054
+ e.default=R}))
987
1055
  define("client-app/models/message",["exports","@ember/object/computed","@ember/object","client-app/lib/utilities","client-app/lib/preload"],(function(e,t,r,n,o){var i,a,c,u,l,f,s,p,y,d
988
1056
  function h(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */h=function(){return e}
989
1057
  var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag"
990
- function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(R){u=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),c=new k(o||[])
991
- return n(a,"_invoke",{value:j(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(R){return{type:"throw",arg:R}}}e.wrap=l
1058
+ function u(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{u({},"")}catch(L){u=function(e,t,r){return e[t]=r}}function l(e,t,r,o){var i=t&&t.prototype instanceof p?t:p,a=Object.create(i.prototype),c=new k(o||[])
1059
+ return n(a,"_invoke",{value:j(e,r,c)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(L){return{type:"throw",arg:L}}}e.wrap=l
992
1060
  var s={}
993
1061
  function p(){}function y(){}function d(){}var v={}
994
1062
  u(v,i,(function(){return this}))
@@ -1279,6 +1347,6 @@ var r=(0,t.createTemplateFactory)({id:"rM12Js3D",block:'[[[10,0],[14,1,"top-pane
1279
1347
  e.default=r})),define("client-app/templates/settings",["exports","@ember/template-factory"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1280
1348
  var r=(0,t.createTemplateFactory)({id:"qqSpoh9d",block:'[[[10,0],[14,0,"settings-page"],[12],[1,"\\n "],[8,[39,0],null,[["@route"],["index"]],[["default"],[[[[1,"Home"]],[]]]]],[1,"\\n\\n "],[10,0],[14,0,"settings-header"],[12],[1,"\\n "],[10,"h1"],[14,0,"header-title"],[12],[1,"Settings"],[13],[1,"\\n "],[10,"img"],[14,0,"header-logo"],[15,"src",[28,[37,1],["images/icon_144x144.png"],null]],[12],[13],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"settings-section suppression-patterns"],[12],[1,"\\n "],[10,"h2"],[14,0,"section-title"],[12],[1,"Suppression Patterns"],[13],[1,"\\n\\n "],[10,0],[12],[1,"New messages that match these Regular Expression patterns will be\\n suppressed. Checking Apply retroactively will remove all existing messages\\n that match the patterns."],[13],[1,"\\n\\n"],[41,[30,0,["showCodedSuppression"]],[[[1," "],[10,"h3"],[14,0,"subsection-title"],[12],[1,"Hard-coded patterns:"],[13],[1,"\\n\\n "],[10,0],[14,0,"tip"],[12],[1,"These patterns can\'t be removed via the UI because they\\n are commited to the source code of your app."],[13],[1,"\\n\\n "],[8,[39,3],null,[["@patterns","@mutable"],[[30,0,["codedSuppression"]],false]],null],[1,"\\n"]],[]],null],[1,"\\n "],[10,"h3"],[14,0,"subsection-title"],[12],[1,"Custom patterns:"],[13],[1,"\\n\\n "],[8,[39,3],null,[["@patterns","@key","@applyRetroactivelyCheckbox","@mutable"],[[30,0,["customSuppression"]],"suppression",true,true]],null],[1,"\\n "],[13],[1,"\\n\\n "],[10,0],[14,0,"settings-section grouping-patterns"],[12],[1,"\\n "],[10,"h2"],[14,0,"section-title"],[12],[1,"Grouping Patterns"],[13],[1,"\\n\\n "],[10,0],[12],[1,"Add a Regular Expression pattern to group all new and existing messages\\n into a single row when viewing the logs."],[13],[1,"\\n\\n "],[8,[39,3],null,[["@patterns","@key","@mutable"],[[30,0,["grouping"]],"grouping",true]],null],[1,"\\n "],[13],[1,"\\n"],[13]],[],false,["link-to","logster-url","if","patterns-list"]]',moduleName:"client-app/templates/settings.hbs",isStrictMode:!1})
1281
1349
  e.default=r})),define("client-app/templates/show",["exports","@ember/template-factory"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1282
- var r=(0,t.createTemplateFactory)({id:"Wi+UDSYU",block:'[[[8,[39,0],[[24,0,"recent-link"]],[["@route"],["index"]],[["default"],[[[[1,"Recent"]],[]]]]],[1,"\\n\\n"],[10,0],[14,1,"bottom-panel"],[14,0,"full"],[12],[1,"\\n "],[8,[39,1],null,[["@currentMessage","@showTitle","@envChangedAction","@currentEnvPosition","@actionsInMenu"],[[30,0,["model"]],"true",[30,0,["envChanged"]],[30,0,["envPosition"]],false]],null],[1,"\\n"],[13]],[],false,["link-to","message-info"]]',moduleName:"client-app/templates/show.hbs",isStrictMode:!1})
1350
+ var r=(0,t.createTemplateFactory)({id:"d6AYgHoB",block:'[[[8,[39,0],[[24,0,"recent-link"]],[["@route"],["index"]],[["default"],[[[[1,"Recent"]],[]]]]],[1,"\\n\\n"],[10,0],[14,1,"bottom-panel"],[14,0,"full"],[12],[1,"\\n "],[8,[39,1],null,[["@currentMessage","@showTitle","@removeMessage","@solveMessage","@envChangedAction","@currentEnvPosition","@actionsInMenu"],[[30,0,["model"]],"true",[30,0,["removeMessage"]],[30,0,["solveMessage"]],[30,0,["envChanged"]],[30,0,["envPosition"]],false]],null],[1,"\\n"],[13]],[],false,["link-to","message-info"]]',moduleName:"client-app/templates/show.hbs",isStrictMode:!1})
1283
1351
  e.default=r})),define("client-app/config/environment",[],(function(){try{var e="client-app/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),r={default:JSON.parse(decodeURIComponent(t))}
1284
- return Object.defineProperty(r,"__esModule",{value:!0}),r}catch(n){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+21ff151f"})
1352
+ return Object.defineProperty(r,"__esModule",{value:!0}),r}catch(n){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+5e8677f8"})
@@ -1,9 +1,13 @@
1
1
  import classic from "ember-classic-decorator";
2
- import Controller from "@ember/controller";
2
+ import Controller, { inject as controller } from "@ember/controller";
3
3
  import { action } from "@ember/object";
4
+ import { inject as service } from "@ember/service";
4
5
 
5
6
  @classic
6
7
  export default class ShowController extends Controller {
8
+ @service router;
9
+ @controller("index") indexController;
10
+
7
11
  envPosition = 0;
8
12
 
9
13
  @action
@@ -16,6 +20,18 @@ export default class ShowController extends Controller {
16
20
  this.model.unprotect();
17
21
  }
18
22
 
23
+ @action
24
+ async solveMessage(msg) {
25
+ await msg.solve();
26
+ this.router.transitionTo("index");
27
+ }
28
+
29
+ @action
30
+ async removeMessage(msg) {
31
+ await msg.destroy();
32
+ this.router.transitionTo("index");
33
+ }
34
+
19
35
  @action
20
36
  envChanged(newPosition) {
21
37
  this.set("envPosition", newPosition);
@@ -4,6 +4,8 @@
4
4
  <MessageInfo
5
5
  @currentMessage={{this.model}}
6
6
  @showTitle="true"
7
+ @removeMessage={{this.removeMessage}}
8
+ @solveMessage={{this.solveMessage}}
7
9
  @envChangedAction={{this.envChanged}}
8
10
  @currentEnvPosition={{this.envPosition}}
9
11
  @actionsInMenu={{false}}
@@ -58,7 +58,7 @@
58
58
  "qunit": "^2.17.2",
59
59
  "qunit-dom": "^2.0.0",
60
60
  "sinon": "^15.0.1",
61
- "webpack": "^5.75.0"
61
+ "webpack": "^5.76.0"
62
62
  },
63
63
  "engines": {
64
64
  "node": "12.* || 14.* || >= 16"
@@ -3,13 +3,13 @@
3
3
  # This script takes care of updating the content of the preloaded json in tests/index.html
4
4
  # All you need to do is update the `tests_index_html` hash and run the script
5
5
 
6
- require 'bundler/inline'
7
- require 'json'
8
- require 'cgi'
6
+ require "bundler/inline"
7
+ require "json"
8
+ require "cgi"
9
9
 
10
10
  gemfile do
11
- source 'https://rubygems.org'
12
- gem 'nokogiri'
11
+ source "https://rubygems.org"
12
+ gem "nokogiri"
13
13
  end
14
14
 
15
15
  tests_index_html = {
@@ -17,23 +17,16 @@ tests_index_html = {
17
17
  gems_dir: "/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/",
18
18
  backtrace_links_enabled: true,
19
19
  gems_data: [
20
- {
21
- name: "activerecord",
22
- url: "https://github.com/rails/rails/tree/v6.0.1/activerecord"
23
- }
20
+ { name: "activerecord", url: "https://github.com/rails/rails/tree/v6.0.1/activerecord" },
24
21
  ],
25
22
  directories: [
26
- {
27
- path: "/var/www/discourse",
28
- url: "https://github.com/discourse/discourse",
29
- main_app: true
30
- },
23
+ { path: "/var/www/discourse", url: "https://github.com/discourse/discourse", main_app: true },
31
24
  {
32
25
  path: "/var/www/discourse/plugins/discourse-prometheus",
33
- url: "https://github.com/discourse/discourse-prometheus"
34
- }
26
+ url: "https://github.com/discourse/discourse-prometheus",
27
+ },
35
28
  ],
36
- application_version: "ce512452b512b909c38e9c63f2a0e1f8c17a2399"
29
+ application_version: "ce512452b512b909c38e9c63f2a0e1f8c17a2399",
37
30
  }
38
31
 
39
32
  content = File.read("tests/index.html")