{ "name": "nativefier", "version": "52.0.0", "description": "Wrap web apps natively", "license": "MIT", "author": "Goh Jia Hao", "engines_README": "Bumping the minimum required Node version? You must bump: 1. package.json -> engines.node, 2. package.json -> devDependencies.@types/node , 3. tsconfig.json -> {target, lib} , 4. .github/workflows/ci.yml -> node-version", "engines_READMEforEnginesNode": "Here in engines.node, we require a version as old as possible, for Nativefier to be easily installable using the stock Node.js shipped by conservative Linux distros. It's a balancing act between this, and our own dependencies requiring more a recent Node; as much as possible, try to keep supporting Debian stable; https://packages.debian.org/search?suite=stable&keywords=nodejs", "engines": { "node": ">= 16.16.0", "npm": ">= 8.11.0" }, "keywords": [ "desktop", "electron", "app", "native", "wrapper" ], "main": "lib/main.js", "typings": "lib/main.d.ts", "bin": { "nativefier": "lib/cli.js" }, "homepage": "https://github.com/nativefier/nativefier", "repository": { "type": "git", "url": "git+https://github.com/nativefier/nativefier.git" }, "bugs": { "url": "https://github.com/nativefier/nativefier/issues" }, "scripts": { "build-app": "cd app && webpack", "build-app-static": "ncp app/src/static/ app/lib/static/ && ncp app/dist/preload.js app/lib/preload.js && ncp app/dist/preload.js.map app/lib/preload.js.map", "build": "npm run clean && tsc --build shared src app && npm run build-app && npm run build-app-static", "build:watch": "npm run clean && tsc --build shared src app --watch", "changelog": "./.github/generate-changelog", "clean": "rimraf coverage/ lib/ app/lib/ app/dist/ shared/lib", "clean:full": "npm run clean && rimraf app/node_modules/ node_modules/", "lint:fix": "cd src && eslint . --ext .ts --fix && cd ../shared && eslint src --ext .ts --fix && cd ../app && eslint src --ext .ts --fix", "lint:format": "prettier --write 'src/**/*.ts' 'app/src/**/*.ts' 'shared/src/**/*.ts'", "lint": "eslint shared app src --ext .ts", "list-outdated-deps": "npm out -l; cd app && npm out -l; true", "prepare": "cd app && npm ci && cd .. && npm run build", "relock:cli": "rm -rf ./node_modules/ ./npm-shrinkwrap.json && npm install --ignore-scripts --package-lock && mv package-lock.json npm-shrinkwrap.json && npm out -l", "relock:app": "rm -rf ./app/node_modules/ ./app/npm-shrinkwrap.json && cd app && npm install --ignore-scripts --package-lock && mv package-lock.json npm-shrinkwrap.json && npm out -l", "relock": "npm run relock:cli; npm run relock:app", "test:integration": "jest --testRegex=integration-test", "test:manual": "npm run build && bash .github/manual-test", "test:playwright": "jest --detectOpenHandles --testRegex=playwright-test", "test:noplaywright": "jest --testPathIgnorePatterns=playwright", "test:unit": "jest", "test:watch": "echo 'Remember to run npm run build:watch for the test watcher to work!' && jest --watchAll --collectCoverage=false", "test:watch:unit": "echo 'Remember to run npm run build:watch for the test watcher to work!' && jest --watchAll --collectCoverage=false --testPathIgnorePatterns=integration --testPathIgnorePatterns=playwright", "test:withlog": "LOGLEVEL=trace npm run test", "test": "jest", "watch": "npx concurrently \"npm:*:watch\"" }, "dependencies": { "@electron/asar": "^3.2.4", "axios": "^1.4.0", "electron-packager": "^17.1.1", "fs-extra": "^11.1.1", "gitcloud": "^0.2.4", "hasbin": "^1.2.3", "loglevel": "^1.8.1", "ncp": "^2.0.0", "page-icon": "^0.4.0", "sanitize-filename": "^1.6.3", "source-map-support": "^0.5.21", "tmp": "^0.2.1", "yargs": "^17.7.2" }, "devDependencies": { "@types/debug": "^4.1.8", "@types/fs-extra": "^11.0.1", "@types/hasbin": "^1.2.0", "@types/jest": "^29.5.4", "@types/ncp": "^2.0.5", "@types/node": "^20.5.6", "@types/page-icon": "^0.3.4", "@types/tmp": "^0.2.3", "@types/yargs": "^17.0.24", "@typescript-eslint/eslint-plugin": "^6.4.1", "@typescript-eslint/parser": "^6.4.1", "electron": "^25.7.0", "eslint": "^8.46.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", "jest": "^29.6.2", "playwright": "^1.36.2", "prettier": "^3.0.1", "rimraf": "^5.0.1", "ts-loader": "^9.4.4", "typescript": "^5.1.6", "webpack": "^5.88.2", "webpack-cli": "^5.1.4" }, "jest_COMMENTS": { "testPathIgnorePatterns": "See https://jestjs.io/docs/configuration#testpathignorepatterns-arraystring . We set it to 1. ignore coverage for deps, and 2. be sure we test the compiled JS, which is in `lib`, not `src` or `dist`", "watchPathIgnorePatterns": "See https://jestjs.io/docs/configuration#watchpathignorepatterns-arraystring . We set it for `jest --watch` (a.k.a. `npm run test:watch`) to trigger only after `tsc --watch` (a.k.a. `npm run build:watch`) completes its incremental compilation. Else, jest will pick up immediately on changes in `src` when TSC is barely running, hence testing not-recompiled-yet code and being super confusing, as 1. your changes won't be taken during this first run, and 2. the *next* run (e.g. after a second 'Save' in your editor) will actually have the new code :D" }, "jest": { "collectCoverage": true, "collectCoverageFrom": [ "./app/dist/**/*.js", "./lib/**/*.js", "./shared/lib/**/*.js" ], "coveragePathIgnorePatterns": [ "[.-]test.js$" ], "moduleNameMapper": { "^electron$": "/app/dist/mocks/electron.js" }, "setupFiles": [ "./lib/jestSetupFiles" ], "testEnvironment": "node", "testPathIgnorePatterns": [ "/app/node_modules.*", "/app/src.*", "/app/lib.*", "/src.*", ".+\\.d\\.ts", ".+\\.js\\.map" ], "testRegex": "test\\.js", "testTimeout": 15000, "watchPathIgnorePatterns": [ "/app/lib.*", "/app/src.*", "/app/tsconfig.json", "/shared/tsconfig.json", "/src.*", "/tsconfig-base.json" ] }, "prettier": { "arrowParens": "always", "singleQuote": true, "trailingComma": "all" } }