{ "name": "skywriter", "version": "1.2.1", "description": "Open source html host and tool for syncing webpages to that host.", "keywords": [ "document-management", "cms", "git", "editor", "postgresql", "content-management", "templates", "drafts", "version-control" ], "repository": { "type": "git", "url": "https://github.com/reggi/skywriter.git" }, "license": "ISC", "author": "", "type": "module", "bin": { "skywriter": "./dist/cli/index.js" }, "files": [ "dist", "migrations", "pages/intro" ], "scripts": { "build": "npm run build:editor && npm run build:pkg", "build:all": "npm run build:editor:dev && npm run build && npm run format", "build:editor": "node --experimental-strip-types scripts/build.ts", "build:editor:dev": "NODE_ENV=development npm run build:editor", "build:editor:watch": "NODE_ENV=development npm run build:editor -- --watch", "build:pkg": "tsc --project tsconfig.build.json && cp src/server/utils/*.css dist/server/utils/", "build:readme": "printf '# Skywriter\n\n' > README.md && sed 's/<%raw%>//g; s/<%endraw%>//g' pages/skywriter/content.md >> README.md", "cli": "node --experimental-strip-types src/cli/index.ts", "db:down": "docker-compose down", "db:reset": "docker-compose down -v && docker-compose up -d", "db:up": "./scripts/db-up.sh", "dev": "NODE_ENV=development node --env-file=.env --experimental-strip-types scripts/dev.ts", "e2e": "playwright test", "e2e:headed": "playwright test --headed", "e2e:ui": "playwright test --ui", "format": "prettier --write .", "format:check": "prettier --check .", "lint": "eslint src test e2e --max-warnings 0", "migrate:create": "node-pg-migrate create", "migrate:down": "node-pg-migrate down", "migrate:up": "node-pg-migrate up", "pre-push": "npm run lint && npm run typecheck && npm run build:all && npm run test:structure && npm run test && npm run e2e", "start": "NODE_ENV=production node dist/server-bin/index.js", "test": "npm run test:coverage && npm run typecheck && npm run format:check", "test:coverage": "rm -rf coverage && NODE_V8_COVERAGE=coverage npm run test:only && npx c8 report --temp-directory=coverage --exclude='test/**'", "test:file": "rm -rf coverage && c8 --exclude='test/**' node --experimental-strip-types --experimental-test-module-mocks --test", "test:folder": "rm -rf coverage && c8 --exclude='test/**' node --experimental-strip-types --experimental-test-module-mocks --test", "test:html": "npm run test:coverage -- --reporter=html --reports-dir=coverage/html && open coverage/html/index.html", "test:only": "node --experimental-strip-types --experimental-test-module-mocks --test 'test/**/*.test.ts'", "test:structure": "node --experimental-strip-types scripts/check-test-coverage.ts", "test:update-snapshots": "node --experimental-strip-types --experimental-test-module-mocks --test --test-update-snapshots 'test/**/*.test.ts'", "typecheck": "tsc && tsc --project src/editor/tsconfig.json --noEmit && tsc --project e2e/tsconfig.json --noEmit" }, "prettier": "@github/prettier-config", "dependencies": { "@hono/node-server": "^1.19.7", "@inquirer/prompts": "^8.1.0", "ace-builds": "^1.36.5", "bcrypt": "^6.0.0", "commander": "^14.0.2", "dotenv": "^16.3.1", "esbuild": "^0.27.3", "eta": "^4.5.0", "hono": "^4.11.1", "marked": "^17.0.1", "mime-types": "^3.0.2", "node-pg-migrate": "^8.0.3", "pg": "^8.11.3", "proc-log": "^6.1.0", "tar-stream": "^3.1.7", "yaml": "^2.8.2" }, "devDependencies": { "@github/prettier-config": "^0.0.6", "@playwright/test": "^1.48.0", "@types/archiver": "^7.0.0", "@types/bcrypt": "^6.0.0", "@types/mime-types": "^3.0.1", "@types/pg": "^8.15.6", "@types/tar-stream": "^3.1.4", "archiver": "^7.0.1", "c8": "^10.1.3", "eslint": "^9.0.0", "glob": "^13.0.2", "playwright": "^1.48.0", "prettier": "^3.7.4", "typescript": "^5.9.3", "typescript-eslint": "^8.53.1" } }