{
    "name": "churchcrm",
    "version": "7.4.1",
    "description": "Free Church CRM Software",
    "repository": {
        "type": "git",
        "url": "https://github.com/ChurchCRM/CRM.git"
    },
    "keywords": [
        "Church",
        "CRM",
        "LAMP",
        "Free"
    ],
    "license": "MIT",
    "bugs": {
        "url": "https://github.com/ChurchCRM/CRM/issues"
    },
    "homepage": "https://churchcrm.io",
    "engines": {
        "node": ">=24.0.0"
    },
    "scripts": {
        "audit": "npm audit fix --only=prod --audit-level=high",
        "build": "run-p build:php build:frontend",
        "build:frontend": "NODE_ENV=production npm run build:js && npm run format:web && npm run build:signatures",
        "build:js": "run-p build:js:legacy build:webpack",
        "build:js:legacy": "grunt copy",
        "build:webpack": "webpack",
        "build:webpack:watch": "webpack --watch",
        "build:php": "run-s composer:install build:php:validate",
        "build:openapi": "cd src && composer install --no-interaction --prefer-dist && composer run openapi:public && composer run openapi:private",
        "build:orm": "cd src/ && ./vendor/bin/propel build --config-dir=propel",
        "clean": "rm -rf node_modules/ temp src/vendor/ src/skin/external src/locale/vendor ai-notes/ src/logs/*.log",
        "composer:install": "cd src/ && composer validate --no-check-publish && composer install --no-dev && find vendor -type d \\( -name 'tests' -o -name 'Tests' -o -name 'test' -o -name 'docs' -o -name 'examples' -o -name 'example' \\) -exec rm -rf {} + 2>/dev/null || true",
        "composer:update": "cd src/ && composer update",
        "deploy:clean": "run-s preinstall build",
        "build:signatures": "node scripts/generate-signatures-node.js",
        "build:php:validate": "node scripts/validate-php-syntax.js",
        "docker:ci:down": "docker compose -f docker/docker-compose.yaml -f docker/docker-compose.gh-actions.yaml --profile ci down -v",
        "docker:ci:start": "cp docker/Config.php src/Include/Config.php && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.gh-actions.yaml --profile ci up -d --build",
        "docker:ci:root:down": "docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml --profile ci-root down -v",
        "docker:ci:root:start": "cp docker/Config.root.php src/Include/Config.php && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml --profile ci-root up -d --build",
        "docker:ci:subdir:down": "docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml --profile ci-subdir down -v",
        "docker:ci:subdir:start": "cp docker/Config.parallel.subdir.php src/Include/Config.php && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml --profile ci-subdir up -d --build",
        "docker:ci:new-system:down": "docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml --profile ci-new-system down -v",
        "docker:ci:new-system:start": "rm -f src/Include/Config.php && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml --profile ci-new-system up -d --build",
        "docker:ci:new-system:subdir:down": "docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml -f docker/docker-compose.subdir.yaml --profile ci-new-system down -v",
        "docker:ci:new-system:subdir:start": "rm -f src/Include/Config.php && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.parallel.yaml -f docker/docker-compose.subdir.yaml --profile ci-new-system up -d --build",
        "docker:dev:login:db": "docker compose -f docker/docker-compose.yaml --profile dev exec database bash",
        "docker:dev:login:web": "docker compose -f docker/docker-compose.yaml --profile dev exec webserver-dev bash",
        "docker:dev:logs": "docker compose -f docker/docker-compose.yaml --profile dev logs -f --tail=10",
        "docker:dev:start": "cp docker/Config.php src/Include/Config.php && docker compose -f docker/docker-compose.yaml --profile dev up -d",
        "docker:dev:stop": "docker compose -f docker/docker-compose.yaml --profile dev stop",
        "docker:test": "cp docker/Config.php src/Include/Config.php && docker compose -f docker/docker-compose.yaml --profile test up -d",
        "docker:test:down": "docker compose -f docker/docker-compose.yaml --profile test down -v",
        "docker:test:reset": "docker compose -f docker/docker-compose.yaml --profile ci down -v && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.gh-actions.yaml --profile ci up -d --build",
        "docker:test:login:db": "docker compose -f docker/docker-compose.yaml --profile test exec database bash",
        "docker:test:login:web": "docker compose -f docker/docker-compose.yaml --profile test exec webserver-test bash",
        "docker:test:logs": "docker compose -f docker/docker-compose.yaml --profile test logs -f --tail=10",
        "docker:test:rebuild": "npm run docker:test:down && docker compose -f docker/docker-compose.yaml --profile test up -d --build",
        "docker:test:restart": "docker compose -f docker/docker-compose.yaml --profile test restart",
        "docker:test:restart:db": "docker compose -f docker/docker-compose.yaml --profile test restart database",
        "docker:test:subdir": "cp docker/Config.subdir.php src/Include/Config.php && docker compose -f docker/docker-compose.yaml -f docker/docker-compose.subdir.yaml --profile test up -d",
        "docker:test:stop": "docker compose -f docker/docker-compose.yaml --profile test stop",
        "format:web": "biome format --write .",
        "locale:audit": "node locale/scripts/locale-audit.js",
        "locale:build": "node locale/scripts/locale-build.js",
        "locale:download": "node locale/scripts/poeditor-downloader.js",
        "locale:translate:list": "node locale/scripts/locale-translate.js --list",
        "locale:upload:missing": "node locale/scripts/poeditor-upload-missing.js",
        "lint": "biome check webpack/",
        "lint:fix": "biome check --write webpack/",
        "prepare": "git config core.hooksPath .githooks 2>/dev/null || true",
        "locale:lint": "node scripts/locale-check.js",
        "logs:clear": "rm -rf src/logs/*.log",
        "package": "npm run build && node scripts/package-release.js",
        "test": "npx cypress run --config-file cypress/configs/docker.config.ts",
        "test:open": "npx cypress open --e2e --config-file cypress/configs/docker.config.ts --browser chrome",
        "test:api": "npx cypress run --config-file cypress/configs/docker.config.ts --spec 'cypress/e2e/api/**/*.spec.js'",
        "test:ui": "npx cypress run --config-file cypress/configs/docker.config.ts --spec 'cypress/e2e/ui/**/*.spec.js'",
        "test:new-system": "npx cypress run --config-file cypress/configs/new-system.config.ts"
    },
    "dependencies": {
        "@fortawesome/fontawesome-free": "^7.3.0",
        "@tabler/core": "^1.4.0",
        "@tabler/icons-webfont": "^3.44.0",
        "@uppy/core": "^5.2.0",
        "@uppy/dashboard": "^5.1.1",
        "@uppy/image-editor": "^4.2.0",
        "@uppy/webcam": "^5.1.0",
        "@uppy/xhr-upload": "^5.2.0",
        "apexcharts": "^5.15.2",
        "avatar-initials": "^6.0.0",
        "bootbox": "^6.0.4",
        "bootstrap": "^5.3.8",
        "bootstrap-datepicker": "^1.10.1",
        "bs-stepper": "^1.7.0",
        "datatables.net": "^2.3.8",
        "datatables.net-bs5": "^2.3.8",
        "datatables.net-buttons": "^3.2.6",
        "datatables.net-buttons-bs5": "^3.2.6",
        "datatables.net-responsive": "^3.0.8",
        "datatables.net-responsive-bs5": "^3.0.8",
        "datatables.net-select": "^3.1.3",
        "datatables.net-select-bs5": "^3.1.3",
        "daterangepicker": "^3.1.0",
        "dompurify": "^3.4.11",
        "flag-icons": "^7.5.0",
        "fullcalendar": "^6.1.21",
        "i18next": "^26.3.3",
        "inputmask": "^5.0.9",
        "jquery": "^3.7.1",
        "just-validate": "^4.3.0",
        "leaflet": "^1.9.4",
        "marked": "^18.0.5",
        "moment": "^2.30.1",
        "notyf": "^3.10.0",
        "pdfmake": "^0.3.11",
        "quill": "2.0.2",
        "tom-select": "^2.6.1"
    },
    "devDependencies": {
        "@biomejs/biome": "^2.5.1",
        "@types/jquery": "^3.5.33",
        "archiver": "^7.0.1",
        "css-loader": "^7.1.4",
        "cy-verify-downloads": "^0.3.0",
        "cypress": "^15.18.0",
        "cypress-terminal-report": "^7.3.3",
        "datatables.net-plugins": "^2.3.2",
        "dotenv": "^17.4.2",
        "grunt": "^1.6.2",
        "grunt-cli": "^1.5.0",
        "grunt-contrib-copy": "^1.0.0",
        "i18next-cli": "^1.64.2",
        "i18next-conv": "^17.0.0",
        "mini-css-extract-plugin": "^2.10.2",
        "mysql2": "^3.22.5",
        "node-sha1": "^1.0.1",
        "npm-run-all": "^4.1.5",
        "sass": "^1.101.0",
        "sass-loader": "^17.0.0",
        "style-loader": "^4.0.0",
        "ts-loader": "^9.6.2",
        "typescript": "^6.0.3",
        "webpack": "^5.108.1",
        "webpack-cli": "^7.1.0"
    },
    "overrides": {
        "archiver": {
            "archiver-utils": {
                "glob": {
                    "minimatch": "9.0.7"
                }
            },
            "readdir-glob": {
                "minimatch": "5.1.8"
            }
        },
        "lodash": "4.18.1",
        "lodash-es": "4.18.1",
        "@xmldom/xmldom": "0.9.10",
        "picomatch": "4.0.4",
        "grunt": {
            "minimatch": "3.1.4",
            "brace-expansion": "1.1.13"
        },
        "npm-run-all": {
            "minimatch": "3.1.4",
            "brace-expansion": "1.1.13"
        },
        "svgicons2svgfont": {
            "brace-expansion": "5.0.5"
        }
    }
}
