logster 2.8.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,18 +24,18 @@
24
24
  "@fortawesome/free-regular-svg-icons": "^5.13.0",
25
25
  "@fortawesome/free-solid-svg-icons": "^5.13.0",
26
26
  "@glimmer/component": "^1.0.0",
27
- "babel-eslint": "^10.0.3",
27
+ "babel-eslint": "^10.1.0",
28
28
  "broccoli-asset-rev": "^3.0.0",
29
29
  "ember-auto-import": "^1.5.3",
30
30
  "ember-cli": "^3.15.0",
31
31
  "ember-cli-app-version": "^3.2.0",
32
- "ember-cli-babel": "^7.13.0",
32
+ "ember-cli-babel": "^7.19.0",
33
33
  "ember-cli-dependency-checker": "^3.2.0",
34
34
  "ember-cli-eslint": "^5.1.0",
35
- "ember-cli-htmlbars": "^4.2.0",
35
+ "ember-cli-htmlbars": "^4.3.1",
36
36
  "ember-cli-inject-live-reload": "^2.0.1",
37
37
  "ember-cli-sri": "^2.1.1",
38
- "ember-cli-template-lint": "^1.0.0-beta.3",
38
+ "ember-cli-template-lint": "^1.0.0",
39
39
  "ember-cli-uglify": "^3.0.0",
40
40
  "ember-export-application-global": "^2.0.1",
41
41
  "ember-load-initializers": "^2.1.1",
@@ -43,7 +43,7 @@
43
43
  "ember-qunit": "^4.6.0",
44
44
  "ember-resolver": "^7.0.0",
45
45
  "ember-source": "^3.15.0",
46
- "eslint-plugin-ember": "^7.7.1",
46
+ "eslint-plugin-ember": "^7.13.0",
47
47
  "eslint-plugin-node": "^10.0.0",
48
48
  "loader.js": "^4.7.0",
49
49
  "prettier": "^1.19.1",
@@ -148,7 +148,7 @@ module("Integration | Component | env-tab", function(hooks) {
148
148
 
149
149
  assert.equal(
150
150
  defaultExpanded.children[1].textContent.trim(),
151
- "[vvv1, vvv2]",
151
+ "vvv1, [vvv2]",
152
152
  "list is expanded by default when its length is 3 or less"
153
153
  );
154
154
 
@@ -165,7 +165,7 @@ module("Integration | Component | env-tab", function(hooks) {
165
165
  const expanded = find(".env-table tr");
166
166
  assert.equal(
167
167
  expanded.children[1].textContent.trim(),
168
- "[value1, value2, value3, value4]",
168
+ "value1, [value2, value3, value4]",
169
169
  "expanded env keys shown correctly"
170
170
  );
171
171
 
@@ -137,10 +137,6 @@ module Logster
137
137
  end
138
138
  end
139
139
 
140
- def is_similar?(other)
141
- self.grouping_key == other.grouping_key
142
- end
143
-
144
140
  def merge_similar_message(other)
145
141
  self.first_timestamp ||= self.timestamp
146
142
  self.timestamp = [self.timestamp, other.timestamp].max
@@ -306,7 +302,7 @@ module Logster
306
302
  end
307
303
 
308
304
  def get_timestamp
309
- (Time.new.to_f * 1000).to_i
305
+ (Time.now.to_f * 1000).to_i
310
306
  end
311
307
  end
312
308
  end
@@ -57,7 +57,14 @@ module Logster
57
57
  message << "\nWindow Location: " << params["window_location"] if params["window_location"]
58
58
 
59
59
  backtrace = params["stacktrace"] || ""
60
- Logster.store.report(::Logger::Severity::WARN,
60
+
61
+ severity = ::Logger::Severity::WARN
62
+ if params["severity"] &&
63
+ ::Logger::Severity.const_defined?(params["severity"].upcase)
64
+ severity = ::Logger::Severity.const_get(params["severity"].upcase)
65
+ end
66
+
67
+ Logster.store.report(severity,
61
68
  "javascript",
62
69
  message,
63
70
  backtrace: backtrace,
@@ -48,7 +48,7 @@ module Logster
48
48
  end
49
49
 
50
50
  Logster.store.delete(message)
51
- return [301, { "Location" => "#{@logs_path}/" }, []]
51
+ [301, { "Location" => "#{@logs_path}/" }, []]
52
52
 
53
53
  elsif resource =~ /\/(un)?protect\/([0-9a-f]+)$/
54
54
  off = $1 == "un"
@@ -61,15 +61,15 @@ module Logster
61
61
 
62
62
  if off
63
63
  if Logster.store.unprotect(key)
64
- return [301, { "Location" => "#{@logs_path}/show/#{key}?protected=false" }, []]
64
+ [301, { "Location" => "#{@logs_path}/show/#{key}?protected=false" }, []]
65
65
  else
66
- return [500, {}, ["Failed"]]
66
+ [500, {}, ["Failed"]]
67
67
  end
68
68
  else
69
69
  if Logster.store.protect(key)
70
- return [301, { "Location" => "#{@logs_path}/show/#{key}?protected=true" }, []]
70
+ [301, { "Location" => "#{@logs_path}/show/#{key}?protected=true" }, []]
71
71
  else
72
- return [500, {}, ["Failed"]]
72
+ [500, {}, ["Failed"]]
73
73
  end
74
74
  end
75
75
 
@@ -83,14 +83,14 @@ module Logster
83
83
 
84
84
  Logster.store.solve(key)
85
85
 
86
- return [301, { "Location" => "#{@logs_path}" }, []]
86
+ [301, { "Location" => "#{@logs_path}" }, []]
87
87
 
88
88
  elsif resource =~ /\/clear$/
89
89
  if env[REQUEST_METHOD] != "POST"
90
90
  return method_not_allowed("POST")
91
91
  end
92
92
  Logster.store.clear
93
- return [200, {}, ["Messages cleared"]]
93
+ [200, {}, ["Messages cleared"]]
94
94
 
95
95
  elsif resource =~ /\/show\/([0-9a-f]+)(\.json)?$/
96
96
  key = $1
@@ -179,7 +179,7 @@ module Logster
179
179
  end.first
180
180
  return not_found("No such pattern group exists") if !group
181
181
  group.messages_keys.each { |k| Logster.store.solve(k) }
182
- return [200, {}, []]
182
+ [200, {}, []]
183
183
  elsif resource == '/development-preload.json' && ENV["LOGSTER_ENV"] == "development"
184
184
  [200, { "Content-Type" => "application/json; charset=utf-8" }, [JSON.generate(preloaded_data)]]
185
185
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Logster
4
- VERSION = "2.8.0"
4
+ VERSION = "2.9.0"
5
5
  end
@@ -8,7 +8,7 @@ require 'logster/version'
8
8
  Gem::Specification.new do |spec|
9
9
  spec.name = "logster"
10
10
  spec.version = Logster::VERSION
11
- spec.authors = ["UI for viewing logs in Rack"]
11
+ spec.authors = ["Sam Saffron"]
12
12
  spec.email = ["sam.saffron@gmail.com"]
13
13
  spec.summary = %q{UI for viewing logs in Rack}
14
14
  spec.description = %q{UI for viewing logs in Rack}
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.license = "MIT"
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
- f.start_with?("bower_components") || f.start_with?("website") || f.start_with?("bin")
19
+ f.start_with?("website") || f.start_with?("bin")
20
20
  end
21
21
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
22
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
@@ -32,7 +32,6 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "guard"
33
33
  spec.add_development_dependency "guard-minitest"
34
34
  spec.add_development_dependency "timecop"
35
- spec.add_development_dependency "byebug", "~> 11.0.0"
36
- spec.add_development_dependency "rubocop", "~> 0.69.0"
37
- spec.add_development_dependency "rubocop-discourse"
35
+ spec.add_development_dependency "byebug", "~> 11.1.0"
36
+ spec.add_development_dependency "rubocop-discourse", "~> 2.1.2"
38
37
  end
@@ -11,6 +11,7 @@ class TestReporter < Minitest::Test
11
11
  Logster.store = Logster::RedisStore.new
12
12
  Logster.store.clear_all
13
13
  Logster.config.enable_js_error_reporting = true
14
+ Logster.config.rate_limit_error_reporting = true
14
15
  end
15
16
 
16
17
  def test_logs_errors
@@ -22,6 +23,28 @@ class TestReporter < Minitest::Test
22
23
  assert_equal(1, Logster.store.count)
23
24
  end
24
25
 
26
+ def test_logs_severity_of_errors
27
+ Logster.config.rate_limit_error_reporting = false
28
+
29
+ reporter = Logster::Middleware::Reporter.new(nil)
30
+ env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello")
31
+ status, = reporter.call(env)
32
+
33
+ assert_equal(Logger::Severity::WARN, Logster.store.latest[-1].severity)
34
+
35
+ reporter = Logster::Middleware::Reporter.new(nil)
36
+ env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello&severity=invalid")
37
+ status, = reporter.call(env)
38
+
39
+ assert_equal(Logger::Severity::WARN, Logster.store.latest[-1].severity)
40
+
41
+ reporter = Logster::Middleware::Reporter.new(nil)
42
+ env = Rack::MockRequest.env_for("/logs/report_js_error?message=hello&severity=error")
43
+ status, = reporter.call(env)
44
+
45
+ assert_equal(Logger::Severity::ERROR, Logster.store.latest[-1].severity)
46
+ end
47
+
25
48
  def test_respects_ban_on_errors
26
49
  Logster.config.enable_js_error_reporting = false
27
50
 
@@ -10,7 +10,7 @@ class TestGroup < MiniTest::Test
10
10
  end
11
11
 
12
12
  def test_from_json_works_correctly
13
- time = (Time.new.to_f * 1000).to_i - 5000
13
+ time = (Time.now.to_f * 1000).to_i - 5000
14
14
  json = JSON.generate(
15
15
  key: '/somekey/',
16
16
  messages_keys: [111, 222, 333].map(&:to_s),
@@ -20,7 +20,7 @@ class TestMessage < MiniTest::Test
20
20
  end
21
21
 
22
22
  def test_populate_from_env_will_add_time_to_env_unless_it_already_exists
23
- t = (Time.new.to_f * 1000).to_i
23
+ t = (Time.now.to_f * 1000).to_i
24
24
  msg = Logster::Message.new(0, '', 'test', t)
25
25
  msg.populate_from_env({})
26
26
  assert_equal(t, msg.env["time"])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logster
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
- - UI for viewing logs in Rack
7
+ - Sam Saffron
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-30 00:00:00.000000000 Z
11
+ date: 2020-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,42 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 11.0.0
117
+ version: 11.1.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 11.0.0
124
+ version: 11.1.0
125
125
  - !ruby/object:Gem::Dependency
126
- name: rubocop
126
+ name: rubocop-discourse
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.69.0
131
+ version: 2.1.2
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 0.69.0
139
- - !ruby/object:Gem::Dependency
140
- name: rubocop-discourse
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
138
+ version: 2.1.2
153
139
  description: UI for viewing logs in Rack
154
140
  email:
155
141
  - sam.saffron@gmail.com