doesitarm/package.json
ThatGuySam d45b587434 Finish axios migration via shared native HTTP helper
Replace all in-scope axios callsites with a new helpers/http.js wrapper over native fetch, including JSON/text GET, JSON POST, HEAD checks, and transient 5xx retry behavior; update all browser, build, script, and proxy API clients to use it; add focused unit tests; and remove axios from package dependencies.

Constraint: Preserve API/build and deployment behavior while lowering transport surface area.

Rejected: inline fetch replacements at each callsite | rejected to avoid inconsistent error/retry semantics.

Confidence: high

Scope-risk: moderate

Directive: Keep helper in place as the transport boundary and update tests when changing request semantics.

Tested: pnpm run -s typecheck, pnpm -s run test-prebuild, pnpm -s run test, pnpm -s run test:browser, pnpm -s run netlify-build, smoke GETs on /apple-silicon-app-test and /apple-silicon-app-test/?version=2

Not-tested: branch/netlify deployment health in CI pipeline after merge
2026-04-06 12:09:16 -05:00

158 lines
6.5 KiB
JSON

{
"name": "doesitarm",
"version": "1.0.0",
"description": "Find out the latest app support for Apple Silicon and the Apple M3 Max and M2 Ultra Processors",
"author": "Sam Carlton",
"private": true,
"packageManager": "pnpm@10.12.1",
"engines": {
"pnpm": "^10.*",
"node": ">=24",
"yarn": "forbidden, this project uses pnpm",
"npm": "forbidden, this project uses pnpm"
},
"config": {
"verbiage": {
"processors": "Apple M4 Max and M3 Ultra",
"macs": "Apple M4 Max or M3 Ultra Mac",
"description": "Find out the latest app support for Apple Silicon and the Apple M4 Max and M3 Ultra Processors"
},
"stork": {
"executable": "stork-executable",
"toml": "static/stork.toml",
"index": "static/search-index.st"
}
},
"scripts": {
"test-prebuild": "pnpm run with-env vitest ./test/prebuild",
"test-api-client": "pnpm run with-env vitest ./test/api",
"test-listings": "pnpm run with-env vitest ./test/listings",
"test-postbuild-api": "pnpm test-listings",
"test-vitest": "vitest",
"test": "vitest run",
"test:browser": "vitest run --config vitest.playwright.config.mjs",
"test:browser:pagefind": "vitest run --config vitest.playwright.config.mjs test/playwright/pagefind-native-filter.playwright.ts",
"test:browser:pagefind:live": "PLAYWRIGHT_BASE_URL=https://doesitarm.com vitest run --config vitest.playwright.config.mjs test/playwright/pagefind-native-filter.playwright.ts",
"dev": "pnpm run dev-astro",
"build": "pnpm run generate-astro",
"build-api": "pnpm run clone-readme && pnpm exec vite-node build-lists.js -- --with-api --no-lists",
"build-lists-and-api": "pnpm run clone-readme && pnpm exec vite-node build-lists.js -- --with-api",
"generate-dev": "pnpm build && pnpm test",
"download-stork:toml": "pnpm exec vite-node scripts/download-stork-toml.js",
"download-stork:executable": "pnpm exec vite-node scripts/download-stork-executable.js",
"setup-stork": "pnpm run \"/^download-stork:.*/\" --parallel",
"build-stork-index": "./$npm_package_config_stork_executable build --input $npm_package_config_stork_toml --output $npm_package_config_stork_index",
"build-stork-index-js": "pnpm exec vite-node scripts/build-stork-index.js",
"build-pagefind-index": "pnpm exec vite-node scripts/build-pagefind-index.js",
"build-search-index": "pnpm exec vite-node scripts/build-search-index.js",
"stork-search": "./$npm_package_config_stork_executable search --index $npm_package_config_stork_index --query $1",
"stork-index": "pnpm setup-stork && pnpm build-stork-index",
"stork-netlify": "chmod +x scripts/stork-netlify.sh && ./scripts/stork-netlify.sh",
"dev-astro": "astro dev",
"generate-astro": "astro build",
"generate-postcss": "ENV=production postcss assets/css/tailwind.css --o static/tailwind.css",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"lint:fix": "eslint --fix --ext .js,.vue --ignore-path .gitignore .",
"typecheck": "tsc --noEmit",
"precommit": "pnpm run lint",
"clone-readme": "cp ./README.md README-temp.md",
"scan-new-apps": "pnpm exec vite-node scripts/scan-new-apps.js",
"with-env": "dotenv -e .env -- ",
"cloudflare-deploy": "pnpm run build-api",
"vercel-build": "pnpm exec vite-node scripts/vercel-build.js",
"netlify-prebuild:download-sitemaps": "pnpm exec vite-node scripts/download-sitemaps.js",
"netlify-prebuild:test-prebuild-functions": "pnpm test-prebuild && pnpm test-api-client && pnpm test-listings",
"netlify-prebuild": "pnpm run \"/^netlify-prebuild:.*/\" && pnpm build-search-index",
"netlify-postbuild:test-postbuild-functions": "vitest test/main.test.ts",
"netlify-postbuild:test-circular-deps": "madge --circular --extensions js,mjs,ts,vue,astro ./*",
"netlify-build": "pnpm run netlify-prebuild && pnpm generate-astro && pnpm run \"/^netlify-postbuild:.*/\"",
"netlify-and-vercel-build": "pnpm netlify-build && pnpm vercel-build"
},
"dependencies": {
"7z-wasm": "^1.0.0-beta.5",
"@astrojs/netlify": "^7.0.2",
"@astrojs/partytown": "^2.1.5",
"@astrojs/vue": "^6.0.0",
"@esbuild-plugins/node-globals-polyfill": "^0.1.1",
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
"@fontsource/inter": "^4.0.1",
"@iarna/toml": "^2.2.5",
"@open-wc/webpack-import-meta-loader": "^0.4.7",
"@originjs/vite-plugin-commonjs": "^1.0.3",
"@supercharge/promise-pool": "^2.1.0",
"@zip.js/zip.js": "^2.5.25",
"astro": "^6.0.4",
"buffer": "^6.0.3",
"can-autoplay": "^3.0.0",
"chance": "^1.1.7",
"cross-env": "^5.2.0",
"daisyui": "^2.17.0",
"endian-reader": "^0.3.0",
"esbuild": "^0.11.20",
"events": "^3.3.0",
"execa": "^5.1.1",
"fast-glob": "^3.2.11",
"fast-memoize": "^2.5.2",
"file-api": "^0.10.4",
"fs-extra": "^8.1.0",
"get-file-object-from-local-path": "^1.0.2",
"googleapis": "^100.0.0",
"gray-matter": "^4.0.3",
"jsdom": "^16.4.0",
"just-has": "^2.1.0",
"just-map-values": "^3.0.2",
"just-replace-all": "^2.0.1",
"just-shuffle": "^4.0.1",
"lazysizes": "^5.3.0-beta1",
"macho": "^1.4.0",
"markdown-it": "^11.0.1",
"marked": "^1.2.7",
"memoize-getters": "^1.1.0",
"node-html-parser": "^2.0.0",
"observe-element-in-viewport": "0.0.15",
"ofetch": "^1.0.0",
"pagefind": "1.4.0",
"plist": "^3.0.1",
"pretty-bytes": "^5.5.0",
"rollup-plugin-node-polyfills": "^0.2.1",
"scroll-into-view-if-needed": "^2.2.26",
"semver": "^7.3.7",
"sitemap": "^7.1.1",
"slugify": "^1.4.6",
"std-env": "^3.3.2",
"terser": "^5.46.0",
"uuid": "^8.3.2",
"vite-node": "^5.3.0",
"vue": "^3.5.30",
"workerpool": "^6.2.1",
"zip-lib": "^0.7.3"
},
"devDependencies": {
"@astrojs/sitemap": "^3.7.1",
"@astrojs/tailwind": "^6.0.2",
"@vitest/web-worker": "^4.1.0",
"autoprefixer": "^10.0.2",
"babel-eslint": "^8.2.1",
"cssnano": "^4.1.10",
"dotenv": "^8.2.0",
"dotenv-cli": "^8.0.0",
"eslint": "^8.14.0",
"eslint-plugin-vue": "^8.7.1",
"fast-xml-parser": "^3.19.0",
"madge": "^5.0.1",
"msw": "^1.2.3",
"node-fetch": "^2.6.1",
"nodemon": "^1.11.0",
"npm-run-all": "^4.1.5",
"playwright-core": "^1.58.2",
"postcss": "^8.2.4",
"postcss-cli": "^8.3.1",
"replace-css-url": "^1.2.6",
"structured-data-testing-tool": "^4.5.0",
"tailwindcss": "^3.2.6",
"tsconfig-paths": "^3.14.1",
"typescript": "^5.7.3",
"vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.1.0"
}
}