logster 2.17.1 → 2.18.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/assets/javascript/{chunk.143.9ad45aeee8109c9f708f.js → chunk.143.a2d29a1fb97842b7d0eb.js} +4 -4
- data/assets/javascript/{chunk.178.341075cf72464ad389e0.js → chunk.178.98ff138cdeebea372782.js} +3 -3
- data/assets/javascript/client-app.js +1 -1
- data/lib/logster/middleware/viewer.rb +26 -18
- data/lib/logster/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b42108529f3d1efa06b9505e663768978d196547f3a740b93ef39e1c0e3fa799
|
|
4
|
+
data.tar.gz: e9dec0e088efd26bd4bb9fb68a8c42f08a29f20b05ce852c3c555525f77c187e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 507d69d608f83f30a6e9367669d692fce19056fd1be4a187b39c6cbacb3b20464f49a8569e8741f29c7e716d568fae1537ca01aa06dd98e1fa14a7b6fa3ccd2b
|
|
7
|
+
data.tar.gz: 45132294504ae2947342ffca2c2f9d973a6d405e1da941aec7e4757e72f7aec6497a73e79a1d2d40216e50a0436293ad9399db217fd3f38687aa259f3b1daa5a
|
data/CHANGELOG.md
CHANGED
data/assets/javascript/{chunk.143.9ad45aeee8109c9f708f.js → chunk.143.a2d29a1fb97842b7d0eb.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var __ember_auto_import__
|
|
2
|
-
!function(){var e,r={
|
|
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)})))},
|
|
2
|
+
!function(){var e,r={892: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)})))},308: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(
|
|
21
|
-
var t=o.O(void 0,[468],(function(){return o(
|
|
20
|
+
n.forEach(r.bind(null,0)),n.push=r.bind(null,n.push.bind(n))}(),o.O(void 0,[468],(function(){return o(308)}))
|
|
21
|
+
var t=o.O(void 0,[468],(function(){return o(892)}))
|
|
22
22
|
t=o.O(t),__ember_auto_import__=t}()
|
data/assets/javascript/{chunk.178.341075cf72464ad389e0.js → chunk.178.98ff138cdeebea372782.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var __ember_auto_import__
|
|
2
|
-
!function(){var r,n={
|
|
2
|
+
!function(){var r,n={308:function(r,n){window._eai_r=require,window._eai_d=define},435: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(
|
|
21
|
-
var o=t.O(void 0,[916],(function(){return t(
|
|
20
|
+
e.forEach(n.bind(null,0)),e.push=n.bind(null,e.push.bind(e))}(),t.O(void 0,[916],(function(){return t(308)}))
|
|
21
|
+
var o=t.O(void 0,[916],(function(){return t(435)}))
|
|
22
22
|
o=t.O(o),__ember_auto_import__=o}()
|
|
@@ -1387,4 +1387,4 @@ var r=(0,t.createTemplateFactory)({id:"qqSpoh9d",block:'[[[10,0],[14,0,"settings
|
|
|
1387
1387
|
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
|
|
1388
1388
|
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})
|
|
1389
1389
|
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))}
|
|
1390
|
-
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+
|
|
1390
|
+
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+b7702e90"})
|
|
@@ -85,7 +85,7 @@ module Logster
|
|
|
85
85
|
[200, { "content-type" => "application/json; charset=utf-8" }, [message.to_json]]
|
|
86
86
|
else
|
|
87
87
|
preload = { "/show/#{key}" => message }
|
|
88
|
-
|
|
88
|
+
js_app(preload)
|
|
89
89
|
end
|
|
90
90
|
elsif resource =~ %r{/settings(\.json)?$}
|
|
91
91
|
json = $1 == ".json"
|
|
@@ -114,7 +114,7 @@ module Logster
|
|
|
114
114
|
[JSON.generate(suppression: suppression, grouping: grouping)],
|
|
115
115
|
]
|
|
116
116
|
else
|
|
117
|
-
|
|
117
|
+
js_app
|
|
118
118
|
end
|
|
119
119
|
elsif resource =~ %r{/patterns/([a-zA-Z0-9_]+)\.json$}
|
|
120
120
|
unless Logster.config.enable_custom_patterns_via_ui
|
|
@@ -151,7 +151,7 @@ module Logster
|
|
|
151
151
|
Logster.store.remove_ignore_count(pattern)
|
|
152
152
|
[200, {}, ["OK"]]
|
|
153
153
|
elsif resource == "/"
|
|
154
|
-
|
|
154
|
+
js_app
|
|
155
155
|
elsif resource =~ %r{/fetch-env/([0-9a-f]+)\.json$}
|
|
156
156
|
key = $1
|
|
157
157
|
env = Logster.store.get_env(key)
|
|
@@ -299,15 +299,12 @@ module Logster
|
|
|
299
299
|
$3 || "/" if path =~ @path_regex
|
|
300
300
|
end
|
|
301
301
|
|
|
302
|
-
def css(name,
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
"<link rel='stylesheet' type='text/css' href='#{@logs_path}/stylesheets/#{name}' #{attrs}>"
|
|
302
|
+
def css(name, csp_nonce)
|
|
303
|
+
"<link rel='stylesheet' type='text/css' href='#{@logs_path}/stylesheets/#{name}' nonce='#{csp_nonce}'>"
|
|
306
304
|
end
|
|
307
305
|
|
|
308
|
-
def script(
|
|
309
|
-
name =
|
|
310
|
-
"<script src='#{@logs_path}/javascript/#{name}'></script>"
|
|
306
|
+
def script(name, csp_nonce)
|
|
307
|
+
"<script src='#{@logs_path}/javascript/#{name}' nonce='#{csp_nonce}'></script>"
|
|
311
308
|
end
|
|
312
309
|
|
|
313
310
|
def to_json_and_escape(payload)
|
|
@@ -344,32 +341,43 @@ module Logster
|
|
|
344
341
|
preload
|
|
345
342
|
end
|
|
346
343
|
|
|
347
|
-
def
|
|
344
|
+
def js_app(preload = {})
|
|
345
|
+
csp_nonce = SecureRandom.hex
|
|
348
346
|
preload = preloaded_data.merge(preload)
|
|
349
347
|
root_url = @logs_path
|
|
350
348
|
root_url += "/" if root_url[-1] != "/"
|
|
351
|
-
<<~HTML
|
|
349
|
+
body = <<~HTML
|
|
352
350
|
<!doctype html>
|
|
353
351
|
<html>
|
|
354
352
|
<head>
|
|
355
353
|
<link rel="shortcut icon" href="#{@logs_path}/images/icon_64x64.png">
|
|
356
354
|
<link rel="apple-touch-icon" href="#{@logs_path}/images/icon_144x144.png" />
|
|
357
355
|
<title>#{Logster.config.web_title || "Logs"}</title>
|
|
358
|
-
<link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
|
359
|
-
<link href='//fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css'>
|
|
356
|
+
<link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css' nonce='#{csp_nonce}'>
|
|
357
|
+
<link href='//fonts.googleapis.com/css?family=Roboto+Mono' rel='stylesheet' type='text/css' nonce='#{csp_nonce}'>
|
|
360
358
|
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=yes">
|
|
361
359
|
<meta name="color-scheme" content="dark light">
|
|
362
|
-
#{css("vendor.css")}
|
|
363
|
-
#{css("client-app.css")}
|
|
364
|
-
#{script("vendor.js")}
|
|
360
|
+
#{css("vendor.css", csp_nonce)}
|
|
361
|
+
#{css("client-app.css", csp_nonce)}
|
|
362
|
+
#{script("vendor.js", csp_nonce)}
|
|
365
363
|
<meta id="preloaded-data" data-root-path="#{@logs_path}" data-preloaded="#{to_json_and_escape(preload)}">
|
|
366
364
|
<meta name="client-app/config/environment" content="%7B%22modulePrefix%22%3A%22client-app%22%2C%22environment%22%3A%22production%22%2C%22rootURL%22%3A%22#{root_url}%22%2C%22locationType%22%3A%22history%22%2C%22EmberENV%22%3A%7B%22FEATURES%22%3A%7B%7D%2C%22EXTEND_PROTOTYPES%22%3A%7B%22Date%22%3Afalse%7D%2C%22_APPLICATION_TEMPLATE_WRAPPER%22%3Afalse%2C%22_DEFAULT_ASYNC_OBSERVERS%22%3Atrue%2C%22_JQUERY_INTEGRATION%22%3Afalse%2C%22_TEMPLATE_ONLY_GLIMMER_COMPONENTS%22%3Atrue%7D%2C%22APP%22%3A%7B%22name%22%3A%22client-app%22%2C%22version%22%3A%220.0.0%2B7a424002%22%7D%2C%22exportApplicationGlobal%22%3Afalse%7D" />
|
|
367
365
|
</head>
|
|
368
366
|
<body>
|
|
369
|
-
#{script("client-app.js")}
|
|
367
|
+
#{script("client-app.js", csp_nonce)}
|
|
370
368
|
</body>
|
|
371
369
|
</html>
|
|
372
370
|
HTML
|
|
371
|
+
|
|
372
|
+
[
|
|
373
|
+
200,
|
|
374
|
+
{
|
|
375
|
+
"content-type" => "text/html; charset=utf-8",
|
|
376
|
+
"content-security-policy" =>
|
|
377
|
+
"script-src 'nonce-#{csp_nonce}'; style-src 'nonce-#{csp_nonce}'; object-src 'none'; base-uri 'none';",
|
|
378
|
+
},
|
|
379
|
+
[body],
|
|
380
|
+
]
|
|
373
381
|
end
|
|
374
382
|
end
|
|
375
383
|
end
|
data/lib/logster/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: logster
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.18.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sam Saffron
|
|
@@ -172,8 +172,8 @@ files:
|
|
|
172
172
|
- assets/images/icon_144x144.png
|
|
173
173
|
- assets/images/icon_64x64.png
|
|
174
174
|
- assets/javascript/.gitkeep
|
|
175
|
-
- assets/javascript/chunk.143.
|
|
176
|
-
- assets/javascript/chunk.178.
|
|
175
|
+
- assets/javascript/chunk.143.a2d29a1fb97842b7d0eb.js
|
|
176
|
+
- assets/javascript/chunk.178.98ff138cdeebea372782.js
|
|
177
177
|
- assets/javascript/chunk.468.95dd450003497c781cb3.js
|
|
178
178
|
- assets/javascript/chunk.916.85a3fc9d873df80f5ea5.js
|
|
179
179
|
- assets/javascript/client-app.js
|