{
  "definitions": [
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 4,
      "name": "NGINX_PARENT",
      "signature": "export const NGINX_PARENT = \"/etc\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 6,
      "name": "NGINX_FOLDER",
      "signature": "export const NGINX_FOLDER = \"nginx\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 8,
      "name": "NGINX_ROOT",
      "signature": "export const NGINX_ROOT = `${NGINX_PARENT}/${NGINX_FOLDER}`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 10,
      "name": "MAIN_CONFIG",
      "signature": "export const MAIN_CONFIG = \"nginx.conf\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 12,
      "name": "SITES_FOLDER",
      "signature": "const SITES_FOLDER = \"sites-available\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 14,
      "name": "SITE_NAME",
      "signature": "export const SITE_NAME = \"banes-lab\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 16,
      "name": "SCRIPTS_FOLDER",
      "signature": "const SCRIPTS_FOLDER = \"js\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 18,
      "name": "REMOTE_SCRIPTS",
      "signature": "export const REMOTE_SCRIPTS = `${NGINX_ROOT}/${SCRIPTS_FOLDER}`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 20,
      "name": "SCRIPT_SOURCE_EXTENSION",
      "signature": "export const SCRIPT_SOURCE_EXTENSION = \".ts\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 22,
      "name": "NAME_SEPARATOR",
      "signature": "export const NAME_SEPARATOR = \".\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 24,
      "name": "SCRIPT_TARGET_EXTENSION",
      "signature": "export const SCRIPT_TARGET_EXTENSION = \".js\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 26,
      "name": "NODE_PROTOCOL",
      "signature": "export const NODE_PROTOCOL = \"node:\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 28,
      "name": "SCRIPT_STAGING_PREFIX",
      "signature": "export const SCRIPT_STAGING_PREFIX = \"banes-lab-njs-\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 30,
      "name": "REMOTE_SITE_CONFIG",
      "signature": "export const REMOTE_SITE_CONFIG = `${NGINX_ROOT}/${SITES_FOLDER}/${SITE_NAME}`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 32,
      "name": "SITE_LINK",
      "signature": "export const SITE_LINK = `${NGINX_ROOT}/sites-enabled/${SITE_NAME}`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 34,
      "name": "FULL_ARCHIVE",
      "signature": "const FULL_ARCHIVE = \"nginx-full.tar.gz\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 36,
      "name": "REMOTE_FULL_ARCHIVE",
      "signature": "export const REMOTE_FULL_ARCHIVE = `${REMOTE_STAGING}/${FULL_ARCHIVE}`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 38,
      "name": "SETUP_STAGING",
      "signature": "export const SETUP_STAGING = `${REMOTE_STAGING}/nginx-setup`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 40,
      "name": "FULL_BACKUP_PREFIX",
      "signature": "export const FULL_BACKUP_PREFIX = \"nginx-full-\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 42,
      "name": "CONFIG_BACKUP_SUFFIX",
      "signature": "export const CONFIG_BACKUP_SUFFIX = \".backup.conf\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 44,
      "name": "BACKUP_MARKER",
      "signature": "export const BACKUP_MARKER = \".backup\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 46,
      "name": "FILE_TEST_COMMAND",
      "signature": "export const FILE_TEST_COMMAND = \"test -f\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 48,
      "name": "REMOVE_FILE_COMMAND",
      "signature": "export const REMOVE_FILE_COMMAND = \"sudo rm -f\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 50,
      "name": "PREVIEW_LENGTH",
      "signature": "export const PREVIEW_LENGTH = 1000;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 52,
      "name": "TEST_COMMAND",
      "signature": "export const TEST_COMMAND = \"nginx -t\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 54,
      "name": "ERROR_LOG_DIRECTIVE",
      "signature": "export const ERROR_LOG_DIRECTIVE = \"error_log\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 56,
      "name": "LOG_SIZE_COMMAND",
      "signature": "export const LOG_SIZE_COMMAND = \"sudo stat -c %s\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 58,
      "name": "LOG_TAIL_COMMAND",
      "signature": "export const LOG_TAIL_COMMAND = \"sudo tail -c +\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 60,
      "name": "RELOAD_COMMAND",
      "signature": "export const RELOAD_COMMAND = \"systemctl reload-or-restart nginx\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 62,
      "name": "STATUS_COMMAND",
      "signature": "export const STATUS_COMMAND = \"systemctl is-active nginx\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 64,
      "name": "SERVICE_ENABLE_COMMAND",
      "signature": "export const SERVICE_ENABLE_COMMAND = \"sudo systemctl enable nginx\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 66,
      "name": "ACTIVE_STATUS",
      "signature": "export const ACTIVE_STATUS = \"active\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 68,
      "name": "CONFIG_MODE",
      "signature": "export const CONFIG_MODE = \"644\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 70,
      "name": "CONFIG_OWNER",
      "signature": "export const CONFIG_OWNER = \"root:root\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 72,
      "name": "NGINX_SOURCE",
      "signature": "export const NGINX_SOURCE: SourceArchive & { readonly upstream: string } = {"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 79,
      "name": "NGINX_PACKAGE",
      "signature": "export const NGINX_PACKAGE = \"nginx\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 81,
      "name": "MODULE_PACKAGES",
      "signature": "export const MODULE_PACKAGES: readonly string[] = [\"nginx-module-njs\", \"libnginx-mod-brotli\"];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 83,
      "name": "PACKAGE_SOURCES",
      "signature": "export const PACKAGE_SOURCES: readonly PackageSource[] = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 88,
      "name": "SOURCE_MODULES",
      "signature": "export const SOURCE_MODULES: readonly SourceModule[] = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 98,
      "name": "BUILD_PACKAGES",
      "signature": "export const BUILD_PACKAGES: readonly string[] = [\"build-essential\", \"libpcre2-dev\", \"zlib1g-dev\"];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 100,
      "name": "MODULES_FOLDER",
      "signature": "export const MODULES_FOLDER = \"/usr/lib/nginx/modules\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 102,
      "name": "BUILD_MARKER_SUFFIX",
      "signature": "export const BUILD_MARKER_SUFFIX = \".build\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 104,
      "name": "PREVIOUS_SUFFIX",
      "signature": "export const PREVIOUS_SUFFIX = \".previous\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 106,
      "name": "MODULE_LOADERS",
      "signature": "export const MODULE_LOADERS: readonly ModuleLoader[] = ["
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 114,
      "name": "CODENAME_COMMAND",
      "signature": "export const CODENAME_COMMAND = '. /etc/os-release && echo \"$VERSION_CODENAME\"';"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 116,
      "name": "ARCHITECTURE_COMMAND",
      "signature": "export const ARCHITECTURE_COMMAND = \"dpkg --print-architecture\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 118,
      "name": "PACKAGE_STATUS_COMMAND",
      "signature": "export const PACKAGE_STATUS_COMMAND = \"dpkg -s\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 120,
      "name": "PACKAGE_VERSION_FIELD",
      "signature": "export const PACKAGE_VERSION_FIELD = \"Version\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 122,
      "name": "PACKAGE_STATUS_FIELD",
      "signature": "export const PACKAGE_STATUS_FIELD = \"Status\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 124,
      "name": "CONFIGURED_STATUS",
      "signature": "export const CONFIGURED_STATUS = \"install ok installed\";"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 126,
      "name": "PACKAGE_LOCK_SECONDS",
      "signature": "const PACKAGE_LOCK_SECONDS = 600;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 128,
      "name": "PACKAGE_LOCK_WAIT",
      "signature": "export const PACKAGE_LOCK_WAIT = `timeout ${String(PACKAGE_LOCK_SECONDS)} sh -c 'while sudo fuser /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock /var/lib/apt/lists/lock > /dev/null 2>&1; do sleep 5; done'`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": false,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 130,
      "name": "APT",
      "signature": "const APT = `sudo DEBIAN_FRONTEND=noninteractive apt-get -o DPkg::Lock::Timeout=${String(PACKAGE_LOCK_SECONDS)} -o Dpkg::Options::=--force-confold -y -q`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 132,
      "name": "PACKAGE_INDEX_COMMAND",
      "signature": "export const PACKAGE_INDEX_COMMAND = `${APT} update`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 134,
      "name": "PACKAGE_INSTALL_COMMAND",
      "signature": "export const PACKAGE_INSTALL_COMMAND = `${APT} --no-remove install`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 136,
      "name": "PACKAGE_REVERT_COMMAND",
      "signature": "export const PACKAGE_REVERT_COMMAND = `${APT} --no-remove --allow-downgrades install`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 138,
      "name": "PACKAGE_REMOVE_COMMAND",
      "signature": "export const PACKAGE_REMOVE_COMMAND = `${APT} remove`;"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 140,
      "name": "PULL_COMMANDS",
      "signature": "export const PULL_COMMANDS: readonly string[] = [\"pull\", \"download\", \"from-remote\"];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 142,
      "name": "PULL_FULL_COMMANDS",
      "signature": "export const PULL_FULL_COMMANDS: readonly string[] = [\"pull-full\", \"full\", \"pull-all\"];"
    },
    {
      "callable": false,
      "callees": [],
      "callers": [],
      "exported": true,
      "flow": "isolated",
      "kind": "lexical_declaration",
      "line": 144,
      "name": "PUSH_COMMANDS",
      "signature": "export const PUSH_COMMANDS: readonly string[] = [\"push\", \"upload\", \"to-remote\"];"
    }
  ],
  "document": null,
  "findings": [],
  "generated": false,
  "href": "https://banes-lab.com/anatomy/deploy#file-deploy-configuration-constants-nginx-constants-ts",
  "language": "typescript",
  "layer": "infrastructure",
  "name": "nginx.constants.ts",
  "path": "configuration/constants/nginx.constants.ts",
  "ref": "anatomy:file-deploy-configuration-constants-nginx-constants-ts",
  "relations": [
    {
      "links": [
        {
          "href": "https://banes-lab.com/anatomy/deploy#folder-deploy-configuration-constants",
          "json": "https://banes-lab.com/json/anatomy/deploy/folder-deploy-configuration-constants",
          "label": "configuration/constants",
          "markdown": "https://banes-lab.com/anatomy/deploy/folder-deploy-configuration-constants.md",
          "ref": "chapter:/anatomy/deploy#folder-deploy-configuration-constants"
        }
      ],
      "relation": "contained-in"
    }
  ],
  "slots": {
    "concern": "constants",
    "subject": "nginx",
    "variant": null
  },
  "stats": {
    "bytes": 4765,
    "callable": 0,
    "definitions": 60,
    "edges": 0,
    "exported": 55,
    "files": 1,
    "findings": {},
    "flows": {
      "isolated": 60
    },
    "lines": {
      "blank": 60,
      "code": 84,
      "total": 144
    }
  },
  "summary": "84 lines of code and 60 definitions.",
  "text": "https://banes-lab.com/source/deploy/configuration/constants/nginx.constants.ts.txt",
  "tree": "deploy",
  "siblings": {
    "next": {
      "href": "https://banes-lab.com/anatomy/deploy#file-deploy-configuration-constants-ssh-constants-ts",
      "json": "https://banes-lab.com/json/source/deploy/configuration/constants/ssh.constants.ts",
      "label": "configuration/constants/ssh.constants.ts",
      "markdown": "https://banes-lab.com/source/deploy/configuration/constants/ssh.constants.ts.md",
      "ref": "anatomy:file-deploy-configuration-constants-ssh-constants-ts"
    },
    "previous": {
      "href": "https://banes-lab.com/anatomy/deploy#file-deploy-configuration-constants-discord-constants-ts",
      "json": "https://banes-lab.com/json/source/deploy/configuration/constants/discord.constants.ts",
      "label": "configuration/constants/discord.constants.ts",
      "markdown": "https://banes-lab.com/source/deploy/configuration/constants/discord.constants.ts.md",
      "ref": "anatomy:file-deploy-configuration-constants-discord-constants-ts"
    }
  },
  "up": {
    "href": null,
    "json": "https://banes-lab.com/json/api/source/deploy/configuration/constants",
    "label": "configuration/constants",
    "markdown": "https://banes-lab.com/api/source/deploy/configuration/constants.md",
    "ref": "api:source/deploy/configuration/constants"
  }
}
