diff --git a/framework/eslint-config/package.json b/framework/eslint-config/package.json
index 3b8cc328c..64a2add01 100644
--- a/framework/eslint-config/package.json
+++ b/framework/eslint-config/package.json
@@ -8,7 +8,7 @@
"@typescript-eslint/eslint-plugin": "^8.24.1",
"@typescript-eslint/parser": "^8.24.1",
"eslint-config-airbnb": "^19.0.4",
- "eslint-plugin-de-morgan": "^1.0.1",
+ "eslint-plugin-de-morgan": "^1.1.0",
"eslint-plugin-github": "^5.1.8",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
diff --git a/package.json b/package.json
index 1e565516b..4a0164233 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,7 @@
"cross-spawn": "^7.0.6",
"esbuild": "0.25.0",
"eslint": "^8.57.1",
- "eslint-import-resolver-typescript": "^3.8.1",
+ "eslint-import-resolver-typescript": "^3.8.2",
"eslint-import-resolver-webpack": "^0.13.10",
"fs-extra": "^11.3.0",
"globby": "~14.0.2",
diff --git a/packages/geoip/index.ts b/packages/geoip/index.ts
index ff5728b87..7e6dd8710 100644
--- a/packages/geoip/index.ts
+++ b/packages/geoip/index.ts
@@ -16,7 +16,7 @@ export interface Result {
export default class GeoIPService extends Service {
constructor(ctx: Context) {
- super(ctx, 'geoip', true);
+ super(ctx, 'geoip');
}
provider = 'MaxMind';
diff --git a/packages/hydrooj/src/entry/worker.ts b/packages/hydrooj/src/entry/worker.ts
index e52856132..95c64fca4 100644
--- a/packages/hydrooj/src/entry/worker.ts
+++ b/packages/hydrooj/src/entry/worker.ts
@@ -39,7 +39,7 @@ export async function apply(ctx: Context) {
await modelSystem.runConfig();
const storage = require('../service/storage');
await storage.loadStorageService();
- ctx.plugin(require('../service/watcher').default, { watch: argv.options.watch });
+ ctx.plugin(require('../service/hmr').default, { watch: argv.options.watch });
await require('../service/worker').apply(ctx);
await require('../service/server').apply(ctx);
await require('../service/api').apply(ctx);
diff --git a/packages/sonic/service.ts b/packages/sonic/service.ts
index 79205e90f..08e0ba802 100644
--- a/packages/sonic/service.ts
+++ b/packages/sonic/service.ts
@@ -46,7 +46,7 @@ export class SonicService extends Service {
public error = '';
constructor(ctx: Context) {
- super(ctx, 'sonic', true);
+ super(ctx, 'sonic');
}
async start() {
diff --git a/packages/ui-default/components/discussion/history.page.tsx b/packages/ui-default/components/discussion/history.page.tsx
index 190e22ac8..b71c6a917 100644
--- a/packages/ui-default/components/discussion/history.page.tsx
+++ b/packages/ui-default/components/discussion/history.page.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable react-refresh/only-export-components */
import { Popover } from '@blueprintjs/core';
import React from 'react';
import ReactDOM from 'react-dom/client';
diff --git a/packages/ui-default/components/discussion/reaction.page.tsx b/packages/ui-default/components/discussion/reaction.page.tsx
index e2f9cc068..5df7aa86b 100644
--- a/packages/ui-default/components/discussion/reaction.page.tsx
+++ b/packages/ui-default/components/discussion/reaction.page.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable react-refresh/only-export-components */
import 'jquery.easing';
import { Popover } from '@blueprintjs/core';
diff --git a/packages/ui-default/components/languageselect.tsx b/packages/ui-default/components/languageselect.tsx
index 875c51cff..8bbbe2aa6 100644
--- a/packages/ui-default/components/languageselect.tsx
+++ b/packages/ui-default/components/languageselect.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable react-refresh/only-export-components */
import $ from 'jquery';
import React from 'react';
import ReactDOM from 'react-dom/client';
diff --git a/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx b/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx
index 1788ad4a6..7b3ce231e 100644
--- a/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx
+++ b/packages/ui-default/components/problemconfig/ProblemConfigEditor.tsx
@@ -1,3 +1,4 @@
+/* eslint-disable react-refresh/only-export-components */
import { diffLines } from 'diff';
import type { ProblemConfigFile, TestCaseConfig } from 'hydrooj/src/interface';
import $ from 'jquery';
diff --git a/packages/ui-default/context.ts b/packages/ui-default/context.ts
index 7391ce1a3..f100649b4 100644
--- a/packages/ui-default/context.ts
+++ b/packages/ui-default/context.ts
@@ -11,13 +11,8 @@ export interface Context {
}
export class Context extends cordis.Context { }
-export type MainScope = cordis.MainScope;
export type EffectScope = cordis.EffectScope;
-export type ForkScope = cordis.ForkScope;
-export abstract class Service extends cordis.Service {
- [cordis.Service.setup]() {
- this.ctx = new Context() as C;
- }
+export class Service extends cordis.Service {
}
export const ctx = new Context();
diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json
index 85b4e0852..759b4f0af 100644
--- a/packages/ui-default/package.json
+++ b/packages/ui-default/package.json
@@ -26,7 +26,7 @@
"@fontsource/ubuntu-mono": "^5.1.1",
"@hydrooj/utils": "workspace:^",
"@sentry/browser": "^9.1.0",
- "@sentry/webpack-plugin": "^3.1.2",
+ "@sentry/webpack-plugin": "^3.2.0",
"@simplewebauthn/browser": "13.1.0",
"@svgr/webpack": "^8.1.0",
"@types/html-to-text": "^9.0.4",
@@ -144,7 +144,7 @@
"nunjucks": "^3.2.4",
"schemastery-jsonschema": "^1.1.0",
"streamsaver": "^2.0.6",
- "uuid": "^11.0.5",
+ "uuid": "^11.1.0",
"xss": "^1.0.15"
}
}
diff --git a/packages/ui-default/pages/contest_balloon.page.tsx b/packages/ui-default/pages/contest_balloon.page.tsx
index b876d5812..0ab3b351c 100644
--- a/packages/ui-default/pages/contest_balloon.page.tsx
+++ b/packages/ui-default/pages/contest_balloon.page.tsx
@@ -1,4 +1,4 @@
-import $ from 'jquery';
+/* eslint-disable react-refresh/only-export-components */
import yaml from 'js-yaml';
import React from 'react';
import { HexColorInput, HexColorPicker } from 'react-colorful';
diff --git a/packages/ui-default/pages/home_messages.page.tsx b/packages/ui-default/pages/home_messages.page.tsx
index 01cd67959..915fee803 100644
--- a/packages/ui-default/pages/home_messages.page.tsx
+++ b/packages/ui-default/pages/home_messages.page.tsx
@@ -9,7 +9,7 @@ import { api, gql, loadReactRedux } from 'vj/utils';
class MessagePadService extends Service {
constructor(public store, public WebSocket: typeof import('../components/socket').default) {
- super(ctx, 'messagepad', true);
+ super(ctx, 'messagepad');
}
}