{ "name": "yomitan", "version": "0.0.0", "description": "Japanese pop-up dictionary extension for Chrome and Firefox.", "directories": { "test": "test" }, "engines": { "node": ">=22.0.0" }, "type": "module", "scripts": { "anki:css-json:write": "node ./dev/bin/generate-css-json.js --dryRun --all", "bench": "vitest bench", "build": "node ./dev/bin/build.js", "build:libs": "node ./dev/bin/build-libs.js", "build:serve:firefox-android": "node ./dev/bin/build.js --target firefox-android && web-ext run -s ./builds/yomitan-firefox-android", "build:serve:kiwi-browser": "node ./dev/bin/build.js --target chrome-dev && adb shell mkdir -p /sdcard/yomitan && adb push ./builds/yomitan-chrome-dev.zip /sdcard/yomitan/yomitan-kiwi-browser.zip", "//WARNING": "These are convenience functions for running from CLI but are NOT called from CI because they are not parallel. Make sure you update CI scripts if you update these.", "test": "npm run test:js && npm run test:ts && npm run test:css && npm run test:html && npm run test:unit && npm run test:unit:options && npm run test:json && npm run test:md && npm run test:build", "test:fast": "npm run test:js && npm run test:ts && npm run test:unit && npm run test:json:format", "test:static-analysis": "npm run test:js && npm run test:ts && npm run test:css && npm run test:html && npm run test:md", "test:ts": "npm run test:ts:main && npm run test:ts:dev && npm run test:ts:test && npm run test:ts:bench", "//END-WARNING": "", "test:js": "npx eslint . --ignore-pattern '**/*.json'", "test:json": "npm run test:json:format && npm run test:json:types", "test:json:format": "npx eslint '**/*.json'", "test:json:types": "vitest run --config test/data/vitest.json.config.json", "test:css": "npx stylelint \"ext/**/*.css\" \"test/**/*.css\" \"dev/**/*.css\"", "test:html": "npx html-validate \"ext/**/*.html\" \"test/**/*.html\" \"dev/**/*.html\"", "test:md": "prettier . --check", "test:md:write": "prettier . --write", "test:ts:main": "npx tsc --noEmit --project jsconfig.json", "test:ts:dev": "npx tsc --noEmit --project dev/jsconfig.json", "test:ts:test": "npx tsc --noEmit --project test/jsconfig.json", "test:ts:bench": "npx tsc --noEmit --project benches/jsconfig.json", "test:unit": "vitest run", "test:unit:write": "vitest run --config test/data/vitest.write.config.json", "test:unit:options": "vitest run --config test/data/vitest.options.config.json", "test:build": "node ./dev/bin/build.js --dryRun --all", "license-report:html": "license-report --output=html --only=prod --fields=name --fields=installedVersion --fields=licenseType --fields=link --html.cssFile=dev/data/legal-npm.css > ext/legal-npm.html", "license-report:markdown": "license-report --output=markdown --only=prod --fields=name --fields=licenseType --fields=link", "prepare": "husky" }, "repository": { "type": "git", "url": "git+https://github.com/yomidevs/yomitan.git" }, "license": "GPL-3.0-or-later", "licenses": [ { "type": "GPL-3.0-or-later", "url": "https://www.gnu.org/licenses/gpl-3.0.html" } ], "bugs": { "url": "https://github.com/yomidevs/yomitan/issues" }, "homepage": "https://github.com/yomidevs/yomitan/", "webExt": { "sourceDir": "ext" }, "devDependencies": { "@codspeed/vitest-plugin": "^4.0.0", "@eslint/compat": "^1.2.4", "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.17.0", "@playwright/test": "^1.49.1", "@stylistic/eslint-plugin": "^2.12.1", "@stylistic/stylelint-plugin": "^3.1.1", "@types/assert": "^1.5.11", "@types/browserify": "^12.0.40", "@types/chrome": "^0.0.287", "@types/css": "^0.0.38", "@types/dom-webcodecs": "^0.1.13", "@types/events": "^3.0.3", "@types/firefox-webext-browser": "^120.0.4", "@types/jsdom": "^21.1.7", "@types/node": "22.10.2", "@types/zip.js": "^2.0.33", "@vitest/coverage-v8": "^3.0.9", "@vitest/eslint-plugin": "^1.1.21", "ajv": "^8.17.1", "css": "^3.0.0", "dotenv": "^16.4.7", "esbuild": "^0.25.1", "eslint": "^9.17.0", "eslint-plugin-eslint-comments": "^3.2.0", "eslint-plugin-header": "^3.1.1", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsdoc": "^50.6.1", "eslint-plugin-jsonc": "^2.18.2", "eslint-plugin-no-unsanitized": "^4.1.2", "eslint-plugin-sonarjs": "^3.0.1", "eslint-plugin-unicorn": "^56.0.1", "eslint-plugin-unused-imports": "^4.1.4", "fake-indexeddb": "^6.0.0", "globals": "^15.14.0", "handlebars": "^4.7.8", "html-validate": "^9.1.0", "husky": "^9.1.7", "jsdom": "^25.0.1", "jszip": "^3.10.1", "license-report": "^6.7.1", "lint-staged": "^15.3.0", "prettier": "^3.4.2", "stylelint": "^16.12.0", "stylelint-config-recommended": "^14.0.1", "ts-json-schema-generator": "^2.3.0", "typescript": "^5.7.2", "typescript-eslint": "^8.18.2", "vitest": "^3.0.9" }, "dependencies": { "@resvg/resvg-wasm": "^2.6.2", "@zip.js/zip.js": "^2.7.54", "dexie": "^4.0.10", "dexie-export-import": "^4.1.4", "hangul-js": "^0.2.6", "kanji-processor": "^1.0.2", "parse5": "^7.2.1", "yomitan-handlebars": "git+https://github.com/yomidevs/yomitan-handlebars.git#12aff5e3550954d7d3a98a5917ff7d579f3cce25", "linkedom": "^0.18.10" }, "lint-staged": { "*.md": "prettier --write" } }