{ "author": "RedKubes", "bugs": { "url": "https://github.com/linode/apl-core/issues" }, "config": { "commitizen": { "path": "cz-conventional-changelog" } }, "dependencies": { "@apidevtools/json-schema-ref-parser": "16.0.5", "@kubernetes/client-node": "1.4.0", "@linode/kubeseal-encrypt": "^1.0.1", "@swaggerexpert/jsonpath": "^4.0.5", "@types/deep-diff": "1.0.5", "@types/semver": "7.8.0", "ajv": "8.20.0", "async-retry": "1.3.3", "clean-deep": "3.4.0", "cli-select": "1.1.2", "debug": "4.4.3", "deep-diff": "1.0.2", "dotenv": "18.0.9", "envalid": "8.2.0", "express": "5.3.0", "fs-extra": "11.4.1", "generate-password": "1.7.1", "glob": "14.0.3", "ignore-walk": "9.0.0", "lodash": "4.18.1", "minimatch": "^11.0.3", "node-forge": "1.4.2", "semver": "7.8.5", "simple-git": "4.0.2", "tar": "7.5.22", "uuid": "14.0.3", "validator": "13.15.35", "yaml": "2.9.1", "yargs": "18.2.0", "zx": "8.8.5" }, "description": "Otomi Core is an opinionated stack of Kubernetes apps and configurations. Part of Otomi Container Platform.", "devDependencies": { "@babel/core": "^8.0.10", "@babel/preset-env": "^8.0.7", "@babel/preset-typescript": "^8.0.7", "@commitlint/cli": "21.2.4", "@commitlint/config-conventional": "21.2.4", "@eslint/compat": "^2.1.1", "@jest/types": "30.5.1", "@types/async-retry": "1.4.9", "@types/debug": "4.1.13", "@types/express": "5.0.6", "@types/fs-extra": "^11.0.4", "@types/ignore-walk": "4.0.3", "@types/jest": "^30.0.0", "@types/js-yaml": "4.0.9", "@types/jsonpath": "0.2.4", "@types/lodash": "4.17.27", "@types/node": "24.19.2", "@types/node-forge": "1.3.14", "@types/retry": "0.12.5", "@types/supertest": "7.2.1", "@types/tar": "7.0.87", "@types/validator": "13.15.10", "@types/yargs": "^17.0.35", "@typescript-eslint/eslint-plugin": "8.72.1", "@typescript-eslint/parser": "8.72.1", "@vercel/ncc": "0.45.0", "adr-log": "2.2.0", "commitizen": "4.3.2", "cspell": "10.4.0", "cz-conventional-changelog": "3.3.0", "eslint": "10.13.0", "eslint-config-prettier": "10.1.8", "eslint-plugin-prettier": "5.5.7", "eslint-plugin-unused-imports": "4.4.1", "git-cz": "4.9.0", "globals": "17.13.0", "husky": "9.1.7", "jest": "30.5.2", "json-schema-to-typescript": "16.0.0", "json2ts": "0.0.7", "lint-staged": "17.6.0", "npm-run-all": "4.1.5", "prettier": "3.9.10", "ts-node": "^10.9.2", "tsc-alias": "^1.9.9", "tsconfig-paths": "4.2.0", "tsx": "^4.23.15", "typescript": "5.9.3" }, "engines": { "node": ">=24 <25" }, "homepage": "https://github.com/linode/apl-core#readme", "license": "Apache-2.0", "lint-staged": { "*.{json,yml,yaml}": [ "prettier --write" ], "*.ts": [ "eslint --fix" ] }, "main": "src/otomi.ts", "name": "apl-core", "private": true, "repository": { "type": "git", "url": "git+https://github.com/linode/apl-core.git" }, "scripts": { "apl-operator": "tsx src/operator/main.ts", "apl-operator:dev": "tsx watch --inspect=4320 src/operator/main.ts", "install-deps": "bin/install-deps.sh", "app-versions:csv": "echo 'name,appVersion,chartVersion'; for f in $(find charts -name Chart.yaml -type f -maxdepth 2| sort); do yq eval -o=json $f | jq -rc '. | [.name, .appVersion, .version] | @csv' | tr -d '\"'; done", "charts-gen-deps": "for f in $(find charts -name Chart.yaml -type f -maxdepth 2| sort); do yq eval $f -o=json | jq '{name, version, repository}';done | jq -s '.' | yq eval -P", "adr": "adr-log -d adr -i", "check-policies": "ENV_DIR=$PWD/tests/fixtures NODE_ENV=test binzx/otomi check-policies", "clean": "rm -rf dist >/dev/null", "compile": "npm run clean && tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json -v --dir dist && chmod +x ./dist/src/otomi.js", "compile:watch": "npm run compile && tsc -w", "cz": "git-cz", "cz:retry": "git-cz -- --retry", "dev:bootstrapCoreApp": "tsx src/dev/bootstrapCoreApp.ts", "eslint": "eslint --ext ts .", "eslint:fix": "eslint --fix --ext ts .", "format": "prettier --check \"**/*.{json,md,yml,yaml}\"", "format:fix": "prettier --write \"**/*.{json,md,yml,yaml}\"", "gen:chart-schema": "js-yaml values-schema.yaml > chart/apl/values.schema.json", "lint": "run-p spellcheck lint:hf lint:ts lint:types lint:apl-chart lint:schema-versions", "lint:apl-chart": "npm run gen:chart-schema && helm lint chart/apl -f tests/bootstrap/input-local-minimal.yaml", "lint-staged": "lint-staged", "lint:fix": "prettier --write tests/**/*.yaml --write '.values/env/**/*.yaml' && npm run lint:ts:fix", "lint:hf": "ENV_DIR=$PWD/tests/fixtures NODE_ENV=test tsx src/otomi.ts -- lint", "lint:ts": "eslint --ext ts src", "lint:ts:fix": "eslint --fix --ext ts src", "lint:types": "tsc --noEmit", "lint:schema-versions": "cd ci && src/check-schema-version.mjs", "migrate-values": "NODE_ENV=test ENV_DIR=$PWD/tests/fixtures binzx/otomi migrate -ni", "migrate-values:ci": "ENV_DIR=/tmp/otomi-bootstrap-dev binzx/otomi migrate -ni", "prepare": "husky", "score-templates": "binzx/otomi score-templates", "spellcheck": "cspell 'docs/**/*.md' 'values-schema.yaml' '*.md' '.values/README.md'", "tasks:copy-certs": "binzx/otomi task -n copyCerts", "test": "run-s test:ts lint validate-values validate-templates bootstrap-dev", "test:ci": "run-s test:ts:ci lint validate-values validate-templates bootstrap-dev", "test:opa": "NODE_ENV=test binzx/otomi x opa test policies -v", "test:ts": "ENV_DIR=$PWD/tests/fixtures NODE_ENV=test jest ", "test:ts:ci": "ENV_DIR=$PWD/tests/fixtures NODE_ENV=test jest --detectOpenHandles --forceExit --maxWorkers=2 --ci", "test:ts-cov": "jest --coverage", "validate-templates": "ENV_DIR=$PWD/tests/fixtures NODE_ENV=test binzx/otomi validate-templates", "validate-templates:all": "set -e; i=33; while [ $i -le 36 ]; do NODE_ENV=test binzx/otomi validate-templates -k 1.$i; i=$(($i+1)); done", "validate-values": "ENV_DIR=$PWD/tests/fixtures NODE_ENV=test tsx src/otomi.ts -- validate-values --strict-additional", "bootstrap-dev": "rm -rf /tmp/otomi-bootstrap-dev; VALUES_INPUT=$PWD/tests/bootstrap/input-local-dev.yaml ENV_DIR=/tmp/otomi-bootstrap-dev NODE_ENV=test tsx src/otomi.ts -- bootstrap" }, "type": "commonjs", "version": "0.0.0" }