Skip to content

Commit 50a2dd5

Browse files
silverwindlafriks
andauthored
Update JS dependencies and webpack (#14118)
* Update JS dependencies - Update all JS dependencies - Adapt webpack config for version 5 - Update to Less 4.0, adapting usage of removed mixin syntax - Enable new ESLint rules and fix discovered issues * update license-webpack-plugin to fix missing licenses * update license-webpack-plugin once more to get webpack into the license output * switch to license-checker-webpack-plugin again for performance * update deps again Co-authored-by: Lauris BH <[email protected]>
1 parent fe40372 commit 50a2dd5

13 files changed

+1154
-3650
lines changed

.eslintrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,7 @@ rules:
346346
unicorn/catch-error-name: [0]
347347
unicorn/consistent-function-scoping: [2]
348348
unicorn/custom-error-definition: [0]
349+
unicorn/empty-brace-spaces: [2]
349350
unicorn/error-message: [0]
350351
unicorn/escape-case: [0]
351352
unicorn/expiring-todo-comments: [0]
@@ -361,6 +362,7 @@ rules:
361362
unicorn/no-for-loop: [0]
362363
unicorn/no-hex-escape: [0]
363364
unicorn/no-keyword-prefix: [0]
365+
unicorn/no-lonely-if: [2]
364366
unicorn/no-nested-ternary: [0]
365367
unicorn/no-new-buffer: [0]
366368
unicorn/no-null: [0]
@@ -377,6 +379,7 @@ rules:
377379
unicorn/prefer-add-event-listener: [2]
378380
unicorn/prefer-array-find: [2]
379381
unicorn/prefer-dataset: [2]
382+
unicorn/prefer-date-now: [2]
380383
unicorn/prefer-event-key: [2]
381384
unicorn/prefer-includes: [2]
382385
unicorn/prefer-math-trunc: [2]

Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,8 @@ lint: lint-frontend lint-backend
317317

318318
.PHONY: lint-frontend
319319
lint-frontend: node_modules
320-
npx eslint --max-warnings=0 web_src/js build templates webpack.config.js
321-
npx stylelint --max-warnings=0 web_src/less
320+
npx eslint --color --max-warnings=0 web_src/js build templates webpack.config.js
321+
npx stylelint --color --max-warnings=0 web_src/less
322322

323323
.PHONY: lint-backend
324324
lint-backend: golangci-lint revive vet
@@ -330,7 +330,7 @@ watch:
330330
.PHONY: watch-frontend
331331
watch-frontend: node-check node_modules
332332
rm -rf $(WEBPACK_DEST_ENTRIES)
333-
NODE_ENV=development npx webpack --hide-modules --display-entrypoints=false --watch --progress
333+
NODE_ENV=development npx webpack --watch --progress
334334

335335
.PHONY: watch-backend
336336
watch-backend: go-check
@@ -660,7 +660,7 @@ webpack: $(WEBPACK_DEST)
660660

661661
$(WEBPACK_DEST): $(WEBPACK_SOURCES) $(WEBPACK_CONFIGS) package-lock.json | node_modules
662662
rm -rf $(WEBPACK_DEST_ENTRIES)
663-
npx webpack --hide-modules --display-entrypoints=false
663+
npx webpack
664664
@touch $(WEBPACK_DEST)
665665

666666
.PHONY: svg

package-lock.json

Lines changed: 1019 additions & 3512 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
"node": ">= 10.13.0"
66
},
77
"dependencies": {
8-
"@babel/core": "7.12.9",
9-
"@babel/plugin-transform-runtime": "7.12.1",
10-
"@babel/preset-env": "7.12.7",
8+
"@babel/core": "7.12.10",
9+
"@babel/plugin-transform-runtime": "7.12.10",
10+
"@babel/preset-env": "7.12.11",
1111
"@babel/runtime": "7.12.5",
1212
"@claviska/jquery-minicolors": "2.3.5",
13-
"@primer/octicons": "11.1.0",
14-
"add-asset-webpack-plugin": "1.0.0",
13+
"@primer/octicons": "11.2.0",
14+
"add-asset-webpack-plugin": "2.0.0",
1515
"babel-loader": "8.2.2",
1616
"clipboard": "2.0.6",
17-
"codemirror": "5.58.3",
18-
"core-js": "3.8.0",
17+
"codemirror": "5.59.0",
18+
"core-js": "3.8.1",
1919
"css-loader": "5.0.1",
2020
"css-minimizer-webpack-plugin": "1.1.5",
2121
"dropzone": "5.7.2",
@@ -26,42 +26,41 @@
2626
"font-awesome": "4.7.0",
2727
"jquery": "3.5.1",
2828
"jquery.are-you-sure": "1.9.0",
29-
"less": "3.12.2",
30-
"less-loader": "7.1.0",
31-
"license-webpack-plugin": "2.3.1",
32-
"mermaid": "8.8.3",
33-
"mini-css-extract-plugin": "1.3.1",
29+
"less": "4.0.0",
30+
"less-loader": "7.2.0",
31+
"license-checker-webpack-plugin": "0.2.1",
32+
"mermaid": "8.8.4",
33+
"mini-css-extract-plugin": "1.3.3",
3434
"monaco-editor": "0.21.2",
35-
"monaco-editor-webpack-plugin": "2.0.0",
36-
"postcss": "8.1.10",
35+
"monaco-editor-webpack-plugin": "2.1.0",
36+
"postcss": "8.2.1",
3737
"raw-loader": "4.0.2",
3838
"sortablejs": "1.12.0",
39-
"swagger-ui-dist": "3.37.2",
40-
"terser-webpack-plugin": "4.2.3",
39+
"swagger-ui-dist": "3.38.0",
40+
"terser-webpack-plugin": "5.0.3",
4141
"tributejs": "5.1.3",
4242
"vue": "2.6.12",
4343
"vue-bar-graph": "1.2.0",
4444
"vue-calendar-heatmap": "0.8.4",
45-
"vue-loader": "15.9.5",
45+
"vue-loader": "15.9.6",
4646
"vue-template-compiler": "2.6.12",
47-
"webpack": "4.44.1",
48-
"webpack-cli": "3.3.12",
49-
"webpack-fix-style-only-entries": "0.6.0",
50-
"workbox-routing": "5.1.4",
51-
"workbox-strategies": "5.1.4",
52-
"worker-loader": "3.0.5",
47+
"webpack": "5.11.0",
48+
"webpack-cli": "4.3.0",
49+
"workbox-routing": "6.0.2",
50+
"workbox-strategies": "6.0.2",
51+
"worker-loader": "3.0.7",
5352
"wrap-ansi": "7.0.0"
5453
},
5554
"devDependencies": {
56-
"eslint": "7.14.0",
55+
"eslint": "7.16.0",
5756
"eslint-plugin-html": "6.1.1",
5857
"eslint-plugin-import": "2.22.1",
59-
"eslint-plugin-unicorn": "23.0.0",
60-
"eslint-plugin-vue": "7.1.0",
58+
"eslint-plugin-unicorn": "24.0.0",
59+
"eslint-plugin-vue": "7.3.0",
6160
"stylelint": "13.8.0",
6261
"stylelint-config-standard": "20.0.0",
6362
"svgo": "1.3.2",
64-
"updates": "11.4.0"
63+
"updates": "11.4.2"
6564
},
6665
"browserslist": [
6766
"defaults",

public/img/svg/octicon-dash.svg

Lines changed: 1 addition & 1 deletion
Loading

public/img/svg/octicon-plus.svg

Lines changed: 1 addition & 1 deletion
Loading
Lines changed: 1 addition & 0 deletions
Loading

web_src/js/features/notification.js

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -43,53 +43,51 @@ export async function initNotificationCount() {
4343
return;
4444
}
4545

46-
if (NotificationSettings.EventSourceUpdateTime > 0 && !!window.EventSource) {
46+
if (NotificationSettings.EventSourceUpdateTime > 0 && !!window.EventSource && window.SharedWorker) {
4747
// Try to connect to the event source via the shared worker first
48-
if (window.SharedWorker) {
49-
const worker = new SharedWorker(`${__webpack_public_path__}js/eventsource.sharedworker.js`, 'notification-worker');
50-
worker.addEventListener('error', (event) => {
48+
const worker = new SharedWorker(`${__webpack_public_path__}js/eventsource.sharedworker.js`, 'notification-worker');
49+
worker.addEventListener('error', (event) => {
50+
console.error(event);
51+
});
52+
worker.port.onmessageerror = () => {
53+
console.error('Unable to deserialize message');
54+
};
55+
worker.port.postMessage({
56+
type: 'start',
57+
url: `${window.location.origin}${AppSubUrl}/user/events`,
58+
});
59+
worker.port.addEventListener('message', (event) => {
60+
if (!event.data || !event.data.type) {
5161
console.error(event);
52-
});
53-
worker.port.onmessageerror = () => {
54-
console.error('Unable to deserialize message');
55-
};
56-
worker.port.postMessage({
57-
type: 'start',
58-
url: `${window.location.origin}${AppSubUrl}/user/events`,
59-
});
60-
worker.port.addEventListener('message', (event) => {
61-
if (!event.data || !event.data.type) {
62-
console.error(event);
62+
return;
63+
}
64+
if (event.data.type === 'notification-count') {
65+
receiveUpdateCount(event.data);
66+
} else if (event.data.type === 'error') {
67+
console.error(event.data);
68+
} else if (event.data.type === 'logout') {
69+
if (event.data !== 'here') {
6370
return;
6471
}
65-
if (event.data.type === 'notification-count') {
66-
receiveUpdateCount(event.data);
67-
} else if (event.data.type === 'error') {
68-
console.error(event.data);
69-
} else if (event.data.type === 'logout') {
70-
if (event.data !== 'here') {
71-
return;
72-
}
73-
worker.port.postMessage({
74-
type: 'close',
75-
});
76-
worker.port.close();
77-
window.location.href = AppSubUrl;
78-
}
79-
});
80-
worker.port.addEventListener('error', (e) => {
81-
console.error(e);
82-
});
83-
worker.port.start();
84-
window.addEventListener('beforeunload', () => {
8572
worker.port.postMessage({
8673
type: 'close',
8774
});
8875
worker.port.close();
76+
window.location.href = AppSubUrl;
77+
}
78+
});
79+
worker.port.addEventListener('error', (e) => {
80+
console.error(e);
81+
});
82+
worker.port.start();
83+
window.addEventListener('beforeunload', () => {
84+
worker.port.postMessage({
85+
type: 'close',
8986
});
87+
worker.port.close();
88+
});
9089

91-
return;
92-
}
90+
return;
9391
}
9492

9593
if (NotificationSettings.MinTimeout <= 0) {

web_src/js/index.js

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -204,24 +204,22 @@ function initRepoStatusChecker() {
204204
_csrf: csrf,
205205
},
206206
complete(xhr) {
207-
if (xhr.status === 200) {
208-
if (xhr.responseJSON) {
209-
if (xhr.responseJSON.status === 4) {
210-
window.location.reload();
211-
return;
212-
} else if (xhr.responseJSON.status === 3) {
213-
$('#repo_migrating_progress').hide();
214-
$('#repo_migrating').hide();
215-
$('#repo_migrating_failed').show();
216-
$('#repo_migrating_failed_image').show();
217-
$('#repo_migrating_failed_error').text(xhr.responseJSON.err);
218-
return;
219-
}
220-
setTimeout(() => {
221-
initRepoStatusChecker();
222-
}, 2000);
207+
if (xhr.status === 200 && xhr.responseJSON) {
208+
if (xhr.responseJSON.status === 4) {
209+
window.location.reload();
210+
return;
211+
} else if (xhr.responseJSON.status === 3) {
212+
$('#repo_migrating_progress').hide();
213+
$('#repo_migrating').hide();
214+
$('#repo_migrating_failed').show();
215+
$('#repo_migrating_failed_image').show();
216+
$('#repo_migrating_failed_error').text(xhr.responseJSON.err);
223217
return;
224218
}
219+
setTimeout(() => {
220+
initRepoStatusChecker();
221+
}, 2000);
222+
return;
225223
}
226224
$('#repo_migrating_progress').hide();
227225
$('#repo_migrating').hide();
@@ -1625,16 +1623,12 @@ async function initEditor() {
16251623
let value;
16261624
let parts;
16271625

1628-
if (e.keyCode === 8) {
1629-
if ($(this).getCursorPosition() === 0) {
1630-
if ($section.length > 0) {
1631-
value = $section.last().find('a').text();
1632-
$(this).val(value + $(this).val());
1633-
$(this)[0].setSelectionRange(value.length, value.length);
1634-
$section.last().remove();
1635-
$divider.last().remove();
1636-
}
1637-
}
1626+
if (e.keyCode === 8 && $(this).getCursorPosition() === 0 && $section.length > 0) {
1627+
value = $section.last().find('a').text();
1628+
$(this).val(value + $(this).val());
1629+
$(this)[0].setSelectionRange(value.length, value.length);
1630+
$section.last().remove();
1631+
$divider.last().remove();
16381632
}
16391633
if (e.keyCode === 191) {
16401634
parts = $(this).val().split('/');

web_src/less/_form.less

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ textarea:focus,
236236
.user.signin,
237237
.user.signup {
238238
@input-padding: 200px;
239-
#create-page-form;
239+
#create-page-form();
240240

241241
form {
242242
width: 700px !important;
@@ -273,7 +273,7 @@ textarea:focus,
273273
&.new.repo,
274274
&.new.migrate,
275275
&.new.fork {
276-
#create-page-form;
276+
#create-page-form();
277277

278278
form {
279279
.dropdown .text {

web_src/less/_organization.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
}
1818

1919
&.new.org {
20-
#create-page-form;
20+
#create-page-form();
2121

2222
form {
2323
.header {

web_src/less/_repository.less

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -484,7 +484,7 @@
484484
border: 1px solid var(--color-secondary);
485485
background: var(--color-box-body);
486486
border-radius: 3px;
487-
#avatar-arrow;
487+
#avatar-arrow();
488488

489489
&::after {
490490
border-right-color: var(--color-box-body);
@@ -555,7 +555,7 @@
555555

556556
.content {
557557
margin-left: 4em;
558-
#avatar-arrow;
558+
#avatar-arrow();
559559

560560
&::after {
561561
border-right-color: var(--color-box-body);
@@ -979,7 +979,7 @@
979979
}
980980

981981
&.no-header {
982-
#avatar-arrow;
982+
#avatar-arrow();
983983

984984
&::after {
985985
border-right-color: var(--color-box-body);
@@ -1098,7 +1098,7 @@
10981098
}
10991099

11001100
.form {
1101-
#avatar-arrow;
1101+
#avatar-arrow();
11021102

11031103
&::after {
11041104
border-right-color: var(--color-box-body);
@@ -1195,7 +1195,7 @@
11951195

11961196
.comment.form {
11971197
.content {
1198-
#avatar-arrow;
1198+
#avatar-arrow();
11991199

12001200
&::after {
12011201
border-right-color: var(--color-box-body);
@@ -2458,7 +2458,7 @@
24582458
}
24592459

24602460
.comment-header {
2461-
#avatar-arrow;
2461+
#avatar-arrow();
24622462
border: none !important;
24632463
background: var(--color-box-header);
24642464
border-bottom: 1px solid var(--color-secondary) !important;

0 commit comments

Comments
 (0)