[READ-ONLY] a fast, modern browser for the npm registry
at main 170 lines 6.1 kB view raw
1{ 2 "name": "npmx", 3 "license": "MIT", 4 "private": true, 5 "type": "module", 6 "version": "0.0.0", 7 "author": { 8 "name": "Daniel Roe", 9 "email": "daniel@roe.dev", 10 "url": "https://roe.dev" 11 }, 12 "scripts": { 13 "build": "nuxt build", 14 "build:lunaria": "node ./lunaria/lunaria.ts", 15 "build:test": "NODE_ENV=test pnpm build", 16 "dev": "nuxt dev", 17 "dev:docs": "pnpm run --filter npmx-docs dev --port=3001", 18 "i18n:check": "node scripts/compare-translations.ts", 19 "i18n:check:fix": "node scripts/compare-translations.ts --fix", 20 "i18n:report": "node scripts/find-invalid-translations.ts", 21 "i18n:report:fix": "node scripts/remove-unused-translations.ts", 22 "i18n:schema": "node scripts/generate-i18n-schema.ts", 23 "knip": "knip", 24 "knip:fix": "knip --fix", 25 "lint": "oxlint && oxfmt --check", 26 "lint:fix": "oxlint --fix && oxfmt", 27 "lint:css": "node scripts/unocss-checker.ts", 28 "generate": "nuxt generate", 29 "npmx-connector": "pnpm --filter npmx-connector dev", 30 "mock-connector": "pnpm --filter npmx-connector dev:mock", 31 "generate-pwa-icons": "pwa-assets-generator", 32 "preview": "nuxt preview", 33 "postinstall": "pnpm rebuild @resvg/resvg-js && pnpm generate:lexicons && pnpm generate:sprite && nuxt prepare && simple-git-hooks", 34 "generate:sprite": "node scripts/generate-file-tree-sprite.ts", 35 "generate:fixtures": "node scripts/generate-fixtures.ts", 36 "generate:lexicons": "lex build --lexicons lexicons --out shared/types/lexicons --clear", 37 "test": "vite test", 38 "test:a11y": "pnpm build:test && LIGHTHOUSE_COLOR_MODE=dark pnpm test:a11y:prebuilt && LIGHTHOUSE_COLOR_MODE=light pnpm test:a11y:prebuilt", 39 "test:a11y:prebuilt": "./scripts/lighthouse.sh", 40 "test:perf": "pnpm build:test && pnpm test:perf:prebuilt", 41 "test:perf:prebuilt": "LH_PERF=1 ./scripts/lighthouse.sh", 42 "test:browser": "pnpm build:test && pnpm test:browser:prebuilt", 43 "test:browser:prebuilt": "playwright test", 44 "test:browser:ui": "pnpm build:test && pnpm test:browser:prebuilt --ui", 45 "test:browser:update": "pnpm build:test && pnpm test:browser:prebuilt --update-snapshots", 46 "test:nuxt": "vite test --project nuxt", 47 "test:types": "pnpm generate:lexicons && nuxt prepare && vue-tsc -b --noEmit && pnpm --filter npmx-connector test:types", 48 "test:unit": "vite test --project unit", 49 "start:playwright:webserver": "NODE_ENV=test pnpm preview --port 5678" 50 }, 51 "dependencies": { 52 "@atproto/common": "0.5.10", 53 "@atproto/lex": "0.0.13", 54 "@atproto/oauth-client-node": "^0.3.15", 55 "@deno/doc": "jsr:^0.189.1", 56 "@floating-ui/vue": "1.1.10", 57 "@iconify-json/lucide": "1.2.87", 58 "@iconify-json/simple-icons": "1.2.68", 59 "@iconify-json/svg-spinners": "1.2.4", 60 "@iconify-json/vscode-icons": "1.2.40", 61 "@intlify/shared": "11.2.8", 62 "@lunariajs/core": "https://pkg.pr.new/lunariajs/lunaria/@lunariajs/core@f07e1a3", 63 "@napi-rs/canvas": "0.1.92", 64 "@nuxt/a11y": "1.0.0-alpha.1", 65 "@nuxt/fonts": "0.13.0", 66 "@nuxt/scripts": "0.13.2", 67 "@nuxt/test-utils": "4.0.0", 68 "@nuxtjs/color-mode": "4.0.0", 69 "@nuxtjs/html-validator": "2.1.0", 70 "@nuxtjs/i18n": "10.2.3", 71 "@shikijs/langs": "3.21.0", 72 "@shikijs/themes": "3.21.0", 73 "@unocss/nuxt": "66.6.0", 74 "@unocss/preset-wind4": "66.6.0", 75 "@upstash/redis": "1.36.1", 76 "@vite-pwa/assets-generator": "1.0.2", 77 "@vite-pwa/nuxt": "1.1.0", 78 "@voidzero-dev/vite-plus-core": "0.0.0-833c515fa25cef20905a7f9affb156dfa6f151ab", 79 "@vueuse/core": "14.2.0", 80 "@vueuse/integrations": "14.2.0", 81 "@vueuse/nuxt": "14.2.0", 82 "@vueuse/router": "^14.2.0", 83 "@vueuse/shared": "14.2.0", 84 "algoliasearch": "5.48.0", 85 "defu": "6.1.4", 86 "fast-npm-meta": "1.0.0", 87 "focus-trap": "^7.8.0", 88 "gray-matter": "4.0.3", 89 "marked": "17.0.1", 90 "module-replacements": "2.11.0", 91 "nuxt": "4.3.1", 92 "nuxt-og-image": "5.1.13", 93 "ofetch": "1.5.1", 94 "ohash": "2.0.11", 95 "perfect-debounce": "2.1.0", 96 "sanitize-html": "2.17.0", 97 "semver": "7.7.3", 98 "shiki": "3.21.0", 99 "simple-git": "3.30.0", 100 "spdx-license-list": "6.11.0", 101 "std-env": "3.10.0", 102 "tinyglobby": "0.2.15", 103 "ufo": "1.6.3", 104 "unocss": "66.6.0", 105 "unplugin-vue-router": "0.19.2", 106 "valibot": "1.2.0", 107 "validate-npm-package-name": "7.0.2", 108 "virtua": "0.48.5", 109 "vite-plugin-pwa": "1.2.0", 110 "vite-plus": "0.0.0-833c515fa25cef20905a7f9affb156dfa6f151ab", 111 "vue": "3.5.28", 112 "vue-data-ui": "3.15.0" 113 }, 114 "devDependencies": { 115 "@e18e/eslint-plugin": "0.1.4", 116 "@intlify/core-base": "11.2.8", 117 "@npm/types": "2.1.0", 118 "@playwright/test": "1.58.1", 119 "@types/node": "24.10.9", 120 "@types/sanitize-html": "2.16.0", 121 "@types/semver": "7.7.1", 122 "@types/validate-npm-package-name": "4.0.2", 123 "@vitest/browser-playwright": "4.0.18", 124 "@vitest/coverage-v8": "4.0.18", 125 "@vue/test-utils": "2.4.6", 126 "axe-core": "4.11.1", 127 "defu": "6.1.4", 128 "eslint-plugin-regexp": "3.0.0", 129 "fast-check": "4.5.3", 130 "h3": "1.15.5", 131 "h3-next": "npm:h3@2.0.1-rc.11", 132 "knip": "5.83.0", 133 "lint-staged": "16.2.7", 134 "oxfmt": "0.27.0", 135 "oxlint": "1.42.0", 136 "schema-dts": "1.1.5", 137 "simple-git-hooks": "2.13.1", 138 "typescript": "5.9.3", 139 "vitest": "npm:@voidzero-dev/vite-plus-test@0.0.0-833c515fa25cef20905a7f9affb156dfa6f151ab", 140 "vitest-environment-nuxt": "1.0.1", 141 "vue-i18n-extract": "2.0.7", 142 "vue-tsc": "3.2.4" 143 }, 144 "engines": { 145 "node": "24" 146 }, 147 "simple-git-hooks": { 148 "pre-commit": "npx lint-staged" 149 }, 150 "lint-staged": { 151 "i18n/locales/*": [ 152 "node ./lunaria/lunaria.ts", 153 "pnpm oxfmt lunaria/files/", 154 "git add lunaria/files/", 155 "node scripts/generate-i18n-schema.ts", 156 "pnpm oxfmt i18n/schema.json", 157 "git add i18n/schema.json" 158 ], 159 "*.{js,ts,mjs,cjs,vue}": [ 160 "pnpm oxlint --fix" 161 ], 162 "*.vue": [ 163 "pnpm lint:css" 164 ], 165 "*.{js,ts,mjs,cjs,vue,json,yml,md,html,css}": [ 166 "pnpm oxfmt" 167 ] 168 }, 169 "packageManager": "pnpm@10.28.2" 170}