{ "name": "unicorn-utterances-site", "private": true, "description": "Learning programming from magically majestic words", "version": "0.3.0-alpha.1", "bugs": { "url": "https://github.com/unicorn-utterances/unicorn-utterances/issues" }, "homepage": "https://unicorn-utterances.com", "keywords": [ "blog", "education", "programming" ], "type": "module", "license": "MPL-2.0", "repository": { "type": "git", "url": "git+https://github.com/unicorn-utterances/unicorn-utterances.git" }, "scripts": { "debug": "env-cmd -f ./src/environments/debug.env astro dev --experimental-integrations", "dev": "env-cmd -f ./src/environments/dev.env astro dev --experimental-integrations", "dev:vercel": "env-cmd -f ./src/environments/dev.env vercel dev", "start": "astro dev --experimental-integrations", "build": "npm-run-all --parallel search-index epub social-previews:build && astro build --experimental-integrations", "build:debug": "env-cmd -f ./src/environments/debug.env astro build --experimental-integrations", "build-beta": "env-cmd -f ./src/environments/beta.env npm run build", "preview": "astro preview --experimental-integrations", "host:local": "cd dist && ws --http2 --compress", "format": "prettier -w . --cache --plugin-search-dir=.", "lint": "eslint . --ext .js,.ts,.astro", "search-index": "tsx build-scripts/search-index.ts", "social-previews:build": "tsx --tsconfig tsconfig.script.json build-scripts/social-previews/index.ts", "social-previews:dev:build": "tsx watch --tsconfig tsconfig.script.json build-scripts/social-previews/live-server.ts", "social-previews:dev:server": "live-server build-scripts/social-previews/dist", "social-previews:dev": "npm-run-all --parallel social-previews:dev:build social-previews:dev:server", "epub": "tsx --tsconfig tsconfig.script.json build-scripts/generate-epubs.ts", "tsc": "tsc --noEmit && astro check", "test": "jest", "test:debug": "set DEBUG_PRINT_LIMIT=9999999999 && node --inspect-brk ./node_modules/jest/bin/jest.js", "prepare": "husky install && playwright install" }, "devDependencies": { "@astrojs/image": "^0.17.3", "@astrojs/mdx": "^0.19.7", "@astrojs/preact": "^2.2.2", "@astrojs/sitemap": "^2.0.1", "@lesjoursfr/html-to-epub": "^4.0.1", "@remark-embedder/core": "^3.0.2", "@remark-embedder/transformer-oembed": "^3.0.0", "@testing-library/dom": "^9.3.1", "@testing-library/jest-dom": "^6.0.0", "@testing-library/preact": "^3.2.3", "@testing-library/user-event": "^14.4.3", "@types/git-branch": "^2.0.5", "@types/hast": "^3.0.0", "@types/html-escaper": "^3.0.0", "@types/jest": "^29.5.2", "@types/json5": "^2.2.0", "@types/node": "^20.5.0", "@types/uuid": "^9.0.2", "@typescript-eslint/eslint-plugin": "^6.3.0", "@typescript-eslint/parser": "^6.3.0", "@vercel/node": "^2.15.9", "astro": "^2.10.7", "astro-icon": "^0.8.1", "autoprefixer": "^10.4.15", "classnames": "^2.3.2", "dayjs": "^1.11.9", "env-cmd": "^10.1.0", "esbuild": "^0.18.20", "esbuild-jest": "^0.5.0", "eslint": "^8.47.0", "eslint-plugin-astro": "^0.28.0", "eslint-plugin-jsx-a11y": "^6.7.1", "feed": "^4.2.2", "fuse.js": "^6.6.2", "git-branch": "^2.0.1", "gray-matter": "^4.0.3", "hast-util-from-html": "^2.0.1", "hast-util-has-property": "^3.0.0", "hast-util-heading-rank": "^3.0.0", "hast-util-to-string": "^2.0.0", "hastscript": "^8.0.0", "husky": "^8.0.3", "identity-obj-proxy": "^3.0.0", "image-size": "^1.0.2", "jest-environment-jsdom": "^29.6.2", "jest-location-mock": "^1.0.10", "jest-watch-typeahead": "^2.2.2", "json5": "^2.2.3", "junk": "^4.0.1", "lint-staged": "^14.0.0", "live-server": "^1.2.2", "msw": "^1.2.3", "npm-run-all": "^4.1.5", "octokit": "^3.1.1", "plausible-tracker": "^0.3.8", "playwright": "^1.37.0", "postcss": "^8.4.27", "postcss-csso": "^6.0.1", "preact-render-to-string": "^6.2.1", "prettier": "^3.0.1", "prettier-plugin-astro": "^0.11.0", "probe-image-size": "^7.2.3", "rehype-raw": "^6.1.1", "rehype-slug-custom-id": "^1.1.0", "remark-gfm": "^3.0.1", "remark-shiki-twoslash": "^3.1.3", "remark-unwrap-images": "^3.0.1", "sass": "^1.65.1", "sharp": "^0.32.6", "sitemap": "^7.1.1", "symlink-dir": "^5.1.1", "terser": "^5.19.2", "tsx": "^3.12.7", "typescript": "^5.1.6", "unified": "^10.1.2", "unist-util-find": "^3.0.0", "unist-util-find-all-after": "^5.0.0", "unist-util-is": "^6.0.0", "unist-util-replace-all-between": "^0.1.1", "unist-util-visit": "^5.0.0", "vercel": "^31.2.3", "vite-plugin-svgr": "^3.2.0", "whatwg-fetch": "^3.6.17" }, "lint-staged": { "*.{js,ts,astro}": "eslint --cache --fix", "*.{js,ts,astro,jsx}": "prettier --write" }, "dependencies": { "@astrojs/vercel": "^3.8.1", "@tanstack/react-query": "^4.32.6", "medium-zoom": "^1.0.8", "preact": "^10.18.1", "react-aria": "^3.29.0", "react-stately": "^3.27.0", "uuid": "^9.0.0" }, "overrides": { "react": "npm:@preact/compat@latest", "react-dom": "npm:@preact/compat@latest" } }