logster 2.11.4 → 2.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +63 -12
- data/.gitignore +2 -0
- data/CHANGELOG.md +10 -5
- data/README.md +8 -0
- data/assets/javascript/.gitkeep +0 -0
- data/assets/javascript/chunk.143.2faa04830259ce9aa59a.js +22 -0
- data/assets/javascript/chunk.178.ca5ade1d8cbdbfbe6d72.js +22 -0
- data/assets/javascript/chunk.468.95dd450003497c781cb3.js +1213 -0
- data/assets/javascript/chunk.916.85a3fc9d873df80f5ea5.js +579 -0
- data/assets/javascript/client-app.js +1257 -280
- data/assets/javascript/vendor.js +4068 -3375
- data/assets/stylesheets/.gitkeep +0 -0
- data/assets/stylesheets/client-app.css +1 -1
- data/assets/stylesheets/vendor.css +1 -1
- data/build_client_app.sh +6 -8
- data/client-app/.editorconfig +0 -1
- data/client-app/.eslintignore +2 -0
- data/client-app/.eslintrc +10 -0
- data/client-app/.gitignore +1 -1
- data/client-app/.prettierignore +21 -0
- data/client-app/.prettierrc +1 -0
- data/client-app/.template-lintrc.js +10 -0
- data/client-app/README.md +4 -5
- data/client-app/app/app.js +2 -2
- data/client-app/app/components/actions-menu.js +21 -21
- data/client-app/app/components/back-trace.js +89 -90
- data/client-app/app/components/env-tab.js +41 -29
- data/client-app/app/components/message-info.js +78 -75
- data/client-app/app/components/message-row.js +20 -17
- data/client-app/app/components/page-nav.js +33 -24
- data/client-app/app/components/panel-resizer.js +53 -37
- data/client-app/app/components/patterns-list.js +101 -84
- data/client-app/app/components/tab-contents.js +15 -19
- data/client-app/app/components/tabbed-section.js +30 -18
- data/client-app/app/components/time-formatter.js +29 -18
- data/client-app/app/controllers/index.js +143 -119
- data/client-app/app/controllers/show.js +17 -13
- data/client-app/app/helpers/or.js +1 -1
- data/client-app/app/initializers/app-init.js +23 -34
- data/client-app/app/lib/decorators.js +4 -2
- data/client-app/app/lib/preload.js +7 -4
- data/client-app/app/lib/utilities.js +55 -54
- data/client-app/app/models/group.js +20 -15
- data/client-app/app/models/message-collection.js +153 -149
- data/client-app/app/models/message.js +60 -58
- data/client-app/app/models/pattern-item.js +24 -22
- data/client-app/app/router.js +2 -2
- data/client-app/app/routes/index.js +19 -12
- data/client-app/app/routes/settings.js +12 -10
- data/client-app/app/routes/show.js +6 -4
- data/client-app/app/services/events.js +4 -0
- data/client-app/app/styles/app.css +2 -0
- data/client-app/app/templates/application.hbs +1 -2
- data/client-app/app/templates/components/actions-menu.hbs +23 -8
- data/client-app/app/templates/components/back-trace.hbs +10 -3
- data/client-app/app/templates/components/env-tab.hbs +9 -7
- data/client-app/app/templates/components/message-info.hbs +65 -34
- data/client-app/app/templates/components/message-row.hbs +25 -8
- data/client-app/app/templates/components/page-nav.hbs +34 -10
- data/client-app/app/templates/components/panel-resizer.hbs +3 -3
- data/client-app/app/templates/components/patterns-list.hbs +54 -20
- data/client-app/app/templates/components/tabbed-section.hbs +12 -4
- data/client-app/app/templates/components/time-formatter.hbs +1 -1
- data/client-app/app/templates/index.hbs +100 -78
- data/client-app/app/templates/settings.hbs +30 -19
- data/client-app/app/templates/show.hbs +9 -8
- data/client-app/config/ember-cli-update.json +18 -0
- data/client-app/config/environment.js +13 -13
- data/client-app/config/icons.js +3 -3
- data/client-app/config/targets.js +16 -8
- data/client-app/ember-cli-build.js +4 -4
- data/client-app/package.json +41 -31
- data/client-app/testem.js +16 -17
- data/client-app/tests/index.html +8 -1
- data/client-app/tests/integration/components/back-trace-test.js +32 -26
- data/client-app/tests/integration/components/env-tab-test.js +79 -53
- data/client-app/tests/integration/components/message-info-test.js +25 -23
- data/client-app/tests/integration/components/patterns-list-test.js +14 -11
- data/client-app/tests/test-helper.js +8 -4
- data/client-app/tests/unit/controllers/index-test.js +32 -16
- data/client-app/tests/unit/controllers/show-test.js +5 -5
- data/client-app/tests/unit/routes/index-test.js +5 -5
- data/client-app/tests/unit/routes/show-test.js +5 -5
- data/client-app/yarn.lock +9673 -0
- data/lib/logster/version.rb +1 -1
- data/logster.gemspec +6 -3
- metadata +15 -6
- data/client-app/.eslintrc.js +0 -60
- data/client-app/.travis.yml +0 -28
- data/client-app/app/components/update-time.js +0 -21
- data/client-app/package-lock.json +0 -16639
@@ -1,104 +1,126 @@
|
|
1
|
-
<div id=
|
1
|
+
<div id="top-panel">
|
2
2
|
<div id="log-table">
|
3
|
-
{{#if model.moreBefore}}
|
4
|
-
<div {{
|
5
|
-
{{#if model.hideCountInLoadMore}}
|
3
|
+
{{#if this.model.moreBefore}}
|
4
|
+
<div {{on "click" this.showMoreBefore}} class="show-more">
|
5
|
+
{{#if this.model.hideCountInLoadMore}}
|
6
6
|
Load more
|
7
7
|
{{else}}
|
8
|
-
Select to see
|
8
|
+
Select to see
|
9
|
+
{{this.model.totalBefore}}
|
10
|
+
more
|
9
11
|
{{/if}}
|
10
12
|
</div>
|
11
13
|
{{/if}}
|
12
|
-
|
13
|
-
|
14
|
+
|
15
|
+
{{#each this.model.rows as |row|}}
|
16
|
+
<MessageRow @model={{row}} @selectRow={{fn this.selectRowAction row}} />
|
14
17
|
{{/each}}
|
15
18
|
</div>
|
16
19
|
</div>
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
20
|
+
|
21
|
+
<div id="bottom-panel" class={{if this.model.currentRow.group "group-view"}}>
|
22
|
+
{{#if this.model.currentRow.group}}
|
23
|
+
<PageNav
|
24
|
+
@list={{this.model.currentRow.messages}}
|
25
|
+
@position={{this.model.currentGroupedMessagesPosition}}
|
26
|
+
@extraClasses="group-nav"
|
27
|
+
@navigate={{this.groupedMessageChangedAction}}
|
28
|
+
/>
|
24
29
|
{{/if}}
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
30
|
+
|
31
|
+
<MessageInfo
|
32
|
+
@currentMessage={{this.model.currentMessage}}
|
33
|
+
@currentRow={{this.model.currentRow}}
|
34
|
+
@loadingEnv={{this.model.loadingEnv}}
|
35
|
+
@removeMessage={{this.removeMessage}}
|
36
|
+
@solveMessage={{this.solveMessage}}
|
37
|
+
@onTabChange={{this.tabChangedAction}}
|
38
|
+
@envChangedAction={{this.envChangedAction}}
|
39
|
+
@currentEnvPosition={{this.model.currentEnvPosition}}
|
40
|
+
@actionsInMenu={{this.actionsInMenu}}
|
41
|
+
@showShare={{true}}
|
42
|
+
/>
|
36
43
|
|
37
44
|
<div class="action-panel">
|
38
45
|
<div class="severity-filters">
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
<
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
46
|
+
<div class="more-wrapping">
|
47
|
+
<label class="debug">
|
48
|
+
<input
|
49
|
+
type="checkbox"
|
50
|
+
checked={{this.showDebug}}
|
51
|
+
onchange={{fn this.updateFilter "showDebug"}}
|
52
|
+
/>
|
53
|
+
<span>Debug</span>
|
54
|
+
</label>
|
55
|
+
|
56
|
+
<label class="info">
|
57
|
+
<input
|
58
|
+
type="checkbox"
|
59
|
+
checked={{this.showInfo}}
|
60
|
+
onchange={{fn this.updateFilter "showInfo"}}
|
61
|
+
/>
|
62
|
+
<span>Info</span>
|
63
|
+
</label>
|
64
|
+
|
65
|
+
<label class="warn">
|
66
|
+
<input
|
67
|
+
type="checkbox"
|
68
|
+
checked={{this.showWarn}}
|
69
|
+
onchange={{fn this.updateFilter "showWarn"}}
|
70
|
+
/>
|
71
|
+
<FaIcon @icon="exclamation-circle" class="warning" />
|
72
|
+
<span>Warning</span>
|
73
|
+
</label>
|
74
|
+
|
75
|
+
<label class="error">
|
76
|
+
<input
|
77
|
+
type="checkbox"
|
78
|
+
checked={{this.showErr}}
|
79
|
+
onchange={{fn this.updateFilter "showErr"}}
|
80
|
+
/>
|
81
|
+
<FaIcon @icon="times-circle" class="error" />
|
82
|
+
<span>Error</span>
|
83
|
+
</label>
|
84
|
+
|
85
|
+
<label class="fatal">
|
86
|
+
<input
|
87
|
+
type="checkbox"
|
88
|
+
checked={{this.showFatal}}
|
89
|
+
onchange={{fn this.updateFilter "showFatal"}}
|
90
|
+
/>
|
91
|
+
<FaIcon @icon="times-circle" class="fatal" />
|
92
|
+
<span>Fatal</span>
|
93
|
+
</label>
|
94
|
+
</div>
|
84
95
|
</div>
|
96
|
+
|
85
97
|
<div class="search-clear-all">
|
86
98
|
<input
|
87
99
|
type="text"
|
88
100
|
class="search"
|
89
101
|
placeholder="Search"
|
90
|
-
value={{searchTerm}}
|
91
|
-
onkeyup={{
|
102
|
+
value={{this.searchTerm}}
|
103
|
+
onkeyup={{this.updateSearch}}
|
92
104
|
/>
|
105
|
+
|
93
106
|
<div class="footer-btns">
|
94
|
-
{{#if showSettings}}
|
95
|
-
|
96
|
-
|
97
|
-
|
107
|
+
{{#if this.showSettings}}
|
108
|
+
<LinkTo @route="settings" class="settings btn no-text">
|
109
|
+
<FaIcon @icon="cog" />
|
110
|
+
</LinkTo>
|
98
111
|
{{/if}}
|
99
|
-
|
112
|
+
|
113
|
+
<button
|
114
|
+
class="clear btn danger"
|
115
|
+
type="button"
|
116
|
+
{{on "click" this.clear}}
|
117
|
+
>
|
118
|
+
<FaIcon @icon="trash-alt" prefix="far" />
|
119
|
+
<span>Clear logs</span>
|
120
|
+
</button>
|
100
121
|
</div>
|
101
122
|
</div>
|
102
123
|
</div>
|
103
124
|
</div>
|
104
|
-
|
125
|
+
|
126
|
+
<PanelResizer />
|
@@ -1,36 +1,47 @@
|
|
1
1
|
<div class="settings-page">
|
2
|
-
|
2
|
+
<LinkTo @route="index">Home</LinkTo>
|
3
|
+
|
3
4
|
<div class="settings-header">
|
4
5
|
<h1 class="header-title">Settings</h1>
|
5
|
-
<img class="header-logo" src={{logster-url "images/icon_144x144.png"}}
|
6
|
+
<img class="header-logo" src={{logster-url "images/icon_144x144.png"}} />
|
6
7
|
</div>
|
7
8
|
|
8
9
|
<div class="settings-section suppression-patterns">
|
9
10
|
<h2 class="section-title">Suppression Patterns</h2>
|
10
|
-
<div>New messages that match these Regular Expression patterns will be suppressed. Checking Apply retroactively will remove all existing messages that match the patterns.</div>
|
11
11
|
|
12
|
-
|
12
|
+
<div>New messages that match these Regular Expression patterns will be
|
13
|
+
suppressed. Checking Apply retroactively will remove all existing messages
|
14
|
+
that match the patterns.</div>
|
15
|
+
|
16
|
+
{{#if this.showCodedSuppression}}
|
13
17
|
<h3 class="subsection-title">Hard-coded patterns:</h3>
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
+
|
19
|
+
<div class="tip">These patterns can't be removed via the UI because they
|
20
|
+
are commited to the source code of your app.</div>
|
21
|
+
|
22
|
+
<PatternsList @patterns={{this.codedSuppression}} @mutable={{false}} />
|
18
23
|
{{/if}}
|
19
24
|
|
20
25
|
<h3 class="subsection-title">Custom patterns:</h3>
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
|
27
|
+
<PatternsList
|
28
|
+
@patterns={{this.customSuppression}}
|
29
|
+
@key="suppression"
|
30
|
+
@applyRetroactivelyCheckbox={{true}}
|
31
|
+
@mutable={{true}}
|
32
|
+
/>
|
26
33
|
</div>
|
34
|
+
|
27
35
|
<div class="settings-section grouping-patterns">
|
28
36
|
<h2 class="section-title">Grouping Patterns</h2>
|
29
|
-
<div>Add a Regular Expression pattern to group all new and existing messages into a single row when viewing the logs.</div>
|
30
37
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
38
|
+
<div>Add a Regular Expression pattern to group all new and existing messages
|
39
|
+
into a single row when viewing the logs.</div>
|
40
|
+
|
41
|
+
<PatternsList
|
42
|
+
@patterns={{this.grouping}}
|
43
|
+
@key="grouping"
|
44
|
+
@mutable={{true}}
|
45
|
+
/>
|
35
46
|
</div>
|
36
|
-
</div>
|
47
|
+
</div>
|
@@ -1,10 +1,11 @@
|
|
1
|
-
|
1
|
+
<LinkTo @route="index" class="recent-link">Recent</LinkTo>
|
2
2
|
|
3
3
|
<div id="bottom-panel" class="full">
|
4
|
-
|
5
|
-
currentMessage=model
|
6
|
-
showTitle="true"
|
7
|
-
envChangedAction=
|
8
|
-
currentEnvPosition=envPosition
|
9
|
-
actionsInMenu=false}}
|
10
|
-
|
4
|
+
<MessageInfo
|
5
|
+
@currentMessage={{this.model}}
|
6
|
+
@showTitle="true"
|
7
|
+
@envChangedAction={{this.envChanged}}
|
8
|
+
@currentEnvPosition={{this.envPosition}}
|
9
|
+
@actionsInMenu={{false}}
|
10
|
+
/>
|
11
|
+
</div>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"schemaVersion": "1.0.0",
|
3
|
+
"packages": [
|
4
|
+
{
|
5
|
+
"name": "ember-cli",
|
6
|
+
"version": "3.28.6",
|
7
|
+
"blueprints": [
|
8
|
+
{
|
9
|
+
"name": "app",
|
10
|
+
"outputRepo": "https://github.com/ember-cli/ember-new-output",
|
11
|
+
"codemodsSource": "ember-app-codemods-manifest@1",
|
12
|
+
"isBaseBlueprint": true,
|
13
|
+
"options": ["--no-welcome"]
|
14
|
+
}
|
15
|
+
]
|
16
|
+
}
|
17
|
+
]
|
18
|
+
}
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
|
-
module.exports = function(environment) {
|
3
|
+
module.exports = function (environment) {
|
4
4
|
let ENV = {
|
5
|
-
modulePrefix:
|
5
|
+
modulePrefix: "client-app",
|
6
6
|
environment,
|
7
|
-
rootURL:
|
8
|
-
locationType:
|
7
|
+
rootURL: "/logs",
|
8
|
+
locationType: "history",
|
9
9
|
EmberENV: {
|
10
10
|
FEATURES: {
|
11
11
|
// Here you can enable experimental features on an ember canary build
|
@@ -13,17 +13,17 @@ module.exports = function(environment) {
|
|
13
13
|
},
|
14
14
|
EXTEND_PROTOTYPES: {
|
15
15
|
// Prevent Ember Data from overriding Date.parse.
|
16
|
-
Date: false
|
17
|
-
}
|
16
|
+
Date: false,
|
17
|
+
},
|
18
18
|
},
|
19
19
|
|
20
20
|
APP: {
|
21
21
|
// Here you can pass flags/options to your application instance
|
22
22
|
// when it is created
|
23
|
-
}
|
23
|
+
},
|
24
24
|
};
|
25
25
|
|
26
|
-
if (environment ===
|
26
|
+
if (environment === "development") {
|
27
27
|
// ENV.APP.LOG_RESOLVER = true;
|
28
28
|
// ENV.APP.LOG_ACTIVE_GENERATION = true;
|
29
29
|
// ENV.APP.LOG_TRANSITIONS = true;
|
@@ -31,19 +31,19 @@ module.exports = function(environment) {
|
|
31
31
|
// ENV.APP.LOG_VIEW_LOOKUPS = true;
|
32
32
|
}
|
33
33
|
|
34
|
-
if (environment ===
|
34
|
+
if (environment === "test") {
|
35
35
|
// Testem prefers this...
|
36
|
-
ENV.locationType =
|
36
|
+
ENV.locationType = "none";
|
37
37
|
|
38
38
|
// keep test console output quieter
|
39
39
|
ENV.APP.LOG_ACTIVE_GENERATION = false;
|
40
40
|
ENV.APP.LOG_VIEW_LOOKUPS = false;
|
41
41
|
|
42
|
-
ENV.APP.rootElement =
|
42
|
+
ENV.APP.rootElement = "#ember-testing";
|
43
43
|
ENV.APP.autoboot = false;
|
44
44
|
}
|
45
45
|
|
46
|
-
if (environment ===
|
46
|
+
if (environment === "production") {
|
47
47
|
// here you can enable a production-specific feature
|
48
48
|
}
|
49
49
|
|
data/client-app/config/icons.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module.exports = function() {
|
1
|
+
module.exports = function () {
|
2
2
|
return {
|
3
3
|
"free-solid-svg-icons": [
|
4
4
|
"check-square",
|
@@ -18,9 +18,9 @@ module.exports = function() {
|
|
18
18
|
"question-circle",
|
19
19
|
"cog",
|
20
20
|
"lock",
|
21
|
-
"unlock"
|
21
|
+
"unlock",
|
22
22
|
],
|
23
|
-
"free-regular-svg-icons": ["trash-alt", "check-square", "copy", "clone"]
|
23
|
+
"free-regular-svg-icons": ["trash-alt", "check-square", "copy", "clone"],
|
24
24
|
// "free-brands-svg-icons": []
|
25
25
|
};
|
26
26
|
};
|
@@ -1,18 +1,26 @@
|
|
1
|
-
|
1
|
+
"use strict";
|
2
2
|
|
3
3
|
const browsers = [
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
"last 1 Chrome versions",
|
5
|
+
"last 1 Firefox versions",
|
6
|
+
"last 1 Safari versions",
|
7
7
|
];
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
// Ember's browser support policy is changing, and IE11 support will end in
|
10
|
+
// v4.0 onwards.
|
11
|
+
//
|
12
|
+
// See https://deprecations.emberjs.com/v3.x#toc_3-0-browser-support-policy
|
13
|
+
//
|
14
|
+
// If you need IE11 support on a version of Ember that still offers support
|
15
|
+
// for it, uncomment the code block below.
|
16
|
+
|
17
|
+
const isCI = Boolean(process.env.CI);
|
18
|
+
const isProduction = process.env.EMBER_ENV === "production";
|
11
19
|
|
12
20
|
if (isCI || isProduction) {
|
13
|
-
browsers.push(
|
21
|
+
browsers.push("ie 11");
|
14
22
|
}
|
15
23
|
|
16
24
|
module.exports = {
|
17
|
-
browsers
|
25
|
+
browsers,
|
18
26
|
};
|
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
const EmberApp = require("ember-cli/lib/broccoli/ember-app");
|
4
4
|
|
5
|
-
module.exports = function(defaults) {
|
6
|
-
|
5
|
+
module.exports = function (defaults) {
|
6
|
+
let app = new EmberApp(defaults, {
|
7
7
|
// Add options here
|
8
8
|
fingerprint: {
|
9
|
-
enabled: false
|
10
|
-
}
|
9
|
+
enabled: false,
|
10
|
+
},
|
11
11
|
});
|
12
12
|
|
13
13
|
// Use `app.import` to add additional libraries to the generated
|
data/client-app/package.json
CHANGED
@@ -11,48 +11,57 @@
|
|
11
11
|
"test": "tests"
|
12
12
|
},
|
13
13
|
"scripts": {
|
14
|
-
"build": "ember build",
|
15
|
-
"lint": "npm
|
14
|
+
"build": "ember build --environment=production",
|
15
|
+
"lint": "npm-run-all --aggregate-output --continue-on-error --parallel \"lint:!(fix)\"",
|
16
|
+
"lint:fix": "npm-run-all --aggregate-output --continue-on-error --parallel lint:*:fix",
|
16
17
|
"lint:hbs": "ember-template-lint .",
|
17
|
-
"lint:
|
18
|
+
"lint:hbs:fix": "ember-template-lint . --fix",
|
19
|
+
"lint:js": "eslint . --cache",
|
20
|
+
"lint:js:fix": "eslint . --fix",
|
18
21
|
"start": "ember serve",
|
19
|
-
"test": "
|
22
|
+
"test": "npm-run-all lint test:*",
|
23
|
+
"test:ember": "ember test"
|
20
24
|
},
|
21
25
|
"devDependencies": {
|
22
|
-
"@ember/optional-features": "^
|
23
|
-
"@
|
24
|
-
"@fortawesome/
|
25
|
-
"@fortawesome/free-
|
26
|
-
"@fortawesome/free-
|
27
|
-
"@
|
26
|
+
"@ember/optional-features": "^2.0.0",
|
27
|
+
"@ember/test-helpers": "^2.6.0",
|
28
|
+
"@fortawesome/ember-fontawesome": "^0.4.1",
|
29
|
+
"@fortawesome/free-brands-svg-icons": "^6.3.0",
|
30
|
+
"@fortawesome/free-regular-svg-icons": "^6.3.0",
|
31
|
+
"@fortawesome/free-solid-svg-icons": "^6.3.0",
|
32
|
+
"@glimmer/component": "^1.0.4",
|
33
|
+
"@glimmer/tracking": "^1.0.4",
|
28
34
|
"babel-eslint": "^10.1.0",
|
29
35
|
"broccoli-asset-rev": "^3.0.0",
|
30
|
-
"ember-auto-import": "^
|
31
|
-
"ember-
|
32
|
-
"ember-cli
|
33
|
-
"ember-cli-
|
36
|
+
"ember-auto-import": "^2.6.1",
|
37
|
+
"ember-classic-decorator": "^3.0.1",
|
38
|
+
"ember-cli": "^3.28.6",
|
39
|
+
"ember-cli-app-version": "^6.0.0",
|
40
|
+
"ember-cli-babel": "^7.26.10",
|
34
41
|
"ember-cli-dependency-checker": "^3.2.0",
|
35
|
-
"ember-cli-
|
36
|
-
"ember-cli-
|
37
|
-
"ember-cli-inject-live-reload": "^2.0.1",
|
42
|
+
"ember-cli-htmlbars": "^6.2.0",
|
43
|
+
"ember-cli-inject-live-reload": "^2.1.0",
|
38
44
|
"ember-cli-sri": "^2.1.1",
|
39
|
-
"ember-cli-
|
40
|
-
"ember-
|
45
|
+
"ember-cli-terser": "^4.0.2",
|
46
|
+
"ember-decorators": "^6.1.1",
|
41
47
|
"ember-export-application-global": "^2.0.1",
|
42
|
-
"ember-load-initializers": "^2.1.
|
43
|
-
"ember-maybe-import-regenerator": "^0.
|
44
|
-
"ember-
|
45
|
-
"ember-
|
46
|
-
"ember-
|
47
|
-
"ember-
|
48
|
-
"
|
49
|
-
"eslint-
|
48
|
+
"ember-load-initializers": "^2.1.2",
|
49
|
+
"ember-maybe-import-regenerator": "^1.0.0",
|
50
|
+
"ember-page-title": "^7.0.0",
|
51
|
+
"ember-qunit": "^6.2.0",
|
52
|
+
"ember-resolver": "^10.0.0",
|
53
|
+
"ember-sinon-qunit": "^7.0.0",
|
54
|
+
"ember-source": "^3.28.11",
|
55
|
+
"eslint-config-discourse": "^3.4.0",
|
50
56
|
"loader.js": "^4.7.0",
|
51
|
-
"
|
52
|
-
"qunit
|
57
|
+
"npm-run-all": "^4.1.5",
|
58
|
+
"qunit": "^2.17.2",
|
59
|
+
"qunit-dom": "^2.0.0",
|
60
|
+
"sinon": "^15.0.1",
|
61
|
+
"webpack": "^5.75.0"
|
53
62
|
},
|
54
63
|
"engines": {
|
55
|
-
"node": "
|
64
|
+
"node": "12.* || 14.* || >= 16"
|
56
65
|
},
|
57
66
|
"ember": {
|
58
67
|
"edition": "octane"
|
@@ -61,6 +70,7 @@
|
|
61
70
|
"moment": "~2.29.4"
|
62
71
|
},
|
63
72
|
"overrides": {
|
64
|
-
"testem": "^3.9.0"
|
73
|
+
"testem": "^3.9.0",
|
74
|
+
"workerpool": "^6.3.1"
|
65
75
|
}
|
66
76
|
}
|
data/client-app/testem.js
CHANGED
@@ -1,24 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
1
3
|
module.exports = {
|
2
|
-
test_page:
|
4
|
+
test_page: "tests/index.html?hidepassed",
|
3
5
|
disable_watching: true,
|
4
|
-
launch_in_ci: [
|
5
|
-
|
6
|
-
|
7
|
-
launch_in_dev: [
|
8
|
-
'Chrome'
|
9
|
-
],
|
6
|
+
launch_in_ci: ["Chrome"],
|
7
|
+
launch_in_dev: ["Chrome"],
|
8
|
+
browser_start_timeout: 120,
|
10
9
|
browser_args: {
|
11
10
|
Chrome: {
|
12
11
|
ci: [
|
13
12
|
// --no-sandbox is needed when running Chrome inside a container
|
14
|
-
process.env.CI ?
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
].filter(Boolean)
|
22
|
-
}
|
23
|
-
}
|
13
|
+
process.env.CI ? "--no-sandbox" : null,
|
14
|
+
"--headless",
|
15
|
+
"--disable-dev-shm-usage",
|
16
|
+
"--disable-software-rasterizer",
|
17
|
+
"--mute-audio",
|
18
|
+
"--remote-debugging-port=0",
|
19
|
+
"--window-size=1440,900",
|
20
|
+
].filter(Boolean),
|
21
|
+
},
|
22
|
+
},
|
24
23
|
};
|
data/client-app/tests/index.html
CHANGED
@@ -22,7 +22,14 @@
|
|
22
22
|
{{content-for "body"}}
|
23
23
|
{{content-for "test-body"}}
|
24
24
|
|
25
|
-
<
|
25
|
+
<div id="qunit"></div>
|
26
|
+
<div id="qunit-fixture">
|
27
|
+
<div id="ember-testing-container">
|
28
|
+
<div id="ember-testing"></div>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<script src="/testem.js" integrity="" data-embroider-ignore></script>
|
26
33
|
<script src="{{rootURL}}assets/vendor.js"></script>
|
27
34
|
<script src="{{rootURL}}assets/test-support.js"></script>
|
28
35
|
<script src="{{rootURL}}assets/client-app.js"></script>
|