{
  "name": "@factiii/stack",
  "version": "0.21.0",
  "description": "Infrastructure management package for deploying services to servers",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "bin": {
    "stack": "./bin/stack"
  },
  "files": [
    "bin/",
    "dist/"
  ],
  "keywords": [
    "infrastructure",
    "deployment",
    "docker",
    "nginx"
  ],
  "author": "",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/factiii/stack.git",
    "directory": "packages/stack"
  },
  "publishConfig": {
    "registry": "https://registry.npmjs.org"
  },
  "dependencies": {
    "@aws-sdk/client-ec2": "^3.1127.0",
    "@aws-sdk/client-ec2-instance-connect": "^3.1127.0",
    "@aws-sdk/client-ecr": "^3.1127.0",
    "@aws-sdk/client-iam": "^3.1127.0",
    "@aws-sdk/client-rds": "^3.1127.0",
    "@aws-sdk/client-route-53": "^3.1127.0",
    "@aws-sdk/client-s3": "^3.1127.0",
    "@aws-sdk/client-ses": "^3.1127.0",
    "@aws-sdk/client-sts": "^3.1127.0",
    "@octokit/rest": "^20.1.2",
    "ansible-vault": "^1.3.0",
    "commander": "^11.1.0",
    "js-yaml": "^4.3.2",
    "@factiii/auth": "^0.21.0"
  },
  "devDependencies": {
    "@types/jest": "^30.0.0",
    "@types/js-yaml": "^4.0.9",
    "@types/node": "^25.9.5",
    "jest": "^30.5.1",
    "ts-jest": "^29.4.12",
    "typescript": "^5.9.3"
  },
  "jest": {
    "preset": "ts-jest",
    "testEnvironment": "node",
    "testMatch": [
      "**/test/**/*.test.ts"
    ],
    "moduleNameMapper": {
      "^(\\.{1,2}/.*)\\.js$": "$1"
    },
    "collectCoverageFrom": [
      "src/**/*.ts",
      "!**/node_modules/**"
    ],
    "coverageThreshold": {
      "global": {
        "branches": 70,
        "functions": 70,
        "lines": 70,
        "statements": 70
      }
    }
  },
  "engines": {
    "node": ">=18.0.0"
  },
  "scripts": {
    "build": "tsc && npm run copy-assets",
    "build:watch": "tsc --watch",
    "clean": "node -e \"const fs=require('fs');if(fs.existsSync('dist'))fs.rmSync('dist',{recursive:true,force:true})\"",
    "copy-assets": "node -e \"const fs=require('fs'),p=require('path');fs.cpSync('src/plugins/approved.json','dist/plugins/approved.json');const d='dist/plugins/pipelines/factiii/workflows';fs.mkdirSync(d,{recursive:true});for(const f of fs.readdirSync('src/plugins/pipelines/factiii/workflows').filter(f=>f.endsWith('.yml')))fs.cpSync(p.join('src/plugins/pipelines/factiii/workflows',f),p.join(d,f));const pd='dist/plugins/pipelines/aws/policies';fs.mkdirSync(pd,{recursive:true});for(const f of fs.readdirSync('src/plugins/pipelines/aws/policies').filter(f=>f.endsWith('.json')))fs.cpSync(p.join('src/plugins/pipelines/aws/policies',f),p.join(pd,f))\"",
    "prebuild": "npm run clean",
    "prepublish-check": "node -e \"const v=require('./package.json').version; if(v.includes('-d')){console.error('Cannot publish dev version:',v); process.exit(1)}; const ua=process.env.npm_config_user_agent||''; if(!ua.includes('pnpm')){const d=require('./package.json').dependencies||{}; for(const[k,v2]of Object.entries(d)){if(String(v2).startsWith('workspace:')){console.error('ERROR: workspace protocol found for '+k+'. Use pnpm publish (not npm publish) so workspace: references are resolved.');process.exit(1)}}}\"",
    "test": "jest",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage",
    "typecheck": "tsc --noEmit"
  }
}