logster 2.12.2 → 2.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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")