forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
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}