{
  "name": "start-server-and-test",
  "description": "Starts server, waits for URL, then runs test command; when the tests end, shuts down server",
  "version": "3.0.11",
  "author": "Gleb Bahmutov <gleb.bahmutov@gmail.com>",
  "bugs": {
    "url": "https://github.com/bahmutov/start-server-and-test/issues"
  },
  "bin": {
    "start-server-and-test": "src/bin/start.js",
    "server-test": "src/bin/start.js",
    "start-test": "src/bin/start.js"
  },
  "engines": {
    "node": "^22 || >=24"
  },
  "files": [
    "src/**/*.js",
    "!src/**/*-spec.js"
  ],
  "homepage": "https://github.com/bahmutov/start-server-and-test#readme",
  "keywords": [
    "ci",
    "parallel",
    "server",
    "start",
    "test",
    "utility",
    "wait"
  ],
  "license": "MIT",
  "main": "src/",
  "type": "commonjs",
  "private": false,
  "publishConfig": {
    "registry": "https://registry.npmjs.org/"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/bahmutov/start-server-and-test.git"
  },
  "scripts": {
    "lint": "prettier --write \"src/**/*.js\"",
    "prelint": "npm run pretty",
    "pretest": "npm run lint",
    "pretty": "prettier --write \"src/**/*.js\"",
    "size": "t=\"$(npm pack .)\"; wc -c \"${t}\"; tar tvf \"${t}\"; rm \"${t}\";",
    "test": "npm run unit",
    "unit": "mocha test/helper src/*-spec.js",
    "semantic-release": "semantic-release",
    "start": "node test/server.js",
    "start-with-child": "node test/server-as-child.js",
    "start-multiple": "node test/multiple-servers.js",
    "start-https": "node test/https-server.js",
    "start-fail": "node test/server-fail.js",
    "start-304": "node test/server-304.js",
    "start-403": "node test/server-403.js",
    "start-cross-env": "cross-env FOO=bar node test/server.js",
    "test2": "curl http://127.0.0.1:9000",
    "test3": "curl http://127.0.0.1:9000 && curl http://127.0.0.1:9001",
    "test4": "curl --insecure https://127.0.0.1:9000",
    "message": "echo Hi there 👋",
    "message2": "echo Hi there 2 👋",
    "demo": "node src/bin/start.js http://127.0.0.1:9000 message",
    "demo2": "node src/bin/start.js start http://127.0.0.1:9000 test2",
    "demo3": "node src/bin/start.js start-with-child http://127.0.0.1:9000 test",
    "demo4": "node src/bin/start.js 9000",
    "demo5": "node src/bin/start.js start-with-child 9000",
    "demo6": "node src/bin/start.js :9000",
    "demo7": "node src/bin/start.js :9000 test2",
    "demo8": "node src/bin/start.js start-multiple \":9000|:9001\" test3",
    "demo9": "cross-env START_SERVER_AND_TEST_INSECURE=1 node src/bin/start.js start-https \"https://127.0.0.1:9000\" test4",
    "demo10": "node src/bin/start.js start-fail http://127.0.0.1:9000 test",
    "demo11": "node src/bin/start.js http-get://127.0.0.1:9000",
    "demo12": "node src/bin/start.js start-304 9000 test2",
    "demo-expect-403": "node src/bin/start.js --expect 403 start-403 9000 \"echo Waited\"",
    "demo-expected-403": "node src/bin/start.js --expected 403 start-403 9000 \"echo Waited\"",
    "demo-interval": "cross-env WAIT_ON_INTERVAL=1000 node src/bin/start.js start http://127.0.0.1:9000 test2",
    "demo-timeout": "cross-env WAIT_ON_TIMEOUT=10000 node src/bin/start.js start http://127.0.0.1:9000 test2",
    "demo-cross-env": "node src/bin/start.js start-cross-env 9000",
    "demo-commands": "node src/bin/start.js \"node test/server.js --port 8800\" 8800 \"node test/client --port 8800\"",
    "demo-multiple": "node src/bin/start.js \"node test/server --port 6000\" 6000 \"node test/server --port 6010\" 6010 \"curl http://127.0.0.1:6000 && curl http://127.0.0.1:6010\"",
    "demo-multiple-test-commands": "node src/bin/start.js 9000 \"npm run message && npm run message2\"",
    "demo-json-server": "cross-env WAIT_ON_TIMEOUT=10000 DEBUG=start-server-and-test node src/bin/start.js \"json-server test/data.json\" localhost:3000 \"echo json-server working\"",
    "demo-ip6": "cross-env WAIT_ON_TIMEOUT=10000 DEBUG=start-server-and-test node src/bin/start.js \"node test/ip6.mjs\" localhost:8000 \"echo server with ::1 working\"",
    "demo-zero": "cross-env WAIT_ON_TIMEOUT=10000 node src/bin/start.js \"node test/zero.mjs\" 8000 \"echo server with 0.0.0.0 working\"",
    "demo-zero-127": "cross-env WAIT_ON_TIMEOUT=10000 node src/bin/start.js \"node test/zero.mjs\" http://127.0.0.1:8000 \"echo server with 0.0.0.0 working\"",
    "demo-zero-explicit": "node src/bin/start.js \"node test/zero.mjs\" http://0.0.0.0:8000 \"echo server with 0.0.0.0 working\"",
    "prepare": "husky"
  },
  "devDependencies": {
    "@types/node": "^25.5.0",
    "chai": "4.5.0",
    "cross-env": "^10.1.0",
    "husky": "9.1.7",
    "json-server": "^0.17.4",
    "minimist": "1.2.8",
    "mocha": "^11.7.6",
    "prettier": "^3.8.1",
    "sinon": "22.0.0",
    "sinon-chai": "3.7.0",
    "snap-shot-it": "7.9.10"
  },
  "dependencies": {
    "arg": "5.0.2",
    "check-more-types": "2.24.0",
    "debug": "4.4.3",
    "execa": "5.1.1",
    "lazy-ass": "2.0.3",
    "tree-kill": "1.2.2",
    "wait-on": "9.0.10"
  }
}
