Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
e7fb847
refactor: remove OCR types and worker implementation; add schema matc…
piquark6046 Aug 19, 2026
1af2153
feat: add color manipulation functions and tests for hex color parsin…
piquark6046 Aug 19, 2026
c8b0dbd
refactor: remove unused import from startrick.js
piquark6046 Aug 19, 2026
cf70b1f
feat: implement coloring worker functionality and associated types, t…
piquark6046 Aug 19, 2026
28d09c6
feat: enhance `RegionCentroidRatio` with geometric centroid calculati…
piquark6046 Aug 19, 2026
a4ad9f0
feat: optimize request ID generation and enhance uniqueness in `Compu…
piquark6046 Aug 19, 2026
ba58eae
ci: update bump-packagejson-version action to latest commit
piquark6046 Aug 27, 2026
43b3ec4
feat: add section for receiving update notifications via Discord and …
piquark6046 Aug 30, 2026
cd390f4
chore: migrate tests from AVA to Vitest and update package.json accor…
piquark6046 Aug 30, 2026
ae726ca
feat: migrate from ESLint to Oxlint for linting and update related co…
piquark6046 Sep 1, 2026
5392117
chore: move coloring lib
piquark6046 Sep 1, 2026
89b9959
chore: move `worker-runtime.ts` lib
piquark6046 Sep 1, 2026
73a4db8
fix: update entry point for coloring worker and adjust import path in…
piquark6046 Sep 1, 2026
34762d8
Add comprehensive tests for color parsing and region membership funct…
piquark6046 Sep 1, 2026
7a974d2
feat: add utility functions for image container validation and create…
piquark6046 Sep 1, 2026
f7de382
fix: ensure consistent formatting in `ComputeFaces3D` function
piquark6046 Sep 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ on:
branches: [ "**" ]

jobs:
eslint:
name: Run ESLint
lint:
name: Run lint
runs-on: ubuntu-latest
permissions:
contents: read
Expand All @@ -27,8 +27,8 @@ jobs:
run: mkdir -p ~/.pnpm-store && pnpm config set store-dir ~/.pnpm-store
- name: Install dependencies
run: pnpm install --no-lockfile
- name: Run ESLint
run: npm run lint
- name: Run lint
run: pnpm run lint
build:
name: Build the project
runs-on: ubuntu-latest
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: Install dependencies
run: pnpm install --no-lockfile
- name: Bump package.json version from tag
uses: TypescriptPrime/bump-packagejson-version@72720c4d073ed0c5b9e9393d7334abfe3fabb47c
uses: TypescriptPrime/bump-packagejson-version@8b461d950090eae85d58d8a0085bfc993abdea0d
- name: Build
run: npm run build:stable
- name : Publish to npm
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:
- name: Install dependencies
run: pnpm install --no-lockfile
- name: Bump package.json version from tag
uses: TypescriptPrime/bump-packagejson-version@72720c4d073ed0c5b9e9393d7334abfe3fabb47c
uses: TypescriptPrime/bump-packagejson-version@8b461d950090eae85d58d8a0085bfc993abdea0d
- name: Build
run: npm run build:stable
- name : Publish to npm
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
- name: Install dependencies
run: pnpm install --no-lockfile
- name: Bump package.json version from tag
uses: TypescriptPrime/bump-packagejson-version@72720c4d073ed0c5b9e9393d7334abfe3fabb47c
uses: TypescriptPrime/bump-packagejson-version@8b461d950090eae85d58d8a0085bfc993abdea0d
- name: Build
run: npm run build:dev
- name : Publish to npm
Expand Down
77 changes: 77 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": [],
"jsPlugins": ["./oxlint-plugin.mjs"],
"categories": {
"correctness": "off"
},
"env": {
"builtin": true
},
"options": {
"typeAware": true
},
"rules": {
"namulink/pascal-case": "error",
"namulink/no-semicolons": "error",
"namulink/single-quotes": "error"
},
"overrides": [
{
"files": ["**/*.ts", "**/*.tsx"],
"plugins": ["typescript"],
"rules": {
"no-array-constructor": "error",
"no-unused-expressions": "error",
"no-unused-vars": "warn",
"typescript/ban-ts-comment": "error",
"typescript/no-duplicate-enum-values": "error",
"typescript/no-empty-object-type": "error",
"typescript/no-explicit-any": "error",
"typescript/no-extra-non-null-assertion": "error",
"typescript/no-misused-new": "error",
"typescript/no-namespace": "error",
"typescript/no-non-null-asserted-optional-chain": "error",
"typescript/no-require-imports": "error",
"typescript/no-this-alias": "error",
"typescript/no-unnecessary-type-constraint": "error",
"typescript/no-unsafe-declaration-merging": "error",
"typescript/no-unsafe-function-type": "error",
"typescript/no-wrapper-object-types": "error",
"typescript/prefer-as-const": "error",
"typescript/prefer-namespace-keyword": "error",
"typescript/triple-slash-reference": "error",
"typescript/await-thenable": "warn",
"typescript/no-array-delete": "warn",
"typescript/no-base-to-string": "warn",
"typescript/no-duplicate-type-constituents": "warn",
"typescript/no-floating-promises": "warn",
"typescript/no-for-in-array": "warn",
"typescript/no-implied-eval": "warn",
"typescript/no-misused-promises": "warn",
"typescript/no-redundant-type-constituents": "warn",
"typescript/no-unnecessary-type-assertion": "warn",
"typescript/no-unsafe-argument": "warn",
"typescript/no-unsafe-assignment": "warn",
"typescript/no-unsafe-call": "warn",
"typescript/no-unsafe-enum-comparison": "warn",
"typescript/no-unsafe-member-access": "warn",
"typescript/no-unsafe-return": "warn",
"typescript/no-unsafe-unary-minus": "warn",
"typescript/only-throw-error": "warn",
"typescript/prefer-promise-reject-errors": "warn",
"typescript/require-await": "warn",
"typescript/restrict-plus-operands": "warn",
"typescript/restrict-template-expressions": "warn",
"typescript/unbound-method": "warn"
}
},
{
"files": ["tests/**/*.ts"],
"plugins": ["typescript"],
"rules": {
"typescript/no-floating-promises": "off"
}
}
]
}
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ NamuLink 유저스크립트는 AdGuard와 애드블록 커뮤니티에 의해
>
> 다른 애드블록 지원은 보장되지 않고 요청되어도 거부될 수 있습니다.

## Discord/Telegram로 업데이트 알림 받기

[Discord 봇](https://discord.com/oauth2/authorize?client_id=1543001264776814723) 또는 Telegram `@filteringdev_noti_bot`을 통해 업데이트 알림을 받을 수 있습니다.

## 설치

### 빠른 시작
아래 URL를 클릭하여 설치해주세요:

Expand Down
10 changes: 4 additions & 6 deletions builder/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"private": true,
"type": "module",
"scripts": {
"lint": "tsc --noEmit && eslint **/*.ts",
"lint": "tsc --noEmit && oxlint --type-aware **/*.ts",
"build": "tsx source/buildci.ts",
"debug": "tsx source/debug.ts",
"clean": "rm -rf dist && rm -rf .buildcache"
Expand All @@ -12,18 +12,16 @@
"@npmcli/package-json": "^8.0.0",
"@types/node": "^24.12.4",
"@types/npmcli__package-json": "^4.0.4",
"@typescript-eslint/eslint-plugin": "^8.59.4",
"@typescript-eslint/parser": "^8.59.4",
"@typescriptprime/parsing": "^2.0.1",
"chokidar": "^5.0.0",
"esbuild": "^0.28.0",
"eslint": "^10.4.0",
"memfs": "^4.57.2",
"oxlint": "^1.79.0",
"oxlint-tsgolint": "^7.0.2001",
"tldts": "^7.1.2",
"ts-morph": "^28.0.0",
"tsx": "^4.22.3",
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.4",
"typescript": "^7.0.2",
"zod": "^4.4.3"
}
}
8 changes: 5 additions & 3 deletions builder/source/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,11 +110,13 @@ export async function Build(OptionsParam?: BuildOptions): Promise<void> {
}
})

const WorkerCode = await ESBuild.build({
entryPoints: [Path.resolve(ProjectRoot, 'userscript', 'source', 'ocr-worker.ts')],
// Bundled separately (not inlined via the virtual entry) so it can be embedded as a string and run inside a Worker/worker_threads.
const ColoringWorkerCode = await ESBuild.build({
entryPoints: [Path.resolve(ProjectRoot, 'userscript', 'source', 'coloring', 'coloring-worker.ts')],
bundle: true,
minify: Options.Minify,
write: false,
external: ['node:worker_threads'],
target: ['es2024', 'chrome119', 'firefox142', 'safari26']
})

Expand All @@ -131,7 +133,7 @@ export async function Build(OptionsParam?: BuildOptions): Promise<void> {
},
target: ['es2024', 'chrome119', 'firefox142', 'safari26'],
define: {
__OCR_WORKER_CODE__: JSON.stringify(WorkerCode.outputFiles[0].text)
__COLORING_WORKER_CODE__: JSON.stringify(ColoringWorkerCode.outputFiles[0].text)
},
plugins: [
CreateVirtualIndexEntryPlugin(VirtualIndexEntry.EntryPath, VirtualIndexEntry.FileSystem)
Expand Down
27 changes: 0 additions & 27 deletions eslint.config.js

This file was deleted.

Loading
Loading