[
  {
    "path": ".babelrc",
    "content": "{\n    \"presets\": [[\n        \"@babel/preset-env\",\n        {\n            \"corejs\": \"3\",\n            \"useBuiltIns\": \"usage\"\n        }\n    ]],\n    \"plugins\": [\n        \"@babel/plugin-transform-runtime\",\n        \"@babel/plugin-proposal-class-properties\"\n    ]\n}\n"
  },
  {
    "path": ".editorconfig",
    "content": "root = true\n\n[*]\nend_of_line = lf\ninsert_final_newline = true\nindent_style = space\nindent_size = 4\n\n[*.scss]\nindent_size = 2\n\n[*.json]\nindent_size = 2\n\n[*.yml]\nindent_size = 2\n"
  },
  {
    "path": ".eslintrc.cjs",
    "content": "module.exports = {\n    env: {\n        browser: true,\n        node: true,\n    },\n    extends: ['eslint:recommended', 'plugin:vue/recommended', 'prettier'],\n    parserOptions: {\n        parser: '@babel/eslint-parser',\n        ecmaVersion: 2018,\n        sourceType: 'module',\n        requireConfigFile: false,\n    },\n    rules: {\n        'linebreak-style': ['error', 'unix'],\n        semi: ['error', 'always'],\n        'comma-dangle': ['error', 'always-multiline'],\n        'vue/require-v-for-key': 0,\n        'vue/require-default-prop': 0,\n        'vue/no-v-html': 0,\n        'vue/max-attributes-per-line': 0,\n        'vue/html-indent': ['error', 4],\n        'vue/script-indent': [\n            'error',\n            4,\n            {\n                baseIndent: 1,\n                switchCase: 1,\n            },\n        ],\n        'vue/no-unused-vars': 'warn',\n        'vue/html-self-closing': 0,\n        'vue/multi-word-component-names': 0,\n        'vue/no-reserved-component-names': 0,\n        'eol-last': ['error', 'always'],\n        'prettier/prettier': 'error',\n        'import/extensions': [\n            'error',\n            'always',\n            {\n                js: 'always',\n                vue: 'always',\n            },\n        ],\n    },\n    globals: {\n        describe: true,\n        expect: true,\n        it: true,\n        test: true,\n    },\n    plugins: ['prettier', 'import'],\n};\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/help.md",
    "content": "---\nname: Help ❓\nabout: Encountered a problem with the tool?\n---\n\n<!-- Don't write inside the arrows as they will be hidden when you post your issue.\n\nIf you are in need of help, please follow the following steps:\n\n1.  Fill out the template.\n      This will help us understand what problem you've encountered and help us\n      find a solution.\n\n2.  Delete this line and all above lines before posting your issue! -->\n\n## Information\n<!-- Head to https://www.whatismybrowser.com/ and copy/paste the\n  'Send this link to Tech Support to share your system info:' link here -->\n\n## Help request\n\n### Problem\n<!-- What problem did you encounter? -->\n\n### What I have tried\n<!-- What have you tried so far? -->\n\n### Screenshots\n<!-- If relevant, include any screenshots here. -->\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/report-a-bug.md",
    "content": "---\nname: Report a bug 🐛\nabout: Report a bug with the tool. Only use this if you're 100% sure there's something wrong, otherwise, try \"Help\".\n---\n\n<!-- Don't put anything inside this block, as it won't be included in the issue.\n\nIf you are reporting a bug, please follow the following steps:\n\n1.  Fill out the template in full.\n      This will help us understand the situation in which the bug occurred.\n\n2.  If you are reporting a visual bug, please include screenshots of the\n     tool to help us diagnose the problem.\n\n3.  Make sure not to write between the arrows, as anything there will be hidden.\n\n4.  Delete this line and all above lines before posting your issue! -->\n\n## Information\n<!-- Head to https://www.whatismybrowser.com/ and copy/paste the\n  'Send this link to Tech Support to share your system info:' link here -->\n\n## Details\n\n### Description \n<!-- Replace this with a brief summary of the bug. -->\n\n### Steps to reproduce\n<!-- Replace this with exactly what you did to cause the bug. -->\n\n### Expected behavior\n<!-- Replace this with what you expected to happen. -->\n\n### Screenshots\n<!-- Replace this with screenshots, if necessary. -->\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/request-a-feature.md",
    "content": "---\nname: Request a feature 🆕\nabout: Suggest a new feature that you would like in the tool!\n---\n\n<!-- Fill out the template. Don't write inside the arrows as they will be hidden\nwhen you post your issue.\n\nIf you have a feature suggestion for the tool, read through the following steps:\n\n1.  Fill out the template.\n      This will help us understand what you're requesting and why you want us\n      to add it.\n\n2.  Keep it simple.\n      Make sure it's easy to understand what you're requesting. A good way is\n      to keep it to one request per GitHub issue, as we can then easily track\n      feature requests.\n\n3.  Check whether it has already been asked or added.\n      You can search the exiting GitHub issues to see if your feature has\n      already been requested.\n\n4.  Ask yourself: \"Does this idea/feature belong as part of the tool?\"\n      Whilst we'd love to be able to add every feature that every user wants,\n      we want to keep the site as small and as fast as possible by limiting how\n      much code we have. Make sure the feature you are requesting is something\n      that others will benefit from, not just you.\n\n5.  Delete this line and all above lines before posting your issue! -->\n\n## Feature request\n\n### Feature description\n<!-- What feature are you suggesting? -->\n\n### How the feature is useful\n<!-- How is the feature useful to users of the tool? -->\n"
  },
  {
    "path": ".github/PULL_REQUEST_TEMPLATE.md",
    "content": "## Type of Change\n<!-- What part of the source are you modifying? Remove the irrelevant options. -->\n\n- **Build Scripts:** <!-- Scripts relating to building, testing or CI -->\n- **Tool Source:** <!-- Which part of the tool source? Vue, JS, SCSS? -->\n- **Something else:** <!-- Say what it is, here! -->\n\n## What issue does this relate to?\n<!-- Use a GitHub keyword ('resolves #xx', 'fixes #xx', 'closes #xx') to automatically close the relevant issue. -->\n\n### What should this PR do?\n<!-- Write a quick bullet point summary of the changes this PR should be making. -->\n\n### What are the acceptance criteria?\n<!-- Write a list of what should reviewers be checking before they approve this PR. -->\n<!-- If there are UI changes, include before and after screenshots in a table for comparison. -->\n"
  },
  {
    "path": ".github/workflows/do-spaces-workflow.yml",
    "content": "name: Deploy to DigitalOcean Spaces\n\non: push\n\npermissions:\n  contents: write\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Use Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version-file: .nvmrc\n          cache: npm\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Build tool\n        run: npm run build\n        env:\n          NODE_ENV: production\n\n      - name: Deploy commit to DigitalOcean Spaces\n        run: aws s3 sync ./dist s3://${{ secrets.SPACES_BUCKET }}/commits/nginxconfig/${{ github.sha }} --endpoint=https://${{ secrets.SPACES_REGION }}.digitaloceanspaces.com --acl public-read --content-encoding utf8\n        env:\n          AWS_ACCESS_KEY_ID: ${{ secrets.SPACES_ACCESS_KEY_ID }}\n          AWS_SECRET_ACCESS_KEY: ${{ secrets.SPACES_SECRET_ACCESS_KEY }}\n          AWS_DEFAULT_REGION: ${{ secrets.SPACES_REGION }}\n\n      - name: Leave a comment on commit\n        run: npm run deploy:spaces:comment\n        env:\n          REPO_NAME: ${{ github.repository }}\n          COMMIT_SHA: ${{ github.sha }}\n          GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n          SPACES_REGION: ${{ secrets.SPACES_REGION }}\n          SPACES_BUCKET: ${{ secrets.SPACES_BUCKET }}\n"
  },
  {
    "path": ".github/workflows/gh-pages-workflow.yml",
    "content": "name: Test and deploy to GitHub Pages\n\non:\n  push:\n    branches:\n      - master\n\npermissions:\n  contents: write\n\nconcurrency:\n  group: gh-pages-workflow\n  cancel-in-progress: true\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Use Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version-file: .nvmrc\n          cache: npm\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Test before production\n        run: npm test\n\n      - name: Build tool\n        run: npm run build\n        env:\n          NODE_ENV: production\n\n      - name: Deploy master to GitHub Pages\n        uses: JamesIves/github-pages-deploy-action@v4\n        with:\n          folder: dist\n          clean: true\n          single-commit: true\n"
  },
  {
    "path": ".github/workflows/test-workflow.yml",
    "content": "name: Test commit or pull request\n\non: [push, pull_request]\n\njobs:\n  eslint:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Use Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version-file: .nvmrc\n          cache: npm\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Test with eslint\n        run: npm run test:eslint\n\n  stylelint:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Use Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version-file: .nvmrc\n          cache: npm\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Test with stylelint\n        run: npm run test:stylelint\n\n  i18n-packs:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Use Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version-file: .nvmrc\n          cache: npm\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Test i18n packs integrity\n        run: npm run test:i18n-packs\n\n  prettier:\n    runs-on: ubuntu-latest\n\n    steps:\n      - name: Checkout\n        uses: actions/checkout@v3\n\n      - name: Use Node.js\n        uses: actions/setup-node@v3\n        with:\n          node-version-file: .nvmrc\n          cache: npm\n\n      - name: Install dependencies\n        run: npm ci\n\n      - name: Test with prettier\n        run: npm run test:prettier\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\n.cache\n.idea\n.vscode\n.DS_Store\n\n/build/\n/dist/\n/dev/\n\n.eslintcache\n"
  },
  {
    "path": ".husky/pre-commit",
    "content": "#!/bin/sh\n. \"$(dirname \"$0\")/_/husky.sh\"\n\nnpx lint-staged\n"
  },
  {
    "path": ".lintstagedrc.json",
    "content": "{\n  \"*.{js,vue}\": [\n    \"prettier --write\",\n    \"eslint --quiet --cache --fix\"\n  ],\n  \"*.scss\": [\n    \"stylelint --config node_modules/do-bulma/.stylelintrc.json --fix\"\n  ]\n}\n"
  },
  {
    "path": ".nvmrc",
    "content": "v20.9.0\n"
  },
  {
    "path": ".prettierignore",
    "content": "package.json\npackage-lock.json\n"
  },
  {
    "path": ".prettierrc.json",
    "content": "{\n    \"singleQuote\": true,\n    \"trailingComma\": \"all\",\n    \"vueIndentScriptAndStyle\": true,\n    \"htmlWhitespaceSensitivity\": \"ignore\",\n    \"printWidth\": 100,\n    \"tabWidth\": 4,\n    \"singleAttributePerLine\": true\n}\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 DigitalOcean\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "[![GitHub stars](https://img.shields.io/github/stars/digitalocean/nginxconfig.io.svg)](https://github.com/digitalocean/nginxconfig.io/stargazers)\n[![GitHub contributors](https://img.shields.io/github/contributors/digitalocean/nginxconfig.io.svg?color=blue)](https://github.com/digitalocean/nginxconfig.io/graphs/contributors)\n[![MIT License](https://img.shields.io/github/license/digitalocean/nginxconfig.io.svg?color=blue)](https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE)\n<br />\n[![Closed issues](https://img.shields.io/github/issues-closed-raw/digitalocean/nginxconfig.io.svg?color=brightgreen)](https://github.com/digitalocean/nginxconfig.io/issues?q=is%3Aissue+is%3Aclosed)\n[![Closed PR](https://img.shields.io/github/issues-pr-closed-raw/digitalocean/nginxconfig.io.svg?color=brightgreen)](https://github.com/digitalocean/nginxconfig.io/pulls?q=is%3Apr+is%3Aclosed)\n[![Open issues](https://img.shields.io/github/issues-raw/digitalocean/nginxconfig.io.svg)](https://github.com/digitalocean/nginxconfig.io/issues)\n[![Open PR](https://img.shields.io/github/issues-pr-raw/digitalocean/nginxconfig.io.svg)](https://github.com/digitalocean/nginxconfig.io/pulls)\n\n[![nginxconfig](src/static/banner.png)](https://do.co/nginxconfig)\n\n<h3 align=\"center\">⚙️ NGINX configuration generator on steroids 💉</h3>\n<p align=\"center\">\n    The only tool you'll ever need to configure your NGINX server.\n    <br />\n    <a href=\"https://do.co/nginxconfig\"><strong>do.co/nginxconfig »</strong></a>\n    <br />\n    <br />\n    <a href=\"https://github.com/digitalocean/nginxconfig.io/issues/new?template=report-a-bug.md\">Report a bug</a>\n    ·\n    <a href=\"https://github.com/digitalocean/nginxconfig.io/issues/new?template=request-a-feature.md\">Request a feature</a>\n</p>\n\n<br />\n\n# ✨ [NGINX Config](https://do.co/nginxconfig)\n\nNGINX is so much more than just a webserver. You already knew that, probably.\n\nWe love NGINX, because:\n* Low memory usage\n* High concurrency\n* Asynchronous event-driven architecture\n* Load balancing\n* Reverse proxying\n* FastCGI support with caching (PHP)\n* Amazing fast handling of static files\n* TLS/SSL with SNI\n\nA lot of features with corresponding configuration directives.\nYou can deep dive into the [NGINX documentation](http://nginx.org/en/docs/) right now OR you can [use this tool](https://do.co/nginxconfig) to check\nhow NGINX works, observe how your inputs are affecting the output, and **generate the best config for your specific\nuse-case** (in parallel you can also still use the docs).\n\n## 🚀 Usage\n\n`GOTO` **[`do.co/nginxconfig`](https://do.co/nginxconfig)**\n\n**Features:**\nHTTPS, HTTP/2, IPv6, certbot, HSTS, security headers, SSL profiles, OCSP resolvers, caching, gzip, brotli, fallback\nrouting, reverse proxy, www/non-www redirect, CDN, PHP (TCP/socket, WordPress, Drupal, Magento, Joomla), Node.js support, Python\n(Django) server, etc.\n\n## 👨‍💻 Author\n\n### Rewrite & Maintenance\n\n**Matt (IPv4) Cowley &lt;me@mattcowley.co.uk&gt; (https://mattcowley.co.uk)**\n* GitHub: [@MattIPv4](https://github.com/MattIPv4)\n\n### Original version\n\n**Bálint Szekeres &lt;balint@szekeres.me&gt; (https://balint.szekeres.me)**\n* GitHub: [@0xB4LINT](https://github.com/0xB4LINT)\n* LinkedIn: [@0xB4LINT](https://www.linkedin.com/in/0xB4LINT/)\n\n## ▶️ Development\n\n1. Clone the repository\n    ```sh\n    git clone https://github.com/digitalocean/nginxconfig.io.git\n    ```\n \n2. Install NPM packages\n    ```sh\n    npm ci\n    ```\n\n3. Run the development server *(with file watchers)*\n    ```sh\n    npm run dev\n    ```\n\n4. Open the development site **[localhost:8080](http://localhost:8080)**\n\n5. Lint your code *(eslint & stylelint)*\n    ```sh\n    npm test\n    ```\n\n6. Build for production *(to the `dist` directory)*\n    ```sh\n    npm run build\n    ```\n\n## 🤝 Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create.\nAny contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## ⚒️ Built With\n\n* [Vue.js](https://vuejs.org/) - Template handling & app generation\n* [Bulma](https://bulma.io/) - Base styling, customised by [do-bulma](https://github.com/do-community/do-bulma)\n* [Prism](https://prismjs.com/) - Bash & NGINX syntax highlighting\n\n## 📚 Resources\n\n* [Mozilla SSL Configuration Generator v5](https://ssl-config.mozilla.org)\n* [Mozilla SSL Configuration Generator](https://mozilla.github.io/server-side-tls/ssl-config-generator/)\n* [OWASP TLS Cipher String Cheat Sheet](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/TLS_Cipher_String_Cheat_Sheet.md)\n* [Nginx Optimization: understanding sendfile, tcp_nodelay and tcp_nopush](https://thoughts.t37.net/nginx-optimization-understanding-sendfile-tcp-nodelay-and-tcp-nopush-c55cdd276765)\n* [NGINX Tuning For Best Performance](https://gist.github.com/denji/8359866)\n* [Hardening Your HTTP Security Headers](https://www.keycdn.com/blog/http-security-headers/)\n* [h5bp/server-configs-nginx](https://github.com/h5bp/server-configs-nginx)\n* [Diffie-Hellman DSA-like parameters](https://security.stackexchange.com/questions/95178/diffie-hellman-parameters-still-calculating-after-24-hours/95184#95184)\n* [hstspreload.org](https://hstspreload.org)\n* [Optimal value for nginx worker_connections](https://serverfault.com/questions/787919/optimal-value-for-nginx-worker-connections)\n\n## ⭐️ Show your support\n\nGive a ⭐️ if this project helped you!\n\n## 📝 License\n\nCopyright © 2020 [DigitalOcean, Inc](https://www.digitalocean.com) &lt;contact@digitalocean.com&gt; (https://www.digitalocean.com).\n<br />\nThis project is licensed under the [MIT](https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE) license.\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"nginxconfig.io\",\n  \"version\": \"1.0.0\",\n  \"description\": \"NGINX config generator on steroids\",\n  \"license\": \"MIT\",\n  \"private\": true,\n  \"engines\": {\n    \"node\": \"20.9.0\"\n  },\n  \"main\": \"src/nginxconfig/mount.js\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"npm run build:clean && npm run build:template && npm run build:prism && npm run build:static && npm run build:tool\",\n    \"build:clean\": \"do-vue clean\",\n    \"build:template\": \"do-vue template && node src/nginxconfig/build/template.js\",\n    \"build:prism\": \"node src/nginxconfig/build/prism.js\",\n    \"build:static\": \"copyfiles --up 2 src/static/{*,**/*} dist\",\n    \"build:tool\": \"vue-cli-service build src/nginxconfig/mount.js --no-clean\",\n    \"dev\": \"npm run build:template && npm run build:prism && npm run dev:tool\",\n    \"dev:tool\": \"vue-cli-service serve src/nginxconfig/mount.js\",\n    \"deploy:spaces:comment\": \"do-vue comment nginxconfig\",\n    \"test\": \"npm run test:prettier:fix && npm run test:eslint && npm run test:stylelint && npm run test:i18n-packs && npm run test:jest\",\n    \"test:jest\": \"jest --env=jsdom /test/.*.js?$\",\n    \"test:fix\": \"npm run test:prettier:fix && npm run test:eslint:fix\",\n    \"test:eslint\": \"eslint 'src/**/*.{js,vue}' --cache\",\n    \"test:eslint:fix\": \"npm run test:eslint -- --fix\",\n    \"test:stylelint\": \"stylelint 'src/**/*.scss' --config node_modules/do-bulma/.stylelintrc.json\",\n    \"test:i18n-packs\": \"node src/nginxconfig/i18n/verify.js\",\n    \"test:prettier\": \"prettier 'src/**/*.{js,vue}' --check\",\n    \"test:prettier:fix\": \"prettier --write 'src/**/*.{js,vue}'\",\n    \"prepare\": \"husky install\"\n  },\n  \"jest\": {\n    \"testRegex\": \"/test/.*.js?$\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/digitalocean/nginxconfig.io.git\"\n  },\n  \"keywords\": [\n    \"nginx\"\n  ],\n  \"author\": \"DigitalOcean\",\n  \"bugs\": {\n    \"url\": \"https://github.com/digitalocean/nginxconfig.io/issues\"\n  },\n  \"homepage\": \"https://github.com/digitalocean/nginxconfig.io#readme\",\n  \"dependencies\": {\n    \"clipboard\": \"^2.0.11\",\n    \"clone\": \"^2.1.2\",\n    \"do-bulma\": \"github:do-community/do-bulma\",\n    \"do-vue\": \"github:do-community/do-vue\",\n    \"escape-html\": \"^1.0.3\",\n    \"files-diff\": \"0.0.6\",\n    \"json-to-pretty-yaml\": \"^1.2.2\",\n    \"memory-tar-create\": \"0.0.3\",\n    \"pretty-checkbox-vue\": \"^1.1.9\",\n    \"prismjs\": \"^1.29.0\",\n    \"qs\": \"^6.11.2\",\n    \"simple-js-sha2-256\": \"^1.0.7\",\n    \"vue\": \"^3.4.15\",\n    \"vue-i18n\": \"^9.9.0\",\n    \"vue-select\": \"^4.0.0-beta.6\",\n    \"webpack-require-from\": \"^1.8.6\"\n  },\n  \"devDependencies\": {\n    \"@babel/eslint-parser\": \"^7.23.3\",\n    \"@babel/plugin-proposal-class-properties\": \"^7.18.6\",\n    \"@babel/plugin-transform-runtime\": \"^7.23.7\",\n    \"@babel/preset-env\": \"^7.23.8\",\n    \"@babel/runtime\": \"^7.23.8\",\n    \"@vue/cli-service\": \"^5.0.8\",\n    \"ajv\": \"^8.12.0\",\n    \"chalk\": \"^5.3.0\",\n    \"copyfiles\": \"^2.4.1\",\n    \"core-js\": \"^3.35.1\",\n    \"duplicate-package-checker-webpack-plugin\": \"^3.0.0\",\n    \"eslint\": \"^8.56.0\",\n    \"eslint-config-prettier\": \"^9.1.0\",\n    \"eslint-plugin-import\": \"^2.30.0\",\n    \"eslint-plugin-prettier\": \"^5.1.3\",\n    \"eslint-plugin-vue\": \"^9.20.1\",\n    \"husky\": \"^8.0.3\",\n    \"jest\": \"^29.7.0\",\n    \"jest-environment-jsdom\": \"^29.7.0\",\n    \"lint-staged\": \"^15.2.10\",\n    \"node-fetch\": \"^3.3.2\",\n    \"postcss\": \"^8.4.33\",\n    \"prettier\": \"3.2.4\",\n    \"sass\": \"^1.70.0\",\n    \"sass-loader\": \"^14.0.0\",\n    \"stylelint\": \"^16.2.0\",\n    \"stylelint-config-standard-scss\": \"^13.0.0\",\n    \"stylelint-order\": \"^6.0.4\",\n    \"vue-template-compiler\": \"^2.7.16\",\n    \"webpack\": \"^5.94.0\",\n    \"webpack-bundle-analyzer\": \"^4.10.1\"\n  },\n  \"overrides\": {\n    \"@vue/cli-service\": {\n      \"mini-css-extract-plugin\": \"^1.6.2\",\n      \"@achrinza/node-ipc\": \"^10.1.10\"\n    },\n    \"pretty-checkbox-vue\": {\n      \"vue\": \"^3.0.0\"\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/build/prism.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { promises as fs } from 'fs';\nimport { URL } from 'url';\nimport fetch from 'node-fetch';\n\nconst main = async () => {\n    const resp = await fetch('https://assets.digitalocean.com/prism/prism.css');\n    const text = await resp.text();\n\n    // Fix $676767 -> #676767\n    const fixed = text.replace(/:\\s*\\$((?:[0-9a-fA-F]{3}){1,2});/g, ':#$1;');\n\n    const buildDir = '../../../build';\n    await fs.writeFile(new URL(`${buildDir}/prism.css`, import.meta.url), fixed);\n};\n\nmain()\n    .then(() => {})\n    .catch((err) => {\n        console.error(err);\n        process.exit(1);\n    });\n"
  },
  {
    "path": "src/nginxconfig/build/template.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport fs from 'fs';\nimport { URL } from 'url';\n\n// Fetch the posthtml template and convert it to an ejs template\nconst main = () => {\n    const buildDir = '../../../build';\n    let template = fs.readFileSync(new URL(`${buildDir}/base.html`, import.meta.url), 'utf8');\n\n    // Inject our title now\n    template = template.replace(\n        '<block name=\"title\"><title>DigitalOcean</title></block>',\n        '<title>NGINXConfig | DigitalOcean</title>',\n    );\n\n    // Inject our app mounting point\n    template = template.replace('<block name=\"content\"></block>', '<div id=\"app\"></div>');\n\n    fs.writeFileSync(new URL(`${buildDir}/index.html`, import.meta.url), template);\n};\n\nmain();\n"
  },
  {
    "path": "src/nginxconfig/build/webpack-dynamic-import.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { info } from '../util/log.js';\n\nconst originalSrcDir = document.currentScript.src.split('/').slice(0, -2).join('/') + '/';\nwindow.__webpackDynamicImportURL = () => {\n    info(`Using ${originalSrcDir} for webpack dynamic import`);\n    return originalSrcDir;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/drupal.conf.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (global) => {\n    const config = {};\n\n    config['# Drupal: deny private files'] = '';\n    config[\n        'location ~ ((^|/)\\\\.|^.*\\\\.yml$|^/sites/.*/private/|^/sites/[^/]+/[^/]*settings.*\\\\.php$)'\n    ] = {\n        deny: 'all',\n        return: '404',\n    };\n\n    config['# Drupal: deny php in files'] = '';\n    config['location ~ ^/sites/[^/]+/files/.*\\\\.php$'] = {\n        deny: 'all',\n    };\n\n    config['# Drupal: deny php in vendor'] = '';\n    config['location ~ /vendor/.*\\\\.php$'] = {\n        deny: 'all',\n    };\n\n    config['# Drupal: allow image styles to be handled by the CMS'] = '';\n    config['location ~ ^/sites/[^/]+/files/styles/'] = {\n        try_files: '$uri /index.php?q=$uri&$args',\n    };\n\n    config['# Drupal: handle private files'] = '';\n    config['location ~ ^(/[a-z\\\\-]+)?/system/files/'] = {\n        try_files: '$uri /index.php?$query_string',\n    };\n\n    if (global.security.limitReq.computed) {\n        config['# Drupal: throttle user functions'] = '';\n        config['location ~ ^/user/(?:login|register|password)'] = {\n            limit_req: 'zone=login burst=2 nodelay',\n            try_files: '$uri /index.php?$query_string',\n        };\n    }\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/general.conf.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { gzipTypes, extensions } from '../../util/types_extensions.js';\n\nexport default (domains, global) => {\n    const config = {};\n\n    config['# favicon.ico'] = '';\n    config['location = /favicon.ico'] = {\n        log_not_found: 'off',\n    };\n\n    config['# robots.txt'] = '';\n    config['location = /robots.txt'] = {\n        log_not_found: 'off',\n    };\n\n    if (global.performance.disableHtmlCaching.computed) {\n        // Disable HTML caching for changes take effect in time\n        config['# Disable HTML caching'] = '';\n        const loc = `location ~* \\\\.(?:${extensions.html})$`;\n        config[loc] = {\n            add_header: 'Cache-Control \"no-cache\"',\n        };\n    }\n\n    if (domains.every((d) => d.routing.root.computed)) {\n        if (\n            global.performance.assetsExpiration.computed ===\n            global.performance.mediaExpiration.computed\n        ) {\n            if (global.performance.assetsExpiration.computed) {\n                // Assets & media combined\n                config['# assets, media'] = '';\n                const loc = `location ~* \\\\.(?:${extensions.assets}|${extensions.images}|${extensions.audio}|${extensions.video})$`;\n                config[loc] = {\n                    expires: global.performance.assetsExpiration.computed,\n                };\n            }\n        } else {\n            // Assets & media separately\n            if (global.performance.assetsExpiration.computed) {\n                config['# assets'] = '';\n                const loc = `location ~* \\\\.(?:${extensions.assets})$`;\n                config[loc] = {\n                    expires: global.performance.assetsExpiration.computed,\n                };\n            }\n\n            if (global.performance.mediaExpiration.computed) {\n                config['# media'] = '';\n                const loc = `location ~* \\\\.(?:${extensions.images}|${extensions.audio}|${extensions.video})$`;\n                config[loc] = {\n                    expires: global.performance.mediaExpiration.computed,\n                };\n            }\n        }\n\n        if (\n            global.performance.svgExpiration.computed ===\n            global.performance.fontsExpiration.computed\n        ) {\n            if (global.performance.svgExpiration.computed) {\n                // SVG & fonts combined\n                config['# svg, fonts'] = '';\n                const loc = `location ~* \\\\.(?:${extensions.svg}|${extensions.fonts})$`;\n                config[loc] = {\n                    add_header: 'Access-Control-Allow-Origin \"*\"',\n                    expires: global.performance.svgExpiration.computed,\n                };\n            }\n        } else {\n            // SVG & fonts separately\n            if (global.performance.svgExpiration.computed) {\n                config['# svg'] = '';\n                const loc = `location ~* \\\\.${extensions.svg}$`;\n                config[loc] = {\n                    add_header: 'Access-Control-Allow-Origin \"*\"',\n                    expires: global.performance.svgExpiration.computed,\n                };\n            }\n\n            if (global.performance.fontsExpiration.computed) {\n                config['# fonts'] = '';\n                const loc = `location ~* \\\\.${extensions.fonts}$`;\n                config[loc] = {\n                    add_header: 'Access-Control-Allow-Origin \"*\"',\n                    expires: global.performance.fontsExpiration.computed,\n                };\n            }\n        }\n    }\n\n    if (global.performance.gzipCompression.computed) {\n        config['# gzip'] = '';\n        config.gzip = 'on';\n        config.gzip_vary = 'on';\n        config.gzip_proxied = 'any';\n        config.gzip_comp_level = 6;\n        config.gzip_types = gzipTypes;\n    }\n\n    if (global.performance.brotliCompression.computed) {\n        config['# brotli'] = '';\n        config.brotli = 'on';\n        config.brotli_comp_level = 6;\n        config.brotli_types = gzipTypes;\n    }\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/joomla.conf.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default () => {\n    const config = {};\n\n    config['# Joomla: deny running scripts inside writable directories'] = '';\n    config['location ~* /(images|cache|media|logs|tmp)/.*\\\\.(php|pl|py|jsp|asp|sh|cgi)$'] = {\n        return: '403',\n        error_page: '403 /403_error.html',\n    };\n\n    config['# Joomla: caching of files'] = '';\n    config['location ~* \\\\.(ico|pdf|flv)$'] = {\n        expires: '1y',\n    };\n\n    config['# Joomla: caching of files'] = '';\n    config['location ~* \\\\.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$'] = {\n        expires: '14d',\n    };\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/letsencrypt.conf.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (global) => {\n    const config = {};\n\n    config['# ACME-challenge'] = '';\n    config['location ^~ /.well-known/acme-challenge/'] = {\n        root: global.https.letsEncryptRoot.computed.replace(/\\/+$/, ''),\n    };\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/magento.conf.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default () => {\n    const config = {};\n\n    config['# Magento: setup'] = '';\n    config['location ^~ /setup'] = {\n        root: '$base',\n\n        '# allow index.php': '',\n        'location ~ ^/setup/index.php': {\n            include: 'nginxconfig.io/php_fastcgi.conf',\n        },\n\n        '# deny everything except pub': '',\n        'location ~ ^/setup/(?!pub/).': {\n            deny: 'all',\n        },\n    };\n\n    config['# Magento: update'] = '';\n    config['location ^~ /update'] = {\n        root: '$base',\n\n        '# allow index.php': '',\n        'location ~ ^/update/index.php': {\n            include: 'nginxconfig.io/php_fastcgi.conf',\n        },\n\n        '# deny everything except pub': '',\n        'location ~ ^/update/(?!pub/).': {\n            deny: 'all',\n        },\n    };\n\n    config['# Magento: media files'] = '';\n    config['location ^~ /media/'] = {\n        try_files: '$uri $uri/ /get.php?$args',\n\n        'location ~* \\\\.(?:ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$': {\n            expires: '+1y',\n            add_header: 'Cache-Control \"public\"',\n            try_files: '$uri $uri/ /get.php?$args',\n        },\n\n        'location ~* \\\\.(?:zip|gz|gzip|bz2|csv|xml)$': {\n            expires: 'off',\n            add_header: 'Cache-Control \"no-store\"',\n            try_files: '$uri $uri/ /get.php?$args',\n        },\n\n        'location ~ ^/media/theme_customization/.*\\\\.xml': {\n            deny: 'all',\n        },\n\n        'location ~ ^/media/(?:customer|downloadable|import)/': {\n            deny: 'all',\n        },\n    };\n\n    config['# Magento: static route'] = '';\n    config['location @magento_static'] = {\n        rewrite: '^/static/(version\\\\d*/)?(.*)$ /static.php?resource=$2 last',\n    };\n\n    config['# Magento: static files'] = '';\n    config['location ^~ /static/'] = {\n        expires: 'max',\n        try_files: '$uri $uri/ @magento_static',\n\n        'location ~* \\\\.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$': {\n            expires: '+1y',\n            add_header: 'Cache-Control \"public\"',\n            try_files: '$uri $uri/ magento_static',\n        },\n\n        'location ~* .(zip|gz|gzip|bz2|csv|xml)$': {\n            expires: 'off',\n            add_header: 'Cache-Control \"no-store\"',\n            try_files: '$uri $uri/ @magento_static',\n        },\n    };\n\n    config['# Magento: deny cron'] = '';\n    config['location ~ cron\\\\.php'] = {\n        deny: 'all',\n    };\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/nginx.conf.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { errorLogPathDisabled } from '../../util/logging.js';\nimport sslProfiles from '../../util/ssl_profiles.js';\nimport websiteConf from './website.conf.js';\n\nexport default (domains, global) => {\n    const config = {};\n\n    // Source\n    config['# Generated by nginxconfig.io'] = '';\n    config['# See nginxconfig.txt for the configuration share link'] = '';\n\n    // Basic nginx conf\n    config.user = global.nginx.user.computed;\n    if (global.nginx.pid.computed) config.pid = global.nginx.pid.computed;\n    config.worker_processes = global.nginx.workerProcesses.computed;\n    config.worker_rlimit_nofile = 65535;\n\n    // Modules\n    config['# Load modules'] = '';\n    config.include = `${global.nginx.nginxConfigDirectory.computed.replace(\n        /\\/+$/,\n        '',\n    )}/modules-enabled/*.conf`;\n\n    // Events\n    config.events = {\n        multi_accept: 'on',\n        worker_connections: 65535,\n    };\n\n    // HTTP (kv so we can use the same key multiple times)\n    config.http = [];\n\n    config.http.push(['charset', 'utf-8']);\n    config.http.push(['sendfile', 'on']);\n    config.http.push(['tcp_nopush', 'on']);\n    config.http.push(['tcp_nodelay', 'on']);\n    if (!global.security.serverTokens.computed) config.http.push(['server_tokens', 'off']);\n    if (!global.logging.logNotFound.computed) config.http.push(['log_not_found', 'off']);\n    config.http.push(['types_hash_max_size', global.nginx.typesHashMaxSize.computed]);\n    config.http.push(['types_hash_bucket_size', global.nginx.typesHashBucketSize.computed]);\n    config.http.push(['client_max_body_size', `${global.nginx.clientMaxBodySize.computed}M`]);\n\n    config.http.push(['# MIME', '']);\n    config.http.push(['include', 'mime.types']);\n    config.http.push(['default_type', 'application/octet-stream']);\n\n    // Append Cloudflare request headers to the default log format\n    if (global.logging.cloudflare.computed) {\n        config.http.push(['# Log Format', '']);\n\n        // Define default log format as an array\n        let logging = [\n            '$remote_addr',\n            '-',\n            '$remote_user',\n            '[$time_local]',\n            '\"$request\"',\n            '$status',\n            '$body_bytes_sent',\n            '\"$http_referer\"',\n            '\"$http_user_agent\"',\n        ];\n\n        if (global.logging.cfRay.computed) logging.push('$http_cf_ray');\n\n        if (global.logging.cfConnectingIp.computed) logging.push('$http_cf_connecting_ip');\n\n        if (global.logging.xForwardedFor.computed) logging.push('$http_x_forwarded_for');\n\n        if (global.logging.xForwardedProto.computed) logging.push('$http_x_forwarded_proto');\n\n        if (global.logging.trueClientIp.computed) logging.push('$http_true_client_ip');\n\n        if (global.logging.cfIpCountry.computed) logging.push('$http_cf_ipcountry');\n\n        if (global.logging.cfVisitor.computed) logging.push('$http_cf_visitor');\n\n        if (global.logging.cdnLoop.computed) logging.push('$http_cdn_loop');\n\n        config.http.push(['log_format', `cloudflare '${logging.join(' ')}'`]);\n    }\n\n    config.http.push(['# Logging', '']);\n    config.http.push(['access_log', 'off']);\n    if (global.logging.errorLogEnabled.computed) {\n        config.http.push([\n            'error_log',\n            global.logging.errorLogPath.computed.trim() +\n                ` ${global.logging.errorLogLevel.computed}`,\n        ]);\n    } else {\n        config.http.push(['error_log', errorLogPathDisabled]);\n    }\n\n    if (global.security.limitReq.computed) {\n        config.http.push(['# Limits', '']);\n        config.http.push(['limit_req_log_level', 'warn']);\n        config.http.push(['limit_req_zone', '$binary_remote_addr zone=login:10m rate=10r/m']);\n    }\n\n    // HTTPS\n    let hasHttps = false;\n    for (const domain of domains) {\n        if (domain && domain.https && domain.https.https && domain.https.https.computed) {\n            hasHttps = true;\n            break;\n        }\n    }\n    if (hasHttps) {\n        config.http.push(['# SSL', '']);\n        config.http.push(['ssl_session_timeout', '1d']);\n        config.http.push(['ssl_session_cache', 'shared:SSL:10m']);\n        config.http.push(['ssl_session_tickets', 'off']);\n\n        const sslProfile = sslProfiles[global.https.sslProfile.computed];\n        if (sslProfile) {\n            if (sslProfile.dh_param_size) {\n                config.http.push(['# Diffie-Hellman parameter for DHE ciphersuites', '']);\n                config.http.push([\n                    'ssl_dhparam',\n                    `${global.nginx.nginxConfigDirectory.computed.replace(/\\/+$/, '')}/dhparam.pem`,\n                ]);\n            }\n\n            config.http.push([`# ${sslProfile.name} configuration`, '']);\n            config.http.push(['ssl_protocols', sslProfile.protocols.join(' ')]);\n            if (sslProfile.ciphers.length)\n                config.http.push(['ssl_ciphers', sslProfile.ciphers.join(':')]);\n            if (sslProfile.server_preferred_order)\n                config.http.push(['ssl_prefer_server_ciphers', 'on']);\n        }\n\n        config.http.push(['# OCSP Stapling', '']);\n        config.http.push(['ssl_stapling', 'on']);\n        config.http.push(['ssl_stapling_verify', 'on']);\n\n        const ips = [];\n        if (global.https.ocspCloudflare.computed) {\n            if (['ipv4', 'both'].includes(global.https.ocspCloudflareType.computed))\n                ips.push('1.1.1.1', '1.0.0.1');\n            if (['ipv6', 'both'].includes(global.https.ocspCloudflareType.computed))\n                ips.push('[2606:4700:4700::1111]', '[2606:4700:4700::1001]');\n        }\n        if (global.https.ocspGoogle.computed) {\n            if (['ipv4', 'both'].includes(global.https.ocspGoogleType.computed))\n                ips.push('8.8.8.8', '8.8.4.4');\n            if (['ipv6', 'both'].includes(global.https.ocspGoogleType.computed))\n                ips.push('[2001:4860:4860::8888]', '[2001:4860:4860::8844]');\n        }\n        if (global.https.ocspOpenDns.computed) {\n            if (['ipv4', 'both'].includes(global.https.ocspOpenDnsType.computed))\n                ips.push('208.67.222.222', '208.67.220.220');\n            if (['ipv6', 'both'].includes(global.https.ocspOpenDnsType.computed))\n                ips.push('[2620:119:35::35]', '[2620:119:53::53]');\n        }\n        if (global.https.ocspQuad9.computed) {\n            if (['ipv4', 'both'].includes(global.https.ocspQuad9Type.computed))\n                ips.push('9.9.9.9', '149.112.112.112');\n            if (['ipv6', 'both'].includes(global.https.ocspQuad9Type.computed))\n                ips.push('[2620:fe::fe]', '[2620:fe::9]');\n        }\n        if (global.https.ocspVerisign.computed) {\n            if (['ipv4', 'both'].includes(global.https.ocspVerisignType.computed))\n                ips.push('64.6.64.6', '64.6.65.6');\n            if (['ipv6', 'both'].includes(global.https.ocspVerisignType.computed))\n                ips.push('[2620:74:1b::1:1]', '[2620:74:1c::2:2]');\n        }\n\n        if (ips.length) {\n            config.http.push(['resolver', `${ips.join(' ')} valid=60s`]);\n            config.http.push(['resolver_timeout', '2s']);\n        }\n    }\n\n    // Connection header for WebSocket reverse proxy\n    if (domains.some((d) => d.reverseProxy.reverseProxy.computed)) {\n        config.http.push(['# Connection header for WebSocket reverse proxy', '']);\n        config.http.push([\n            'map $http_upgrade $connection_upgrade',\n            {\n                default: 'upgrade',\n                '\"\"': 'close',\n            },\n        ]);\n        // See https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/\n        config.http.push([\n            'map $remote_addr $proxy_forwarded_elem',\n            {\n                '# IPv4 addresses can be sent as-is': '',\n                '~^[0-9.]+$': '\"for=$remote_addr\"',\n                '# IPv6 addresses need to be bracketed and quoted': '',\n                '~^[0-9A-Fa-f:.]+$': '\"for=\\\\\"[$remote_addr]\\\\\"\"',\n                '# Unix domain socket names cannot be represented in RFC 7239 syntax': '',\n                default: '\"for=unknown\"',\n            },\n        ]);\n        config.http.push([\n            'map $http_forwarded $proxy_add_forwarded',\n            {\n                '# If the incoming Forwarded header is syntactically valid, append to it': '',\n                '': '\"~^(,[ \\\\\\\\t]*)*([!#$%&\\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\\'*+.^_`|~0-9A-Za-z-]+|\\\\\"([\\\\\\\\t \\\\\\\\x21\\\\\\\\x23-\\\\\\\\x5B\\\\\\\\x5D-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF]|\\\\\\\\\\\\\\\\[\\\\\\\\t \\\\\\\\x21-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF])*\\\\\"))?(;([!#$%&\\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\\'*+.^_`|~0-9A-Za-z-]+|\\\\\"([\\\\\\\\t \\\\\\\\x21\\\\\\\\x23-\\\\\\\\x5B\\\\\\\\x5D-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF]|\\\\\\\\\\\\\\\\[\\\\\\\\t \\\\\\\\x21-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF])*\\\\\"))?)*([ \\\\\\\\t]*,([ \\\\\\\\t]*([!#$%&\\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\\'*+.^_`|~0-9A-Za-z-]+|\\\\\"([\\\\\\\\t \\\\\\\\x21\\\\\\\\x23-\\\\\\\\x5B\\\\\\\\x5D-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF]|\\\\\\\\\\\\\\\\[\\\\\\\\t \\\\\\\\x21-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF])*\\\\\"))?(;([!#$%&\\'*+.^_`|~0-9A-Za-z-]+=([!#$%&\\'*+.^_`|~0-9A-Za-z-]+|\\\\\"([\\\\\\\\t \\\\\\\\x21\\\\\\\\x23-\\\\\\\\x5B\\\\\\\\x5D-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF]|\\\\\\\\\\\\\\\\[\\\\\\\\t \\\\\\\\x21-\\\\\\\\x7E\\\\\\\\x80-\\\\\\\\xFF])*\\\\\"))?)*)?)*$\" \"$http_forwarded, $proxy_forwarded_elem\"',\n                '# Otherwise, replace it': '',\n                default: '\"$proxy_forwarded_elem\"',\n            },\n        ]);\n    }\n\n    // Configs!\n    config.http.push(['# Load configs', '']);\n    config.http.push([\n        'include',\n        [\n            `${global.nginx.nginxConfigDirectory.computed.replace(/\\/+$/, '')}/conf.d/*.conf`,\n            global.tools.modularizedStructure.computed\n                ? `${global.nginx.nginxConfigDirectory.computed.replace(\n                      /\\/+$/,\n                      '',\n                  )}/sites-enabled/*`\n                : '',\n        ].filter((x) => x.length),\n    ]);\n\n    // Single file configs\n    if (!global.tools.modularizedStructure.computed) {\n        const ipPortPairs = new Set();\n        for (const domain of domains) {\n            config.http.push([`# ${domain.server.domain.computed}`, '']);\n            config.http.push(...websiteConf(domain, domains, global, ipPortPairs));\n        }\n    }\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/php_fastcgi.conf.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (domains) => {\n    const legacyRouting = domains.some((d) => d.routing.legacyPhpRouting.computed);\n    const config = {};\n\n    if (legacyRouting) {\n        config['# split path'] = '';\n        config.fastcgi_split_path_info = '^(.+\\\\.php)(/.+)$';\n        config.set = '$_fastcgi_path_info $fastcgi_path_info';\n    }\n\n    config['# 404'] = '';\n    config.try_files = '$fastcgi_script_name =404';\n\n    config['# default fastcgi_params'] = '';\n    config.include = 'fastcgi_params';\n\n    config['# fastcgi settings'] = '';\n    config.fastcgi_index = 'index.php';\n    config.fastcgi_buffers = '8 16k';\n    config.fastcgi_buffer_size = '32k';\n\n    config['# fastcgi params'] = '';\n    config['fastcgi_param DOCUMENT_ROOT'] = '$realpath_root';\n    config['fastcgi_param SCRIPT_FILENAME'] = '$realpath_root$fastcgi_script_name';\n    if (legacyRouting) config['fastcgi_param PATH_INFO'] = '$_fastcgi_path_info';\n    config['fastcgi_param PHP_ADMIN_VALUE'] = '\"open_basedir=$base/:/usr/lib/php/:/tmp/\"';\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/proxy.conf.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (global) => {\n    const config = {};\n\n    config.proxy_http_version = '1.1';\n    config.proxy_cache_bypass = '$http_upgrade';\n\n    config['# Proxy SSL'] = '';\n    config['proxy_ssl_server_name'] = 'on';\n\n    config['# Proxy headers'] = '';\n    config['proxy_set_header Upgrade'] = '$http_upgrade';\n    config['proxy_set_header Connection'] = '$connection_upgrade';\n    config['proxy_set_header X-Real-IP'] = '$remote_addr';\n    config['proxy_set_header Forwarded'] = '$proxy_add_forwarded';\n    if (global.reverseProxy.proxyCoexistenceXForwarded.computed == 'passOn') {\n        config['proxy_set_header X-Forwarded-For'] = '$proxy_add_x_forwarded_for';\n        config['proxy_set_header X-Forwarded-Proto'] = '$scheme';\n        config['proxy_set_header X-Forwarded-Host'] = '$host';\n        config['proxy_set_header X-Forwarded-Port'] = '$server_port';\n    } else {\n        config['proxy_set_header X-Forwarded-For'] = '\"\"';\n        config['proxy_set_header X-Forwarded-Proto'] = '\"\"';\n        config['proxy_set_header X-Forwarded-Host'] = '\"\"';\n        config['proxy_set_header X-Forwarded-Port'] = '\"\"';\n    }\n\n    config['# Proxy timeouts'] = '';\n    config['proxy_connect_timeout'] = global.reverseProxy.proxyConnectTimeout.computed;\n    config['proxy_send_timeout'] = global.reverseProxy.proxySendTimeout.computed;\n    config['proxy_read_timeout'] = global.reverseProxy.proxyReadTimeout.computed;\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/python_uwsgi.conf.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (global) => {\n    const config = {};\n\n    config['# default uwsgi_params'] = '';\n    config.include = 'uwsgi_params';\n\n    config['# uwsgi settings'] = '';\n    config.uwsgi_pass =\n        (global.python.pythonServer.computed[0] === '/' ? 'unix:' : '') +\n        global.python.pythonServer.computed;\n    config['uwsgi_param Host'] = '$host';\n    config['uwsgi_param X-Real-IP'] = '$remote_addr';\n    config['uwsgi_param X-Forwarded-For'] = '$proxy_add_x_forwarded_for';\n    config['uwsgi_param X-Forwarded-Proto'] = '$http_x_forwarded_proto';\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/security.conf.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport commonHsts from '../../util/common_hsts.js';\n\nexport default (domains, global) => {\n    const config = [];\n\n    config.push(['# security headers', '']);\n    config.push(['add_header X-XSS-Protection', '\"1; mode=block\" always']);\n    config.push(['add_header X-Content-Type-Options', '\"nosniff\" always']);\n    config.push([\n        'add_header Referrer-Policy',\n        `\"${global.security.referrerPolicy.computed}\" always`,\n    ]);\n\n    if (global.security.contentSecurityPolicy.computed)\n        config.push([\n            'add_header Content-Security-Policy',\n            `\"${global.security.contentSecurityPolicy.computed}\" always`,\n        ]);\n\n    if (global.security.permissionsPolicy.computed)\n        config.push([\n            'add_header Permissions-Policy',\n            `\"${global.security.permissionsPolicy.computed}\" always`,\n        ]);\n\n    // Every domain has HSTS enabled, and they all have same hstsSubdomains/hstsPreload settings\n    if (commonHsts(domains)) {\n        const commonHSTSSubdomains = domains.length && domains[0].https.hstsSubdomains.computed;\n        const commonHSTSPreload = domains.length && domains[0].https.hstsPreload.computed;\n        config.push([\n            'add_header Strict-Transport-Security',\n            `\"max-age=31536000${commonHSTSSubdomains ? '; includeSubDomains' : ''}${\n                commonHSTSPreload ? '; preload' : ''\n            }\" always`,\n        ]);\n    }\n\n    config.push(['# . files', '']);\n    config.push([\n        'location ~ /\\\\.(?!well-known)',\n        {\n            deny: 'all',\n        },\n    ]);\n\n    // Security.txt\n    if (global.security.securityTxt.computed) {\n        config.push(['# security.txt', '']);\n        config.push([\n            'location /security.txt',\n            {\n                return: '301 /.well-known/security.txt',\n            },\n        ]);\n\n        // Custom security.txt path\n        config.push([\n            'location = /.well-known/security.txt',\n            {\n                alias: `${global.security.securityTxtPath.value}`,\n            },\n        ]);\n    }\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/website.conf.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { getSslCertificate, getSslCertificateKey } from '../../util/get_ssl_certificate.js';\nimport { extensions, gzipTypes } from '../../util/types_extensions.js';\nimport { getDomainAccessLog, getDomainErrorLog } from '../../util/logging.js';\nimport commonHsts from '../../util/common_hsts.js';\nimport securityConf from './security.conf.js';\nimport pythonConf from './python_uwsgi.conf.js';\nimport proxyConf from './proxy.conf.js';\nimport phpConf from './php_fastcgi.conf.js';\nimport generalConf from './general.conf.js';\nimport wordPressConf from './wordpress.conf.js';\nimport drupalConf from './drupal.conf.js';\nimport magentoConf from './magento.conf.js';\nimport joomlaConf from './joomla.conf.js';\nimport letsEncryptConf from './letsencrypt.conf.js';\nimport phpPath from '../../util/php_path.js';\nimport phpUpstream from '../../util/php_upstream.js';\n\nconst sslConfig = (domain, global) => {\n    const config = [];\n    if (domain.https.https.computed) {\n        config.push(['# SSL', '']);\n        config.push(['ssl_certificate', getSslCertificate(domain, global)]);\n        config.push(['ssl_certificate_key', getSslCertificateKey(domain, global)]);\n\n        // Let's encrypt\n        if (domain.https.certType.computed === 'letsEncrypt')\n            config.push([\n                'ssl_trusted_certificate',\n                `${global.https.letsEncryptCertRoot.computed.replace(/\\/+$/, '')}/${\n                    domain.server.domain.computed\n                }/chain.pem`,\n            ]);\n    }\n    return config;\n};\n\nconst httpsListen = (domain, global, ipPortPairs) => {\n    const config = [];\n\n    // Check if reuseport needs to be set\n    const ipPortV4 = `${\n        domain.server.listenIpv4.computed === '*' ? '' : `${domain.server.listenIpv4.computed}:`\n    }443`;\n    const reusePortV4 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV4);\n    if (reusePortV4) ipPortPairs.add(ipPortV4);\n\n    // HTTPS\n    config.push([\n        'listen',\n        `${ipPortV4} ssl${domain.https.http2.computed ? ' http2' : ''}${\n            reusePortV4 ? ' reuseport' : ''\n        }`,\n    ]);\n\n    // HTTP/3\n    if (domain.https.http3.computed) config.push(['listen', `${ipPortV4} http3`]);\n\n    // v6\n    if (domain.server.listenIpv6.computed) {\n        // Check if reuseport needs to be set\n        const ipPortV6 = `[${domain.server.listenIpv6.computed}]:443`;\n        const reusePortV6 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV6);\n        if (reusePortV6) ipPortPairs.add(ipPortV6);\n\n        // HTTPS\n        config.push([\n            'listen',\n            `${ipPortV6} ssl${domain.https.http2.computed ? ' http2' : ''}${\n                reusePortV6 ? ' reuseport' : ''\n            }`,\n        ]);\n\n        // HTTP/3\n        if (domain.https.http3.computed) config.push(['listen', `${ipPortV6} http3`]);\n    }\n\n    return config;\n};\n\nconst httpListen = (domain, global, ipPortPairs) => {\n    const config = [];\n\n    // Check if reuseport needs to be set\n    const ipPortV4 = `${\n        domain.server.listenIpv4.computed === '*' ? '' : `${domain.server.listenIpv4.computed}:`\n    }80`;\n    const reusePortV4 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV4);\n    if (reusePortV4) ipPortPairs.add(ipPortV4);\n\n    // v4\n    config.push(['listen', `${ipPortV4}${reusePortV4 ? ' reuseport' : ''}`]);\n\n    // v6\n    if (domain.server.listenIpv6.computed) {\n        // Check if reuseport needs to be set\n        const ipPortV6 = `[${domain.server.listenIpv6.computed}]:80`;\n        const reusePortV6 = global.https.portReuse.computed && !ipPortPairs.has(ipPortV6);\n        if (reusePortV6) ipPortPairs.add(ipPortV6);\n\n        config.push(['listen', `${ipPortV6}${reusePortV6 ? ' reuseport' : ''}`]);\n    }\n\n    return config;\n};\n\nconst listenConfig = (domain, global, ipPortPairs) => {\n    if (domain.https.https.computed) return httpsListen(domain, global, ipPortPairs);\n    return httpListen(domain, global, ipPortPairs);\n};\n\nconst httpRedirectConfig = (domain, global, ipPortPairs, domainName, redirectDomain) => {\n    // Build the server config on its own before adding it to the parent config\n    const config = [];\n\n    config.push(...httpListen(domain, global, ipPortPairs));\n    config.push(['server_name', domainName]);\n\n    // Logging\n    if (domain.logging.redirectAccessLog.computed || domain.logging.redirectErrorLog.computed) {\n        config.push(['# logging', '']);\n\n        if (domain.logging.redirectAccessLog.computed) {\n            config.push(['access_log', getDomainAccessLog(domain, global)]);\n        }\n\n        if (domain.logging.redirectErrorLog.computed) {\n            config.push(['error_log', getDomainErrorLog(domain)]);\n        }\n    }\n\n    if (domain.https.certType.computed === 'letsEncrypt') {\n        // Let's encrypt\n\n        if (global.tools.modularizedStructure.computed) {\n            // Modularized\n            config.push(['include', 'nginxconfig.io/letsencrypt.conf']);\n        } else {\n            // Unified\n            config.push(...Object.entries(letsEncryptConf(global)));\n        }\n\n        config.push([\n            'location /',\n            {\n                return: `301 https://${redirectDomain ? redirectDomain : domainName}$request_uri`,\n            },\n        ]);\n    } else {\n        // Custom cert\n        config.push([\n            'return',\n            `301 https://${redirectDomain ? redirectDomain : domainName}$request_uri`,\n        ]);\n    }\n\n    return config;\n};\n\nexport default (domain, domains, global, ipPortPairs) => {\n    // Use kv so we can use the same key multiple times\n    const config = [];\n\n    // Build the server config on its own before adding it to the parent config\n    const serverConfig = [];\n\n    // Not HTTPS or not force HTTPS\n    if (!domain.https.https.computed || !domain.https.forceHttps.computed)\n        serverConfig.push(...httpListen(domain, global, ipPortPairs));\n\n    // HTTPS\n    if (domain.https.https.computed) serverConfig.push(...httpsListen(domain, global, ipPortPairs));\n\n    serverConfig.push([\n        'server_name',\n        `${domain.server.wwwSubdomain.computed ? 'www.' : ''}${domain.server.domain.computed}`,\n    ]);\n\n    // PHP or Django\n    if (\n        domain.php.php.computed ||\n        (domain.python.python.computed && domain.python.djangoRules.computed)\n    ) {\n        serverConfig.push(['set', `$base ${domain.server.path.computed}`]);\n\n        // root\n        if (domain.routing.root.computed)\n            serverConfig.push(['root', `$base${domain.server.documentRoot.computed}`]);\n    }\n\n    // Not PHP and not Django and root\n    if (\n        !domain.php.php.computed &&\n        (!domain.python.python.computed || !domain.python.djangoRules.computed) &&\n        domain.routing.root.computed\n    )\n        serverConfig.push([\n            'root',\n            `${domain.server.path.computed}${domain.server.documentRoot.computed}`,\n        ]);\n\n    // HTTPS\n    serverConfig.push(...sslConfig(domain, global));\n\n    // Onion location\n    if (domain.onion.onionLocation.computed) {\n        serverConfig.push(['# Onion services', '']);\n        serverConfig.push([\n            'add_header Onion-Location',\n            `http://${domain.onion.onionLocation.computed}$request_uri`,\n        ]);\n    }\n\n    // HSTS\n    if (!commonHsts(domains) && domain.https.hsts.computed) {\n        serverConfig.push(['# HSTS', '']);\n        serverConfig.push([\n            'add_header Strict-Transport-Security',\n            `\"max-age=31536000${domain.https.hstsSubdomains.computed ? '; includeSubDomains' : ''}${\n                domain.https.hstsPreload.computed ? '; preload' : ''\n            }\" always`,\n        ]);\n    }\n\n    // Security\n    if (global.tools.modularizedStructure.computed) {\n        // Modularized\n        serverConfig.push(['# security', '']);\n        serverConfig.push(['include', 'nginxconfig.io/security.conf']);\n    } else {\n        // Unified\n        serverConfig.push(...securityConf(domains, global));\n    }\n\n    // Restrict Methods\n    if (\n        Object.keys(domain.restrict).find(\n            (k) => domain.restrict[k].computed && k !== 'responseCode',\n        )\n    ) {\n        const allowedKeys = Object.keys(domain.restrict)\n            .filter((k) => !domain.restrict[k].computed && k !== 'responseCode')\n            .map((e) => e.replace('Method', '').toUpperCase());\n\n        serverConfig.push(['# restrict methods', '']);\n        serverConfig.push([\n            `if ($request_method !~ ^(${allowedKeys.join('|')})$)`,\n            {\n                return: `'${domain.restrict.responseCode.computed}'`,\n            },\n        ]);\n    }\n\n    // Access log or error log for domain\n    if (domain.logging.accessLogEnabled.computed || domain.logging.errorLogEnabled.computed) {\n        serverConfig.push(['# logging', '']);\n\n        if (domain.logging.accessLogEnabled.computed)\n            serverConfig.push(['access_log', getDomainAccessLog(domain, global)]);\n\n        if (domain.logging.errorLogEnabled.computed)\n            serverConfig.push(['error_log', getDomainErrorLog(domain)]);\n    }\n\n    // index.php\n    if (domain.routing.index.computed === 'index.php') {\n        serverConfig.push(['# index.php', '']);\n        serverConfig.push(['index', 'index.php']);\n    }\n\n    // Fallback index.html or index.php\n    if (\n        (domain.routing.fallbackHtml.computed || domain.routing.fallbackPhp.computed) &&\n        (!domain.reverseProxy.reverseProxy.computed || domain.reverseProxy.path.computed !== '/')\n    ) {\n        serverConfig.push([\n            `# index.${\n                domain.routing.fallbackHtml.computed\n                    ? 'html'\n                    : domain.routing.fallbackPhp.computed\n                      ? 'php'\n                      : ''\n            } fallback`,\n            '',\n        ]);\n        serverConfig.push([\n            'location /',\n            {\n                try_files: `$uri $uri/ /index.${\n                    domain.routing.fallbackHtml.computed\n                        ? 'html'\n                        : domain.routing.fallbackPhp.computed\n                          ? 'php?$query_string'\n                          : ''\n                }`,\n            },\n        ]);\n    }\n\n    // Fallback index.html and index.php\n    if (domain.routing.fallbackHtml.computed && domain.routing.fallbackPhp.computed) {\n        serverConfig.push(['# index.php fallback', '']);\n        serverConfig.push([\n            `location ~ ^${domain.routing.fallbackPhpPath.computed}`,\n            {\n                try_files: '$uri $uri/ /index.php?$query_string',\n            },\n        ]);\n    }\n\n    // Python\n    if (domain.python.python.computed) {\n        if (global.tools.modularizedStructure.computed) {\n            // Modularized\n            serverConfig.push(['location /', { include: 'nginxconfig.io/python_uwsgi.conf' }]);\n        } else {\n            // Unified\n            serverConfig.push(['location /', pythonConf(global)]);\n        }\n\n        // Django\n        if (domain.python.djangoRules.computed) {\n            serverConfig.push(['# Django media', '']);\n            serverConfig.push(['location /media/', { alias: '$base/media/' }]);\n\n            serverConfig.push(['# Django static', '']);\n            serverConfig.push(['location /static/', { alias: '$base/static/' }]);\n        }\n    }\n\n    // Reverse proxy\n    if (domain.reverseProxy.reverseProxy.computed) {\n        const locConf = [];\n        locConf.push(['proxy_pass', domain.reverseProxy.proxyPass.computed]);\n        locConf.push(['proxy_set_header Host', domain.reverseProxy.proxyHostHeader.computed]);\n\n        if (global.tools.modularizedStructure.computed) {\n            // Modularized\n            locConf.push(['include', 'nginxconfig.io/proxy.conf']);\n        } else {\n            // Unified\n            locConf.push(...Object.entries(proxyConf(global)));\n        }\n\n        serverConfig.push(['# reverse proxy', '']);\n        serverConfig.push([`location ${domain.reverseProxy.path.computed}`, locConf]);\n    }\n\n    // Additional config\n    if (global.tools.modularizedStructure.computed) {\n        // Modularized\n        serverConfig.push(['# additional config', '']);\n        serverConfig.push(['include', 'nginxconfig.io/general.conf']);\n\n        if (!domain.https.forceHttps.computed && domain.https.certType.computed === 'letsEncrypt')\n            serverConfig.push(['include', 'nginxconfig.io/letsencrypt.conf']);\n\n        if (domain.php.wordPressRules.computed)\n            serverConfig.push([\n                'include',\n                `nginxconfig.io/${domain.server.domain.computed}.wordpress.conf`,\n            ]);\n        if (domain.php.drupalRules.computed)\n            serverConfig.push(['include', 'nginxconfig.io/drupal.conf']);\n        if (domain.php.magentoRules.computed)\n            serverConfig.push(['include', 'nginxconfig.io/magento.conf']);\n        if (domain.php.joomlaRules.computed)\n            serverConfig.push(['include', 'nginxconfig.io/joomla.conf']);\n    } else {\n        // Unified\n        serverConfig.push(...Object.entries(generalConf(domains, global)));\n\n        if (!domain.https.forceHttps.computed && domain.https.certType.computed === 'letsEncrypt')\n            serverConfig.push(...Object.entries(letsEncryptConf(global)));\n\n        if (domain.php.wordPressRules.computed)\n            serverConfig.push(...Object.entries(wordPressConf(global, domain)));\n        if (domain.php.drupalRules.computed)\n            serverConfig.push(...Object.entries(drupalConf(global)));\n        if (domain.php.magentoRules.computed) serverConfig.push(...Object.entries(magentoConf()));\n        if (domain.php.joomlaRules.computed) serverConfig.push(...Object.entries(joomlaConf()));\n    }\n\n    // PHP\n    if (domain.php.php.computed) {\n        if (domain.php.phpBackupServer.computed) {\n            config.push([\n                `upstream ${phpUpstream(domain)}`,\n                {\n                    server: [phpPath(domain), `${phpPath(domain, true)} backup`],\n                },\n            ]);\n        }\n\n        serverConfig.push(['# handle .php', '']);\n\n        const loc = `location ~ ${\n            domain.routing.legacyPhpRouting.computed ? '[^/]\\\\.php(/|$)' : '\\\\.php$'\n        }`;\n\n        const fastcgiPass = {\n            fastcgi_pass:\n                domain.php.phpBackupServer.computed !== '' ? phpUpstream(domain) : phpPath(domain),\n        };\n\n        if (global.tools.modularizedStructure.computed || domain.php.wordPressRules.computed) {\n            // Modularized\n            serverConfig.push([\n                loc,\n                {\n                    ...fastcgiPass,\n                    include: 'nginxconfig.io/php_fastcgi.conf',\n                },\n            ]);\n        } else {\n            // Unified\n            serverConfig.push([\n                loc,\n                {\n                    ...fastcgiPass,\n                    ...phpConf(domains),\n                },\n            ]);\n        }\n    }\n\n    // Add the server config to the parent config now its built\n    config.push(['server', serverConfig]);\n\n    // CDN!\n    if (domain.server.cdnSubdomain.computed) {\n        // Build the server config on its own before adding it to the parent config\n        const cdnConfig = [];\n\n        cdnConfig.push(...listenConfig(domain, global, ipPortPairs));\n        cdnConfig.push(['server_name', `cdn.${domain.server.domain.computed}`]);\n        cdnConfig.push([\n            'root',\n            `${domain.server.path.computed}${domain.server.documentRoot.computed}`,\n        ]);\n\n        // HTTPS\n        cdnConfig.push(...sslConfig(domain, global));\n\n        cdnConfig.push(['# disable access_log', '']);\n        cdnConfig.push(['access_log', 'off']);\n\n        // Gzip\n        if (global.performance.gzipCompression.computed) {\n            cdnConfig.push(['# gzip', '']);\n            cdnConfig.push(['gzip', 'on']);\n            cdnConfig.push(['gzip_vary', 'on']);\n            cdnConfig.push(['gzip_proxied', 'any']);\n            cdnConfig.push(['gzip_comp_level', 6]);\n            cdnConfig.push(['gzip_types', gzipTypes]);\n        }\n\n        cdnConfig.push(['# allow safe files', '']);\n        cdnConfig.push([\n            `location ~* \\\\.(?:${extensions.assets}|${extensions.fonts}|${extensions.svg}|${extensions.images}|${extensions.audio}|${extensions.video}|${extensions.docs})$`,\n            [\n                ['add_header', 'Access-Control-Allow-Origin \"*\"'],\n                ['add_header', 'Cache-Control \"public\"'],\n                ['expires', '30d'],\n            ],\n        ]);\n\n        cdnConfig.push(['# deny everything else', '']);\n        cdnConfig.push(['location /', { deny: 'all' }]);\n\n        // Add the CDN config to the parent config now its built\n        config.push(['# CDN', '']);\n        config.push(['server', cdnConfig]);\n    }\n\n    // Subdomains redirect\n    if (domain.server.redirectSubdomains.computed) {\n        // Build the server config on its own before adding it to the parent config\n        const redirectConfig = [];\n\n        redirectConfig.push(...listenConfig(domain, global, ipPortPairs));\n        redirectConfig.push([\n            'server_name',\n            `${domain.server.wwwSubdomain.computed ? '' : '*'}.${domain.server.domain.computed}`,\n        ]);\n\n        // HTTPS\n        redirectConfig.push(...sslConfig(domain, global));\n\n        // Logging\n        if (domain.logging.redirectAccessLog.computed || domain.logging.redirectErrorLog.computed) {\n            redirectConfig.push(['# logging', '']);\n\n            if (domain.logging.redirectAccessLog.computed) {\n                redirectConfig.push(['access_log', getDomainAccessLog(domain, global)]);\n            }\n            if (domain.logging.redirectErrorLog.computed) {\n                redirectConfig.push(['error_log', getDomainErrorLog(domain)]);\n            }\n        }\n\n        redirectConfig.push([\n            'return',\n            `301 http${domain.https.https.computed ? 's' : ''}://${\n                domain.server.wwwSubdomain.computed ? 'www.' : ''\n            }${domain.server.domain.computed}$request_uri`,\n        ]);\n\n        // Add the redirect config to the parent config now its built\n        config.push([\n            `# ${domain.server.wwwSubdomain.computed ? 'non-www, ' : ''}subdomains redirect`,\n            '',\n        ]);\n        config.push(['server', redirectConfig]);\n    }\n\n    // HTTP redirect\n    if (domain.https.forceHttps.computed) {\n        // Add the redirect config to the parent config now its built\n        config.push(['# HTTP redirect', '']);\n        if (domain.server.wwwSubdomain.computed && !domain.server.redirectSubdomains.computed) {\n            config.push([\n                'server',\n                httpRedirectConfig(\n                    domain,\n                    global,\n                    ipPortPairs,\n                    domain.server.domain.computed,\n                    `www.${domain.server.domain.computed}`,\n                ),\n            ]);\n            config.push([\n                'server',\n                httpRedirectConfig(\n                    domain,\n                    global,\n                    ipPortPairs,\n                    `www.${domain.server.domain.computed}`,\n                ),\n            ]);\n        } else if (\n            !domain.server.wwwSubdomain.computed &&\n            !domain.server.redirectSubdomains.computed\n        ) {\n            config.push([\n                'server',\n                httpRedirectConfig(domain, global, ipPortPairs, domain.server.domain.computed),\n            ]);\n        }\n        if (domain.server.cdnSubdomain.computed) {\n            config.push([\n                'server',\n                httpRedirectConfig(\n                    domain,\n                    global,\n                    ipPortPairs,\n                    `cdn.${domain.server.domain.computed}`,\n                ),\n            ]);\n        }\n        if (domain.server.redirectSubdomains.computed) {\n            config.push([\n                'server',\n                httpRedirectConfig(\n                    domain,\n                    global,\n                    ipPortPairs,\n                    `.${domain.server.domain.computed}`,\n                    `${domain.server.wwwSubdomain.computed ? 'www.' : ''}${\n                        domain.server.domain.computed\n                    }`,\n                ),\n            ]);\n        }\n    }\n\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/conf/wordpress.conf.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport phpPath from '../../util/php_path.js';\nimport phpUpstream from '../../util/php_upstream.js';\n\nexport default (global, domain) => {\n    const config = {};\n\n    config['# WordPress: allow TinyMCE'] = '';\n    config['location = /wp-includes/js/tinymce/wp-tinymce.php'] = {\n        include: 'nginxconfig.io/php_fastcgi.conf',\n    };\n\n    config['# WordPress: deny wp-content, wp-includes php files'] = '';\n    config['location ~* ^/(?:wp-content|wp-includes)/.*\\\\.php$'] = {\n        deny: 'all',\n    };\n\n    config['# WordPress: deny wp-content/uploads nasty stuff'] = '';\n    config['location ~* ^/wp-content/uploads/.*\\\\.(?:s?html?|php|js|swf)$'] = {\n        deny: 'all',\n    };\n\n    config['# WordPress: SEO plugin'] = '';\n    config['location ~* ^/wp-content/plugins/wordpress-seo(?:-premium)?/css/main-sitemap\\\\.xsl$'] =\n        {};\n\n    config['# WordPress: deny wp-content/plugins (except earlier rules)'] = '';\n    config['location ~ ^/wp-content/plugins'] = {\n        deny: 'all',\n    };\n\n    config['# WordPress: deny general stuff'] = '';\n    config[\n        'location ~* ^/(?:xmlrpc\\\\.php|wp-links-opml\\\\.php|wp-config\\\\.php|wp-config-sample\\\\.php|readme\\\\.html|license\\\\.txt)$'\n    ] = {\n        deny: 'all',\n    };\n\n    if (global.security.limitReq.computed) {\n        config['# WordPress: throttle wp-login.php'] = '';\n        config['location = /wp-login.php'] = {\n            limit_req: 'zone=login burst=2 nodelay',\n            include: 'nginxconfig.io/php_fastcgi.conf',\n        };\n        if (domain.php.wordPressRules.computed) {\n            config['location = /wp-login.php'].fastcgi_pass =\n                domain.php.phpBackupServer.computed !== '' ? phpUpstream(domain) : phpPath(domain);\n        }\n    }\n\n    // Done!\n    return config;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/ext/docker.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default () => {\n    return 'FROM nginx:latest\\nCOPY . /etc/nginx/';\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport toConf from './to_conf.js';\nimport toYaml from './to_yaml.js';\nimport nginxConf from './conf/nginx.conf.js';\nimport websiteConf from './conf/website.conf.js';\nimport letsEncryptConf from './conf/letsencrypt.conf.js';\nimport securityConf from './conf/security.conf.js';\nimport generalConf from './conf/general.conf.js';\nimport phpConf from './conf/php_fastcgi.conf.js';\nimport pythonConf from './conf/python_uwsgi.conf.js';\nimport proxyConf from './conf/proxy.conf.js';\nimport wordPressConf from './conf/wordpress.conf.js';\nimport drupalConf from './conf/drupal.conf.js';\nimport magentoConf from './conf/magento.conf.js';\nimport joomlaConf from './conf/joomla.conf.js';\nimport dockerComposeYaml from './yaml/dockerCompose.yaml.js';\nimport dockerConf from './ext/docker.js';\nimport shareQuery from '../util/share_query.js';\n\nexport default (domains, global) => {\n    const files = {};\n\n    // Base nginx config\n    files['nginx.conf'] = toConf(nginxConf(domains, global));\n\n    // Dockerfile\n    if (global.docker.dockerfile.computed) files['Dockerfile'] = dockerConf();\n\n    if (global.docker.dockerCompose.computed)\n        files['docker-compose.yaml'] = toYaml(dockerComposeYaml());\n\n    // Modularised configs\n    if (global.tools.modularizedStructure.computed) {\n        // Domain config\n        const sitesDir = `sites-${global.tools.symlinkVhost.computed ? 'available' : 'enabled'}`;\n        const ipPortPairs = new Set();\n        for (const domain of domains) {\n            files[`${sitesDir}/${domain.server.domain.computed}.conf`] = toConf(\n                websiteConf(domain, domains, global, ipPortPairs),\n            );\n            // WordPress\n            if (domains.some((d) => d.php.wordPressRules.computed))\n                files[`nginxconfig.io/${domain.server.domain.computed}.wordpress.conf`] = toConf(\n                    wordPressConf(global, domain),\n                );\n        }\n\n        // Let's encrypt\n        if (domains.some((d) => d.https.certType.computed === 'letsEncrypt'))\n            files['nginxconfig.io/letsencrypt.conf'] = toConf(letsEncryptConf(global));\n\n        // Security\n        files['nginxconfig.io/security.conf'] = toConf(securityConf(domains, global));\n\n        // General\n        files['nginxconfig.io/general.conf'] = toConf(generalConf(domains, global));\n\n        // PHP\n        if (domains.some((d) => d.php.php.computed))\n            files['nginxconfig.io/php_fastcgi.conf'] = toConf(phpConf(domains));\n\n        // Python\n        if (domains.some((d) => d.python.python.computed))\n            files['nginxconfig.io/python_uwsgi.conf'] = toConf(pythonConf(global));\n\n        // Reverse proxy\n        if (domains.some((d) => d.reverseProxy.reverseProxy.computed))\n            files['nginxconfig.io/proxy.conf'] = toConf(proxyConf(global));\n\n        // Drupal\n        if (domains.some((d) => d.php.drupalRules.computed))\n            files['nginxconfig.io/drupal.conf'] = toConf(drupalConf(global));\n\n        // Magento\n        if (domains.some((d) => d.php.magentoRules.computed))\n            files['nginxconfig.io/magento.conf'] = toConf(magentoConf());\n\n        // Joomla\n        if (domains.some((d) => d.php.joomlaRules.computed))\n            files['nginxconfig.io/joomla.conf'] = toConf(joomlaConf());\n    } else {\n        // PHP\n        if (domains.some((d) => d.php.wordPressRules.computed))\n            files['nginxconfig.io/php_fastcgi.conf'] = toConf(phpConf(domains));\n    }\n\n    const query = shareQuery(\n        domains.map((domain, index) => [domain, index]).filter((d) => d[0] !== null),\n        global,\n    );\n    files['nginxconfig.txt'] =\n        `${window.location.protocol}//${window.location.host}${window.location.pathname}${query}`;\n\n    return files;\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/to_conf.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport isObject from '../util/is_object.js';\n\nconst isBlock = (item) => {\n    // If an object, or kv entries, this is considered a block\n    return (\n        isObject(item) ||\n        (Array.isArray(item) && item.every((i) => Array.isArray(i) && i.length === 2))\n    );\n};\n\nconst longestKey = (items) => {\n    let longest = 0;\n\n    for (const item of items) {\n        // Only consider up to the first block\n        if (isBlock(item[1])) return longest;\n\n        // If this is the new longest, and not a comment, use this\n        if (item[0].length > longest && !item[0].startsWith('#')) longest = item[0].length;\n    }\n\n    // Done!\n    return longest;\n};\n\nconst recurse = (entriesOrObject, depth) => {\n    // Support an object or kv array entries\n    // Convert to entries if given an object\n    const entries = isObject(entriesOrObject) ? Object.entries(entriesOrObject) : entriesOrObject;\n\n    // If not a valid kv entries array, return\n    if (!Array.isArray(entries) || !entries.every((i) => Array.isArray(i) && i.length === 2))\n        return '';\n\n    // Initial values\n    let retVal = '';\n    let longestKeyLen = longestKey(entries);\n    const indent = '    '.repeat(depth);\n\n    // Track whether the previous was a block, for indentation\n    let previousBlock = false;\n\n    // Loop over every kv pair\n    for (let i = 0; i < entries.length; i++) {\n        const item = entries[i];\n\n        // If a block (object or kv entries), recurse\n        if (isBlock(item[1])) {\n            // Recurse\n            retVal += '\\n' + indent + item[0] + ' {\\n';\n            retVal += recurse(item[1], depth + 1);\n            retVal += indent + '}\\n\\n';\n\n            // Done\n            previousBlock = true;\n            continue;\n        }\n\n        // Update key length if we've just left a block\n        if (previousBlock) {\n            longestKeyLen = longestKey(entries.slice(i));\n            previousBlock = false;\n        }\n\n        // Otherwise, assume it can be made a string\n        // Ensure we're working with an array\n        const val = Array.isArray(item[1]) ? item[1] : [item[1]];\n\n        // Calculate spacing\n        const keyValSpacing = longestKeyLen - item[0].length + 1;\n        const keyValIndent = ' '.repeat(Math.max(keyValSpacing, 0));\n\n        // Work through each item in the array\n        val.forEach((subVal) => {\n            const val = subVal.toString();\n            retVal +=\n                indent +\n                (item[0] + keyValIndent + val).trim() +\n                (item[0].startsWith('#') ? '' : ';') +\n                '\\n';\n        });\n    }\n\n    return retVal;\n};\n\nexport default (entriesOrObject) => {\n    // Generate the conf\n    let conf = recurse(entriesOrObject, 0);\n\n    // Do some regex cleanup\n    conf = conf\n        // Cleanup triple linebreaks\n        .replace(/\\n\\n\\n/g, '\\n\\n')\n        // Double linebreak before comment\n        .replace(/^([^\\S\\r\\n]*[^#\\s].*[^\\n])\\n([^\\S\\r\\n]*)#/gm, '$1\\n\\n$2#')\n        // Single linebreak between comment and block\n        .replace(/^([^\\S\\r\\n]*#.*)(?:\\n[^\\S\\r\\n]*)+\\n([^\\S\\r\\n]*.*{)/gm, '$1\\n$2')\n        // Double linebreak after double comment\n        .replace(/^([^\\S\\r\\n]*#.*\\n[^\\S\\r\\n]*#.*\\n)([^\\S\\r\\n]*[^#\\s])/gm, '$1\\n$2')\n        // No newline for empty blocks\n        .replace(/^([^\\S\\r\\n]*.*{)\\n[^\\S\\r\\n]*(})/gm, '$1$2');\n\n    // Cleanup extra linebreaks between multiple close blocks\n    // Use a loop as this has overlapping matches\n    let match;\n    do {\n        match = /^([^\\S\\r\\n]*})(?:\\n[^\\S\\r\\n]*)+\\n([^\\S\\r\\n]*})/m.exec(conf);\n        if (match)\n            conf =\n                conf.slice(0, match.index) +\n                match[1] +\n                '\\n' +\n                match[2] +\n                conf.slice(match.index + match[0].length);\n    } while (match);\n\n    // Remove initial & trailing whitespace\n    return conf.trim();\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/to_yaml.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport yaml from 'json-to-pretty-yaml';\n\nexport default (yamlConf) => {\n    return yaml.stringify(yamlConf);\n};\n"
  },
  {
    "path": "src/nginxconfig/generators/yaml/dockerCompose.yaml.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default () => {\n    return {\n        version: '3.3',\n        services: {\n            nginx: {\n                build: {\n                    context: '.',\n                    dockerfile: 'Dockerfile',\n                },\n            },\n        },\n    };\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/common.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Zurück',\n    next: 'Weiter',\n    enable: 'Aktiviere',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Logging',\n    reverseProxy: 'Reverse Proxy',\n    reverseProxyLower: 'reverse proxy',\n    restrict: 'Beschränkungen',\n    path: 'Pfad',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'Englisch',\n    es: 'Spanisch',\n    zhCN: 'Chinesisch (vereinfacht)',\n    zhTW: 'Chinesisch (traditionell)',\n    ptBR: 'Portugiesisch (Brasilien)',\n    fr: 'Französisch',\n    ru: 'Russisch',\n    pl: 'Polnisch',\n    de: 'Deutsch',\n    ja: 'Japanisch',\n    fa: 'Persisch',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `Der einfachste Weg, einen performanten, sicheren und stabilen ${common.nginx} Server zu konfigurieren.`,\n    singleColumnMode: 'Einspaltiger Modus',\n    splitColumnMode: 'Mehrspaltiger Modus',\n    perWebsiteConfig: 'Webseiten-Konfiguration',\n    addSite: 'Webseite hinzufügen',\n    globalConfig: 'Globale Konfiguration',\n    setup: 'Setup',\n    configFiles: 'Konfigurationsdateien',\n    copied: 'kopiert',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 Willst du neue Features vorschlagen, Änderungen beitragen oder das Tool in eine andere Sprache übersetzen?',\n    getInvolvedOnGitHub: 'Beteilige dich auf GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 Suchst du nach einem Ort, deine neue Konfiguration zu deployen?',\n    tryOutDigitalOceansDroplet: \"Teste DigitalOcean's LEMP Droplet mit NGINX\",\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} verschlüsselte ${common.ssl} Verbindungen`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} ${common.http}/2 Verbindungen`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} ${common.http}/3 Verbindungen`,\n    forceHttps: `Erzwinge ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} Strict Transport Security, was HTTPS Verbindungen erzwingt`,\n    enableIncludeSubDomains: `${common.enable} includeSubDomains Direktive, welche HTTPS Verbindungen auf ALLEN Subdomains erzwingt`,\n    enablePreload: `${common.enable} preload Direktive, welche Browsern mitteilt, ausschließlich HTTPS Verbindungen zu verwenden`,\n    certificationType: 'Zertifizierungsart',\n    customCertificate: 'Eigenes Zertifikat',\n    letsEncryptEmail: `${common.letsEncrypt} E-Mail`,\n    http3IsANonStandardModule: 'HTTP/3 ist kein Standard NGINX Modul. Besuche das ',\n    http3NginxQuicReadme: 'NGINX QUIC Readme',\n    http3OrThe: ' oder das ',\n    http3CloudflareQuicheProject: 'Cloudflare Quiche Project',\n    http3ForBuildingNginxWithHttp3: ' für Informationen, wie man NGINX mit HTTP/3 verwendet!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport onion from './onion.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport restrict from './restrict.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    byDomain: 'der Domain',\n    enableForThisDomain: 'Für diese Domain aktivieren',\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `${onion} Location`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'Gib eine Onion Adresse an, um den Onion-Location Header für deine Seite zu setzen.',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'Dies teilt deinen Besuchern mit, dass eine Onion-Version deiner Webseite für Tor-Browser verfügbar ist.',\n    learnMoreAboutOnionServices: 'Lerne mehr über Onion-Dienste',\n    onionLocationExpectedToEndWithOnion: 'Onion Adressen enden normalerweise mit `.onion`.',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} ist deaktiviert.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} kann nicht aktiviert werden, während ein Reverse Proxy aktiviert ist.`,\n    phpCannotBeEnabledWithPython: `${common.php} kann nicht aktiviert werden, während ${common.python} aktiviert ist.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `${common.wordPress} Regeln`,\n    enableWordPressRules: `${common.enable} ${common.wordPress}-spezifische Regeln`,\n    drupalRules: `${common.drupal} Regeln`,\n    enableDrupalRules: `${common.enable} ${common.drupal}-spezifische Regeln`,\n    magentoRules: `${common.magento} Regeln`,\n    enableMagentoRules: `${common.enable} ${common.magento}-spezifische Regeln`,\n    joomlaRules: `${common.joomla} Regeln`,\n    enableJoomlaRules: `${common.enable} ${common.joomla}-spezifische Regeln`,\n    phpServer: `${common.php} Server`,\n    phpBackupServer: `${common.php} Backup Server`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM Socket',\n    php70Socket: '7.0 Socket',\n    php71Socket: '7.1 Socket',\n    php72Socket: '7.2 Socket',\n    php73Socket: '7.3 Socket',\n    php74Socket: '7.4 Socket',\n    php80Socket: '8.0 Socket',\n    php81Socket: '8.1 Socket',\n    php82Socket: '8.2 Socket',\n    phpSocket: 'PHP Socket',\n    custom: 'Benutzerdefiniert',\n    disabled: 'Deaktiviert',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'Voreinstellungen',\n    itLooksLikeYouCustomisedTheConfig:\n        'Es sieht so aus, als hättest du die Konfiguration für diese Webseite angepasst. Eine neue Voreinstellung zu laden könnte manche deiner Anpassungen zurücksetzen oder ändern.',\n    frontend: 'Frontend',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Single-Page-Webanwendung',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} ist deaktiviert.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} kann nicht aktiviert werden, während ein Reverse Proxy aktiviert ist.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} kann nicht aktiviert werden, während ${common.php} aktiviert ist.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `${common.django} Regeln`,\n    enableDjangoRules: `${common.enable} ${common.django}-spezifische Regeln`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'Für diese Domain deaktivieren',\n    responseCode: 'HTTP Antwort-Code',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} ist deaktiviert.`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.php} aktiviert ist.`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} kann nicht aktiviert werden, während ${common.python} aktiviert ist.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxy}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Fallback Routing',\n    fallbackRoutingPhpPath: `Fallback Routing ${common.php} Pfad`,\n    legacyPhpRouting: `Legacy ${common.php} Routing`,\n    enableLegacyRouting: `${common.enable} Legacy Routing`,\n    routing: 'Routing',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'Domain',\n    documentRoot: 'Document Root',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'Eine oder mehrere Domains lauten ebenfalls',\n    thisWillCauseIssuesWithConfigGeneration:\n        'Dies sorgt für Probleme beim Generieren der Konfigurationsdateien.',\n    wwwSubdomain: 'WWW Subdomain',\n    cdnSubdomain: 'CDN Subdomain',\n    redirectSubdomains: 'Subdomains weiterleiten',\n    server: 'Server',\n    listen: 'Hören auf',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/footer.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Zurück nach oben',\n    thisToolIs: 'Dieses Tool ist',\n    openSourceOnGitHub: 'Open-Source auf GitHub',\n    underThe: 'unter der',\n    mit: 'MIT',\n    license: 'Lizenz!',\n    weWelcomeFeedbackAndContributions: 'Feedback und Beiträge sind willkommen.',\n    originallyCreatedBy: 'Ursprünglich erstellt von',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'gepflegt von',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `${docker} Optimierungen anwenden`,\n    applyDockerTweaksForNginx: `Füge Optimierungen für den Betrieb von ${common.nginx} mit ${docker} der Konfigurationsdatei hinzu`,\n    applyDockerTweaksExplainer: `Setzt den ${common.nginx} Benutzer auf <code class=\"slim\">nginx</code> und die PID auf <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `${dockerfile} hinzufügen, um ${common.nginx} mit ${docker} zu betreiben`,\n    includeDockerCompose: `docker-compose.yaml hinzufügen, um ${common.nginx} mit docker-compose zu betreiben`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl} Profil`,\n    httpsMustBeEnabledOnOneSite: `${common.https} muss auf mindestes einer Webseite aktiviert sein, um globale ${common.https} Einstellungen zu konfigurieren.`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `${common.enable} Reuseport um einen Socket pro Worker zu generieren`,\n    ocspDnsResolvers: 'OCSP DNS Resolver',\n    cloudflareResolver: 'Cloudflare Resolver',\n    googlePublicDns: 'Google Public DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} Web-Root`,\n    letsEncryptCertRoot: `${common.letsEncrypt} Zertifikats-Verzeichnis`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `nur ${ipv4}`,\n    ipv6Only: `nur ${ipv6}`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} \"Seite nicht gefunden\" Error Logging in`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: 'Füge Cloudflare Anfrage-Header dem Standard Log-Format hinzu',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `${common.nginx} Konfigurationsverzeichnis`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Gzip Komprimierung',\n    enableGzipCompression: `${common.enable} Gzip Komprimierung`,\n    brotliCompression: 'Brotli Komprimierung',\n    enableBrotliCompression: `${common.enable} Brotli Komprimierung`,\n    brotliIsANonStandardModule: 'Brotli ist kein Standard NGINX Modul. Besuche das ',\n    brotliGoogleNgxBrotliProject: 'Google ngx_brotli Projekt',\n    brotliForBuildingNginxWithBrotli: ' für Informationen, wie man NGINX mit Brotli verwendet!',\n    expirationForAssets: 'Ablauf von Assets',\n    expirationForMedia: 'Ablauf von Medien',\n    expirationForSvgs: 'Ablauf von SVGs',\n    expirationForFonts: 'Ablauf von Schriften',\n    performance: 'Performance',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} Server`,\n    pythonMustBeEnabledOnOneSite: `${common.python} muss auf mindestes einer Webseite aktiviert sein, um globale ${common.python} Einstellungen zu konfigurieren.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Legacy X-Forwarded-* Header';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} muss auf mindestes einer Webseite aktiviert sein, um globale ${common.reverseProxy} Einstellungen zu konfigurieren.`,\n    seconds: 'Sekunden',\n    passOn: `${legacyXForwarded} weiterleiten`,\n    remove: `${legacyXForwarded} aktiv entfernen`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Bei der Verwendung von ${common.wordPress} ist es oft nötig, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> in die Content Security Policy aufzunehmen, damit der Admin-Bereich korrekt funktioniert.`,\n    security: 'Security',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Modularisierte Struktur',\n    enableModularizedConfigFiles: `${common.enable} modularisierte Konfigurationsdateien`,\n    symlinkVhost: 'Symlink VHost',\n    enableSymLinksFrom: `${common.enable} Symlinks von`,\n    to: 'zu',\n    shareConfiguration: 'Konfiguration teilen',\n    resetConfiguration: 'Konfiguration zurücksetzen',\n    resetGlobalConfig: 'Globale Konfiguration zurücksetzen',\n    resetAllDomains: 'Alle Domains zurücksetzen',\n    removeAllDomains: 'Alle Domains entfernen',\n    resetAllDomainsConfig: 'Alle Domain-Konfigurationen entfernen',\n    resetDomainConfig: 'Konfiguration zurücksetzen',\n    removeDomain: 'Domain entfernen',\n    yesImSure: 'Ja, ich bin sicher',\n    noCancel: 'Nein, abbrechen',\n    tools: 'Tools',\n    resetGlobalConfigBody:\n        'Bist du dir sicher, dass du alle Optionen im Bereich \"Globale Konfiguration\" zurücksetzen möchtest?',\n    resetAllDomainsConfigBody:\n        'Bist du dir sicher, dass du die Konfiguration ALLER Domains zurücksetzen möchtest?',\n    removeAllDomainsBody: 'Bist du dir sicher, dass du ALLE Domains entfernen möchtest?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'Bist du dir sicher, dass du die Konfiguration von',\n    domain: 'zurücksetzen möchtest?',\n    areYouSureYouWantToRemoveThe: 'Bist du dir sicher, dass du die Domain ',\n    domainConfiguration: 'entfernen möchtest?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/setup.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Konfiguration herunterladen',\n    copyBase64: 'Als Base64 kopieren',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Kommentiere ${common.ssl}-relevante Direktiven in deiner Konfiguration aus:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `Führe einen reload deines ${common.nginx} Server aus:`,\n    obtainSslCertificatesFromLetsEncrypt: `Erhalte ${common.ssl} Zertifikate von ${common.letsEncrypt} mittels ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Kommentiere ${common.ssl}-relevante Direktiven in deiner Konfiguration ein:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Konfiguriere ${certbot} um ${common.nginx} neu zu laden, wenn die Zertifikate erfolgreich erneuert wurden:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} muss für deine ${common.nginx} Konfiguration nicht eingerichtet werden.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: 'Generierte Konfigurationsdateien <b>herunterladen</b>:',\n    andUploadItToYourServers: 'Auf deinen Server <b>hochladen</b> und ins Verzeichnis ',\n    directory: 'verschieben.',\n    or: 'Oder ',\n    copyBase64StringOfCompressedConfig:\n        'kopiere einen Base64 String der komprimierten Konfiguration',\n    pasteItInYourServersCommandLineAndExecute:\n        ', füge ihn auf der Kommandozeile deines Servers ein und führe ihn aus.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Wechsle in das ${common.nginx} <b>Konfigurationsverzeichnis</b> deines Servers:`,\n    createABackupOfYourCurrentNginxConfiguration: `Erstelle ein <b>Backup</b> deiner aktuellen ${common.nginx} Konfiguration:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Entpacke</b> das komprimierte Konfigurationsverzeichnis mittels tar:',\n    download: 'Download',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: 'Jetzt gehts los!',\n    reloadNginxToLoadInYourNewConfiguration: `Lade ${common.nginx} neu, um deine neue Konfiguration zu verwenden:`,\n    goLive: 'Los gehts!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/de/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Erzeuge <b>Diffie-Hellman Schlüssel</b> indem du diesen Befehl auf deinem Server ausführst:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Erstelle ein <b>ACME-Challenge</b> Verzeichnis (für <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `Es sind keine weiteren Schritte nötig, um ${common.ssl} für deine ${common.nginx} Konfiguration einzurichten.`,\n    sslInit: `${common.ssl} initialisieren`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/common.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Back',\n    next: 'Next',\n    enable: 'enable',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Logging',\n    reverseProxy: 'Reverse proxy',\n    reverseProxyLower: 'reverse proxy',\n    restrict: 'Restrict',\n    path: 'Path',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'English',\n    es: 'Spanish',\n    zhCN: 'Chinese (simplified)',\n    zhTW: 'Chinese (traditional)',\n    ptBR: 'Portuguese (brazilian)',\n    fr: 'French',\n    ru: 'Russian',\n    pl: 'Polish',\n    de: 'German',\n    ja: 'Japanese',\n    fa: 'Persian',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `The easiest way to configure a performant, secure, and stable ${common.nginx} server.`,\n    singleColumnMode: 'Single column mode',\n    splitColumnMode: 'Side-by-side mode',\n    perWebsiteConfig: 'Per-website config',\n    addSite: 'Add site',\n    globalConfig: 'Global config',\n    setup: 'Setup',\n    configFiles: 'Config files',\n    copied: 'Copied',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 Want to request new features, contribute changes, or translate the tool into a new language?',\n    getInvolvedOnGitHub: 'Get involved on GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 Looking for a place to deploy your new configuration?',\n    tryOutDigitalOceansDroplet: \"Try out DigitalOcean's LEMP Droplet with NGINX\",\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} encrypted ${common.ssl} connections`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} ${common.http}/2 connections`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} ${common.http}/3 connections`,\n    forceHttps: `Force ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} Strict Transport Security, requiring HTTPS connections`,\n    enableIncludeSubDomains: `${common.enable} includeSubDomains directive, requiring HTTPS connections for ALL subdomains`,\n    enablePreload: `${common.enable} preload directive, telling browsers to always make HTTPS connections only`,\n    certificationType: 'Certification type',\n    customCertificate: 'Custom certificate',\n    letsEncryptEmail: `${common.letsEncrypt} email`,\n    http3IsANonStandardModule: \"HTTP/3 isn't a standard NGINX module, check the \",\n    http3NginxQuicReadme: 'NGINX QUIC readme',\n    http3OrThe: ' or the ',\n    http3CloudflareQuicheProject: 'Cloudflare quiche project',\n    http3ForBuildingNginxWithHttp3: ' for how to build NGINX with HTTP/3!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'by domain',\n    enableForThisDomain: `${common.enable} for this domain`,\n    arguments: 'arguments',\n    level: 'logging level',\n    forRedirects: 'for redirects',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `${onion} location`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'Provide an onion location address to set the Onion-Location header for your site.',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'This lets visitors know that an onion services version of your site is available for Tor browsers.',\n    learnMoreAboutOnionServices: 'Learn more about Onion services',\n    onionLocationExpectedToEndWithOnion: 'Onion location addresses normally end with `.onion`.',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} is disabled.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} cannot be enabled whilst the reverse proxy is enabled.`,\n    phpCannotBeEnabledWithPython: `${common.php} cannot be enabled whilst ${common.python} is enabled.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `${common.wordPress} rules`,\n    enableWordPressRules: `${common.enable} ${common.wordPress}-specific rules`,\n    drupalRules: `${common.drupal} rules`,\n    enableDrupalRules: `${common.enable} ${common.drupal}-specific rules`,\n    magentoRules: `${common.magento} rules`,\n    enableMagentoRules: `${common.enable} ${common.magento}-specific rules`,\n    joomlaRules: `${common.joomla} rules`,\n    enableJoomlaRules: `${common.enable} ${common.joomla}-specific rules`,\n    phpServer: `${common.php} server`,\n    phpBackupServer: `${common.php} backup server`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM socket',\n    php70Socket: '7.0 socket',\n    php71Socket: '7.1 socket',\n    php72Socket: '7.2 socket',\n    php73Socket: '7.3 socket',\n    php74Socket: '7.4 socket',\n    php80Socket: '8.0 socket',\n    php81Socket: '8.1 socket',\n    php82Socket: '8.2 socket',\n    phpSocket: 'PHP socket',\n    custom: 'Custom',\n    disabled: 'Disabled',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'Presets',\n    itLooksLikeYouCustomisedTheConfig:\n        \"It looks like you've customised the configuration for this domain. Choosing a new preset may reset or change some of the settings that you've customised.\",\n    frontend: 'Frontend',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Single-page application',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} is disabled.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} cannot be enabled whilst the reverse proxy is enabled.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} cannot be enabled whilst ${common.php} is enabled.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `${common.django} rules`,\n    enableDjangoRules: `${common.enable} ${common.django}-specific rules`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'disable for this domain',\n    responseCode: 'Response code',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} is disabled.`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} cannot be enabled whilst ${common.php} is enabled.`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} cannot be enabled whilst ${common.python} is enabled.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Fallback routing',\n    fallbackRoutingPhpPath: `Fallback routing ${common.php} path`,\n    legacyPhpRouting: `Legacy ${common.php} routing`,\n    enableLegacyRouting: `${common.enable} legacy routing`,\n    routing: 'Routing',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'Domain',\n    documentRoot: 'Document root',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'One or more other domains are also named',\n    thisWillCauseIssuesWithConfigGeneration: 'This will cause issues with config generation.',\n    wwwSubdomain: 'www subdomain',\n    cdnSubdomain: 'CDN subdomain',\n    redirectSubdomains: 'Redirect subdomains',\n    server: 'Server',\n    listen: 'listen',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/footer.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Back To Top',\n    thisToolIs: 'This tool is',\n    openSourceOnGitHub: 'open-source on GitHub',\n    underThe: 'under the',\n    mit: 'MIT',\n    license: 'license!',\n    weWelcomeFeedbackAndContributions: 'We welcome feedback and contributions.',\n    originallyCreatedBy: 'Originally created by',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'maintained by',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `Apply ${docker} tweaks`,\n    applyDockerTweaksForNginx: `Apply configuration tweaks for running ${common.nginx} with ${docker}`,\n    applyDockerTweaksExplainer: `Updates the ${common.nginx} user to be <code class=\"slim\">nginx</code> and the pid to <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `Include ${dockerfile} to run ${common.nginx} with ${docker}`,\n    includeDockerCompose: `Include docker-compose to run ${common.nginx} with docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl} Profile`,\n    httpsMustBeEnabledOnOneSite: `${common.https} must be enabled on at least one site to configure global ${common.https} settings.`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`,\n    ocspDnsResolvers: 'OCSP DNS Resolvers',\n    cloudflareResolver: 'Cloudflare Resolver',\n    googlePublicDns: 'Google Public DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} webroot`,\n    letsEncryptCertRoot: `${common.letsEncrypt} certificate directory`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `${ipv4} only`,\n    ipv6Only: `${ipv6} only`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} file not found error logging in`,\n    logformat: 'log_format',\n    level: 'logging level',\n    enableCloudflare: 'add Cloudflare request headers to the default log format',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `${common.nginx} config directory`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching',\n    enableDisableHtmlCaching: 'disable HTML caching',\n    gzipCompression: 'Gzip compression',\n    enableGzipCompression: `${common.enable} gzip compression`,\n    brotliCompression: 'Brotli compression',\n    enableBrotliCompression: `${common.enable} brotli compression`,\n    brotliIsANonStandardModule: \"Brotli isn't a standard NGINX module, check the \",\n    brotliGoogleNgxBrotliProject: 'Google ngx_brotli project',\n    brotliForBuildingNginxWithBrotli: ' for how to build NGINX with Brotli!',\n    expirationForAssets: 'Expiration for assets',\n    expirationForMedia: 'Expiration for media',\n    expirationForSvgs: 'Expiration for SVGs',\n    expirationForFonts: 'Expiration for fonts',\n    performance: 'Performance',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} server`,\n    pythonMustBeEnabledOnOneSite: `${common.python} must be enabled on at least one site to configure global ${common.python} settings.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Legacy X-Forwarded-* headers';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} must be enabled on at least one site to configure global ${common.reverseProxyLower} settings.`,\n    seconds: 'seconds',\n    passOn: `${legacyXForwarded} passed on`,\n    remove: `${legacyXForwarded} actively removed`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `When using ${common.wordPress}, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> is often required in the Content Security Policy to allow the admin panel to function correctly.`,\n    security: 'Security',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Modularized structure',\n    enableModularizedConfigFiles: `${common.enable} modularized config files`,\n    symlinkVhost: 'Symlink vhost',\n    enableSymLinksFrom: `${common.enable} symlinks from`,\n    to: 'to',\n    shareConfiguration: 'Share configuration',\n    resetConfiguration: 'Reset configuration',\n    resetGlobalConfig: 'Reset global config',\n    resetAllDomains: 'Reset all domains',\n    removeAllDomains: 'Remove all domains',\n    resetAllDomainsConfig: 'Reset all domain configs',\n    resetDomainConfig: 'Reset domain config',\n    removeDomain: 'Remove domain',\n    yesImSure: \"Yes, I'm sure\",\n    noCancel: 'No, cancel',\n    tools: 'Tools',\n    resetGlobalConfigBody:\n        'Are you sure you want to reset all configuration options in the global config section?',\n    resetAllDomainsConfigBody: 'Are you sure you want to reset the configuration of ALL domains?',\n    removeAllDomainsBody: 'Are you sure you want to remove ALL domain configurations?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'Are you sure you want to reset all configuration options for the',\n    domain: 'domain?',\n    areYouSureYouWantToRemoveThe: 'Are you sure you want to remove the ',\n    domainConfiguration: 'domain configuration?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/setup.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Download Config',\n    copyBase64: 'Copy Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Comment out ${common.ssl} related directives in the configuration:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`,\n    reloadYourNginxServer: `Reload your ${common.nginx} server:`,\n    obtainSslCertificatesFromLetsEncrypt: `Obtain ${common.ssl} certificates from ${common.letsEncrypt} using ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Uncomment ${common.ssl} related directives in the configuration:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Configure ${certbot} to reload ${common.nginx} when it successfully renews certificates:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} does not need to be set up for your ${common.nginx} configuration.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>Download</b> the generated config:',\n    andUploadItToYourServers: \"and <b>upload</b> it to your server's\",\n    directory: 'directory.',\n    or: 'or, ',\n    copyBase64StringOfCompressedConfig: 'Copy a base64 string of the compressed config',\n    pasteItInYourServersCommandLineAndExecute:\n        \", paste it in your server's command line and execute it.\",\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Navigate to your ${common.nginx} <b>configuration directory</b> on your server:`,\n    createABackupOfYourCurrentNginxConfiguration: `Create a <b>backup</b> of your current ${common.nginx} configuration:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Extract</b> the new compressed configuration archive using tar:',\n    download: 'Download',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: \"Let's go live!\",\n    reloadNginxToLoadInYourNewConfiguration: `Reload ${common.nginx} to load in your new configuration:`,\n    goLive: 'Go live!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/en/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Generate <b>Diffie-Hellman keys</b> by running this command on your server:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Create a common <b>ACME-challenge</b> directory (for <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `No additional steps are needed to set up ${common.ssl} for your ${common.nginx} configuration.`,\n    sslInit: `${common.ssl} init`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/common.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Anterior',\n    next: 'Siguiente',\n    enable: 'activar',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Registro',\n    reverseProxy: 'Proxy inverso',\n    reverseProxyLower: 'proxy inverso',\n    restrict: 'Restringir',\n    path: 'Ruta',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'Ingles',\n    es: 'Español',\n    zhCN: 'Chino (simplificado)',\n    zhTW: 'Chino (tradicional)',\n    ptBR: 'Portugués (brasileño)',\n    fr: 'Francés',\n    ru: 'Ruso',\n    pl: 'Polaco',\n    de: 'Alemán',\n    ja: 'Japonés',\n    fa: 'Persa',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `La forma más fácil de configurar un rendidor, seguro y estable servidor de ${common.nginx}.`,\n    singleColumnMode: 'Modo de columna única',\n    splitColumnMode: 'Modo de columna dividida',\n    perWebsiteConfig: 'Configuración por sitio web',\n    addSite: 'Agregar sitio',\n    globalConfig: 'Configuración global',\n    setup: 'Configuración',\n    configFiles: 'Archivos de configuración',\n    copied: 'Copiado',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 ¿Quiere solicitar nuevas funciones, contribuir con cambios o traducir la herramienta a un nuevo idioma?',\n    getInvolvedOnGitHub: 'Involúcrate en GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 ¿Busca un lugar para desplegar su nueva configuración?',\n    tryOutDigitalOceansDroplet: 'Pruebe LEMP Droplet de DigitalOcean con NGINX',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} conexiones ${common.ssl} encriptadas`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} conexiones ${common.http}/2`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} conexiones ${common.http}/3`,\n    forceHttps: `Forzar ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `Para ${common.enable} Strict Transport Security, requiriendo conexiones HTTPS`,\n    enableIncludeSubDomains: `Para ${common.enable} la directiva includeSubDomains, requiriendo conexiones HTTPS para TODOS los subdominios`,\n    enablePreload: `Para ${common.enable} la directiva directive, decirle a los navegadores que siempre hagan solo conexiones HTTPS`,\n    certificationType: 'Tipo de certificado',\n    customCertificate: 'Certificado personalizado',\n    letsEncryptEmail: `Correo para ${common.letsEncrypt}`,\n    http3IsANonStandardModule: 'HTTP/3 no es un modulo estandar de NGINX , verificar el ',\n    http3NginxQuicReadme: 'Readme de NGINX QUIC',\n    http3OrThe: ' o el ',\n    http3CloudflareQuicheProject: 'Projecto quiche de Cloudflare',\n    http3ForBuildingNginxWithHttp3: ' para saber como construir un NGINX con HTTP/3!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'por dominio',\n    enableForThisDomain: `${common.enable} para este dominio`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `Ubicación ${onion}`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'Proporcione una dirección de ubicación Onion para configurar el encabezado de Onion-Location en su sitio.',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'Esto les permite a los visitantes saber que una versión de servicios Onion de su sitio está disponible para los navegadores Tor.',\n    learnMoreAboutOnionServices: 'Más información sobre los servicios Onion',\n    onionLocationExpectedToEndWithOnion:\n        'Las direcciones de ubicación Onion normalmente terminan con `.onion`.',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} esta desactivado.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} no se puede habilitar mientras el proxy inverso está habilitado.`,\n    phpCannotBeEnabledWithPython: `${common.php} no se puede habilitar mientras ${common.python} está habilitado.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `Reglas de ${common.wordPress}`,\n    enableWordPressRules: `${common.enable} reglas especificas de ${common.wordPress}`,\n    drupalRules: `Reglas de ${common.drupal}`,\n    enableDrupalRules: `${common.enable} reglas especificas de ${common.drupal}`,\n    magentoRules: `Reglas de ${common.magento}`,\n    enableMagentoRules: `${common.enable} reglas especificas de ${common.magento}`,\n    joomlaRules: `Reglas de ${common.joomla}`,\n    enableJoomlaRules: `${common.enable} reglas especificas de ${common.joomla}`,\n    phpServer: `Servidor ${common.php}`,\n    phpBackupServer: `Servidor ${common.php} de respaldo`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM socket',\n    php70Socket: '7.0 socket',\n    php71Socket: '7.1 socket',\n    php72Socket: '7.2 socket',\n    php73Socket: '7.3 socket',\n    php74Socket: '7.4 socket',\n    php80Socket: '8.0 socket',\n    php81Socket: '8.1 socket',\n    php82Socket: '8.2 socket',\n    phpSocket: 'PHP socket',\n    custom: 'Personalizado',\n    disabled: 'Desactivado',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// Single-page application don't have a good translation in Spanish\n\nexport default {\n    presets: 'Preajustes',\n    itLooksLikeYouCustomisedTheConfig:\n        'Parece que ha personalizado la configuración para este dominio. La elección de un nuevo ajuste preestablecido puede restablecer o cambiar algunas de las configuraciones que ha personalizado.',\n    frontend: 'Frontend',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Single-page application',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} esta desactivado.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} no se puede habilitar mientras el proxy inverso está habilitado.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} no se puede habilitar mientras ${common.php} está habilitado.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `Reglas de ${common.django}`,\n    enableDjangoRules: `${common.enable} reglas especificas de ${common.django}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'deshabilitar para este dominio',\n    responseCode: 'Codigo de respuesta',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} esta desactivado.`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} no se puede habilitar mientras ${common.php} está habilitado.`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} no se puede habilitar mientras ${common.python} está habilitado.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Enrutamiento alternativo',\n    fallbackRoutingPhpPath: `Ruta ${common.php} para el enrutamiento alternativo`,\n    legacyPhpRouting: `Enrutamiento ${common.php} antiguo`,\n    enableLegacyRouting: `${common.enable} enrutamiento antiguo`,\n    routing: 'Enrutamiento',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// The traslation of \"listen\" is \"escucha\" but in informatic that terms is best in English\n\nexport default {\n    domain: 'Dominio',\n    documentRoot: 'Raiz del documento',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'Uno o más dominios tienen también ese mismo nombre',\n    thisWillCauseIssuesWithConfigGeneration:\n        'Esto va a causar problemas en la generación de la configuracion.',\n    wwwSubdomain: 'subdominio www',\n    cdnSubdomain: 'subdominio CDN',\n    redirectSubdomains: 'redirección de subdominio',\n    server: 'Servidor',\n    listen: 'listen',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/footer.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Ir al inicio',\n    thisToolIs: 'Esta herramienta es',\n    openSourceOnGitHub: 'open-source en GitHub',\n    underThe: 'bajo la',\n    mit: 'licencia MIT',\n    license: '!',\n    weWelcomeFeedbackAndContributions: 'Agradecemos sus comentarios y contribuciones.',\n    originallyCreatedBy: 'Originalmente creado por',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'mantenido por',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `Aplicar ajustes de ${docker}`,\n    applyDockerTweaksForNginx: `Aplicar ajuste de configuracion para ejecutar ${common.nginx} con ${docker}`,\n    applyDockerTweaksExplainer: `Actualizar el usuario de ${common.nginx} a <code class=\"slim\">nginx</code> y el pid a <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `Incluir ${dockerfile} para ejecutar ${common.nginx} con ${docker}`,\n    includeDockerCompose: `Incluir docker-compose para ejecutar ${common.nginx} con docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\n// 'Resolvers', 'webroot', 'listening socket' and 'worker' don't have a good translation in Spanish\n\nexport default {\n    sslProfile: `Perfil ${common.ssl}`,\n    httpsMustBeEnabledOnOneSite: `${common.https} debe estar habilitado en al menos un sitio para modificar globalmente la configuracion ${common.https}.`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `${common.enable} reuseport para generar un \"listening socket\" por \"worker\"`,\n    ocspDnsResolvers: 'OCSP DNS Resolvers',\n    cloudflareResolver: 'Cloudflare Resolver',\n    googlePublicDns: 'Google Public DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} webroot`,\n    letsEncryptCertRoot: `directorio del certificado ${common.letsEncrypt}`,\n    mozillaModern: `${mozilla} Moderno`,\n    mozillaIntermediate: `${mozilla} Intermedio`,\n    mozillaOld: `${mozilla} Antiguo`,\n    ipv4Only: `solo ${ipv4}`,\n    ipv6Only: `solo ${ipv6}`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} el registro de error de archivo no encontrado`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare:\n        'agregar cabecera de petición de Cloudflare en el formato por defecto del registro',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `Directorio de configuración de ${common.nginx}`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Compresión Gzip',\n    enableGzipCompression: `${common.enable} compresión gzip`,\n    brotliCompression: 'Compresión Brotli',\n    enableBrotliCompression: `${common.enable} compresión brotli`,\n    brotliIsANonStandardModule: 'Brotli no es un modulo estandar de NGINX , verifica el ',\n    brotliGoogleNgxBrotliProject: 'Proyecto de Google ngx_brotli',\n    brotliForBuildingNginxWithBrotli: ' para saber como construir un NGINX con Brotli!',\n    expirationForAssets: 'Expiración para assets',\n    expirationForMedia: 'Expiración para media',\n    expirationForSvgs: 'Expiración para SVGs',\n    expirationForFonts: 'Expiración para fuentes',\n    performance: 'Rendimiento',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `Servidor ${common.python}`,\n    pythonMustBeEnabledOnOneSite: `${common.python} debe estar habilitado en al menos un sitio para modificar globalmente la configuración ${common.python}.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Cabeceras X-Forwarded-* Legacy';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} debe estar habilitado en al menos un sitio para modificar globalmente la configuración ${common.reverseProxyLower}.`,\n    seconds: 'segundos',\n    passOn: `${legacyXForwarded} transmitido`,\n    remove: `${legacyXForwarded} removido`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Cuando usan ${common.wordPress}, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> es usualmente requerido en el Content Security Policy para permitir que el panel de administrador funcione correctamente.`,\n    security: 'Seguridad',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Estructura modularizada',\n    enableModularizedConfigFiles: `${common.enable} archivos de configuración modularizado`,\n    symlinkVhost: 'Enlaces simbólicos de vhost',\n    enableSymLinksFrom: `${common.enable} enlaces simbólicos de`,\n    to: 'para',\n    shareConfiguration: 'Compartir configuración',\n    resetConfiguration: 'Reiniciar configuración',\n    resetGlobalConfig: 'Reiniciar configuración global',\n    resetAllDomains: 'Reiniciar todos los dominios',\n    removeAllDomains: 'Quitar todos los dominios',\n    resetAllDomainsConfig: 'Reiniciar todas las configuraciones de los dominions',\n    resetDomainConfig: 'Reiniciar la configuración del dominio',\n    removeDomain: 'Quitar dominio',\n    yesImSure: 'Si, Estoy seguro',\n    noCancel: 'No, cancelar',\n    tools: 'Herramientas',\n    resetGlobalConfigBody:\n        '¿Estás seguro de que desea reiniciar todas las opciones de configuración en la sección de configuración global?',\n    resetAllDomainsConfigBody:\n        '¿Estás seguro de que desea reiniciar la configuración de TODOS los dominios?',\n    removeAllDomainsBody: '¿Estás seguro de que desea quitar TODAS las configuraciones de dominio?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        '¿Estás seguro de que desea reiniciar todas las opciones de configuración del',\n    domain: 'dominio?',\n    areYouSureYouWantToRemoveThe: '¿Estás seguro de que quieres quitar la ',\n    domainConfiguration: 'configuración de dominio?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/setup.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Descargar configuración',\n    copyBase64: 'Copiar Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Comente las directivas relacionadas con ${common.ssl} en la configuración:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `Recargar el ${common.nginx}:`,\n    obtainSslCertificatesFromLetsEncrypt: `Obtenga los certificados ${common.ssl} de ${common.letsEncrypt} usando ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Comente las directivas relacionadas con ${common.ssl} en la configuración:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Configure ${certbot} para recargar ${common.nginx} cuando renueve los certificados exitosamente:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} no es necesario configurarlo para su configuracion de ${common.nginx}.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\n// Here is a HACK, because the real traslation is: \"y subirla en la carpeta '/etc/nginx' de tu servidor. \"\n// but the HTML order of the templates are wrong: \"y subirla en el servidor '/etc/nginx' carpeta.\"\n\nexport default {\n    downloadTheGeneratedConfig: '<b>Descargar</b> la configuracion generada:',\n    andUploadItToYourServers: 'y <b>subirla</b> en',\n    directory: '.',\n    or: 'o, ',\n    copyBase64StringOfCompressedConfig: 'Copiar el texto comprimido en base64 de la configuracion',\n    pasteItInYourServersCommandLineAndExecute:\n        ', péguelo en la línea de comando de su servidor y ejecútelo.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Navega en <b>la carpeta de configuracion</b> de ${common.nginx} de tu servidor:`,\n    createABackupOfYourCurrentNginxConfiguration: `Crea un <b>respaldo</b> de tu configuracion actual de ${common.nginx}:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Extraer</b> el nuevo archivo de configuracion comprimido usando tar:',\n    download: 'Descargar',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: '¡Vamos a desplegar!',\n    reloadNginxToLoadInYourNewConfiguration: `Reiniciar ${common.nginx} para cargar tu nueva configuración:`,\n    goLive: '¡A desplegar!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/es/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Genera <b> llaves Diffie-Hellman</b> ejecutando este comando en su servidor:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Crear una simple carpeta <b>ACME-challenge</b> (para <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `No se necesitan pasos adicionales para configurar ${common.ssl} en tu configuracion de ${common.nginx}.`,\n    sslInit: `Preparar el ${common.ssl}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/common.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'بازگشت',\n    next: 'بعدی',\n    enable: 'فعال کردن',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'لاگ‌گیری',\n    reverseProxy: 'پروکسی معکوس',\n    reverseProxyLower: 'پروکسی معکوس',\n    restrict: 'محدود کردن',\n    path: 'مسیر',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'انگلیسی',\n    es: 'اسپانیایی',\n    zhCN: 'چینی (ساده شده)',\n    zhTW: 'چینی (سنتی)',\n    ptBR: 'پرتغالی (برزیلی)',\n    fr: 'فرانسوی',\n    ru: 'روسی',\n    pl: 'لهستانی',\n    de: 'آلمانی',\n    ja: 'ژاپنی',\n    fa: 'فارسی',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}پیکربندی`,\n    description: `ساده‌ترین راه برای پیکربندی یک سرور ${common.nginx} کارآمد، امن و پایدار.`,\n    singleColumnMode: 'حالت ستون تکی',\n    splitColumnMode: 'حالت کناره به کناره',\n    perWebsiteConfig: 'پیکربندی برای هر وب‌سایت',\n    addSite: 'افزودن وب‌سایت',\n    globalConfig: 'پیکربندی جهانی',\n    setup: 'راه‌اندازی',\n    configFiles: 'پرونده‌های پیکربندی',\n    copied: 'کپی شد',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 می‌خواهید ویژگی‌های جدید را درخواست دهید، تغییراتی اعمال کنید، یا ابزار را به یک زبان جدید ترجمه کنید؟',\n    getInvolvedOnGitHub: 'شرکت کنید در GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 به دنبال مکانی برای استقرار پیکربندی جدیدتان هستید؟',\n    tryOutDigitalOceansDroplet: 'امتحان کنید Droplet LEMP DigitalOcean با NGINX',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} ${common.ssl} اتصال‌های رمزگذاری شده`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} اتصال‌های ${common.http}/2`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} اتصال‌های ${common.http}/3`,\n    forceHttps: `اجبار ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} امنیت حمل و نقل دقیق، الزامی کردن اتصال‌های HTTPS`,\n    enableIncludeSubDomains: `${common.enable} دستور includeSubDomains، الزامی کردن اتصال‌های HTTPS برای همه زیردامنه‌ها`,\n    enablePreload: `${common.enable} دستور preload، به مرورگرها اطلاع دادن برای همیشه برقراری اتصال‌های HTTPS فقط`,\n    certificationType: 'نوع گواهی',\n    customCertificate: 'گواهی سفارشی',\n    letsEncryptEmail: `${common.letsEncrypt} ایمیل`,\n    http3IsANonStandardModule: 'HTTP/3 ماژول استاندارد NGINX نیست، بررسی کنید ',\n    http3NginxQuicReadme: 'مستندات NGINX QUIC',\n    http3OrThe: ' یا ',\n    http3CloudflareQuicheProject: 'پروژه quiche Cloudflare',\n    http3ForBuildingNginxWithHttp3: ' برای چگونگی ساخت NGINX با HTTP/3!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'به وسیلهٔ دامنه',\n    enableForThisDomain: `${common.enable} برای این دامنه`,\n    arguments: 'آرگومان‌ها',\n    level: 'سطح ورود',\n    forRedirects: 'برای هدایت‌ها',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion: 'پیاز',\n    onionLocation: `${onion} مکان`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'آدرس مکان پیاز را ارائه دهید تا هدر مکان پیاز را برای سایت خود تنظیم کنید.',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'این به بازدیدکنندگان اطلاع می‌دهد که نسخه سرویس‌های پیاز از سایت شما برای مرورگرهای Tor در دسترس است.',\n    learnMoreAboutOnionServices: 'بیشتر در مورد سرویس‌های پیاز بیاموزید',\n    onionLocationExpectedToEndWithOnion: 'آدرس‌های مکان پیاز به طور معمول با `.onion` ختم می‌شوند.',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} غیرفعال است.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} نمی‌تواند هنگامی که پروکسی معکوس فعال است، فعال شود.`,\n    phpCannotBeEnabledWithPython: `${common.php} نمی‌تواند هنگامی که ${common.python} فعال است، فعال شود.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `قوانین ${common.wordPress}`,\n    enableWordPressRules: `${common.enable} قوانین خاص ${common.wordPress}`,\n    drupalRules: `قوانین ${common.drupal}`,\n    enableDrupalRules: `${common.enable} قوانین خاص ${common.drupal}`,\n    magentoRules: `قوانین ${common.magento}`,\n    enableMagentoRules: `${common.enable} قوانین خاص ${common.magento}`,\n    joomlaRules: `قوانین ${common.joomla}`,\n    enableJoomlaRules: `${common.enable} قوانین خاص ${common.joomla}`,\n    phpServer: `سرور ${common.php}`,\n    phpBackupServer: `سرور پشتیبان ${common.php}`,\n    tcp: 'TCP',\n    hhvmSocket: 'سوکت HHVM',\n    php70Socket: 'سوکت 7.0',\n    php71Socket: 'سوکت 7.1',\n    php72Socket: 'سوکت 7.2',\n    php73Socket: 'سوکت 7.3',\n    php74Socket: 'سوکت 7.4',\n    php80Socket: 'سوکت 8.0',\n    php81Socket: 'سوکت 8.1',\n    php82Socket: 'سوکت 8.2',\n    phpSocket: 'سوکت PHP',\n    custom: 'سفارشی',\n    disabled: 'غیرفعال',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'پیش‌تنظیم‌ها',\n    itLooksLikeYouCustomisedTheConfig:\n        'به نظر می‌رسد که شما پیکربندی برای این دامنه را سفارشی کرده‌اید. انتخاب یک پیش‌تنظیم جدید ممکن است برخی از تنظیماتی که شما سفارشی کرده‌اید را بازنشانی یا تغییر دهد.',\n    frontend: 'رابط کاربری',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'اپلیکیشن تک‌صفحه‌ای',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} غیرفعال است.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} نمی‌تواند هنگامی که پروکسی معکوس فعال است، فعال شود.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} نمی‌تواند هنگامی که ${common.php} فعال است، فعال شود.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `قوانین ${common.django}`,\n    enableDjangoRules: `${common.enable} قوانین خاص ${common.django}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'غیرفعال کردن برای این دامنه',\n    responseCode: 'کد پاسخ',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} غیرفعال است.`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} نمی‌تواند هنگامی که ${common.php} فعال است، فعال شود.`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} نمی‌تواند هنگامی که ${common.python} فعال است، فعال شود.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'هدر میزبان پروکسی',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'مسیریابی پشتیبانی شده',\n    fallbackRoutingPhpPath: `مسیریابی پشتیبانی شده ${common.php}`,\n    legacyPhpRouting: `مسیریابی قدیمی ${common.php}`,\n    enableLegacyRouting: `${common.enable} مسیریابی قدیمی`,\n    routing: 'مسیریابی',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'دامنه',\n    documentRoot: 'ریشه سند',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'یک یا چند دامنه دیگر همچنین نام‌گذاری شده‌اند',\n    thisWillCauseIssuesWithConfigGeneration: 'این باعث مشکلات در تولید پیکربندی می‌شود.',\n    wwwSubdomain: 'زیردامنه www',\n    cdnSubdomain: 'زیردامنه CDN',\n    redirectSubdomains: 'هدایت زیردامنه‌ها',\n    server: 'سرور',\n    listen: 'گوش کردن',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/footer.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'بازگشت به بالا',\n    thisToolIs: 'این ابزار',\n    openSourceOnGitHub: 'منبع‌باز در GitHub',\n    underThe: 'زیر',\n    mit: 'MIT',\n    license: 'لایسنس!',\n    weWelcomeFeedbackAndContributions: 'ما بازخورد و مشارکت‌ها را می‌پذیریم.',\n    originallyCreatedBy: 'اصلی توسط',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'نگه‌داری شده توسط',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker: 'داکر',\n    dockerfile: 'فایل داکر',\n    dockerCompose: `${docker} ترکیب کنید`,\n    applyDockerTweaks: `اعمال تغییرات ${docker}`,\n    applyDockerTweaksForNginx: `اعمال تنظیمات پیکربندی برای اجرای ${common.nginx} با ${docker}`,\n    applyDockerTweaksExplainer: `به‌روزرسانی کاربر ${common.nginx} به <code class=\"slim\">nginx</code> و pid به <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `شامل ${dockerfile} برای اجرای ${common.nginx} با ${docker}`,\n    includeDockerCompose: `شامل docker-compose برای اجرای ${common.nginx} با docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl} پروفایل`,\n    httpsMustBeEnabledOnOneSite: `${common.https} باید حداقل بر روی یک سایت فعال شود تا تنظیمات ${common.https} جهانی را پیکربندی کنید.`,\n    portReuse: 'استفاده مجدد پورت',\n    enableReuseOfPort: `${common.enable} استفاده مجدد از پورت برای ایجاد یک گوشه گوش دهنده برای هر کارگر`,\n    ocspDnsResolvers: 'راه‌حل‌های DNS OCSP',\n    cloudflareResolver: 'راه‌حل Cloudflare',\n    googlePublicDns: 'DNS عمومی Google',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} Webroot`,\n    letsEncryptCertRoot: `${common.letsEncrypt} دایرکتوری گواهی`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `${ipv4} فقط`,\n    ipv6Only: `${ipv6} فقط`,\n    ipv4AndIpv6: `${ipv4} و ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} ثبت خطاهای فایل پیدا نشد در ورودی`,\n    logformat: 'فرمت ثبت',\n    level: 'سطح ورود',\n    enableCloudflare: 'افزودن هدرهای درخواست Cloudflare به فرمت ثبت پیش‌فرض',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `${common.nginx} دایرکتوری پیکربندی`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'غیرفعال کردن حافظه‌پنهان HTML',\n    enableDisableHtmlCaching: 'غیرفعال کردن حافظه‌پنهان HTML',\n    gzipCompression: 'فشرده‌سازی Gzip',\n    enableGzipCompression: `${common.enable} فشرده‌سازی gzip`,\n    brotliCompression: 'فشرده‌سازی Brotli',\n    enableBrotliCompression: `${common.enable} فشرده‌سازی brotli`,\n    brotliIsANonStandardModule: 'Brotli یک ماژول استاندارد NGINX نیست، بررسی کنید ',\n    brotliGoogleNgxBrotliProject: 'پروژه Google ngx_brotli',\n    brotliForBuildingNginxWithBrotli: ' برای چگونگی ساخت NGINX با Brotli!',\n    expirationForAssets: 'انقضا برای دارایی‌ها',\n    expirationForMedia: 'انقضا برای رسانه‌ها',\n    expirationForSvgs: 'انقضا برای SVGها',\n    expirationForFonts: 'انقضا برای فونت‌ها',\n    performance: 'عملکرد',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} سرور`,\n    pythonMustBeEnabledOnOneSite: `${common.python} باید حداقل بر روی یک سایت فعال شود تا تنظیمات ${common.python} جهانی را پیکربندی کنید.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Legacy X-Forwarded-* headers';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} باید حداقل بر روی یک سایت فعال شود تا تنظیمات ${common.reverseProxyLower} جهانی را پیکربندی کنید.`,\n    seconds: 'ثانیه',\n    passOn: `${legacyXForwarded} منتقل شده`,\n    remove: `${legacyXForwarded} به طور فعال حذف شده`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `هنگام استفاده از ${common.wordPress}، <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> اغلب برای اجازه به پنل مدیریت برای عملکرد صحیح، در سیاست امنیتی محتوا مورد نیاز است.`,\n    security: 'امنیت',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'ساختار ماژولار',\n    enableModularizedConfigFiles: `${common.enable} پرونده‌های پیکربندی ماژولار`,\n    symlinkVhost: 'سم‌لینک vhost',\n    enableSymLinksFrom: `${common.enable} سم‌لینک‌ها از`,\n    to: 'به',\n    shareConfiguration: 'اشتراک پیکربندی',\n    resetConfiguration: 'تنظیم مجدد پیکربندی',\n    resetGlobalConfig: 'تنظیم مجدد پیکربندی جهانی',\n    resetAllDomains: 'تنظیم مجدد تمامی دامنه‌ها',\n    removeAllDomains: 'حذف تمامی دامنه‌ها',\n    resetAllDomainsConfig: 'تنظیم مجدد پیکربندی تمامی دامنه‌ها',\n    resetDomainConfig: 'تنظیم مجدد پیکربندی دامنه',\n    removeDomain: 'حذف دامنه',\n    yesImSure: 'بله، مطمئنم',\n    noCancel: 'خیر، لغو',\n    tools: 'ابزارها',\n    resetGlobalConfigBody:\n        'آیا مطمئنید که می‌خواهید تمام گزینه‌های پیکربندی در بخش پیکربندی جهانی را دوباره تنظیم کنید؟',\n    resetAllDomainsConfigBody:\n        'آیا مطمئنید که می‌خواهید پیکربندی تمامی دامنه‌ها را دوباره تنظیم کنید؟',\n    removeAllDomainsBody: 'آیا مطمئنید که می‌خواهید تمامی پیکربندی‌های دامنه را حذف کنید؟',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'آیا مطمئنید که می‌خواهید تمام گزینه‌های پیکربندی برای',\n    domain: 'دامنه را دوباره تنظیم کنید؟',\n    areYouSureYouWantToRemoveThe: 'آیا مطمئنید که می‌خواهید',\n    domainConfiguration: 'پیکربندی دامنه را حذف کنید؟',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/setup.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'دانلود پیکربندی',\n    copyBase64: 'کپی Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `توضیحات ${common.ssl} مرتبط را در پیکربندی زیر نظر بگیرید:`,\n    sslOffDeprecationWarning: `این دستور یک دستور موقت <code class=\"slim\">ssl off</code> اضافه خواهد کرد تا اطمینان حاصل شود که دستورات ${common.ssl} فعال نیستند. این ممکن است باعث ایجاد هشدار در ${common.nginx} شود که ایمن است نادیده گرفته شود. این دستور هنگامی که ${certbot} پیکربندی شود، حذف خواهد شد.`,\n    reloadYourNginxServer: `سرور ${common.nginx} خود را دوباره بارگذاری کنید:`,\n    obtainSslCertificatesFromLetsEncrypt: `گواهی‌نامه‌های ${common.ssl} را از ${common.letsEncrypt} با استفاده از ${certbot} بدست آورید:`,\n    uncommentSslDirectivesInConfiguration: `توضیحات ${common.ssl} مرتبط را در پیکربندی را بدون نظر بگذارید:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `پیکربندی ${certbot} برای دوباره بارگذاری ${common.nginx} هنگامی که گواهی‌نامه‌ها با موفقیت تمدید شوند:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} نیازی به راه‌اندازی برای پیکربندی ${common.nginx} شما ندارد.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>دانلود</b> پیکربندی تولید شده:',\n    andUploadItToYourServers: 'و آن را به سرورهای خود <b>آپلود</b> کنید',\n    directory: 'دایرکتوری.',\n    or: 'یا، ',\n    copyBase64StringOfCompressedConfig: 'یک رشته base64 از پیکربندی فشرده را کپی کنید',\n    pasteItInYourServersCommandLineAndExecute:\n        ', آن را در خط فرمان سرور خود <b>پیست</b> کرده و اجرا کنید.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `به <b>دایرکتوری پیکربندی ${common.nginx}</b> خود در سرورتان بروید:`,\n    createABackupOfYourCurrentNginxConfiguration: `<b>پشتیبانی</b> از پیکربندی ${common.nginx} فعلی خود بسازید:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>فایل فشرده پیکربندی جدید را</b> با استفاده از tar <b>استخراج</b> کنید:',\n    download: 'دانلود',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: 'بیایید زنده شویم!',\n    reloadNginxToLoadInYourNewConfiguration: `${common.nginx} را بارگذاری کنید تا پیکربندی جدید شما بارگذاری شود:`,\n    goLive: 'زنده شوید!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fa/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        '<b>کلیدهای Diffie-Hellman</b> را با اجرای این دستور در سرور خود ایجاد کنید:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `یک دایرکتوری مشترک <b>ACME-challenge</b> (برای <b>${common.letsEncrypt}</b>) ایجاد کنید:`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `برای پیکربندی ${common.nginx} شما نیازی به مراحل اضافی برای راه‌اندازی ${common.ssl} ندارید.`,\n    sslInit: `${common.ssl} init`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/common.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Précédent',\n    next: 'Suivant',\n    enable: 'activer',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Logs',\n    reverseProxy: 'Proxy Inverse',\n    reverseProxyLower: 'proxy inverse',\n    restrict: 'Restreindre',\n    path: 'Chemin',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'Anglais',\n    es: 'Espanol',\n    zhCN: 'Chinois (simplifié)',\n    zhTW: 'Chinois (traditionnel)',\n    ptBR: 'Portugais (brésilien)',\n    fr: 'Français',\n    ru: 'Russe',\n    pl: 'Polonais',\n    de: 'Allemand',\n    ja: 'Japonais',\n    fa: 'Persan',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `La manière la plus simple de configurer un serveur ${common.nginx} performant, sécurisé et stable.`,\n    singleColumnMode: 'Mode simple colonne',\n    splitColumnMode: 'Mode double colonne',\n    perWebsiteConfig: 'Configuration par site',\n    addSite: 'Ajouter un site',\n    globalConfig: 'Configuration globale',\n    setup: 'Configurer',\n    configFiles: 'Fichiers de configuration',\n    copied: 'Copié',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        \"👋 Vous souhaitez demander de nouvelles fonctionnalités, apporter des modifications, ou traduire l'outil dans une nouvelle langue?\",\n    getInvolvedOnGitHub: 'Participez sur GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 Vous cherchez à déployer votre nouvelle configuration?',\n    tryOutDigitalOceansDroplet: 'Essayez les Droplets LEMP de DigitalOcean avec NGINX',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} les connexions ${common.ssl}`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} les connexions ${common.http}/2`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} les connexions ${common.http}/3`,\n    forceHttps: `Forcer ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} Strict Transport Security, exigeant HTTPS`,\n    enableIncludeSubDomains: `${common.enable} la directive includeSubDomains, exigeant une connexion HTTPS pour tous les sous-domaines.`,\n    enablePreload: `${common.enable} la directive de préchargement, indiquant aux navigateurs de toujours utiliser une connexion HTTPS`,\n    certificationType: 'Type de certification',\n    customCertificate: 'Certificat personnalisé',\n    letsEncryptEmail: `E-mail ${common.letsEncrypt}`,\n    http3IsANonStandardModule: \"HTTP/3 n'est pas un module standard de NGINX, veuillez lire \",\n    http3NginxQuicReadme: 'le Readme de NGINX QUIC',\n    http3OrThe: ' ou le ',\n    http3CloudflareQuicheProject: 'projet Cloudflare quiche',\n    http3ForBuildingNginxWithHttp3: ' pour compiler NGINX avec le support HTTP/3!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'par domaine',\n    enableForThisDomain: `${common.enable} pour ce domaine`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `Adresse ${onion}`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'Fournir une adresse Onion pour définir le header Onion-Location pour votre site.',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        \"Indique aux visiteurs qu'une version onion du site est disponible pour les navigateurs Tor.\",\n    learnMoreAboutOnionServices: 'En apprendre plus sur les services Onion',\n    onionLocationExpectedToEndWithOnion: 'Une adresse onion se termine normalement avec `.onion`.',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} est désactivé.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} ne peut pas être activé en même temps que le ${common.reverseProxyLower}.`,\n    phpCannotBeEnabledWithPython: `${common.php} ne peut pas être activé en même temps que ${common.python}.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `Règles ${common.wordPress}`,\n    enableWordPressRules: `${common.enable} les règles spécifiques à ${common.wordPress}`,\n    drupalRules: `Règles ${common.drupal}`,\n    enableDrupalRules: `${common.enable} les règles spécifiques à ${common.drupal}`,\n    magentoRules: `Règles ${common.magento}`,\n    enableMagentoRules: `${common.enable} les règles spécifiques à ${common.magento}`,\n    joomlaRules: `Règles ${common.joomla}`,\n    enableJoomlaRules: `${common.enable} les règles spécifiques à ${common.joomla}`,\n    phpServer: `Serveur ${common.php}`,\n    phpBackupServer: `Serveur de sauvegarde ${common.php}`,\n    tcp: 'TCP',\n    hhvmSocket: 'Socket HHVM',\n    php70Socket: 'Socket 7.0',\n    php71Socket: 'Socket 7.1',\n    php72Socket: 'Socket 7.2',\n    php73Socket: 'Socket 7.3',\n    php74Socket: 'Socket 7.4',\n    php80Socket: 'Socket 8.0',\n    php81Socket: 'Socket 8.1',\n    php82Socket: 'Socket 8.2',\n    phpSocket: 'Socket PHP',\n    custom: 'Custom',\n    disabled: 'Désactivé',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'Préconfigurations',\n    itLooksLikeYouCustomisedTheConfig:\n        'Il semblerait que vous ayez customisé la configuration de ce domaine. Utiliser une nouvelle préconfiguration peut réinitialiser ou changer certains paramètres que vous avez définis.',\n    frontend: 'Frontend',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Application monopage',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} est désactivé.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} ne peut pas être activé en même temps que le ${common.reverseProxyLower}.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} ne peut pas être activé en même temps que ${common.php}.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `Règles de ${common.django}`,\n    enableDjangoRules: `${common.enable} les règles spécifiques à ${common.django}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'désactiver pour ce domaine',\n    responseCode: 'Code de réponse',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `Le ${common.reverseProxyLower} est désactivé.`,\n    reverseProxyCannotBeEnabledWithPhp: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.php}.`,\n    reverseProxyCannotBeEnabledWithPython: `Le ${common.reverseProxyLower} ne peut pas être activé en même temps que ${common.python}.`,\n    enableReverseProxy: `${common.enable} le ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Routes par défaut',\n    fallbackRoutingPhpPath: `Chemin par défaut ${common.php}`,\n    legacyPhpRouting: `Routage ${common.php} legacy`,\n    enableLegacyRouting: `${common.enable} le routage legacy`,\n    routing: 'Routage',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'Domaine',\n    documentRoot: 'Dossier racine',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'Un ou plusieurs autres domaines sont aussi nommés',\n    thisWillCauseIssuesWithConfigGeneration:\n        'Cela causera des problèmes lors de la génération de la configuration.',\n    wwwSubdomain: 'Sous-domaine www',\n    cdnSubdomain: 'Sous-domaine CDN',\n    redirectSubdomains: 'Rediriger les sous-domaines',\n    server: 'Serveur',\n    listen: 'écouter',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/footer.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Retour en haut',\n    thisToolIs: 'Cet outil est',\n    openSourceOnGitHub: 'open-source sur GitHub',\n    underThe: 'sous',\n    mit: 'licence MIT',\n    license: '!',\n    weWelcomeFeedbackAndContributions: 'Nous apprécions les retours et les contributions.',\n    originallyCreatedBy: 'Initialement créé par',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'maintenu par',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `Configurer pour ${docker}`,\n    applyDockerTweaksForNginx: `Applique des ajustements pour exécuter ${common.nginx} avec ${docker}`,\n    applyDockerTweaksExplainer: `Définit l'utilisateur ${common.nginx} comme <code class=\"slim\">nginx</code> et le pid comme <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `Inclure un ${dockerfile} pour exécuter ${common.nginx} avec ${docker}`,\n    includeDockerCompose: `Inclure un docker-compose pour exécuter ${common.nginx} avec docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `Profil ${common.ssl}`,\n    httpsMustBeEnabledOnOneSite: `${common.https} doit être activé sur au moins un site pour configurer les paramètres ${common.https} globaux.`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `${common.enable} reuseport pour générer un socket passif par worker`,\n    ocspDnsResolvers: 'Résolveur DNS OCSP',\n    cloudflareResolver: 'Résolveur Cloudflare',\n    googlePublicDns: 'Google Public DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} dossier racine`,\n    letsEncryptCertRoot: `Dossier du certificat ${common.letsEncrypt}`,\n    mozillaModern: `${mozilla} Moderne`,\n    mozillaIntermediate: `${mozilla} Intermédiaire`,\n    mozillaOld: `${mozilla} Ancien`,\n    ipv4Only: `${ipv4} seulement`,\n    ipv6Only: `${ipv6} seulement`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} les erreurs de fichiers introuvables lors de la journalisation`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: 'ajouter les en-têtes de requête CloudFlare au format de journal par défaut',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `Dossier de configuration ${common.nginx}`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Compression Gzip',\n    enableGzipCompression: `${common.enable} la compression gzip`,\n    brotliCompression: 'Compression Brotli',\n    enableBrotliCompression: `${common.enable} la compression brotli`,\n    brotliIsANonStandardModule: \"Brotli n'est pas un module standard de NGINX, veuillez lire le \",\n    brotliGoogleNgxBrotliProject: 'projet Google ngx_brotli',\n    brotliForBuildingNginxWithBrotli: ' pour compiler NGINX avec le support Brotli!',\n    expirationForAssets: 'Expiration des assets',\n    expirationForMedia: 'Expiration des medias',\n    expirationForSvgs: 'Expiration des SVGs',\n    expirationForFonts: 'Expiration des fonts',\n    performance: 'Performances',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `Serveur ${common.python}`,\n    pythonMustBeEnabledOnOneSite: `${common.python} doit être activé sur au moins un site pour configurer les paramètres globaux de ${common.python}.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'En-têtes dépréciés X-Forwarded-*';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `Le ${common.reverseProxyLower} doit être activé sur au moins un site pour configurer les paramètres globaux du ${common.reverseProxyLower}.`,\n    seconds: 'secondes',\n    passOn: `${legacyXForwarded} transmis`,\n    remove: `${legacyXForwarded} supprimés`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Lors de l'utilisation de ${common.wordPress}, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> est fréquemment exigé par la Politique de Sécurité du Contenu pour assurer le bon fonctionnement du panneau d'administration.`,\n    security: 'Sécurité',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Structure modulaire',\n    enableModularizedConfigFiles: `${common.enable} les fichiers de configuration modulaires`,\n    symlinkVhost: 'Lien symbolique pour vhost',\n    enableSymLinksFrom: `${common.enable} les liens symboliques depuis`,\n    to: 'vers',\n    shareConfiguration: 'Partager la configuration',\n    resetConfiguration: 'Réinitialiser la configuration',\n    resetGlobalConfig: 'Réinitialiser la configuration globale',\n    resetAllDomains: 'Réinitialiser tous les domaines',\n    removeAllDomains: 'Supprimer tous les domaines',\n    resetAllDomainsConfig: 'Réinitialiser la configuration de tous les domaines',\n    resetDomainConfig: 'Réinitialiser la configuration du domaine',\n    removeDomain: 'Supprimer le domaine',\n    yesImSure: 'Oui, je suis sûr(e)',\n    noCancel: 'Non, annuler',\n    tools: 'Outils',\n    resetGlobalConfigBody:\n        'Voulez-vous vraiment réinitialiser toutes les options de configuration globales?',\n    resetAllDomainsConfigBody:\n        'Voulez-vous vraiment réinitialiser les configurations de TOUS les domaines?',\n    removeAllDomainsBody: 'Voulez-vous vraiment supprimer les configurations de TOUS les domaines?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'Voulez-vous vraiment réinitialiser toutes les options de configuration pour',\n    domain: '?',\n    areYouSureYouWantToRemoveThe: 'Voulez-vous vraiment supprimer',\n    domainConfiguration: '?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/setup.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Télécharger la configuration',\n    copyBase64: 'Copier en Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Commentez les directives relatives à ${common.ssl}:`,\n    sslOffDeprecationWarning: `Cette commande ajoutera une directive temporaire <code class=\"slim\">ssl off</code> pour s'assurer que les directives ${common.ssl} ne sont pas actives. Cela peut amener ${common.nginx} à émettre un avertissement, qui peut être ignoré en toute sécurité. La directive sera supprimée une fois que ${certbot} sera configuré.`,\n    reloadYourNginxServer: `Relancez le serveur ${common.nginx}:`,\n    obtainSslCertificatesFromLetsEncrypt: `Obtenez les certificats ${common.ssl} de ${common.letsEncrypt} à l'aide de ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Décommentez les directives relatives à ${common.ssl}:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Configurez ${certbot} pour relancer ${common.nginx} lors du renouvellement des certificats:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `Il est inutile de configurer ${certbot} pour votre configuration ${common.nginx}.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>Téléchargez</b> la configuration générée:',\n    andUploadItToYourServers: 'et <b>uploadez-la</b> vers le répertoire',\n    directory: 'de votre serveur.',\n    or: 'ou, ',\n    copyBase64StringOfCompressedConfig: 'copiez la configuration compressée et encodée en base64',\n    pasteItInYourServersCommandLineAndExecute:\n        ', puis collez-la et exécutez-la en ligne de commande sur votre serveur.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Sur votre serveur, naviguez vers le <b>dossier de configuration</b> de ${common.nginx}:`,\n    createABackupOfYourCurrentNginxConfiguration: `Créez un <b>backup</b> de votre configuration ${common.nginx} actuelle:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Décompressez</b> la nouvelle configuration en utilisant Tar:',\n    download: 'Téléchargement',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: \"C'est en ligne!\",\n    reloadNginxToLoadInYourNewConfiguration: `Relancez ${common.nginx} pour charger la nouvelle configuration:`,\n    goLive: \"C'est en ligne!\",\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/fr/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Générez des <b>clefs de Diffie-Hellman</b> en exécutant cette commande sur votre serveur:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Créez un répertoire commun <b>ACME-challenge</b> (pour <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `Aucune étape additionnelle n'est nécessaire pour configurer ${common.ssl} pour ${common.nginx}.`,\n    sslInit: `${common.ssl} init`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/common.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: '戻る',\n    next: '次へ',\n    enable: '有効にする',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'ログ',\n    reverseProxy: 'リバースプロキシ',\n    reverseProxyLower: 'リバースプロキシ',\n    restrict: '制限',\n    path: 'パス',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: '英語',\n    es: 'スペイン語',\n    zhCN: '中国語 (簡体字)',\n    zhTW: '中国語 (繁体字)',\n    ptBR: 'ポルトガル語 (ブラジル)',\n    fr: 'フランス語',\n    ru: 'ロシア語',\n    pl: 'ポーランド語',\n    de: 'ドイツ語',\n    ja: '日本語',\n    fa: 'ペルシア語',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}設定`,\n    description: `パフォーマンス、安全性、安定性に優れた ${common.nginx} サーバーを簡単に構成できます。`,\n    singleColumnMode: 'シングルカラムモード',\n    splitColumnMode: '並列表示モード',\n    perWebsiteConfig: 'Webサイトごとの設定',\n    addSite: 'サイトを追加する',\n    globalConfig: 'グローバル設定',\n    setup: 'セットアップ',\n    configFiles: '設定ファイル',\n    copied: 'コピーしました',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges: '👋 新機能や変更の提案や実装、翻訳をしてみませんか?',\n    getInvolvedOnGitHub: 'GitHub で参加しよう',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 この新しい設定のデプロイ先をお探しですか?',\n    tryOutDigitalOceansDroplet: 'DigitalOceanの NGINXを使ったLEMP Droplet を試してみましょう',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `暗号化された ${common.ssl} 接続を${common.enable}`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.http}/2 接続を${common.enable}`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.http}/3 接続を${common.enable}`,\n    forceHttps: `${common.https}を強制する`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `Strict Transport Security を${common.enable}, HTTPS接続が必要`,\n    enableIncludeSubDomains: `includeSubDomains ディレクティブを${common.enable}, 全てのサブドメインでHTTPS接続が必要`,\n    enablePreload: `プリロードディレクティブを${common.enable}, HTTPS接続のみを常に行うようブラウザに指示します`,\n    certificationType: '証明書',\n    customCertificate: 'カスタム証明書',\n    letsEncryptEmail: `${common.letsEncrypt} Eメールアドレス`,\n    http3IsANonStandardModule: 'HTTP/3 は NGINX の標準モジュールではありません, くわしくは ',\n    http3NginxQuicReadme: 'NGINX QUIC readme',\n    http3OrThe: ' もしくは ',\n    http3CloudflareQuicheProject: 'Cloudflare quicheプロジェクト',\n    http3ForBuildingNginxWithHttp3: ' のHTTP/3を使ったNGINXの構築方法を確認してください!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: '(ドメインごと)',\n    enableForThisDomain: `このドメインで${common.enable}`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `${onion} location`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'サイトのOnion-Locationヘッダを設定するために、Onion locationアドレスを提供する。',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'これにより、あなたのサイトのオニオンサービス版がTorブラウザで利用可能であることをサイト訪問者に知らせます。',\n    learnMoreAboutOnionServices: 'Onion サービスについて詳しくはこちら',\n    onionLocationExpectedToEndWithOnion: 'Onion location アドレスは通常 `.onion` で終わります。',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} は無効です。`,\n    phpCannotBeEnabledWithReverseProxy: `リバースプロキシが有効な場合は、${common.php} を有効にすることはできません。`,\n    phpCannotBeEnabledWithPython: `${common.python} が有効な場合は、 ${common.php} を有効にすることはできません。`,\n    enablePhp: `${common.php} を${common.enable}`,\n    wordPressRules: `${common.wordPress} ルール`,\n    enableWordPressRules: `${common.wordPress} 用ルールを${common.enable}`,\n    drupalRules: `${common.drupal} ルール`,\n    enableDrupalRules: `${common.drupal} 用ルールを${common.enable}`,\n    magentoRules: `${common.magento} ルール`,\n    enableMagentoRules: `${common.magento} 用ルールを${common.enable}`,\n    joomlaRules: `${common.joomla} ルール`,\n    enableJoomlaRules: `${common.joomla} 用ルールを${common.enable}`,\n    phpServer: `${common.php} サーバ`,\n    phpBackupServer: `${common.php} バックアップサーバ`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM socket',\n    php70Socket: '7.0 socket',\n    php71Socket: '7.1 socket',\n    php72Socket: '7.2 socket',\n    php73Socket: '7.3 socket',\n    php74Socket: '7.4 socket',\n    php80Socket: '8.0 socket',\n    php81Socket: '8.1 socket',\n    php82Socket: '8.2 socket',\n    phpSocket: 'PHP socket',\n    custom: 'カスタム',\n    disabled: '無効',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'プリセット',\n    itLooksLikeYouCustomisedTheConfig:\n        'このドメインの設定をカスタマイズしているようです。新しいプリセットを選択すると、カスタマイズした設定の一部がリセットまたは変更される場合があります。',\n    frontend: 'フロントエンド',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'シングルページアプリケーション(SPA)',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} は無効です。`,\n    pythonCannotBeEnabledWithReverseProxy: `リバースプロキシが有効な場合は、${common.python} を有効にすることはできません。`,\n    pythonCannotBeEnabledWithPhp: `${common.php} が有効な場合は、 ${common.python} を有効にすることはできません。`,\n    enablePython: `${common.python}を${common.enable}`,\n    djangoRules: `${common.django} ルール`,\n    enableDjangoRules: `${common.django} 用ルールを${common.enable}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'このドメインで無効にする',\n    responseCode: 'レスポンスコード',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} は無効です。`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.php} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`,\n    reverseProxyCannotBeEnabledWithPython: `${common.python} が有効な場合は、 ${common.reverseProxy} を有効にすることはできません。`,\n    enableReverseProxy: `${common.reverseProxyLower}を${common.enable}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'フォールバックルーティング',\n    fallbackRoutingPhpPath: `フォールバックルーティング ${common.php} パス`,\n    legacyPhpRouting: `レガシーな ${common.php} ルーティング`,\n    enableLegacyRouting: `レガシーなルーティングを${common.enable}`,\n    routing: 'ルーティング',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'ドメイン',\n    documentRoot: 'ドキュメントルート',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'このドメインは別の設定で利用されています',\n    thisWillCauseIssuesWithConfigGeneration: 'これは、設定ファイル生成で問題を引き起こします。',\n    wwwSubdomain: 'www サブドメイン',\n    cdnSubdomain: 'CDN サブドメイン',\n    redirectSubdomains: 'リダイレクトサブドメイン',\n    server: 'サーバ',\n    listen: 'リッスン',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/footer.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'TOPへ戻る',\n    thisToolIs: 'このツールは',\n    openSourceOnGitHub: 'オープンソースとしてGitHub上に',\n    underThe: '',\n    mit: 'MIT',\n    license: 'ライセンスで公開されています。',\n    weWelcomeFeedbackAndContributions: 'リードバックやコントリビュートは大歓迎です。',\n    originallyCreatedBy: 'オリジナル開発者: ',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'メンテナンス: ',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `${docker} の調整を適用する`,\n    applyDockerTweaksForNginx: `${common.nginx} を ${docker} 上で動作させるため、設定の微調整を適用します。`,\n    applyDockerTweaksExplainer: `${common.nginx} ユーザを <code class=\"slim\">nginx</code> に、 pid を <code class=\"slim\">/var/run/nginx.pid</code> に変更してください。`,\n    includeDockerfile: `${common.nginx} を ${docker} 上で動作させるための ${dockerfile} を含む`,\n    includeDockerCompose: `${common.nginx} with docker-compose で動作させるための docker-compose.yaml を含む`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl} プロファイル`,\n    httpsMustBeEnabledOnOneSite: `グローバルな ${common.https} の設定を行うには、少なくとも1つのサイトで ${common.https} が有効になっている必要があります。`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `ワーカーごとにリスニングソケットを生成するために reuseport を${common.enable}`,\n    ocspDnsResolvers: 'OCSP DNS Resolvers',\n    cloudflareResolver: 'Cloudflare Resolver',\n    googlePublicDns: 'Google Public DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} webrootディレクトリ`,\n    letsEncryptCertRoot: `${common.letsEncrypt} 証明書ディレクトリ`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `${ipv4} のみ`,\n    ipv6Only: `${ipv6} のみ`,\n    ipv4AndIpv6: `${ipv4} と ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `FILE NOT FOUND エラーのロギングを${common.enable}`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: 'デフォルトのログフォーマットに Cloudflare のリクエストヘッダを追加する',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `${common.nginx} 設定ディレクトリ`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'HTML キャッシュの無効化',\n    enableDisableHtmlCaching: 'HTML キャッシュを無効にする',\n    gzipCompression: 'Gzip 圧縮',\n    enableGzipCompression: `gzip 圧縮を${common.enable}`,\n    brotliCompression: 'Brotli 圧縮',\n    enableBrotliCompression: `brotli 圧縮を${common.enable}`,\n    brotliIsANonStandardModule: 'Brotli はNGINXの標準モジュールではありません, くわしくは ',\n    brotliGoogleNgxBrotliProject: 'Google ngx_brotli プロジェクト',\n    brotliForBuildingNginxWithBrotli: ' のBrotliを使ったNGINXの構築方法を確認してください!',\n    expirationForAssets: 'アセットの有効期限',\n    expirationForMedia: 'メディアの有効期限',\n    expirationForSvgs: 'SVG の有効期限',\n    expirationForFonts: 'フォントの有効期限',\n    performance: 'パフォーマンス',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} サーバ`,\n    pythonMustBeEnabledOnOneSite: `グローバルな ${common.python} の設定を行うには、少なくとも1つのサイトで ${common.python} が有効になっている必要があります。`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Legacy X-Forwarded-* headers';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `グローバルな ${common.reverseProxyLower} の設定を行うには、少なくとも1つのサイトで ${common.reverseProxy} が有効になっている必要があります。`,\n    seconds: '秒',\n    passOn: `${legacyXForwarded} が渡されます`,\n    remove: `${legacyXForwarded} は積極的に削除されます`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `${common.wordPress} を利用している場合、 <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> は、管理画面を正しく機能させるために、コンテンツセキュリティポリシーで要求されることが多いようです。`,\n    security: 'セキュリティ',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'モジュール化された構造',\n    enableModularizedConfigFiles: `モジュール化された設定ファイルを${common.enable}`,\n    symlinkVhost: 'Symlink vhost',\n    enableSymLinksFrom: `シンボリックリンク を${common.enable} from`,\n    to: 'to',\n    shareConfiguration: '設定を共有する',\n    resetConfiguration: '設定をリセットする',\n    resetGlobalConfig: 'グローバル設定をリセットする',\n    resetAllDomains: '全てのドメインをリセットする',\n    removeAllDomains: '全てのドメインを削除する',\n    resetAllDomainsConfig: '全てのドメインの設定をリセットする',\n    resetDomainConfig: 'ドメインの設定をリセットする',\n    removeDomain: 'ドメインを削除する',\n    yesImSure: 'はい、大丈夫です',\n    noCancel: 'いいえ、キャンセルします',\n    tools: 'ツール',\n    resetGlobalConfigBody: 'グローバル設定の全ての設定をリセットします、よろしいですか?',\n    resetAllDomainsConfigBody: '全てのドメインの設定をリセットします、よろしいですか?',\n    removeAllDomainsBody: '全てのドメインを削除します、よろしいですか?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        '次のドメインの設定をリセットします、よろしいですか?',\n    domain: '',\n    areYouSureYouWantToRemoveThe: '次のドメインの設定を削除します、よろしいですか?',\n    domainConfiguration: '',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/setup.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: '設定をダウンロードする',\n    copyBase64: 'Base64でコピーする',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `設定中の ${common.ssl} 関連ディレクティブをコメントアウトします:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `${common.nginx} サーバをリロードします:`,\n    obtainSslCertificatesFromLetsEncrypt: `${certbot} を利用して、 ${common.ssl} 証明書を ${common.letsEncrypt} から取得します:`,\n    uncommentSslDirectivesInConfiguration: `設定中の ${common.ssl} 関連ディレクティブのコメントアウトを外します:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `証明書の更新に成功したら ${certbot} が ${common.nginx} をリロードするように設定します:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} は、${common.nginx}の設定に合わせて設定する必要はありません。`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '生成された設定ファイルを<b>ダウンロードします</b>:',\n    andUploadItToYourServers:\n        'そして、ご利用のサーバの以下のディレクトリに設定ファイルを <b>アップロードします</b>',\n    directory: '。',\n    or: 'もしくは、',\n    copyBase64StringOfCompressedConfig: '設定が圧縮されたbase64文字列をコピーし',\n    pasteItInYourServersCommandLineAndExecute: '、 サーバのコマンドラインにペーストして実行します',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `サーバの ${common.nginx} の<b>設定ディレクトリ</b>へ移動します:`,\n    createABackupOfYourCurrentNginxConfiguration: `現在の ${common.nginx} の設定を<b>バックアップします</b>:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        'tar を使って、新しい設定の入った圧縮ファイルを<b>展開します</b>:',\n    download: 'ダウンロード',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: '起動しよう!',\n    reloadNginxToLoadInYourNewConfiguration: `${common.nginx} をリロードして新しい設定を反映します:`,\n    goLive: '起動!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ja/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'サーバでこのコマンドを実行して <b>Diffie-Hellman keys</b> を生成します:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `共通の <b>ACME-challenge</b> ディレクトリを作成します (<b>${common.letsEncrypt}</b> の場合):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `${common.ssl} を ${common.nginx} の構成に設定するための追加の手順は必要ありません。`,\n    sslInit: `${common.ssl} 初期設定`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/common.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Wstecz',\n    next: 'Dalej',\n    enable: 'włącz',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Logi',\n    reverseProxy: 'Reverse proxy',\n    reverseProxyLower: 'reverse proxy',\n    restrict: 'Ogranicz',\n    path: 'Ścieżka',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'Angielski',\n    es: 'Hiszpański',\n    zhCN: 'Chiński (uproszczony)',\n    zhTW: 'Chiński (tradycyjny)',\n    ptBR: 'Portugalski (brazylijski)',\n    fr: 'Francuski',\n    ru: 'Rosyjski',\n    pl: 'Polski',\n    de: 'Niemiecki',\n    ja: 'Japoński',\n    fa: 'Perski',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `Najłatwiejszy sposób aby skonfigurować zoptymalizowany, bezpieczny i stabilny serwer ${common.nginx}.`,\n    singleColumnMode: 'Tryb jednokolumnowy',\n    splitColumnMode: 'Tryb wielokolumnowy',\n    perWebsiteConfig: 'Konfiguracja per strona',\n    addSite: 'Dodaj stronę',\n    globalConfig: 'Konfiguracja globalna',\n    setup: 'Setup',\n    configFiles: 'Pliki konfiguracyjne',\n    copied: 'Skopiowane',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 Chcesz zapropnować nowe funkcje, wprowadzić zmiany lub przetłumaczyć narzędzie na inny język?',\n    getInvolvedOnGitHub: 'Zaangażuj się na GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 Szukasz miejsca do wdrożenia nowej konfiguracji? ',\n    tryOutDigitalOceansDroplet: 'Wypróbuj LEMP Droplet z NGINX od DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} szyfrowane połączenie ${common.ssl}`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} połączenia ${common.http}/2`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} połączenia ${common.http}/3`,\n    forceHttps: `Wymuś ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} Strict Transport Security, wymaga połaczenia HTTPS`,\n    enableIncludeSubDomains: `${common.enable} dyrektywę includeSubDomains, wymaga połaczenia HTTPS dla WSZYSTKICH subdomen`,\n    enablePreload: `${common.enable} dyrektywę preload, aby przekazać przeglądarce by wykonywała wyłącznie połączenia HTTPS`,\n    certificationType: 'Typ certyfikacji',\n    customCertificate: 'Własny certyfikat',\n    letsEncryptEmail: `email ${common.letsEncrypt}`,\n    http3IsANonStandardModule: 'HTTP/3 nie jest standardowym modułem NGINX, sprawdź ',\n    http3NginxQuicReadme: 'NGINX QUIC readme',\n    http3OrThe: ' lub ',\n    http3CloudflareQuicheProject: 'Cloudflare quiche project',\n    http3ForBuildingNginxWithHttp3: ' aby dowiedzieć się o NGINX z HTTP/3!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'wg. domen',\n    enableForThisDomain: `${common.enable} dla tej domeny`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `lokalizacja ${onion}`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'Podaj adres lokalizacji onion aby ustawić nagłówek Onion-Location dla Twojej strony.',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'Inforuje Twoich odiwedzających, że dostępna jest wersja onion Twojego serwisu dla przeglądarek Tor.',\n    learnMoreAboutOnionServices: 'Dowiedz się więcej o serwisach Onion',\n    onionLocationExpectedToEndWithOnion: 'Adres lokalizacji Onion zwykle kończy się na `.onion`.',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} jest wyłączony.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} nie może zostać włączony dopóki włączony jest reverse proxy.`,\n    phpCannotBeEnabledWithPython: `${common.php} nie może zostać włączony dopóki włączony jest ${common.python}.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `reguły ${common.wordPress}`,\n    enableWordPressRules: `${common.enable} reguły specyficzne dla ${common.wordPress}`,\n    drupalRules: `reguły ${common.drupal}`,\n    enableDrupalRules: `${common.enable} reguły specyficzne dla ${common.drupal}`,\n    magentoRules: `reguły ${common.magento}`,\n    enableMagentoRules: `${common.enable} reguły specyficzne dla ${common.magento}`,\n    joomlaRules: `reguły ${common.joomla}`,\n    enableJoomlaRules: `${common.enable} reguły specyficzne dla ${common.joomla}`,\n    phpServer: `serwer ${common.php}`,\n    phpBackupServer: `serwer backupowy ${common.php}`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM socket',\n    php70Socket: '7.0 socket',\n    php71Socket: '7.1 socket',\n    php72Socket: '7.2 socket',\n    php73Socket: '7.3 socket',\n    php74Socket: '7.4 socket',\n    php80Socket: '8.0 socket',\n    php81Socket: '8.1 socket',\n    php82Socket: '8.2 socket',\n    phpSocket: 'PHP socket',\n    custom: 'Własny',\n    disabled: 'Wyłączony',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'Ustawienia wstępne',\n    itLooksLikeYouCustomisedTheConfig:\n        'Wygląda na to, że dostosowałeś konfigurację dla tej domeny. Wybranie nowego ustawienia wstępnego może spowodować zresetowanie lub zmianę niektórych dostosowanych ustawień.',\n    frontend: 'Frontend',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Aplikacja Single-page (SPA)',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} jest wyłączony.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} nie może zostać włączony dopóki włączony jest reverse proxy.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} nie może zostać włączony dopóki włączony jest ${common.php}.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `reguły ${common.django}`,\n    enableDjangoRules: `${common.enable} reguły specyficzne dla ${common.django}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'wyłącz dla tej domeny',\n    responseCode: 'Kod odpowiedzi',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} jest wyłączone.`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.php}.`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} nie może zostać włączony dopóki włączony jest ${common.python}.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Routing rezerwowy',\n    fallbackRoutingPhpPath: `Ścieżka routingu rezerwowego dla ${common.php}`,\n    legacyPhpRouting: `Routing starego typu dla ${common.php}`,\n    enableLegacyRouting: `${common.enable} routing starego typu`,\n    routing: 'Routing',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'Domena',\n    documentRoot: 'Document root',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'Jedna lub więej domen ma również nazwę',\n    thisWillCauseIssuesWithConfigGeneration:\n        'Spowoduje to problem z generowaniem pliku konfiguracyjnego.',\n    wwwSubdomain: 'subdomena dla www',\n    cdnSubdomain: 'subdomena dla CDN',\n    redirectSubdomains: 'Przekieruj subdomeny',\n    server: 'Serwer',\n    listen: 'nasłuchuj',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/footer.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Wróć na górę',\n    thisToolIs: 'To narzędzie jest',\n    openSourceOnGitHub: \"open-source'owane na GitHub\",\n    underThe: 'na',\n    mit: 'licencji MIT',\n    license: '!',\n    weWelcomeFeedbackAndContributions: 'Mile widziane opinie oraz kontrybucje.',\n    originallyCreatedBy: 'Oryginalnie stworzone przez',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'utrzymywane przez',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `Zastosuj poprawki pod ${docker}a`,\n    applyDockerTweaksForNginx: `Zastosuj poprawki konfiguracyjne pod ${common.nginx} z ${docker}em`,\n    applyDockerTweaksExplainer: `Aktualizuje użytkownika ${common.nginx} na <code class=\"slim\">nginx</code> oraz ustawia pid na <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `Dołącz ${dockerfile}, aby uruchomić ${common.nginx} z ${docker}`,\n    includeDockerCompose: `Dołącz docker-compose, aby uruchomić ${common.nginx} z docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `Profil ${common.ssl}`,\n    httpsMustBeEnabledOnOneSite: `${common.https} musi być włączony na conajmniej jednej stronie, aby móc zastosować globalną konfigurację ${common.https}.`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `${common.enable} reuseport aby generować listening socket per worker`,\n    ocspDnsResolvers: 'OCSP DNS Resolvers',\n    cloudflareResolver: 'Cloudflare Resolver',\n    googlePublicDns: 'Google Public DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} webroot`,\n    letsEncryptCertRoot: `ścieżka certyfikatów ${common.letsEncrypt}`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `tylko ${ipv4}`,\n    ipv6Only: `tylko ${ipv6}`,\n    ipv4AndIpv6: `${ipv4} oraz ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} logowanie błędów o nieznalezionych plikach`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: 'dodaj nagłówki żądań Cloudflare do domyślnego formatu dziennika ',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `ścieżka konfiguracji ${common.nginx}`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Kompresja gzip',\n    enableGzipCompression: `${common.enable} kompresję gzip`,\n    brotliCompression: 'Kompresja brotli',\n    enableBrotliCompression: `${common.enable} kompresję brotli`,\n    brotliIsANonStandardModule: 'Brotli nie jest standardowym modułem NGINX, sprawdź ',\n    brotliGoogleNgxBrotliProject: 'projekt Google ngx_brotli',\n    brotliForBuildingNginxWithBrotli: ' aby dowiedzieć się jak korzystać z NGINX z Brotli!',\n    expirationForAssets: 'Wygaśnięcie assetów',\n    expirationForMedia: 'Wygaśnięcie mediów',\n    expirationForSvgs: 'Wygaśnięcie SVG',\n    expirationForFonts: 'Wygaśnięcie czcionek',\n    performance: 'Wydajność',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `Serwer ${common.python}`,\n    pythonMustBeEnabledOnOneSite: `${common.python} musi być włączony na conajmniej jednej stronie, aby móc utworzyć konfigurację globalną dla ${common.python}a.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'nagłówka X-Forwarded-* starego typu';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} musi być włączony na conajmniej jednej stronie, aby móc zastosować globalną konfigurację ${common.reverseProxyLower}.`,\n    seconds: 'sekund(y)',\n    passOn: `Przekazywanie ${legacyXForwarded}`,\n    remove: `Aktywne usuwanie ${legacyXForwarded}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Korzystając z ${common.wordPress}, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> jest często wymagany w Content Security Policy aby panel administracyjny działał poprawnie.`,\n    security: 'Bezpieczeństwo',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Struktura modułowa',\n    enableModularizedConfigFiles: `${common.enable} pliki w strukturze modułowej`,\n    symlinkVhost: 'Symlink vhost',\n    enableSymLinksFrom: `${common.enable} symlinki z`,\n    to: 'do',\n    shareConfiguration: 'Udostępnij konfigurację',\n    resetConfiguration: 'Zresetuj konfigurację',\n    resetGlobalConfig: 'Zresetuj globalną konfigurację',\n    resetAllDomains: 'Zresetuj wszystkie domeny',\n    removeAllDomains: 'Usuń wszystkie domeny',\n    resetAllDomainsConfig: 'Zresetuj wszystkie konfiguracje domen',\n    resetDomainConfig: 'Zresetuj konfigurację domeny',\n    removeDomain: 'Usuń domenę',\n    yesImSure: 'Tak, jestem pewien',\n    noCancel: 'Nie, poniechaj',\n    tools: 'Narzędzia',\n    resetGlobalConfigBody:\n        'Czy na pewno chcesz zresetować wszystkie opcje konfiguracji w sekcji konfiguracji globalnej?',\n    resetAllDomainsConfigBody: 'Czy na pewno chcesz zresetować konfigurację WSZYSTKICH domen?',\n    removeAllDomainsBody: 'Czy na pewno chcesz usunąć WSZYSTKIE konfiguracje domeny?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'Czy na pewno chcesz zresetować wszystkie opcje konfiguracji domeny',\n    domain: '?',\n    areYouSureYouWantToRemoveThe: 'Czy napewno chcesz usunąć konfigurację dla domeny ',\n    domainConfiguration: '?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/setup.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Pobierz konfigurację',\n    copyBase64: 'Kopiuj Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Zakomentuj dyrektywy związane z ${common.ssl} w pliku konfiguracyjnym:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `Przeładuj usługę ${common.nginx}:`,\n    obtainSslCertificatesFromLetsEncrypt: `Uzysjak certyfikat ${common.ssl} od ${common.letsEncrypt} za pomocą ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Odkomentuj dyrektywy związane z ${common.ssl} w pliku konfiguracyjnym:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Skonfiguruj ${certbot} aby przeładował ${common.nginx} kiedy poprawnie odnowi certyfikat:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} nie musi być skonfigurowany dla Twojej konfiguracji ${common.nginx}.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>Pobierz</b> wygenerowany konfig:',\n    andUploadItToYourServers: 'oraz <b>wyślij</b> go na serwer do katalogu',\n    directory: '',\n    or: 'lub ',\n    copyBase64StringOfCompressedConfig: 'Skopiuj skompresowny do base64, plik konfiguracyjny',\n    pasteItInYourServersCommandLineAndExecute: ', wklej go w terminalu na serwerze i uruchom go.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Nawiguj do <b>ścieżki konfiguracyjnej</b> ${common.nginx} na swoim serwerze:`,\n    createABackupOfYourCurrentNginxConfiguration: `Utrwórz <b>kopię zapasową</b> swojego obecnego pliku konfiguracyjnego ${common.nginx}:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Wypakuj</b> skompresowane archiwum z konfiguracją, korzystając z tar:',\n    download: 'Pobierz',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: 'Do dzieła!',\n    reloadNginxToLoadInYourNewConfiguration: `Przeładuj ${common.nginx} aby załadować nową konfigurację:`,\n    goLive: 'Do dzieła!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pl/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Wygeneruj <b>klucze Diffie-Hellman</b> uruchamiając te komendę na swoim serwerze:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Utwórz powszechny katalog <b>ACME-challenge</b> (dla <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `Nie potrzeba żadnych dodatkowych kroków dla ${common.ssl} w Twojej konfiguracji ${common.nginx}.`,\n    sslInit: `${common.ssl} init`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/common.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Voltar',\n    next: 'Próximo',\n    enable: 'habilitar',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Logs',\n    reverseProxy: 'Proxy reverso',\n    reverseProxyLower: 'proxy reverso',\n    restrict: 'Restringir',\n    path: 'Caminho',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'Inglês',\n    es: 'Espanhol',\n    zhCN: 'Chinês (simplificado)',\n    zhTW: 'Chinês (tradicional)',\n    ptBR: 'Português (brasileiro)',\n    fr: 'Francês',\n    ru: 'Russa',\n    pl: 'Polonês',\n    de: 'Alemão',\n    ja: 'Japonês',\n    fa: 'Persa',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Configuração`,\n    description: `A maneira mais fácil de configurar um servidor ${common.nginx} de alto desempenho, seguro e estável.`,\n    singleColumnMode: 'Modo de coluna única',\n    splitColumnMode: 'Modo com divisão de colunas',\n    perWebsiteConfig: 'Configuração por site',\n    addSite: 'Adicionar site',\n    globalConfig: 'Configuração global',\n    setup: 'Configurar',\n    configFiles: 'Arquivos de configuração',\n    copied: 'Copiado',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 Want to request new features, contribute changes, or translate the tool into a new language?', // TODO: translate\n    getInvolvedOnGitHub: 'Get involved on GitHub', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 Looking for a place to deploy your new configuration?', // TODO: translate\n    tryOutDigitalOceansDroplet: \"Try out DigitalOcean's LEMP Droplet with NGINX\", // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} conexões ${common.ssl} criptografadas`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} conexões ${common.http}/2`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} conexões ${common.http}/3`,\n    forceHttps: `Forçar ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} Strict Transport Security, requerendo conexões HTTPS`,\n    enableIncludeSubDomains: `${common.enable} a diretiva includeSubDomains, requerendo conexões HTTPS para TODOS os subdomínios`,\n    enablePreload: `${common.enable} a diretiva preload, dizendo aos navegadores para sempre fazer conexões HTTPS apenas`,\n    certificationType: 'Tipo de certificação',\n    customCertificate: 'Certificado personalizado',\n    letsEncryptEmail: `E-mail do ${common.letsEncrypt}`,\n    http3IsANonStandardModule: \"HTTP/3 isn't a standard NGINX module, check the \", // TODO: translate\n    http3NginxQuicReadme: 'NGINX QUIC readme', // TODO: translate\n    http3OrThe: ' or the ', // TODO: translate\n    http3CloudflareQuicheProject: 'Cloudflare quiche project', // TODO: translate\n    http3ForBuildingNginxWithHttp3: ' for how to build NGINX with HTTP/3!', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'por domínio',\n    enableForThisDomain: `${common.enable} para este domínio`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `${onion} location`, // TODO: translate\n    provideAnOnionLocationToSetOnionLocationHeader:\n        'Provide an onion location address to set the Onion-Location header for your site.', // TODO: translate\n    letsVisitorsKnownOnionServicesIsAvailable:\n        'This lets visitors know that an onion services version of your site is available for Tor browsers.', // TODO: translate\n    learnMoreAboutOnionServices: 'Learn more about Onion services', // TODO: translate\n    onionLocationExpectedToEndWithOnion: 'Onion location addresses normally end with `.onion`.', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `O ${common.php} está desabilitado.`,\n    phpCannotBeEnabledWithReverseProxy: `O ${common.php} não pode ser habilitado enquanto o proxy reverso estiver habilitado.`,\n    phpCannotBeEnabledWithPython: `O ${common.php} não pode ser habilitado enquanto o ${common.python} estiver habilitado.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `Regras do ${common.wordPress}`,\n    enableWordPressRules: `${common.enable} regras específicas do ${common.wordPress}`,\n    drupalRules: `Regras do ${common.drupal}`,\n    enableDrupalRules: `${common.enable} regras específicas do ${common.drupal}`,\n    magentoRules: `Regras do ${common.magento}`,\n    enableMagentoRules: `${common.enable} regras específicas do ${common.magento}`,\n    joomlaRules: `Regras do ${common.joomla}`,\n    enableJoomlaRules: `${common.enable} regras específicas do ${common.joomla}`,\n    phpServer: `Servidor ${common.php}`,\n    phpBackupServer: `Servidor de backup ${common.php}`,\n    tcp: 'TCP',\n    hhvmSocket: 'Socket HHVM',\n    php70Socket: 'Socket 7.0',\n    php71Socket: 'Socket 7.1',\n    php72Socket: 'Socket 7.2',\n    php73Socket: 'Socket 7.3',\n    php74Socket: 'Socket 7.4',\n    php80Socket: 'Socket 8.0',\n    php81Socket: 'Socket 8.1',\n    php82Socket: 'Socket 8.2',\n    phpSocket: 'Socket PHP',\n    custom: 'Custom', // TODO: translate\n    disabled: 'Desabilitado',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'Predefinições',\n    itLooksLikeYouCustomisedTheConfig:\n        'Parece que você personalizou a configuração para este domínio. A escolha de uma nova predefinição pode redefinir ou alterar algumas das configurações que você personalizou.',\n    frontend: 'Frontend',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Aplicação de página única',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `O ${common.python} está desabilitado.`,\n    pythonCannotBeEnabledWithReverseProxy: `O ${common.python} não pode ser habilitado enquanto o proxy reverso estiver habilitado.`,\n    pythonCannotBeEnabledWithPhp: `O ${common.python} não pode ser habilitado enquanto o ${common.php} estiver habilitado.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `Regras do ${common.django}`,\n    enableDjangoRules: `${common.enable} regras específicas do ${common.django}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'desabilitar para este domínio',\n    responseCode: 'Código de resposta',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `O ${common.reverseProxy} está desabilitado.`,\n    reverseProxyCannotBeEnabledWithPhp: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.php} estiver habilitado.`,\n    reverseProxyCannotBeEnabledWithPython: `O ${common.reverseProxy} não pode ser habilitado enquanto o ${common.python} estiver habilitado.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Roteamento alternativo',\n    fallbackRoutingPhpPath: `Caminho para roteamento alternativo ${common.php}`,\n    legacyPhpRouting: `Roteamento ${common.php} legado`,\n    enableLegacyRouting: `${common.enable} roteamento legado`,\n    routing: 'Roteamento',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'Domínio',\n    documentRoot: 'Raiz dos documentos',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'Um ou mais outros domínios também são nomeados',\n    thisWillCauseIssuesWithConfigGeneration:\n        'Isso causará problemas com a geração da configuração.',\n    wwwSubdomain: 'Subdomínio www',\n    cdnSubdomain: 'Subdomínio CDN',\n    redirectSubdomains: 'Redirecionar subdomínios',\n    server: 'Servidor',\n    listen: 'escutar',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/footer.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Voltar ao topo',\n    thisToolIs: 'Esta ferramenta é',\n    openSourceOnGitHub: 'de código aberto no GitHub',\n    underThe: 'sob a',\n    mit: 'licença MIT',\n    license: '!',\n    weWelcomeFeedbackAndContributions: 'Agradecemos comentários e contribuições.',\n    originallyCreatedBy: 'Originalmente criado por',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'mantido por',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `Aplicar ajustes do ${docker}`,\n    applyDockerTweaksForNginx: `Aplicar ajustes de configuração para executar o ${common.nginx} com ${docker}`,\n    applyDockerTweaksExplainer: `Atualiza o usuário ${common.nginx} para ser <code class=\"slim\">nginx</code> e o pid para <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `Incluir o ${dockerfile} para executar o ${common.nginx} com ${docker}`,\n    includeDockerCompose: `Incluir o docker-compose para executar o ${common.nginx} com docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `Perfil ${common.ssl}`,\n    httpsMustBeEnabledOnOneSite: `O ${common.https} deve estar habilitado em pelo menos um site para definir as configurações globais de ${common.https}.`,\n    portReuse: 'Reuseport', // TODO: translate\n    enableReuseOfPort: `${common.enable} reuseport to generate a listening socket per worker`, // TODO: translate\n    ocspDnsResolvers: 'Resolvedores de DNS OCSP',\n    cloudflareResolver: 'Resolvedor Cloudflare',\n    googlePublicDns: 'DNS público do Google',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `Diretório raiz do ${common.letsEncrypt}`,\n    letsEncryptCertRoot: `Diretório de certificado do ${common.letsEncrypt}`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `${ipv4} apenas`,\n    ipv6Only: `${ipv6} apenas`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} erro de arquivo não encontrado ao fazer login`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: 'adicionar cabeçalhos de solicitação Cloudflare ao formato de log padrão',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `Diretório de configuração do ${common.nginx}`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Compressão Gzip',\n    enableGzipCompression: `${common.enable} compressão gzip`,\n    brotliCompression: 'Compressão Brotli',\n    enableBrotliCompression: `${common.enable} compressão brotli`,\n    brotliIsANonStandardModule: \"Brotli isn't a standard NGINX module, check the \", // TODO: translate\n    brotliGoogleNgxBrotliProject: 'Google ngx_brotli project', // TODO: translate\n    brotliForBuildingNginxWithBrotli: ' for how to build NGINX with Brotli!', // TODO: translate\n    expirationForAssets: 'Expiração de ativos',\n    expirationForMedia: 'Expiração de mídia',\n    expirationForSvgs: 'Expiração de SVGs',\n    expirationForFonts: 'Expiração de fontes',\n    performance: 'Desempenho',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `Servidor ${common.python}`,\n    pythonMustBeEnabledOnOneSite: `O ${common.python} deve estar habilitado em pelo menos um site para definir as configurações globais do ${common.python}.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Legacy X-Forwarded-* headers'; // TODO: translate\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `O ${common.reverseProxy} deve estar habilitado em pelo menos um site para definir as configurações globais do ${common.reverseProxyLower}.`,\n    seconds: 'segundos',\n    passOn: `${legacyXForwarded} passed on`, // TODO: translate\n    remove: `${legacyXForwarded} actively removed`, // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Ao utilizar o ${common.wordPress}, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> é frequentemente exigido na Política de Segurança de Conteúdo para permitir que o painel de administração funcione corretamente.`,\n    security: 'Segurança',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Estrutura modularizada',\n    enableModularizedConfigFiles: `${common.enable} arquivos de configuração modularizada`,\n    symlinkVhost: 'Symlink para vhost',\n    enableSymLinksFrom: `${common.enable} symlinks de`,\n    to: 'para',\n    shareConfiguration: 'Compartilhar configuração',\n    resetConfiguration: 'Redefinir configuração',\n    resetGlobalConfig: 'Redefinir configuração global',\n    resetAllDomains: 'Redefinir todos os domínios',\n    removeAllDomains: 'Remover todos os domínios',\n    resetAllDomainsConfig: 'Redefinir todas as configurações de domínios',\n    resetDomainConfig: 'Redefinir configuração de domínio',\n    removeDomain: 'Remover domínio',\n    yesImSure: 'Sim, tenho certeza',\n    noCancel: 'Não, cancelar',\n    tools: 'Ferramentas',\n    resetGlobalConfigBody:\n        'Tem certeza de que deseja redefinir todas as opções de configuração na seção de configuração global?',\n    resetAllDomainsConfigBody:\n        'Tem certeza de que deseja redefinir a configuração de TODOS os domínios?',\n    removeAllDomainsBody: 'Tem certeza de que deseja remover TODAS as configurações de domínio?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'Tem certeza de que deseja redefinir todas as opções de configuração para o',\n    domain: 'domínio?',\n    areYouSureYouWantToRemoveThe: 'Tem certeza de que deseja remover a ',\n    domainConfiguration: 'configuração do domínio?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/setup.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Baixar a configuração',\n    copyBase64: 'Cópia Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Comente as diretivas relacionadas ao ${common.ssl} na configuração:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `Recarregue seu servidor ${common.nginx}:`,\n    obtainSslCertificatesFromLetsEncrypt: `Obtenha certificados ${common.ssl} de ${common.letsEncrypt} usando o ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Descomente as diretivas relacionadas ao ${common.ssl} na configuração:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Configure o ${certbot} para recarregar o ${common.nginx} quando ele renovar certificados com sucesso:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `O ${certbot} não precisa ser definido para sua configuração ${common.nginx}.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>Baixe</b> a configuração gerada:',\n    andUploadItToYourServers: 'e <b>carregue-a</b> para o',\n    directory: 'diretórioi do seu servidor.',\n    or: 'ou, ',\n    copyBase64StringOfCompressedConfig: 'Copie uma string base64 da configuração compactado',\n    pasteItInYourServersCommandLineAndExecute:\n        ', cole-a na linha de comando do seu servidor e execute-a.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Navegue até o <b>diretório de configuração</b> do ${common.nginx} em seu servidor:`,\n    createABackupOfYourCurrentNginxConfiguration: `Crie um <b>backup</b> da sua configuração atual do ${common.nginx}:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Extraia</b> o novo arquivo de configuração compactado usando tar:',\n    download: 'Baixar',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: 'Vamos colocar no ar!',\n    reloadNginxToLoadInYourNewConfiguration: `Recarregue o ${common.nginx} para carregar a sua nova configuração:`,\n    goLive: 'Está no ar!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/pt-br/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Gere <b>chaves Diffie-Hellman</b> executando este comando em seu servidor:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Crie um diretório comum <b>ACME-challenge</b> (para o <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `Nenhuma etapa adicional é necessária para configurar o ${common.ssl} para a sua configuração ${common.nginx}.`,\n    sslInit: `${common.ssl} init`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/common.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: 'Назад',\n    next: 'Дальше',\n    enable: 'включить',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: 'Логирование',\n    reverseProxy: 'Обратный прокси',\n    reverseProxyLower: 'обратный прокси',\n    restrict: 'Ограничить',\n    path: 'Путь',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: 'Английский',\n    es: 'испанский',\n    zhCN: 'Китайский (упрощённый)',\n    zhTW: 'Китайский (традиционный)',\n    ptBR: 'Португальский (бразильский)',\n    fr: 'Французский',\n    ru: 'Русский',\n    pl: 'Польский',\n    de: 'Немецкий',\n    ja: 'Японский',\n    fa: 'Фарси',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `Самый простой способ настроить производительный, безопасный и стабильный ${common.nginx} сервер.`,\n    singleColumnMode: 'Одноколоночный режим',\n    splitColumnMode: 'Режим разделения столбца',\n    perWebsiteConfig: 'Конфигурация для каждого сайта',\n    addSite: 'Добавить сайт',\n    globalConfig: 'Глобальная конфигурация',\n    setup: 'Настройка',\n    configFiles: 'Файлы конфигурации',\n    copied: 'Скопировано',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges:\n        '👋 Хотите запросить новые функции, внести изменения или перевести инструмент на новый язык?',\n    getInvolvedOnGitHub: 'Посмотреть на GitHub',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 Ищете место для развертывания новой конфигурации?',\n    tryOutDigitalOceansDroplet: 'Попробуйте LEMP Droplet от DigitalOcean с NGINX',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable} зашифрованные ${common.ssl} соединения`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} ${common.http}/2 соединения`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} ${common.http}/3 соединения`,\n    forceHttps: `Использовать только ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} Strict Transport Security, требующая HTTPS соединения`,\n    enableIncludeSubDomains: `${common.enable} includeSubDomains директиву, требующая HTTPS соединения для ВСЕХ поддоменов`,\n    enablePreload: `${common.enable} preload директиву, указывающая браузерам всегда устанавливать только HTTPS-соединения`,\n    certificationType: 'Тип сертификации',\n    customCertificate: 'Другой сертификат',\n    letsEncryptEmail: `${common.letsEncrypt} email`,\n    http3IsANonStandardModule: 'HTTP/3 не является стандартным модулем NGINX, ознакомьтесь с ',\n    http3NginxQuicReadme: 'readme NGINX QUIC',\n    http3OrThe: ' или с ',\n    http3CloudflareQuicheProject: 'проектом Cloudflare quiche',\n    http3ForBuildingNginxWithHttp3: ' чтобы узнать как собрать NGINX с HTTP/3!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: 'по домену',\n    enableForThisDomain: `${common.enable} для этого домена`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = 'Onion';\n\nexport default {\n    onion,\n    onionLocation: `Расположение ${onion}`,\n    provideAnOnionLocationToSetOnionLocationHeader: `Укажите расположение ${onion}, чтобы задать заголовок Onion-Location для Вашего сайта.`,\n    letsVisitorsKnownOnionServicesIsAvailable: `Это позволит узнать посетителям, что у Вашего сайта есть ${onion}-версия, доступная в браузере Tor.`,\n    learnMoreAboutOnionServices: `Узнайте больше об ${onion}`,\n    onionLocationExpectedToEndWithOnion: `Адреса ${onion} обычно оканчиваются на \\`.onion\\`.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} выключен.`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} не может быть включен, пока включен обратный прокси.`,\n    phpCannotBeEnabledWithPython: `${common.php} не может быть включен, пока включен ${common.python}.`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `${common.wordPress} правила`,\n    enableWordPressRules: `${common.enable} ${common.wordPress}-специфичные правила`,\n    drupalRules: `${common.drupal} правила`,\n    enableDrupalRules: `${common.enable} ${common.drupal}-специфичные правила`,\n    magentoRules: `${common.magento} правила`,\n    enableMagentoRules: `${common.enable} ${common.magento}-специфичные правила`,\n    joomlaRules: `${common.joomla} правила`,\n    enableJoomlaRules: `${common.enable} ${common.joomla}-специфичные правила`,\n    phpServer: `${common.php} сервер`,\n    phpBackupServer: `${common.php} бекап сервер`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM сокет',\n    php70Socket: '7.0 сокет',\n    php71Socket: '7.1 сокет',\n    php72Socket: '7.2 сокет',\n    php73Socket: '7.3 сокет',\n    php74Socket: '7.4 сокет',\n    php80Socket: '8.0 сокет',\n    php81Socket: '8.1 сокет',\n    php82Socket: '8.2 сокет',\n    phpSocket: 'PHP сокет',\n    custom: 'Другой',\n    disabled: 'Выключено',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: 'Пресеты',\n    itLooksLikeYouCustomisedTheConfig:\n        'Похоже, вы уже настроили конфигурацию для этого домена. Выбор нового пресета может привести к сбросу или изменению некоторых настроек, которые Вы настроили ранее.',\n    frontend: 'Фронтенд',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'Одностраничное приложение',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} выключен.`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} не может быть включен, пока включен обратный прокси.`,\n    pythonCannotBeEnabledWithPhp: `${common.python} не может быть включен, пока включен ${common.php}.`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `${common.django} правила`,\n    enableDjangoRules: `${common.enable} ${common.django}-специфичные правила`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: 'выключено для этого домена',\n    responseCode: 'Код ответа',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} выключено.`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} не может быть включен, пока включен ${common.php}.`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} не может быть включен, пока включен ${common.python}.`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: 'Fallback маршрутизация',\n    fallbackRoutingPhpPath: `Путь к Fallback ${common.php}`,\n    legacyPhpRouting: `Устаревшая маршрутизация ${common.php}`,\n    enableLegacyRouting: `${common.enable} устаревшую маршрутизацию`,\n    routing: 'Маршрутизация',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: 'Домен',\n    documentRoot: 'Корневая директория',\n    oneOrMoreOtherDomainsAreAlsoNamed: 'Один или несколько других доменов также названы',\n    thisWillCauseIssuesWithConfigGeneration: 'Это вызовет проблемы с генерацией конфигурации.',\n    wwwSubdomain: 'WWW поддомен',\n    cdnSubdomain: 'CDN поддомен',\n    redirectSubdomains: 'Перенаправлять поддомены',\n    server: 'Сервер',\n    listen: 'Слушать от адреса',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/footer.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: 'Вернуться в начало',\n    thisToolIs: 'Этот инструмент',\n    openSourceOnGitHub: 'с открытым исходным кодом на GitHub',\n    underThe: 'под',\n    mit: 'MIT',\n    license: 'лицензией!',\n    weWelcomeFeedbackAndContributions: 'Мы приветствуем обратную связь и поддержку.',\n    originallyCreatedBy: 'Начало проекта положил',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: 'при поддержке',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `Применить настройки ${docker}`,\n    applyDockerTweaksForNginx: `Примените настройки конфигурации для запуска ${common.nginx} с ${docker}`,\n    applyDockerTweaksExplainer: `Обновляет пользователя ${common.nginx} на <code class=\"slim\">nginx</code> и pid на <code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `Добавить ${dockerfile}, чтобы запустить ${common.nginx} с ${docker}`,\n    includeDockerCompose: `Добавить docker-compose, чтобы запустить ${common.nginx} с docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl} Профиль`,\n    httpsMustBeEnabledOnOneSite: `${common.https} должен быть включен хотя бы на одном сайте, чтобы сконфигурировать глобальные ${common.https} настройки.`,\n    portReuse: 'Reuseport',\n    enableReuseOfPort: `${common.enable} reuseport чтобы создавать отдельный слушающий сокет для каждого рабочего процесса`,\n    ocspDnsResolvers: 'OCSP DNS Преобразователи',\n    cloudflareResolver: 'Cloudflare Преобразователь',\n    googlePublicDns: 'Публичные Google DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `Директория ${common.letsEncrypt}`,\n    letsEncryptCertRoot: `Директория сертификата ${common.letsEncrypt}`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `только ${ipv4}`,\n    ipv6Only: `только ${ipv6}`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable} логирование ошибок для файлов, которые не были найдены при запросе`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: 'добавить Cloudflare хедеры запроса в дефолтный формат логов',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `Директория конфигурации ${common.nginx}`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Gzip сжатие',\n    enableGzipCompression: `${common.enable} gzip сжатие`,\n    brotliCompression: 'Brotli сжатие',\n    enableBrotliCompression: `${common.enable} brotli сжатие`,\n    brotliIsANonStandardModule: \"Brotli isn't a standard NGINX module, check the \", // TODO: translate\n    brotliGoogleNgxBrotliProject: 'Google ngx_brotli project', // TODO: translate\n    brotliForBuildingNginxWithBrotli: ' for how to build NGINX with Brotli!', // TODO: translate\n    expirationForAssets: 'Истечение срока для ассетов',\n    expirationForMedia: 'Истечение срока для медиа файлов',\n    expirationForSvgs: 'Истечение срока для SVG файлов',\n    expirationForFonts: 'Истечение срока для шрифтов',\n    performance: 'Производительность',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} сервер`,\n    pythonMustBeEnabledOnOneSite: `${common.python} должен быть включен как минимум на одном сайте, чтобы сконфигурировать глобальные настройки ${common.python}.`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = 'Legacy X-Forwarded-* headers'; // TODO: translate\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `${common.reverseProxy} должен быть включен как минимум на одном сайте, чтобы сконфигурировать глобальные настройки ${common.reverseProxyLower}.`,\n    seconds: 'секунд',\n    passOn: `${legacyXForwarded} passed on`, // TODO: translate\n    remove: `${legacyXForwarded} actively removed`, // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `Во время использования ${common.wordPress}, <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> часто требуется в Content Security Policy, чтобы панель администратора работала исправно.`,\n    security: 'Безопасность',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: 'Модульная структура',\n    enableModularizedConfigFiles: `${common.enable} модульную структуру для файлов конфигурации`,\n    symlinkVhost: 'Symlink vhost',\n    enableSymLinksFrom: `${common.enable} symlinks из`,\n    to: 'в',\n    shareConfiguration: 'Поделиться конфигурацией',\n    resetConfiguration: 'Сбросить конфигурацию',\n    resetGlobalConfig: 'Сбросить глобальную конфигурацию',\n    resetAllDomains: 'Сбросить все домены',\n    removeAllDomains: 'Удалить все домены',\n    resetAllDomainsConfig: 'Сбросить конфигурации всех доменов',\n    resetDomainConfig: 'Сбросить конфигурацию домена',\n    removeDomain: 'Удалить домен',\n    yesImSure: 'Да, я уверен',\n    noCancel: 'Нет, отменить',\n    tools: 'Инструменты',\n    resetGlobalConfigBody:\n        'Вы уверены, что хотите сбросить все параметры конфигурации в разделе глобальной конфигурации?',\n    resetAllDomainsConfigBody: 'Вы уверены, что хотите сбросить конфигурацию ВСЕХ доменов?',\n    removeAllDomainsBody: 'Вы действительно хотите удалить ВСЕ конфигурации домена?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe:\n        'Вы действительно хотите сбросить все параметры конфигурации для',\n    domain: 'домена?',\n    areYouSureYouWantToRemoveThe: 'Вы уверены, что желаете удалить ',\n    domainConfiguration: 'конфигурацию домена?',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/setup.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: 'Скачать конфигурацию',\n    copyBase64: 'Копировать Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `Закомментируйте директивы, связанные с ${common.ssl} в конфигурации:`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `Перезагрузите свой ${common.nginx} сервер:`,\n    obtainSslCertificatesFromLetsEncrypt: `Получите ${common.ssl} сертификат ${common.letsEncrypt} используя ${certbot}:`,\n    uncommentSslDirectivesInConfiguration: `Раскомментируйте директивы, связанные с ${common.ssl} в конфигурации:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `Настройте ${certbot}, чтобы перезагрузить ${common.nginx}, когда сертификаты успешно обновятся:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} не нужно настраивать для вашей ${common.nginx} конфигурации.`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>Скачать</b> сгенерированную конфигурацию:',\n    andUploadItToYourServers: 'и <b>загрузить</b> её на Ваш сервер',\n    directory: 'директория.',\n    or: 'или, ',\n    copyBase64StringOfCompressedConfig: 'Скопируйте Base64 c сжатой конфигурацией',\n    pasteItInYourServersCommandLineAndExecute:\n        ', вставьте это в Вашу командную строку на сервере и запустите.',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `Перейдите в <b>папку конфигурации</b> ${common.nginx} на Вашем сервере:`,\n    createABackupOfYourCurrentNginxConfiguration: `Сделайте <b>резервную копию</b> Вашей нынешней ${common.nginx} конфигурации:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar:\n        '<b>Извлеките</b> архив с новой конфигурацией с помощью использованием tar:',\n    download: 'Скачать',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: 'Время запуска!',\n    reloadNginxToLoadInYourNewConfiguration: `Перезагрузите ${common.nginx}, чтобы запустить его с новой конфигурацией:`,\n    goLive: 'Запустить!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/ru/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        'Сгенерируйте <b>ключи Диффи-Хеллмана</b>, запустив следующую команду на своем сервере:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `Создайте директорию хранения <b>ACME-challenge</b> (для <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `Больше ничего не требуется, чтобы настроить ${common.ssl} в Вашей ${common.nginx} конфигурации.`,\n    sslInit: `${common.ssl} init`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/setup.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { createI18n } from 'vue-i18n';\nimport { defaultPack, defaultPackData, toSep, availablePacks } from '../util/language_packs.js';\n\n// Load in the full default pack\nconst i18nPacks = {};\ni18nPacks[defaultPack] = defaultPackData;\nconst loadedI18nPacks = [defaultPack];\n\n// Cache the i18n instance\nlet i18n = null;\n\nexport const getI18n = async () => {\n    // Use cached if available\n    if (i18n) return i18n;\n\n    // Load in languages data from other packs\n    // Use webpack magic to only build chunks for lang/languages.js\n    // These are eagerly loaded by Webpack, so don't generate extra chunks, and return an already resolved Promise\n    for (const availablePack of availablePacks) {\n        if (availablePack === defaultPack) continue;\n        if (i18nPacks[availablePack]) continue;\n        const { default: languageData } = await import(\n            /* webpackInclude: /i18n[\\/\\\\][^\\/\\\\]+[\\/\\\\]languages\\.js$/ */\n            /* webpackMode: \"eager\" */\n            `./${toSep(availablePack, '-')}/languages.js`\n        );\n        i18nPacks[availablePack] = { languages: languageData };\n    }\n\n    // Store and return the i18n instance with the loaded packs\n    i18n = createI18n({\n        locale: defaultPack,\n        fallbackLocale: defaultPack,\n        messages: i18nPacks,\n    });\n    return i18n;\n};\n\nconst loadLanguagePack = async (pack) => {\n    // If same language, do nothing\n    if (i18n.locale === pack) return;\n\n    // If language already loaded, do nothing\n    if (loadedI18nPacks.includes(pack)) return;\n\n    // Load in the full pack\n    // Use webpack magic to only build chunks for lang/index.js\n    const { default: packData } = await import(\n        /* webpackInclude: /i18n[\\/\\\\][^\\/\\\\]+[\\/\\\\]index\\.js$/ */\n        /* webpackMode: \"lazy\" */\n        `./${toSep(pack, '-')}/index.js`\n    );\n    i18nPacks[pack] = packData;\n};\n\nexport const setLanguagePack = async (pack) => {\n    // If i18n not loaded, do nothing\n    if (!i18n) return;\n\n    // Load the pack if not already loaded, and set it as active\n    await loadLanguagePack(pack);\n    i18n.global.locale = pack;\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/verify.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { readdirSync, readFileSync } from 'fs';\nimport { join, sep } from 'path';\nimport { URL } from 'url';\nimport chalk from 'chalk';\nimport { defaultPack, availablePacks, toSep, fromSep } from '../util/language_packs.js';\nimport snakeToCamel from '../util/snake_to_camel.js';\n\n// Recursively get all keys in a i18n pack object fragment\nconst explore = (packFragment) => {\n    const foundKeys = new Set();\n\n    for (const [key, value] of Object.entries(packFragment)) {\n        // If this is an actual translation, store the key\n        if (typeof value === 'string') {\n            foundKeys.add(key);\n            continue;\n        }\n\n        // Otherwise, assume this is another fragment and explore it recursively\n        explore(packFragment[key]).forEach((exploreKey) => foundKeys.add(`${key}.${exploreKey}`));\n    }\n\n    return foundKeys;\n};\n\n// Recursively get all the files in a i18n pack directory\nconst files = (directory) => {\n    const foundFiles = new Set();\n\n    for (const dirent of readdirSync(new URL(`./${directory}`, import.meta.url), {\n        withFileTypes: true,\n    })) {\n        const base = join(directory, dirent.name);\n\n        // If this is a file, store it\n        if (dirent.isFile()) {\n            foundFiles.add(base);\n            continue;\n        }\n\n        // If this is a directory, recurse\n        if (dirent.isDirectory()) {\n            files(base).forEach((recurseFile) => foundFiles.add(recurseFile));\n        }\n\n        // Otherwise, ignore this\n    }\n\n    return foundFiles;\n};\n\n// Get all the todo items in a file\nconst todos = (file) => {\n    const content = readFileSync(new URL(`./${file}`, import.meta.url), 'utf8');\n    const lines = content.split('\\n');\n    const items = [];\n\n    for (let i = 0; i < lines.length; i++) {\n        const line = lines[i];\n        const match = line.match(/\\/\\/\\s*todo([([].*?[)\\]])?\\s*:?\\s*(.*)/i);\n        if (match) items.push([i + 1, line, match[0], match[1], match[2]]);\n    }\n\n    return items;\n};\n\n// Convert a pack file to a pack object key\nconst fileToObject = (file) =>\n    file\n        // Drop language pack prefix\n        .split(sep)\n        .slice(1)\n        .join(sep)\n        // Drop js extension\n        .split('.')\n        .slice(0, -1)\n        .join('.')\n        // Replace sep with period and use camelCase\n        .split(sep)\n        .map((dir) => snakeToCamel(dir))\n        .join('.');\n\nconst main = async () => {\n    // Load all the packs in\n    const packs = {};\n    const packDirectories = readdirSync(new URL('./', import.meta.url), { withFileTypes: true })\n        .filter((dirent) => dirent.isDirectory())\n        .map((dirent) => dirent.name);\n    for (const packDirectory of packDirectories)\n        packs[fromSep(packDirectory, '-')] = await import(`./${packDirectory}/index.js`).then(\n            (pack) => pack.default,\n        );\n\n    // Get all the keys for the default \"source\" language pack\n    const defaultKeys = explore(packs[defaultPack]);\n\n    // Track if we need to exit with an error\n    let hadError = false;\n\n    // Work through all the packs and compare to default\n    for (const [pack, packData] of Object.entries(packs)) {\n        console.log(chalk.underline(`Language pack \\`${pack}\\``));\n\n        // Get the base data\n        const packKeys = explore(packData);\n        const packFiles = files(toSep(pack, '-'));\n        console.log(\n            `  Found ${packKeys.size.toLocaleString()} keys, ${packFiles.size.toLocaleString()} files`,\n        );\n\n        // Track all our errors and warnings\n        const errors = [],\n            warnings = [];\n\n        // Get all the keys and the set differences\n        const missingKeys = [...defaultKeys].filter((x) => !packKeys.has(x));\n        const extraKeys = [...packKeys].filter((x) => !defaultKeys.has(x));\n\n        // Missing keys and extra keys are errors\n        missingKeys.forEach((key) => errors.push(`Missing key \\`${key}\\``));\n        extraKeys.forEach((key) => errors.push(`Unexpected key \\`${key}\\``));\n\n        // Get all the files in the pack directory\n        const packKeyFiles = new Set(\n            [...packFiles].filter((file) => file.split(sep).slice(-1)[0] !== 'index.js'),\n        );\n\n        // Get the objects from the pack keys\n        const packKeyObjects = new Set(\n            [...packKeys].map((key) => key.split('.').slice(0, -1).join('.')),\n        );\n\n        // Warn for any files that aren't used as pack objects\n        [...packKeyFiles]\n            .filter((file) => !packKeyObjects.has(fileToObject(file)))\n            .forEach((file) => warnings.push(`Unused file \\`${file}\\``));\n\n        // Locate any todos in each file as a warning\n        for (const file of packFiles)\n            todos(file).forEach((todo) => warnings.push(`TODO in \\`${file}\\` on line ${todo[0]}`));\n\n        // Output the pack results\n        if (warnings.length)\n            for (const warning of warnings) console.warn(`  ${chalk.yellow('warning')} ${warning}`);\n        if (errors.length)\n            for (const error of errors) console.error(`  ${chalk.red('error')}   ${error}`);\n        if (!errors.length && !warnings.length) console.log(`  ${chalk.green('No issues')}`);\n\n        // If we had errors, script should exit 1\n        if (errors.length) hadError = true;\n\n        // Linebreak before next pack or exit\n        console.log(chalk.reset());\n    }\n\n    // Check available language packs\n    const packKeys = Object.keys(packs);\n    const missingPacks = packKeys.filter((x) => !availablePacks.includes(x));\n    const extraPacks = availablePacks.filter((x) => !packKeys.includes(x));\n\n    // Missing packs and extra packs are errors\n    missingPacks.forEach((pack) =>\n        console.error(\n            `${chalk.red('error')} Language pack \\`${pack}\\` not included in \\`availablePacks\\``,\n        ),\n    );\n    extraPacks.forEach((pack) =>\n        console.error(\n            `${chalk.red(\n                'error',\n            )} Language pack \\`${pack}\\` included in \\`availablePacks\\` but not found`,\n        ),\n    );\n    if (missingPacks.length || extraPacks.length) hadError = true;\n\n    // Exit 1 if we had errors\n    if (hadError) process.exit(1);\n};\n\nmain()\n    .then(() => {})\n    .catch((err) => {\n        console.error(err);\n        process.exit(1);\n    });\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/common.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: '返回',\n    next: '下一个',\n    enable: '启用',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: '日志记录',\n    reverseProxy: '反向代理',\n    reverseProxyLower: '反向代理',\n    restrict: '限制',\n    path: '路径',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: '英语',\n    es: '西班牙语',\n    zhCN: '简体中文',\n    zhTW: '繁体中文',\n    ptBR: '葡萄牙语 (巴西)',\n    fr: '法语',\n    ru: '俄语',\n    pl: '波兰语',\n    de: '德语',\n    ja: '日语',\n    fa: '波斯语',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx} 配置`,\n    description: `配置高性能、安全、稳定的${common.nginx}服务器的最简单方法。`,\n    singleColumnMode: '垂直模式',\n    splitColumnMode: '水平模式',\n    perWebsiteConfig: '站点配置',\n    addSite: '添加站点',\n    globalConfig: '全局配置',\n    setup: '使用配置',\n    configFiles: '配置文件',\n    copied: '已复制',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges: '👋 想要申请新的功能，提出修改意见，或将该工具翻译成新的语言？',\n    getInvolvedOnGitHub: '欢迎在 Github 中参与本项目',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 在寻找部署新配置的地方？',\n    tryOutDigitalOceansDroplet: '试用已安装 NGINX 的 DigitalOcean LEMP Droplet。',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable}加密的${common.ssl}连接`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} ${common.http}/2 连接`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} ${common.http}/3 连接`,\n    forceHttps: `强制 ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable}HSTS（强制客户端、浏览器等使用 HTTPS 与服务器创建链接），需要HTTPS连接`,\n    enableIncludeSubDomains: `${common.enable}includeSubDomains指令，HSTS对所有子域生效`,\n    enablePreload: `${common.enable}preload指令, 强制客户端只可以使用https连接`,\n    certificationType: '证书类型',\n    customCertificate: '本地证书',\n    letsEncryptEmail: `${common.letsEncrypt} 邮箱`,\n    http3IsANonStandardModule: 'HTTP/3 并不是一个标准的 NGINX 模块, 请查看 ',\n    http3NginxQuicReadme: 'NGINX QUIC 使用文档',\n    http3OrThe: ' 或者 ',\n    http3CloudflareQuicheProject: 'Cloudflare quiche 项目',\n    http3ForBuildingNginxWithHttp3: ' 以构建支持 HTTP/3 的 NGINX!',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: '在此站点',\n    enableForThisDomain: `为此站点${common.enable}`,\n    arguments: '参数',\n    level: '日志记录级别',\n    forRedirects: '记录重定向',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = '洋葱';\n\nexport default {\n    onion,\n    onionLocation: `${onion}位置`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        '提供一个洋葱位置地址，为您的站点设置洋葱协议头。',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        '这可以让访问者知道你的网站的洋葱服务版本可用于Tor浏览器。',\n    learnMoreAboutOnionServices: '了解有关洋葱服务的更多信息',\n    onionLocationExpectedToEndWithOnion: '洋葱位置地址通常以.onion结尾。',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php}已禁用。`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php}在启用${common.reverseProxy}时无法启用。`,\n    phpCannotBeEnabledWithPython: `${common.php} 在启用${common.python}时无法启用。`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `${common.wordPress} 规则`,\n    enableWordPressRules: `${common.enable} ${common.wordPress}专属规则`,\n    drupalRules: `${common.drupal} 规则`,\n    enableDrupalRules: `${common.enable} ${common.drupal}专属规则`,\n    magentoRules: `${common.magento} 规则`,\n    enableMagentoRules: `${common.enable} ${common.magento}专属规则`,\n    joomlaRules: `${common.joomla} 规则`,\n    enableJoomlaRules: `${common.enable} ${common.joomla}专属规则`,\n    phpServer: `${common.php} 服务`,\n    phpBackupServer: `${common.php}备份服务器`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM socket',\n    php70Socket: '7.0 socket',\n    php71Socket: '7.1 socket',\n    php72Socket: '7.2 socket',\n    php73Socket: '7.3 socket',\n    php74Socket: '7.4 socket',\n    php80Socket: '8.0 socket',\n    php81Socket: '8.1 socket',\n    php82Socket: '8.2 socket',\n    phpSocket: 'PHP socket',\n    custom: '自定义',\n    disabled: '禁用',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: '预设',\n    itLooksLikeYouCustomisedTheConfig:\n        '看起来您已经为这个站点定制了配置。选择新的预设可能会重置或更改一些您已经定制的设置。',\n    frontend: '前端',\n    nodeJs: 'Node.js',\n    singlePageApplication: '单页面应用',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python}已禁用。`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python}在启用${common.reverseProxy}时无法启用。`,\n    pythonCannotBeEnabledWithPhp: `${common.python}在启用${common.php}时无法启用。`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `${common.django} 规则`,\n    enableDjangoRules: `${common.enable} ${common.django}专属规则`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: '在此站点上禁用',\n    responseCode: '响应代码',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy}已禁用。`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy}在启用${common.php}时无法启用。`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy}在启用${common.python}时无法启用。`,\n    enableReverseProxy: `${common.enable} ${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: '后备路由',\n    fallbackRoutingPhpPath: `后备路由${common.php}路径`,\n    legacyPhpRouting: `传统${common.php}路由`,\n    enableLegacyRouting: `${common.enable}传统路由`,\n    routing: '路由设置',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: '站点',\n    documentRoot: '运行目录',\n    oneOrMoreOtherDomainsAreAlsoNamed: '发现了重复的域名',\n    thisWillCauseIssuesWithConfigGeneration: '这将导致生成配置出现问题。',\n    wwwSubdomain: 'www 子域名',\n    cdnSubdomain: 'CDN 子域名',\n    redirectSubdomains: '子域名重定向',\n    server: '服务',\n    listen: '监听',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/footer.js",
    "content": "/*\nCopyright 2023 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: '返回顶部',\n    thisToolIs: '这个工具',\n    openSourceOnGitHub: '开源在GitHub上',\n    underThe: '基于',\n    mit: 'MIT',\n    license: '许可!',\n    weWelcomeFeedbackAndContributions: '我们欢迎您提供反馈和意见。',\n    originallyCreatedBy: '最初创建者',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: '维护者',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} 编排服务`,\n    applyDockerTweaks: `应用${docker}调整`,\n    applyDockerTweaksForNginx: `为使用${docker}运行${common.nginx}进行配置调整。`,\n    applyDockerTweaksExplainer: `将${common.nginx}用户更新为<code class=\"slim\">nginx</code>，将pid更新为<code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `生成${dockerfile}运行${common.nginx}与${docker}`,\n    includeDockerCompose: `生成docker-compose.yaml来运行${common.nginx} docker-compose`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl}配置`,\n    httpsMustBeEnabledOnOneSite: `必须在至少一个站点上启用${common.https}才能配置全局${common.https}设置。`,\n    portReuse: '端口重用',\n    enableReuseOfPort: `${common.enable} 重用端口 为每个 NGINX Worker 单独生成一个监听套接字`,\n    ocspDnsResolvers: 'OCSP DNS解析器',\n    cloudflareResolver: 'Cloudflare解析器',\n    googlePublicDns: '谷歌公共DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} Web根目录`,\n    letsEncryptCertRoot: `${common.letsEncrypt}证书目录`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `${ipv4}`,\n    ipv6Only: `${ipv6}`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable}“文件未找到”错误日志：`,\n    logformat: 'log_format',\n    level: '日志记录级别',\n    enableCloudflare: '将Cloudflare请求头部添加到默认日志格式',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `${common.nginx}配置目录`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: '禁用 HTML 缓存',\n    enableDisableHtmlCaching: '禁用 HTML 缓存',\n    gzipCompression: 'Gzip 压缩',\n    enableGzipCompression: `${common.enable} Gzip 压缩`,\n    brotliCompression: 'Brotli 压缩',\n    enableBrotliCompression: `${common.enable} Brotli 压缩`,\n    brotliIsANonStandardModule: 'Brotli 并不是一个 standard NGINX 模块, 请查看 ',\n    brotliGoogleNgxBrotliProject: 'Google ngx_brotli 项目',\n    brotliForBuildingNginxWithBrotli: ' 以构建支持 Brotli 的 NGINX!',\n    expirationForAssets: '资源有效期',\n    expirationForMedia: '媒体资源有效期',\n    expirationForSvgs: 'SVGs有效期',\n    expirationForFonts: '字体有效期',\n    performance: '性能',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} 服务`,\n    pythonMustBeEnabledOnOneSite: `必须在至少一个站点上启用${common.python}才能配置全局${common.python}设置。`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = '传统 X-Forwarded-* 请求头';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `必须在至少一个站点上启用${common.reverseProxy}才能配置全局${common.reverseProxy}设置。`,\n    seconds: '秒',\n    passOn: `转发 ${legacyXForwarded}`,\n    remove: `自动删除 ${legacyXForwarded}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `当使用${common.wordPress}时，<code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code> 通常需要置于内容安全策略中，以确保管理面板的正常运行。`,\n    security: '安全',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: '模块化结构',\n    enableModularizedConfigFiles: `${common.enable}模块化的配置文件`,\n    symlinkVhost: '符号链接 vhost',\n    enableSymLinksFrom: `${common.enable}符号链接`,\n    to: '到',\n    shareConfiguration: '分享配置',\n    resetConfiguration: '重置配置',\n    resetGlobalConfig: '重置全局配置',\n    resetAllDomains: '重置所有站点',\n    resetAllDomainsConfig: '重置所有站点',\n    removeAllDomains: '删除所有站点',\n    resetDomainConfig: '重置站点配置',\n    removeDomain: '删除站点',\n    yesImSure: '好的',\n    noCancel: '取消',\n    tools: '工具',\n    resetGlobalConfigBody: '您确定要重置全局配置部分中的所有配置选项吗?',\n    resetAllDomainsConfigBody: '您确定要重置所有站点的配置吗?',\n    removeAllDomainsBody: '您确定要删除所有站点的配置吗?',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe: '您确定要重置',\n    domain: '站点的所有配置选项吗?',\n    areYouSureYouWantToRemoveThe: '你确定要删除',\n    domainConfiguration: '的站点配置吗？',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/setup.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: '下载配置',\n    copyBase64: '复制Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `注释掉配置中的${common.ssl}相关指令:`,\n    sslOffDeprecationWarning: `此命令将添加一个临时的 <code class=\"slim\">ssl off</code> 指令，以确保 ${common.ssl} 命令处于未启用状态。这可能会导致 ${common.nginx} 发出警告，但您可以忽略。一旦配置了 ${certbot}，该命令将被移除。`,\n    reloadYourNginxServer: `重新加载你的${common.nginx}服务器:`,\n    obtainSslCertificatesFromLetsEncrypt: `使用${certbot}从 ${common.letsEncrypt} 获得${common.ssl}证书:`,\n    uncommentSslDirectivesInConfiguration: `在配置中取消注释${common.ssl}相关指令:`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `配置${certbot}，当${common.nginx}成功更新证书时重新加载:`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot}不需要为您的${common.nginx}配置进行设置。 `,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>下载</b> 生成的配置:',\n    andUploadItToYourServers: '然后 <b>上传</b> 到你的服务器的',\n    directory: '目录.',\n    or: '或, ',\n    copyBase64StringOfCompressedConfig: '复制压缩配置的base64字符串',\n    pasteItInYourServersCommandLineAndExecute: '，将其粘贴到服务器的命令行并执行。',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `进入你的 ${common.nginx}服务器上的<b>配置目录</b>:`,\n    createABackupOfYourCurrentNginxConfiguration: `创建当前${common.nginx}配置的<b>备份</b>:`,\n    extractTheNewCompressedConfigurationArchiveUsingTar: '使用tar<b>解压</b>新的压缩配置',\n    download: '下载',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: '让我们开始吧！',\n    reloadNginxToLoadInYourNewConfiguration: `重新加载${common.nginx}以载入新的配置:`,\n    goLive: '上线！',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-cn/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        '在您的服务器上运行此命令生成<b>Diffie-Hellman keys</b>:',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `创建一个通用的<b>ACME-challenge</b>目录(用于 <b>${common.letsEncrypt}</b>):`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `无需任何操作，即可为您的${common.nginx}完成${common.ssl}配置`,\n    sslInit: `${common.ssl} 初始化`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/common.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    back: '返回',\n    next: '下一步',\n    enable: '啟用',\n    php: 'PHP',\n    ssl: 'SSL',\n    nginx: 'NGINX',\n    http: 'HTTP',\n    https: 'HTTPS',\n    letsEncrypt: \"Let's Encrypt\",\n    python: 'Python',\n    wordPress: 'WordPress',\n    drupal: 'Drupal',\n    magento: 'Magento',\n    joomla: 'Joomla',\n    django: 'Django',\n    logging: '日誌',\n    reverseProxy: '反向 Proxy',\n    reverseProxyLower: '反向 Proxy',\n    restrict: '限制',\n    path: '路徑',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from './common.js';\nimport languages from './languages.js';\nimport templates from './templates/index.js';\n\nexport default { common, languages, templates };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/languages.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    en: '英語',\n    es: '西班牙語',\n    zhCN: '簡體中文',\n    zhTW: '繁體中文',\n    ptBR: '葡萄牙語（巴西）',\n    fr: '法語',\n    ru: '俄語',\n    pl: '波蘭語',\n    de: '德語',\n    ja: '日語',\n    fa: '波斯語',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/app.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../common.js';\n\nexport default {\n    title: `${common.nginx}Config`,\n    description: `設定高效能、安全、穩定的 ${common.nginx} 伺服器最簡單的方法。`,\n    singleColumnMode: '單欄模式',\n    splitColumnMode: '雙欄模式',\n    perWebsiteConfig: '網站設定',\n    addSite: '新增網站',\n    globalConfig: '全域設定',\n    setup: '使用設定',\n    configFiles: '設定檔',\n    copied: '已複製',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/callouts/contribute.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    wantToContributeChanges: '👋 想要請求新功能，貢獻更動，或將本工具翻譯成新的語言嗎？',\n    getInvolvedOnGitHub: '在 GitHub 上共襄盛舉',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/callouts/droplet.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    lookingForAPlaceToDeploy: '👋 在尋找部署新設定的地方？',\n    tryOutDigitalOceansDroplet: '試試 DigitalOcean 推出的 LEMP Droplet，適用於 NGINX。',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/callouts/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport droplet from './droplet.js';\nimport contribute from './contribute.js';\n\nexport default { droplet, contribute };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableEncryptedSslConnection: `${common.enable}加密的 ${common.ssl} 連線`,\n    http2: `${common.http}/2`,\n    enableHttp2Connections: `${common.enable} ${common.http}/2 連線`,\n    http3: `${common.http}/3`,\n    enableHttp3Connections: `${common.enable} ${common.http}/3 連線`,\n    forceHttps: `強制使用 ${common.https}`,\n    hsts: 'HSTS',\n    enableStrictTransportSecurity: `${common.enable} HSTS（強制安全傳輸），需要 HTTPS 連線`,\n    enableIncludeSubDomains: `${common.enable} includeSubDomains 指令，所有子網域須啟用 HTTPS 連線`,\n    enablePreload: `${common.enable} preload 指令，強制瀏覽器使用 HTTPS 連線`,\n    certificationType: '憑證類型',\n    customCertificate: '自訂憑證',\n    letsEncryptEmail: `${common.letsEncrypt} 電子郵件地址`,\n    http3IsANonStandardModule: 'HTTP/3 並不是標準的 NGINX 模組，請查閱 ',\n    http3NginxQuicReadme: 'NGINX QUIC 說明',\n    http3OrThe: ' 或者 ',\n    http3CloudflareQuicheProject: 'Cloudflare quiche 專案',\n    http3ForBuildingNginxWithHttp3: '以了解如何建置支援 HTTP/3 的 NGINX !',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport php from './php.js';\nimport presets from './presets.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport routing from './routing.js';\nimport server from './server.js';\nimport restrict from './restrict.js';\nimport onion from './onion.js';\n\nexport default {\n    https,\n    logging,\n    php,\n    presets,\n    python,\n    reverseProxy,\n    routing,\n    server,\n    restrict,\n    onion,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    byDomain: '在此網域',\n    enableForThisDomain: `為此網域${common.enable}`,\n    arguments: 'arguments', // TODO: translate\n    level: 'logging level', // TODO: translate\n    forRedirects: 'for redirects', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/onion.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst onion = '洋蔥';\n\nexport default {\n    onion,\n    onionLocation: `${onion}位置`,\n    provideAnOnionLocationToSetOnionLocationHeader:\n        '提供一個洋蔥位址，來為您的網站設定 Onion-Location 標頭。',\n    letsVisitorsKnownOnionServicesIsAvailable:\n        '這可以讓訪客知道您的網站有可用於 Tor 瀏覽器的洋蔥服務版本。',\n    learnMoreAboutOnionServices: '瞭解有關洋蔥服務的更多資訊',\n    onionLocationExpectedToEndWithOnion: '洋蔥位址通常以 .onion 結尾。',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/php.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    phpIsDisabled: `${common.php} 已停用。`,\n    phpCannotBeEnabledWithReverseProxy: `${common.php} 無法與${common.reverseProxy} 同時啟用。`,\n    phpCannotBeEnabledWithPython: `${common.php} 無法與 ${common.python} 同時啟用。`,\n    enablePhp: `${common.enable} ${common.php}`,\n    wordPressRules: `${common.wordPress} 規則`,\n    enableWordPressRules: `${common.enable} ${common.wordPress} 專屬規則`,\n    drupalRules: `${common.drupal} 規則`,\n    enableDrupalRules: `${common.enable} ${common.drupal} 專屬規則`,\n    magentoRules: `${common.magento} 規則`,\n    enableMagentoRules: `${common.enable} ${common.magento} 專屬規則`,\n    joomlaRules: `${common.joomla} 規則`,\n    enableJoomlaRules: `${common.enable} ${common.joomla} 專屬規則`,\n    phpServer: `${common.php} 伺服器`,\n    phpBackupServer: `${common.php} 備份伺服器`,\n    tcp: 'TCP',\n    hhvmSocket: 'HHVM 通訊端',\n    php70Socket: '7.0 通訊端',\n    php71Socket: '7.1 通訊端',\n    php72Socket: '7.2 通訊端',\n    php73Socket: '7.3 通訊端',\n    php74Socket: '7.4 通訊端',\n    php80Socket: '8.0 通訊端',\n    php81Socket: '8.1 通訊端',\n    php82Socket: '8.2 通訊端',\n    phpSocket: 'PHP 通訊端',\n    custom: '自訂',\n    disabled: '停用',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/presets.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    presets: '預設',\n    itLooksLikeYouCustomisedTheConfig:\n        '您似乎調整過此網域的設定。選擇新的預設可能會重置或更改一些您自訂的設定。',\n    frontend: '前端',\n    nodeJs: 'Node.js',\n    singlePageApplication: 'SPA',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonIsDisabled: `${common.python} 已停用。`,\n    pythonCannotBeEnabledWithReverseProxy: `${common.python} 無法與${common.reverseProxy} 同時啟用。`,\n    pythonCannotBeEnabledWithPhp: `${common.python} 無法與 ${common.php} 同時啟用。`,\n    enablePython: `${common.enable} ${common.python}`,\n    djangoRules: `${common.django} 規則`,\n    enableDjangoRules: `${common.enable} ${common.django} 專屬規則`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/restrict.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    disableForThisDomain: '在此網站上停用',\n    responseCode: '響應程式碼',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    reverseProxyIsDisabled: `${common.reverseProxy} 已停用。`,\n    reverseProxyCannotBeEnabledWithPhp: `${common.reverseProxy} 在啟用 ${common.php} 時無法啟用。`,\n    reverseProxyCannotBeEnabledWithPython: `${common.reverseProxy} 在啟用 ${common.python} 時無法啟用。`,\n    enableReverseProxy: `${common.enable}${common.reverseProxyLower}`,\n    proxyHostHeader: 'Proxy Host header', // TODO: translate\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/routing.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    fallbackRouting: '後援路由',\n    fallbackRoutingPhpPath: `後援路由 ${common.php} 路徑`,\n    legacyPhpRouting: `傳統 ${common.php} 路由`,\n    enableLegacyRouting: `${common.enable}傳統路由`,\n    routing: '路由設定',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/domain_sections/server.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    domain: '網域',\n    documentRoot: '檔案根目錄',\n    oneOrMoreOtherDomainsAreAlsoNamed: '發現了重複的網域',\n    thisWillCauseIssuesWithConfigGeneration: '產生設定時將發生錯誤。',\n    wwwSubdomain: 'www 子網域',\n    cdnSubdomain: 'CDN 子網域',\n    redirectSubdomains: '重新導向子網域',\n    server: '服務',\n    listen: '監聽',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/footer.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    backToTop: '返回頁首',\n    thisToolIs: '本工具',\n    openSourceOnGitHub: '於 GitHub 上開源',\n    underThe: '並採用',\n    mit: 'MIT',\n    license: '授權條款！',\n    weWelcomeFeedbackAndContributions: '我們歡迎您提供回饋和貢獻。',\n    originallyCreatedBy: '初始作者',\n    balintSzekeres: 'Bálint Szekeres',\n    maintainedBy: '維護者',\n    digitalOcean: 'DigitalOcean',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/docker.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst docker = 'Docker';\nconst dockerfile = 'Dockerfile';\n\nexport default {\n    docker,\n    dockerfile,\n    dockerCompose: `${docker} Compose`,\n    applyDockerTweaks: `套用 ${docker} 調校`,\n    applyDockerTweaksForNginx: `套用在 ${docker} 中執行 ${common.nginx} 所需的設定調校`,\n    applyDockerTweaksExplainer: `將 ${common.nginx} 使用者設為 <code class=\"slim\">nginx</code>，將 pid 設為<code class=\"slim\">/var/run/nginx.pid</code>`,\n    includeDockerfile: `產生 ${dockerfile} 以使用 ${docker} 來執行 ${common.nginx}`,\n    includeDockerCompose: `產生 docker-compose 以使用 docker-compose 來執行 ${common.nginx}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/https.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst mozilla = 'Mozilla';\nconst ipv4 = 'IPv4';\nconst ipv6 = 'IPv6';\n\nexport default {\n    sslProfile: `${common.ssl} 設定檔`,\n    httpsMustBeEnabledOnOneSite: `必須在至少一個網站上啟用 ${common.https} 才能調整全域 ${common.https} 設定。`,\n    portReuse: '連接埠複用',\n    enableReuseOfPort: `${common.enable}連接埠複用來為每個 worker 產生監聽通訊端`,\n    ocspDnsResolvers: 'OCSP DNS 解析器',\n    cloudflareResolver: 'Cloudflare 解析器',\n    googlePublicDns: 'Google 公共 DNS',\n    openDns: 'OpenDNS',\n    quad9: 'Quad9',\n    verisign: 'Verisign',\n    letsEncryptWebroot: `${common.letsEncrypt} Web 根目錄`,\n    letsEncryptCertRoot: `${common.letsEncrypt} 憑證目錄`,\n    mozillaModern: `${mozilla} Modern`,\n    mozillaIntermediate: `${mozilla} Intermediate`,\n    mozillaOld: `${mozilla} Old`,\n    ipv4Only: `僅 ${ipv4}`,\n    ipv6Only: `僅 ${ipv6}`,\n    ipv4AndIpv6: `${ipv4} & ${ipv6}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport https from './https.js';\nimport logging from './logging.js';\nimport nginx from './nginx.js';\nimport performance from './performance.js';\nimport python from './python.js';\nimport reverseProxy from './reverse_proxy.js';\nimport security from './security.js';\nimport tools from './tools.js';\nimport docker from './docker.js';\n\nexport default {\n    https,\n    logging,\n    nginx,\n    performance,\n    python,\n    reverseProxy,\n    security,\n    tools,\n    docker,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/logging.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    enableFileNotFoundErrorLogging: `${common.enable}｢找不到檔案｣錯誤日誌：`,\n    logformat: 'log_format',\n    level: 'logging level', // TODO: translate\n    enableCloudflare: '將 Cloudflare 請求標頭加入預設日誌格式',\n    cfRay: 'CF-Ray',\n    cfConnectingIp: 'CF-Connecting-IP',\n    xForwardedFor: 'X-Forwarded-For',\n    xForwardedProto: 'X-Forwarded-Proto',\n    trueClientIp: 'True-Client-IP',\n    cfIpCountry: 'CF-IPCountry',\n    cfVisitor: 'CF-Visitor',\n    cdnLoop: 'CDN-Loop',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/nginx.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    nginxConfigDirectory: `${common.nginx} 設定目錄`,\n    mb: 'MB',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/performance.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    disableHtmlCaching: 'Disable HTML caching', // TODO: translate\n    enableDisableHtmlCaching: 'disable HTML caching', // TODO: translate\n    gzipCompression: 'Gzip 壓縮',\n    enableGzipCompression: `${common.enable} Gzip 壓縮`,\n    brotliCompression: 'Brotli 壓縮',\n    enableBrotliCompression: `${common.enable} brotli 壓縮`,\n    brotliIsANonStandardModule: 'Brotli 不是標準的 NGINX 模組，請參考 ',\n    brotliGoogleNgxBrotliProject: 'Google 的 ngx_brotli 專案',\n    brotliForBuildingNginxWithBrotli: ' 來了解如何建置支援 Brotli 的 NGINX!',\n    expirationForAssets: '資源有效期',\n    expirationForMedia: '媒體資源有效期',\n    expirationForSvgs: 'SVG 有效期',\n    expirationForFonts: '字體有效期',\n    performance: '效能',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/python.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    pythonServer: `${common.python} 服務`,\n    pythonMustBeEnabledOnOneSite: `必須在至少一個網站上啟用 ${common.python} 才能調整全域 ${common.python} 設定。`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/reverse_proxy.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst legacyXForwarded = '傳統 X-Forwarded-* 標頭';\n\nexport default {\n    reverseProxyMustBeEnabledOnOneSite: `必須在至少一個網站上啟用${common.reverseProxy} 才能調整全域${common.reverseProxy} 設定。`,\n    seconds: '秒',\n    passOn: `轉發${legacyXForwarded}`,\n    remove: `主動刪除${legacyXForwarded}`,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/security.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality: `使用 ${common.wordPress} 時，通常需在 CSP 中加入 <code class=\"slim\">script-src 'self' 'unsafe-inline' 'unsafe-eval';</code>，以使管理面板正常運作。`,\n    security: '安全性',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/global_sections/tools.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    modularizedStructure: '模組化結構',\n    enableModularizedConfigFiles: `${common.enable}模組化的設定檔案`,\n    symlinkVhost: '符號連結 vhost',\n    enableSymLinksFrom: `${common.enable}符號連結`,\n    to: '到',\n    shareConfiguration: '分享設定',\n    resetConfiguration: '重置設定',\n    resetGlobalConfig: '重置全域設定',\n    resetAllDomains: '重置所有網域',\n    removeAllDomains: '移除所有網域',\n    resetAllDomainsConfig: '重置所有網域',\n    resetDomainConfig: '重置網域設定',\n    removeDomain: '移除網域',\n    yesImSure: '是，我確定',\n    noCancel: '取消',\n    tools: '工具',\n    resetGlobalConfigBody: '您確定要重置全域設定中的所有設定嗎？',\n    resetAllDomainsConfigBody: '您確定要重置所有網域的設定嗎？',\n    removeAllDomainsBody: '您確定要移除所有網域的設定嗎？',\n    areYouSureYouWantToResetAllConfigurationOptionsForThe: '您確定要重置',\n    domain: '網域的所有設定嗎？',\n    areYouSureYouWantToRemoveThe: '您確定要移除',\n    domainConfiguration: '的網域設定嗎？',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport app from './app.js';\nimport setup from './setup.js';\nimport footer from './footer.js';\nimport domainSections from './domain_sections/index.js';\nimport globalSections from './global_sections/index.js';\nimport setupSections from './setup_sections/index.js';\nimport callouts from './callouts/index.js';\n\nexport default { app, setup, footer, domainSections, globalSections, setupSections, callouts };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/setup.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default {\n    downloadConfig: '下載配置',\n    copyBase64: '複製 Base64',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/setup_sections/certbot.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nconst certbot = 'Certbot';\n\nexport default {\n    commentOutSslDirectivesInConfiguration: `註解掉設定中的 ${common.ssl} 相關指令：`,\n    sslOffDeprecationWarning: `This command will add a temporary <code class=\"slim\">ssl off</code> directive to ensure that ${common.ssl} directives are not active. This may cause ${common.nginx} to emit a warning, which is safe to ignore. The directive will be removed once ${certbot} is configured.`, // TODO: translate\n    reloadYourNginxServer: `重新載入您的 ${common.nginx} 伺服器：`,\n    obtainSslCertificatesFromLetsEncrypt: `使用 ${certbot} 從 ${common.letsEncrypt} 取得 ${common.ssl} 憑證：`,\n    uncommentSslDirectivesInConfiguration: `在設定中取消註解 ${common.ssl} 相關指令：`,\n    configureCertbotToReloadNginxOnCertificateRenewal: `設定 ${certbot}，當 ${common.nginx} 成功更新憑證時重新載入：`,\n    certbotDoesNotNeedToBeSetupForYourConfiguration: `${certbot} 無須設定。`,\n    certbot,\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/setup_sections/download.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    downloadTheGeneratedConfig: '<b>下載</b>產生的設定：',\n    andUploadItToYourServers: '然後<b>上傳</b>到您的伺服器的',\n    directory: '目錄。',\n    or: '或',\n    copyBase64StringOfCompressedConfig: '複製壓縮過的設定的 base64 字串',\n    pasteItInYourServersCommandLineAndExecute: '，將其貼到伺服器的命令列並執行。',\n    navigateToYourNginxConfigurationDirectoryOnYourServer: `前往您的 ${common.nginx} 伺服器的<b>設定資料夾</b>：`,\n    createABackupOfYourCurrentNginxConfiguration: `建立${common.nginx} 目前設定的<b>備份</b>：`,\n    extractTheNewCompressedConfigurationArchiveUsingTar: '使用 tar <b>解壓縮</b>新的設定：',\n    download: '下載',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/setup_sections/go_live.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    letsGoLive: '好戲上場！',\n    reloadNginxToLoadInYourNewConfiguration: `重新載入 ${common.nginx} 以套用新設定：`,\n    goLive: '上線！',\n};\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport certbot from './certbot.js';\nimport download from './download.js';\nimport goLive from './go_live.js';\nimport ssl from './ssl.js';\n\nexport default { certbot, download, goLive, ssl };\n"
  },
  {
    "path": "src/nginxconfig/i18n/zh-tw/templates/setup_sections/ssl.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport common from '../../common.js';\n\nexport default {\n    generateDiffieHellmanKeysByRunningThisCommandOnYourServer:\n        '在您的伺服器上執行此命令來產生<b>迪菲-赫爾曼密鑰</b>：',\n    createACommonAcmeChallengeDirectoryForLetsEncrypt: `建立一個通用的 <b>ACME-challenge</b> 目錄（用於 <b>${common.letsEncrypt}</b>)：`,\n    noAdditionalStepsAreNeededToSetUpSslForNginx: `您的 ${common.nginx} 設定已完成 ${common.ssl} 設定，無須任何操作。`,\n    sslInit: `${common.ssl} 初始化`,\n};\n"
  },
  {
    "path": "src/nginxconfig/mount.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// Load in the app\nimport './scss/style.scss';\nimport 'vue-select/dist/vue-select.css';\nimport { createApp } from 'vue';\nimport './util/prism_bundle.js';\nimport { getI18n } from './i18n/setup.js';\nimport App from './templates/app.vue';\n\n// Load the i18n languages and run the app\ngetI18n().then((i18n) => {\n    const app = createApp(App);\n    app.use(i18n);\n    app.mount('#app');\n});\n"
  },
  {
    "path": "src/nginxconfig/scss/_callout.scss",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.callout {\n  background: $callout;\n  border-radius: $border-radius;\n  margin: 2rem .5rem 1rem;\n  padding: 1.875rem 1.875rem 1.5rem;\n  transition: opacity $transition;\n\n  &.floating {\n    bottom: 0;\n    box-shadow: inset 0 0 0 $border-size $border;\n    max-width: calc(100% - 1rem);\n    position: fixed;\n    right: 0;\n    width: 22rem;\n    z-index: 100;\n\n    .close {\n      display: flex;\n      flex-flow: row nowrap;\n      margin: 0 0 1.25rem;\n\n      p {\n        flex-grow: 1;\n        margin: 0 .5rem 0 0;\n      }\n\n      a {\n        color: $muted;\n        margin: 0 .5rem;\n        text-decoration: none;\n        transition: color $transition;\n\n        &:hover {\n          color: $text;\n        }\n      }\n    }\n\n    p {\n      @include font-regular;\n    }\n\n    .button {\n      display: block;\n      height: auto;\n      line-height: 1.5rem;\n      min-height: 3rem;\n      padding: .75rem 0;\n      white-space: normal;\n    }\n  }\n\n  p {\n    @include font-medium;\n\n    font-size: 15px;\n    margin: 0;\n    text-align: left;\n\n    a {\n      border-bottom: $border-size dotted $primary;\n      padding: 0 0 $border-size;\n      text-decoration: none;\n\n      &:hover {\n        border-bottom-color: $primary-hover;\n      }\n\n      + i {\n        margin: 0 0 0 .25rem;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_code.scss",
    "content": "/*\nCopyright 2023 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\npre {\n  &[class*=\"language-\"] {\n    padding: .5rem 1rem;\n\n    code {\n      &[class*=\"language-\"] {\n        &,\n        .token {\n          font-family: Consolas, Monaco, \"Andale Mono\", \"Ubuntu Mono\", monospace;\n          font-size: 13.6px;\n          font-weight: normal;\n          line-height: 1.4em;\n        }\n\n        // Fix Bulma & DO Prism styles interfering with default Prism\n        .token {\n          &.number,\n          &.tag,\n          &.entity,\n          &.operator,\n          &.url {\n            background: transparent;\n            border-radius: initial;\n            display: initial;\n            font-size: inherit;\n            margin: initial;\n            padding: initial;\n            text-align: initial;\n            vertical-align: initial;\n          }\n        }\n      }\n    }\n  }\n}\n\n.code-toolbar {\n  > .toolbar {\n    right: calc(.2em + 16px);\n\n    > .toolbar-item {\n      > button {\n        background: rgba($input, .9);\n        border: 1px solid $input-border;\n        color: rgba($input-border, .75);\n        cursor: pointer;\n        transition: color $transition, background $transition;\n\n        &:hover,\n        &:focus {\n          background: $input;\n          color: $input-border;\n        }\n      }\n    }\n  }\n}\n\nmark {\n  background: rgba($highlight, .45);\n  color: inherit;\n  display: inline-block;\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_columns.scss",
    "content": "/*\nCopyright 2023 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.columns {\n  .column-scroll-y {\n    overflow-y: auto;\n    height: 100vh;\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_fields.scss",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.field-row {\n  display: flex;\n  flex-flow: row wrap;\n  margin: 0 -.5rem;\n\n  .field {\n    flex-grow: 1;\n    margin: 0 .5rem;\n    text-align: left;\n  }\n\n  + .field-row,\n  + .field {\n    margin-top: 1rem;\n  }\n}\n\n.field {\n  &.is-horizontal {\n    align-items: center;\n\n    &.is-aligned-top {\n      align-items: flex-start;\n\n      > .field-label {\n        &.has-margin-top {\n          margin-top: .75rem;\n        }\n\n        &.has-small-margin-top {\n          margin-top: .25rem;\n        }\n      }\n\n      > p {\n        @include font-medium;\n\n        color: $dark-grey;\n        font-size: 14px;\n        margin: 0 .5rem;\n      }\n    }\n\n    + .control {\n      margin-top: .5rem;\n    }\n  }\n\n  &.is-grouped {\n    > .control {\n      &:last-child {\n        margin: .25rem 0 0;\n      }\n\n      &:not(:last-child) {\n        margin: .25rem .75rem 0 0;\n      }\n    }\n  }\n\n  .is-changed {\n    input {\n      &:not(.vs__search) { // stylelint-disable-line selector-class-pattern\n        &,\n        &:focus {\n          background: rgba($highlight, .35);\n        }\n      }\n    }\n\n    .checkbox,\n    .radio,\n    .text {\n      background: rgba($highlight, .35);\n    }\n\n    label {\n      &.text {\n        padding: .25rem .5rem;\n      }\n    }\n\n    .v-select {\n      .vs__dropdown-toggle { // stylelint-disable-line selector-class-pattern\n        background: rgba($highlight, .35);\n      }\n    }\n  }\n\n  label {\n    @include font-medium;\n\n    color: $dark-blue;\n    font-size: 1rem;\n\n    &.text {\n      border-radius: $border-radius;\n      color: $dark-grey;\n      display: inline-block;\n      font-size: 14px;\n      padding: 0 .5rem;\n\n      &.message {\n        padding: 0;\n\n        .message-body {\n          display: inline-block;\n        }\n      }\n\n      .fa-external-link-alt {\n        margin: 0 0 0 .25rem;\n      }\n    }\n  }\n\n  .button {\n    &.is-static {\n      background: $panel;\n      border: 1px solid $border;\n      color: $dark-grey;\n      padding: 0 ($margin * 1.5);\n    }\n\n    &.is-tiny {\n      font-size: 14px;\n      height: auto;\n      line-height: normal;\n      margin: .2rem .25rem;\n      padding: ($margin * .5) ($margin * .75);\n    }\n  }\n\n  .control {\n    &:not(.is-expanded) {\n      + .control {\n        &:not(.is-expanded) {\n          margin-top: .25rem;\n        }\n      }\n    }\n\n    input.is-danger {\n      border-color: $danger;\n    }\n  }\n}\n\n.field-body {\n  &.is-vertical {\n    flex-direction: column;\n\n    > .field {\n      &:not(:last-child) {\n        margin-bottom: .75rem;\n      }\n    }\n  }\n}\n\n.checkbox,\n.radio {\n  border-radius: $border-radius;\n  padding: .25rem .5rem;\n\n  .pretty {\n    line-height: 1.25;\n    white-space: initial;\n\n    &.p-icon {\n      font-size: 18px;\n      margin: 0;\n\n      .state {\n        .icon {\n          top: 50%;\n          transform: translateY(-50%);\n\n          &::before {\n            color: $panel;\n            font-size: 14px;\n          }\n        }\n\n        label {\n          @include font-medium;\n\n          color: $dark-grey;\n          font-size: 14px;\n          padding-left: calc(#{$margin * .5} + 1.5em);\n          text-indent: initial;\n\n          &::before,\n          &::after {\n            font-size: 18px;\n            top: 50%;\n            transform: translateY(-50%);\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_files.scss",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.files {\n  h3 {\n    overflow-wrap: break-word;\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_footer.scss",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.footer {\n  .container {\n    p {\n      &:not(:first-child) {\n        + p {\n          margin-top: 0;\n        }\n      }\n\n      i {\n        &[class^=\"fa\"] {\n          margin: 0 0 0 .25rem;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_header.scss",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.header {\n  padding: ($margin * 2) $margin ($margin * 1.5);\n\n  @media (min-width: $breakpoint) {\n    padding: ($margin * 3.75) 0 ($margin * .5);\n  }\n\n  .container {\n    h3 {\n      @include font-medium;\n    }\n\n    form {\n      .input-container {\n        margin: 0;\n      }\n\n      .buttons {\n        > * {\n          margin: 0 0 1rem;\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_modals.scss",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.modal {\n  .modal-card {\n    text-align: left;\n\n    .button {\n      + .button {\n        margin: 0 0 0 .5rem;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_panel.scss",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.panel {\n  margin-top: 0;\n  max-width: calc(100% - 1rem);\n  padding: 1.5rem 0 2rem;\n  text-align: left;\n  width: calc(100% - 1rem);\n\n  // The presets panel has a custom header with a dropdown indicator\n  &.presets {\n    .header-group,\n    .buttons-group {\n      display: flex;\n      flex-flow: row wrap;\n      justify-content: space-between;\n    }\n\n    .header-group {\n      h3 {\n        margin: 0;\n      }\n\n      .button {\n        &.is-tiny {\n          font-size: 20px;\n        }\n      }\n    }\n\n    .message,\n    .buttons-group {\n      margin: 1rem 0 0;\n    }\n\n    .buttons-group {\n      align-items: center;\n\n      .button {\n        margin: 0 .25rem .5rem;\n      }\n    }\n  }\n\n  .container {\n    padding: 0 1.5rem;\n  }\n\n  .tabs {\n    ul {\n      padding: 0 1rem;\n    }\n  }\n\n  // Custom navigation buttons bottom right of the panels\n  .navigation-buttons {\n    align-items: center;\n    display: flex;\n    flex-direction: row;\n    justify-content: flex-end;\n    margin: 1.5rem 1.5rem 0;\n\n    .button {\n      margin-left: .5rem;\n\n      i + span,\n      span + i {\n        margin: 0 0 0 .5rem;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_setup.scss",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.setup {\n  .panel {\n    p {\n      color: $dark-blue;\n      overflow-wrap: break-word;\n\n      a {\n        text-decoration: none;\n      }\n    }\n\n    ol {\n      margin: 0 1rem;\n\n      li {\n        margin: 0 0 1.5rem;\n      }\n    }\n  }\n\n  .buttons {\n    margin: 1rem 0;\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_tabs.scss",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n.tabs {\n  ul {\n    li {\n      display: flex;\n      flex-flow: row nowrap;\n\n      &:hover,\n      &:focus {\n        a {\n          &::after {\n            background: $dark-blue;\n          }\n        }\n      }\n\n      // Light blue color if the user has gone past a tab\n      &.is-before {\n        a {\n          color: mix($dark-grey, $primary);\n\n          &::after {\n            background: rgba($primary, .5);\n          }\n\n          &:hover {\n            color: $dark-blue;\n\n            &::after {\n              background: $dark-blue;\n            }\n          }\n        }\n      }\n\n      // If a user has changed something in the tab, we'll make the text dark always\n      &.is-changed {\n        a {\n          color: $dark-blue;\n        }\n      }\n\n      a {\n        // Support having a remove button inline with the normal tab text\n        &.domain {\n          flex-grow: 1;\n          padding-right: .25rem;\n\n          &::after {\n            border-bottom-right-radius: 0;\n            border-top-right-radius: 0;\n          }\n        }\n\n        &.remove {\n          padding-left: .25rem;\n          transition: color $transition;\n\n          &::after {\n            border-bottom-left-radius: 0;\n            border-top-left-radius: 0;\n          }\n\n          &:hover,\n          &:focus {\n            color: $danger;\n\n            &::after {\n              background: $danger;\n            }\n          }\n\n          i {\n            font-size: .75em;\n            margin: 0;\n          }\n        }\n\n        i {\n          // Add domain button\n          &.fa-plus {\n            font-size: .75em;\n            margin: 0 .35rem 0 0;\n          }\n\n          // Warning icon\n          &.fa-exclamation-triangle {\n            color: $warning-hover;\n            font-size: .9em;\n            margin: 0 0 .1rem .35rem;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/_vue-select.scss",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// stylelint-disable selector-class-pattern\n.v-select {\n  --vs-border-color: #{$border};\n  --vs-border-radius: #{$border-radius};\n  --vs-dropdown-box-shadow: 0 2px 4px #{rgba($dark-blue, .06)};\n  --vs-dropdown-option--active-bg: #{$primary}; // stylelint-disable-line custom-property-pattern\n\n  &.vs--open {\n    > ul {\n      opacity: 1;\n    }\n\n    .vs__dropdown-toggle {\n      border-color: $primary;\n      box-shadow: 0 0 2px rgba($success, .5);\n\n      .vs__selected {\n        height: $height;\n        position: unset;\n        top: .75em;\n      }\n\n      .vs__search {\n        position: absolute;\n        width: 100%;\n      }\n    }\n  }\n\n  > ul {\n    display: block !important;\n    margin: 0;\n    opacity: 0;\n    transition: opacity $transition;\n  }\n\n  .vs__dropdown-toggle {\n    box-shadow: none;\n    padding: 0 16px;\n    transition: border $transition, box-shadow $transition;\n\n    .vs__selected-options {\n      padding: 0;\n\n      .vs__selected {\n        margin: 0;\n        padding: 0;\n        transition: opacity $transition;\n\n        .has-icon {\n          align-items: center;\n          display: flex;\n\n          .icon {\n            color: $dark-grey;\n            font-size: 1.25rem;\n            margin: 0 .5rem 0 0;\n          }\n        }\n      }\n\n      .vs__search {\n        &,\n        &:focus {\n          background: none;\n          border: 0;\n          box-shadow: none;\n          margin: 0;\n          padding: 0;\n          width: 0;\n        }\n      }\n    }\n\n    .vs__actions {\n      padding: 0 0 0 .25rem;\n    }\n  }\n\n  .vs__dropdown-menu {\n    .vs__dropdown-option {\n      padding: .25rem 1.25rem;\n      white-space: normal;\n    }\n  }\n}\n"
  },
  {
    "path": "src/nginxconfig/scss/style.scss",
    "content": "/*\nCopyright 2023 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n$header: #0071fe;\n$highlight: #f2c94c;\n$callout: #f3f5f9;\n\n@import \"~do-bulma/src/style\";\n\n.do-bulma {\n  @import \"../../../build/prism\";\n\n  $pretty--color-dark: $primary; // stylelint-disable-line scss/dollar-variable-pattern\n  $pretty--color-default: $primary; // stylelint-disable-line scss/dollar-variable-pattern\n\n  @import \"~pretty-checkbox/src/pretty-checkbox\";\n\n  // Local imports\n  @import \"header\";\n  @import \"tabs\";\n  @import \"panel\";\n  @import \"fields\";\n  @import \"vue-select\";\n  @import \"modals\";\n  @import \"callout\";\n  @import \"setup\";\n  @import \"code\";\n  @import \"files\";\n  @import \"footer\";\n  @import \"columns\";\n}\n"
  },
  {
    "path": "src/nginxconfig/templates/app.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div class=\"all do-bulma\">\n        <Header :title=\"$t('templates.app.title')\">\n            <template #description>\n                {{ $t('templates.app.description') }}\n            </template>\n            <template #header></template>\n            <template #buttons>\n                <VueSelect\n                    v-model=\"lang\"\n                    :options=\"i18nPacks\"\n                    :clearable=\"false\"\n                    :reduce=\"(s) => s.value\"\n                    :disabled=\"languageLoading\"\n                >\n                    <template #selected-option=\"{ label }\">\n                        <span class=\"has-icon\">\n                            <i\n                                v-if=\"languageLoading\"\n                                class=\"icon fas fa-spinner fa-pulse\"\n                            ></i>\n                            <i\n                                v-else\n                                class=\"icon fas fa-language\"\n                            ></i>\n                            <span>{{ label }}</span>\n                        </span>\n                    </template>\n                </VueSelect>\n                <a\n                    v-if=\"splitColumn\"\n                    class=\"button is-primary is-outline is-hidden-touch\"\n                    @click=\"splitColumnToggle\"\n                >\n                    {{ $t('templates.app.singleColumnMode') }}\n                </a>\n                <a\n                    v-else\n                    class=\"button is-primary is-hidden-touch\"\n                    @click=\"splitColumnToggle\"\n                >\n                    {{ $t('templates.app.splitColumnMode') }}\n                </a>\n            </template>\n        </Header>\n\n        <div\n            class=\"main container\"\n            :style=\"{ display: ready ? undefined : 'none' }\"\n        >\n            <div class=\"columns is-multiline\">\n                <div\n                    :class=\"`column ${\n                        splitColumn ? 'is-half column-scroll-y' : 'is-full'\n                    } is-full-touch`\"\n                >\n                    <h2>{{ $t('templates.app.perWebsiteConfig') }}</h2>\n\n                    <div class=\"tabs\">\n                        <ul>\n                            <li\n                                v-for=\"data in activeDomains\"\n                                :class=\"data[1] === active ? 'is-active' : undefined\"\n                            >\n                                <a\n                                    class=\"domain\"\n                                    @click=\"active = data[1]\"\n                                >\n                                    {{ data[0].server.domain.computed }}{{ changes(data[1]) }}\n                                    <i\n                                        v-if=\"warnings(data[1])\"\n                                        class=\"fas fa-exclamation-triangle\"\n                                    ></i>\n                                </a>\n                                <a\n                                    class=\"remove\"\n                                    @click=\"remove(data[1])\"\n                                >\n                                    <i class=\"fas fa-times\"></i>\n                                </a>\n                            </li>\n                            <li>\n                                <a @click=\"add\">\n                                    <i class=\"fas fa-plus\"></i>\n                                    {{ $t('templates.app.addSite') }}\n                                </a>\n                            </li>\n                        </ul>\n                    </div>\n\n                    <Domain\n                        v-for=\"data in activeDomains\"\n                        :key=\"data[1]\"\n                        :ref=\"`domain-${data[1]}`\"\n                        :data=\"data[0]\"\n                        :style=\"{ display: data[1] === active ? undefined : 'none' }\"\n                    ></Domain>\n\n                    <h2>{{ $t('templates.app.globalConfig') }}</h2>\n                    <Global :data=\"global\"></Global>\n\n                    <DropletCallout></DropletCallout>\n\n                    <h2>{{ $t('templates.app.setup') }}</h2>\n                    <Setup\n                        :data=\"{ domains: domains.filter((d) => d !== null), global, confFiles }\"\n                    ></Setup>\n                </div>\n\n                <div\n                    :class=\"`column ${\n                        splitColumn ? 'is-half column-scroll-y' : 'is-full'\n                    } is-full-touch`\"\n                >\n                    <h2>{{ $t('templates.app.configFiles') }}</h2>\n                    <div\n                        ref=\"files\"\n                        class=\"columns is-multiline files\"\n                    >\n                        <component\n                            :is=\"getPrismComponent(confContents[0])\"\n                            v-for=\"confContents in confFilesOutput\"\n                            :key=\"confContents[2]\"\n                            :name=\"confContents[0]\"\n                            :conf=\"confContents[1]\"\n                            :half=\"Object.keys(confFilesOutput).length > 1 && !splitColumn\"\n                            @copied=\"codeCopiedEvent(confContents[3])\"\n                        ></component>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <Footer></Footer>\n        <ContributeCallout></ContributeCallout>\n    </div>\n</template>\n\n<script>\n    import { defineAsyncComponent } from 'vue';\n    import clone from 'clone';\n    import sha2_256 from 'simple-js-sha2-256';\n    import escape from 'escape-html';\n    import VueSelect from 'vue-select';\n    import Header from 'do-vue/src/templates/header.vue';\n    import diff from 'files-diff';\n\n    import isChanged from '../util/is_changed.js';\n    import importData from '../util/import_data.js';\n    import isObject from '../util/is_object.js';\n    import analytics from '../util/analytics.js';\n    import browserLanguage from '../util/browser_language.js';\n    import { defaultPack, availablePacks } from '../util/language_packs.js';\n    import { info, error } from '../util/log.js';\n\n    import { setLanguagePack } from '../i18n/setup.js';\n    import generators from '../generators/index.js';\n\n    import Domain from './domain.vue';\n    import Global from './global.vue';\n    import DropletCallout from './callouts/droplet.vue';\n    import ContributeCallout from './callouts/contribute.vue';\n    import Setup from './setup.vue';\n    import Footer from './footer.vue';\n\n    import NginxPrism from './prism/nginx.vue';\n\n    export default {\n        name: 'App',\n        components: {\n            Header,\n            VueSelect,\n            Footer,\n            Domain,\n            Global,\n            DropletCallout,\n            ContributeCallout,\n            Setup,\n            NginxPrism,\n            YamlPrism: defineAsyncComponent(() => import('./prism/yaml.vue')),\n            DockerPrism: defineAsyncComponent(() => import('./prism/docker.vue')),\n        },\n        data() {\n            return {\n                domains: [],\n                global: {\n                    ...Global.delegated,\n                    app: {\n                        lang: {\n                            default: defaultPack,\n                            value: defaultPack,\n                            computed: defaultPack,\n                            enabled: true,\n                        },\n                    },\n                },\n                active: 0,\n                ready: false,\n                splitColumn: false,\n                confWatcherWaiting: false,\n                confFilesPrevious: {},\n                confFilesOutput: [],\n                languageLoading: false,\n                languagePrevious: defaultPack,\n                interactiveEvents: false,\n            };\n        },\n        computed: {\n            activeDomains() {\n                return this.$data.domains\n                    .map((domain, index) => [domain, index])\n                    .filter((d) => d[0] !== null);\n            },\n            confFiles() {\n                return generators(\n                    this.$data.domains.filter((d) => d !== null),\n                    this.$data.global,\n                );\n            },\n            confFilesWithDirectory() {\n                return Object.entries(this.confFiles).reduce(\n                    (obj, [file, content]) => ({\n                        ...obj,\n                        [`${this.$data.global.nginx.nginxConfigDirectory.computed}/${file}`]:\n                            content,\n                    }),\n                    {},\n                );\n            },\n            lang: {\n                get() {\n                    return this.$data.global.app.lang.value;\n                },\n                set(value) {\n                    this.$data.global.app.lang.value = value;\n                    this.$data.global.app.lang.computed = value;\n                },\n            },\n            i18nPacks() {\n                return availablePacks.map((pack) => ({\n                    label:\n                        this.$t(`languages.${pack}`) +\n                        (pack === this.$i18n.locale\n                            ? ''\n                            : ` - ${this.$t(`languages.${pack}`, pack)}`),\n                    value: pack,\n                }));\n            },\n        },\n        watch: {\n            confFilesWithDirectory(newConf, oldConf) {\n                if (this.$data.confWatcherWaiting) return;\n\n                // Set that we're waiting for changes to stop\n                this.$data.confWatcherWaiting = true;\n                this.$data.confFilesPrevious = oldConf;\n\n                // Check next tick to see if anything has changed again\n                this.$nextTick(() => this.checkChange(newConf));\n            },\n            '$data.global.app.lang': {\n                handler(data) {\n                    // Lock out the dropdown\n                    this.$data.languageLoading = true;\n\n                    // Store if we should fire the event when this is done loading\n                    const interactive = this.$data.interactiveEvents;\n\n                    // Ensure valid pack\n                    if (!availablePacks.includes(data.value)) data.computed = data.default;\n\n                    // Update the locale\n                    setLanguagePack(data.computed)\n                        .then(() => {\n                            // Done\n                            info('Language set to', data.computed);\n                            this.$data.languagePrevious = data.computed;\n                            this.$data.languageLoading = false;\n\n                            // Analytics\n                            this.languageSetEvent(!interactive);\n                        })\n                        .catch((err) => {\n                            // Error\n                            error(`Failed to set language to ${data.computed}`, err);\n\n                            // Fallback to last known good\n                            data.value = this.$data.languagePrevious;\n                            data.computed = this.$data.languagePrevious;\n                            this.$data.languageLoading = false;\n                        });\n                },\n                deep: true,\n            },\n        },\n        async mounted() {\n            // Import any data from the URL query params, defaulting to one domain\n            // Fallback to the window hash if no search query params, from the Angular version of nginxconfig\n            // The config file watcher will handle setting the app as ready\n            const query = window.location.search || window.location.hash.slice(1);\n            const imported = await importData(\n                query,\n                this.$data.domains,\n                this.$data.global,\n                this.$nextTick,\n            );\n\n            // Apply browser language if not specified in query\n            if (\n                !imported ||\n                !imported.global ||\n                !imported.global.app ||\n                !imported.global.app.lang\n            ) {\n                const language = browserLanguage(availablePacks);\n                if (language) this.lang = language;\n            }\n\n            // Initial analytics events\n            this.splitColumnEvent(true);\n            for (let i = 0; i < this.activeDomains.length; i++) this.addSiteEvent(i + 1, true);\n            this.$data.interactiveEvents = true;\n        },\n        methods: {\n            changes(index) {\n                const data = this.$data.domains[index];\n                const changes = Object.entries(data).reduce((prev, current) => {\n                    if (current[0] === 'presets') return prev; // Ignore changes from presets\n                    if (!isObject(current[1])) return prev; // Ignore non-objects (things that aren't tabs)\n                    prev += Object.keys(current[1]).filter((key) =>\n                        isChanged(current[1][key], current[0], key),\n                    ).length;\n                    return prev;\n                }, 0);\n                if (changes) return ` (${changes.toLocaleString()})`;\n                return '';\n            },\n            warnings(index) {\n                if (!Object.prototype.hasOwnProperty.call(this.$refs, `domain-${index}`))\n                    return false;\n                return this.$refs[`domain-${index}`][0].hasWarnings || false;\n            },\n            add() {\n                const data = clone(Domain.delegated);\n\n                // Avoid dupe domains\n                let count = 1;\n                while (\n                    this.$data.domains.some(\n                        (d) => d && d.server.domain.computed === data.server.domain.computed,\n                    )\n                ) {\n                    count++;\n                    data.server.domain.computed = data.server.domain.default.replace(\n                        '.com',\n                        `${count}.com`,\n                    );\n                }\n                data.server.domain.value = data.server.domain.computed;\n\n                // Store\n                this.$data.domains.push(data);\n                this.$data.active = this.$data.domains.length - 1;\n\n                // Analytics\n                this.addSiteEvent(this.activeDomains.length);\n            },\n            remove(index) {\n                const name = this.$data.domains[index].server.domain.computed;\n                this.$data.domains[index] = null;\n                if (this.$data.active === index)\n                    this.$data.active = this.$data.domains.findIndex((d) => d !== null);\n\n                // Analytics\n                this.removeSiteEvent(this.activeDomains.length, name);\n            },\n            checkChange(oldConf) {\n                // If nothing has changed for a tick, we can use the config files\n                if (oldConf === this.confFilesWithDirectory) {\n                    // If this is the initial data load on app start, run the diff logic\n                    // but with previous as this so that we don't highlight any changes\n                    if (!this.$data.ready) {\n                        this.$data.confFilesPrevious = this.confFilesWithDirectory;\n                        this.$nextTick(() => {\n                            this.$data.ready = true;\n                        });\n                    }\n\n                    // Do the diff!\n                    this.updateDiff(this.confFilesWithDirectory, this.$data.confFilesPrevious);\n                    return;\n                }\n\n                // Check next tick to see if anything has changed again\n                this.$nextTick(() => this.checkChange(this.confFilesWithDirectory));\n            },\n            updateDiff(newConf, oldConf) {\n                try {\n                    // Calculate the diff & highlight after render\n                    const diffConf = diff(newConf, oldConf, {\n                        highlightFunction: (value) => `<mark>${value}</mark>`,\n                    });\n                    this.$data.confFilesOutput = Object.entries(diffConf).map(\n                        ([file, { name, content }]) => {\n                            const diffName = name\n                                .filter((x) => !x.removed)\n                                .map((x) => x.value)\n                                .join('');\n                            const diffContent = content\n                                .filter((x) => !x.removed)\n                                .map((x) => x.value)\n                                .join('');\n\n                            return [\n                                diffName,\n                                diffContent,\n                                `${sha2_256(diffName)}-${sha2_256(diffContent)}`,\n                                file,\n                            ];\n                        },\n                    );\n                } catch (err) {\n                    // If diff generation goes wrong, don't show any diff\n                    error('Failed to compute and highlight diff', err);\n                    this.$data.confFilesOutput = Object.entries(newConf).map(([name, content]) => {\n                        const safeName = escape(name);\n                        const safeContent = escape(content);\n\n                        return [\n                            safeName,\n                            safeContent,\n                            `${sha2_256(safeName)}-${sha2_256(safeContent)}`,\n                            name,\n                        ];\n                    });\n                }\n\n                // Once rendered, begin looking for changes again\n                this.$nextTick(() => (this.$data.confWatcherWaiting = false));\n            },\n            splitColumnToggle() {\n                this.$data.splitColumn = !this.$data.splitColumn;\n                this.splitColumnEvent();\n            },\n            splitColumnEvent(nonInteraction = false) {\n                analytics({\n                    category: 'Split column',\n                    action: this.$data.splitColumn ? 'Enabled' : 'Disabled',\n                    nonInteraction,\n                });\n            },\n            languageSetEvent(nonInteraction = false) {\n                analytics({\n                    category: 'Language',\n                    action: 'Set',\n                    label: this.$data.global.app.lang.computed,\n                    nonInteraction,\n                });\n            },\n            addSiteEvent(count, nonInteraction = false) {\n                analytics({\n                    category: 'Site',\n                    action: 'Added',\n                    value: count,\n                    nonInteraction,\n                });\n            },\n            removeSiteEvent(count, name) {\n                analytics({\n                    category: 'Site',\n                    action: 'Removed',\n                    label: name,\n                    value: count,\n                });\n            },\n            codeCopiedEvent(file) {\n                analytics({\n                    category: 'Config files',\n                    action: 'Code snippet copied',\n                    label: file,\n                });\n            },\n            getPrismComponent(confName) {\n                switch (confName) {\n                    case '/etc/nginx/Dockerfile':\n                        return 'DockerPrism';\n                    case '/etc/nginx/docker-compose.yaml':\n                        return 'YamlPrism';\n                    default:\n                        return 'NginxPrism';\n                }\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/callouts/contribute.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div\n        class=\"callout floating\"\n        :style=\"style\"\n    >\n        <div class=\"close\">\n            <p>\n                {{ $t('templates.callouts.contribute.wantToContributeChanges') }}\n            </p>\n            <a @click.prevent=\"close\">\n                <i class=\"fas fa-times\"></i>\n            </a>\n        </div>\n        <a\n            href=\"https://github.com/digitalocean/nginxconfig.io\"\n            class=\"button is-primary\"\n            target=\"_blank\"\n            @click=\"linkClickEvent\"\n        >\n            {{ $t('templates.callouts.contribute.getInvolvedOnGitHub') }}\n        </a>\n    </div>\n</template>\n\n<script>\n    import analytics from '../../util/analytics.js';\n\n    export default {\n        name: 'ContributeCallout',\n        data() {\n            return {\n                scrolled: false,\n                closed: false,\n            };\n        },\n        computed: {\n            visible() {\n                return this.$data.scrolled && !this.$data.closed;\n            },\n            style() {\n                const nonVisibleStyle = {\n                    opacity: 0,\n                    pointerEvents: 'none',\n                };\n\n                return this.visible ? undefined : nonVisibleStyle;\n            },\n        },\n        mounted() {\n            document.addEventListener('scroll', () => {\n                if (this.$data.scrolled) return;\n                if (window.scrollY < 300) return;\n                this.$data.scrolled = true;\n                this.calloutVisibleEvent();\n            });\n        },\n        methods: {\n            close() {\n                this.$data.closed = true;\n                this.closedEvent();\n            },\n            closedEvent() {\n                analytics({\n                    category: 'Contribute callout',\n                    action: 'Closed',\n                });\n            },\n            calloutVisibleEvent() {\n                analytics({\n                    category: 'Contribute callout',\n                    action: 'Visible',\n                    nonInteraction: true,\n                });\n            },\n            linkClickEvent() {\n                analytics({\n                    category: 'Contribute callout',\n                    action: 'Clicked',\n                });\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/callouts/droplet.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div class=\"callout\">\n        <p>\n            {{ $t('templates.callouts.droplet.lookingForAPlaceToDeploy') }}\n            <ExternalLink\n                :text=\"$t('templates.callouts.droplet.tryOutDigitalOceansDroplet')\"\n                link=\"https://marketplace.digitalocean.com/apps/lemp\"\n                @click.native=\"linkClickEvent\"\n            ></ExternalLink>\n        </p>\n    </div>\n</template>\n\n<script>\n    import ExternalLink from 'do-vue/src/templates/external_link.vue';\n    import analytics from '../../util/analytics.js';\n\n    export default {\n        name: 'DropletCallout',\n        components: {\n            ExternalLink,\n        },\n        data() {\n            return {\n                observer: null,\n            };\n        },\n        mounted() {\n            // Use an intersection observer to fire the event when the user scrolls this into view\n            if ('IntersectionObserver' in window) {\n                this.observer = new window.IntersectionObserver(this.observerCallback, {\n                    root: null,\n                    rootMargin: '0px',\n                    threshold: 1,\n                });\n                this.observer.observe(this.$el);\n                return;\n            }\n\n            // If we don't have intersection observer support, just fire the visible event now\n            this.calloutVisibleEvent();\n        },\n        updated() {\n            // If the Vue component updated/re-rendered, ensure we're observing the correct DOM elm\n            this.$nextTick(() => {\n                if (this.observer) {\n                    this.observer.disconnect();\n                    this.observer.observe(this.$el);\n                }\n            });\n        },\n        beforeDestroy() {\n            // Properly cleanup the observer if the Vue component is being destroyed\n            this.observerCleanup();\n        },\n        methods: {\n            observerCleanup() {\n                if (this.observer) {\n                    this.observer.disconnect();\n                    this.observer = null;\n                }\n            },\n            observerCallback(entries) {\n                for (const entry of entries) {\n                    if (entry.isIntersecting) {\n                        // We've intersected, so we no longer need the observer\n                        this.observerCleanup();\n\n                        // Fire the event!\n                        this.calloutVisibleEvent();\n                    }\n                }\n            },\n            calloutVisibleEvent() {\n                analytics({\n                    category: 'Droplet callout',\n                    action: 'Visible',\n                    nonInteraction: true,\n                });\n            },\n            linkClickEvent() {\n                analytics({\n                    category: 'Droplet callout',\n                    action: 'Clicked',\n                });\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"panel presets\">\n            <Presets :data=\"$props.data.presets\"></Presets>\n        </div>\n\n        <div class=\"panel\">\n            <div class=\"tabs\">\n                <ul>\n                    <li\n                        v-for=\"tab in tabs\"\n                        :class=\"tabClass(tab.key)\"\n                    >\n                        <a @click=\"showTab(tab.key)\">\n                            {{ $t(tab.display) }}{{ changes(tab.key) }}\n                            <i\n                                v-if=\"warnings(tab.key)\"\n                                class=\"fas fa-exclamation-triangle\"\n                            ></i>\n                        </a>\n                    </li>\n                </ul>\n            </div>\n\n            <component\n                :is=\"tab\"\n                v-for=\"tab in tabs\"\n                :key=\"tab.key\"\n                :ref=\"tab.key\"\n                :data=\"$props.data[tab.key]\"\n                :style=\"{ display: active === tab.key ? undefined : 'none' }\"\n                class=\"container\"\n            ></component>\n\n            <div class=\"navigation-buttons\">\n                <a\n                    v-if=\"previousTab !== false\"\n                    class=\"button is-mini\"\n                    @click=\"showPreviousTab\"\n                >\n                    <i class=\"fas fa-long-arrow-alt-left\"></i>\n                    <span>{{ $t('common.back') }}</span>\n                </a>\n                <a\n                    v-if=\"nextTab !== false\"\n                    class=\"button is-primary is-mini\"\n                    @click=\"showNextTab\"\n                >\n                    <span>{{ $t('common.next') }}</span>\n                    <i class=\"fas fa-long-arrow-alt-right\"></i>\n                </a>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import analytics from '../util/analytics.js';\n    import isChanged from '../util/is_changed.js';\n    import Presets from './domain_sections/presets.vue';\n    import Sections from './domain_sections/index.js';\n\n    const delegated = {\n        hasUserInteraction: false,\n        presets: Presets.delegated,\n        ...Sections.reduce((prev, tab) => {\n            prev[tab.key] = tab.delegated;\n            return prev;\n        }, {}),\n    };\n\n    export default {\n        name: 'Domain',\n        delegated, // Data the parent will present here\n        components: {\n            Presets,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        data() {\n            return {\n                active: Sections[0].key,\n                tabs: Sections,\n            };\n        },\n        computed: {\n            nextTab() {\n                const tabs = this.$data.tabs.map((t) => t.key);\n                const index = tabs.indexOf(this.$data.active) + 1;\n                if (index < tabs.length) return tabs[index];\n                return false;\n            },\n            previousTab() {\n                const tabs = this.$data.tabs.map((t) => t.key);\n                const index = tabs.indexOf(this.$data.active) - 1;\n                if (index >= 0) return tabs[index];\n                return false;\n            },\n            hasWarnings() {\n                return Object.values(this.$refs).some((ref) => ref[0].hasWarnings || false);\n            },\n        },\n        methods: {\n            changesCount(tab) {\n                return Object.keys(this.$props.data[tab]).filter((key) =>\n                    isChanged(this.$props.data[tab][key], tab, key),\n                ).length;\n            },\n            changes(tab) {\n                const changes = this.changesCount(tab);\n                if (changes) return ` (${changes.toLocaleString()})`;\n                return '';\n            },\n            warnings(tab) {\n                if (!Object.prototype.hasOwnProperty.call(this.$refs, tab)) return false;\n                return this.$refs[tab][0].hasWarnings || false;\n            },\n            setValue(tab, key, val) {\n                Object.assign(this.$props.data[tab][key], { value: val, computed: val });\n            },\n            resetValue(tab, key) {\n                this.setValue(tab, key, this.$props.data[tab][key].default);\n            },\n            tabClass(tab) {\n                const classes = [];\n                if (tab === this.$data.active) classes.push('is-active');\n                if (this.changesCount(tab)) classes.push('is-changed');\n                const tabs = this.$data.tabs.map((t) => t.key);\n                if (tabs.indexOf(tab) < tabs.indexOf(this.$data.active)) classes.push('is-before');\n                return classes.join(' ');\n            },\n            showTab(target) {\n                // Analytics\n                analytics({\n                    category: 'Site',\n                    action: 'Tab clicked',\n                    label: `${this.$data.active}, ${target}`,\n                });\n\n                // Go!\n                this.$data.active = target;\n            },\n            showPreviousTab() {\n                // Analytics\n                analytics({\n                    category: 'Site',\n                    action: 'Back clicked',\n                    label: `${this.$data.active}, ${this.previousTab}`,\n                });\n\n                // Go!\n                this.$data.active = this.previousTab;\n            },\n            showNextTab() {\n                // Analytics\n                analytics({\n                    category: 'Site',\n                    action: 'Next clicked',\n                    label: `${this.$data.active}, ${this.nextTab}`,\n                });\n\n                // Go!\n                this.$data.active = this.nextTab;\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/https.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.https') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${httpsChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"https\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t(\n                                        'templates.domainSections.https.enableEncryptedSslConnection',\n                                    )\n                                }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"http2Enabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.https.http2') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${http2Changed ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"http2\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.https.enableHttp2Connections') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"http3Enabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">{{ $t('templates.domainSections.https.http3') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${http3Changed ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"http3\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.https.enableHttp3Connections') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n\n                    <div\n                        v-if=\"showHttp3Warning\"\n                        class=\"control\"\n                    >\n                        <label class=\"text message is-warning\">\n                            <span class=\"message-body\">\n                                {{ $t('templates.domainSections.https.http3IsANonStandardModule') }}\n                                <ExternalLink\n                                    :text=\"\n                                        $t('templates.domainSections.https.http3NginxQuicReadme')\n                                    \"\n                                    link=\"https://quic.nginx.org/README\"\n                                ></ExternalLink>\n                                {{ $t('templates.domainSections.https.http3OrThe') }}\n                                <ExternalLink\n                                    :text=\"\n                                        $t(\n                                            'templates.domainSections.https.http3CloudflareQuicheProject',\n                                        )\n                                    \"\n                                    link=\"https://github.com/cloudflare/quiche/tree/master/nginx\"\n                                ></ExternalLink>\n                                {{\n                                    $t(\n                                        'templates.domainSections.https.http3ForBuildingNginxWithHttp3',\n                                    )\n                                }}\n                            </span>\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"forceHttpsEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.https.forceHttps') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${forceHttpsChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"forceHttps\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                (http://{{ $parent.$props.data.server.domain.computed }}\n                                <i class=\"fas fa-long-arrow-alt-right\"></i>\n                                https://{{ $parent.$props.data.server.domain.computed }})\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"hstsEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.https.hsts') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${hstsChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"hsts\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t(\n                                        'templates.domainSections.https.enableStrictTransportSecurity',\n                                    )\n                                }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n\n                    <div\n                        v-if=\"hstsSubdomainsEnabled\"\n                        :class=\"`control${hstsSubdomainsChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"hstsSubdomains\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.https.enableIncludeSubDomains') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n\n                    <div\n                        v-if=\"hstsPreloadEnabled\"\n                        :class=\"`control${hstsPreloadChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"hstsPreload\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.https.enablePreload') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"certTypeEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.https.certificationType') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div\n                        v-for=\"(name, value) in $props.data.certType.options\"\n                        :class=\"`control${\n                            certTypeChanged && value === certType ? ' is-changed' : ''\n                        }`\"\n                    >\n                        <div class=\"radio\">\n                            <PrettyRadio\n                                v-model=\"certType\"\n                                :value=\"value\"\n                                class=\"p-default p-round p-fill p-icon\"\n                            >\n                                {{ $t(name) }}\n                            </PrettyRadio>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"letsEncryptEmailEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.https.letsEncryptEmail') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${letsEncryptEmailChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"letsEncryptEmail\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.letsEncryptEmail.computed\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"sslCertificateEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">ssl_certificate</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${sslCertificateChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"sslCertificate\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"`${$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed}/ssl/${$parent.$props.data.server.domain.computed}.crt`\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"sslCertificateKeyEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">ssl_certificate_key</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${sslCertificateKeyChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"sslCertificateKey\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"`${$parent.$parent.$data.global.nginx.nginxConfigDirectory.computed}/ssl/${$parent.$props.data.server.domain.computed}.key`\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import ExternalLink from 'do-vue/src/templates/external_link.vue';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import { serverDomainDefault } from '../../util/defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n    import PrettyRadio from '../inputs/radio.vue';\n\n    const defaults = {\n        https: {\n            default: true,\n            enabled: true,\n        },\n        http2: {\n            default: true,\n            enabled: true,\n        },\n        http3: {\n            default: false,\n            enabled: true,\n        },\n        forceHttps: {\n            default: true,\n            enabled: true,\n        },\n        hsts: {\n            default: true,\n            enabled: true,\n        },\n        hstsSubdomains: {\n            default: true,\n            enabled: true,\n        },\n        hstsPreload: {\n            default: false,\n            enabled: true,\n        },\n        certType: {\n            default: 'letsEncrypt',\n            options: {\n                letsEncrypt: 'common.letsEncrypt', // i18n key\n                custom: 'templates.domainSections.https.customCertificate', // i18n key\n            },\n            enabled: true,\n        },\n        letsEncryptEmail: {\n            default: '',\n            computed: `info@${serverDomainDefault}`, // No default value, but a default computed\n            enabled: true,\n        },\n        sslCertificate: {\n            default: '',\n            enabled: false,\n        },\n        sslCertificateKey: {\n            default: '',\n            enabled: false,\n        },\n    };\n\n    export default {\n        name: 'DomainHTTPS', // Component name\n        display: 'common.https', // Display name for tab (i18n key)\n        key: 'https', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            PrettyRadio,\n            ExternalLink,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'https'), // Getters & setters for the delegated data\n            showHttp3Warning() {\n                return this.$props.data.http3.computed;\n            },\n            hasWarnings() {\n                return this.showHttp3Warning;\n            },\n        },\n        watch: {\n            // Disable everything if https is disabled\n            '$props.data.https': {\n                handler(data) {\n                    const state = data.computed;\n                    if (state) {\n                        this.$props.data.http2.enabled = true;\n                        this.$props.data.http2.computed = this.$props.data.http2.value;\n                        this.$props.data.http3.enabled = true;\n                        this.$props.data.http3.computed = this.$props.data.http3.value;\n                        this.$props.data.forceHttps.enabled = true;\n                        this.$props.data.forceHttps.computed = this.$props.data.forceHttps.value;\n                        this.$props.data.hsts.enabled = true;\n                        this.$props.data.hsts.computed = this.$props.data.hsts.value;\n                        this.$props.data.certType.enabled = true;\n                        this.$props.data.certType.computed = this.$props.data.certType.value;\n                    } else {\n                        this.$props.data.http2.enabled = false;\n                        this.$props.data.http2.computed = false;\n                        this.$props.data.http3.enabled = false;\n                        this.$props.data.http3.computed = false;\n                        this.$props.data.forceHttps.enabled = false;\n                        this.$props.data.forceHttps.computed = false;\n                        this.$props.data.hsts.enabled = false;\n                        this.$props.data.hsts.computed = false;\n                        this.$props.data.certType.enabled = false;\n                        this.$props.data.certType.computed = '';\n                    }\n                },\n                deep: true,\n            },\n            // Disable hsts options if hsts is disabled\n            '$props.data': {\n                handler() {\n                    // hstsSubdomains\n                    if (this.$props.data.hsts.computed) {\n                        this.$props.data.hstsSubdomains.enabled = true;\n                        this.$props.data.hstsSubdomains.computed =\n                            this.$props.data.hstsSubdomains.value;\n                    } else {\n                        this.$props.data.hstsSubdomains.enabled = false;\n                        this.$props.data.hstsSubdomains.computed = false;\n                    }\n\n                    // hstsPreload\n                    if (\n                        this.$props.data.hsts.computed &&\n                        this.$props.data.hstsSubdomains.computed\n                    ) {\n                        this.$props.data.hstsPreload.enabled = true;\n                        this.$props.data.hstsPreload.computed = this.$props.data.hstsPreload.value;\n                    } else {\n                        this.$props.data.hstsPreload.enabled = false;\n                        this.$props.data.hstsPreload.computed = false;\n                    }\n                },\n                deep: true,\n            },\n            // Toggle form elms based on cert selection\n            '$props.data.certType': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    // Hide all if disabled\n                    if (!data.enabled) {\n                        this.$props.data.letsEncryptEmail.enabled = false;\n                        this.$props.data.letsEncryptEmail.computed = '';\n                        this.$props.data.sslCertificate.enabled = false;\n                        this.$props.data.sslCertificate.computed = '';\n                        this.$props.data.sslCertificateKey.enabled = false;\n                        this.$props.data.sslCertificateKey.computed = '';\n                    } else {\n                        // First, check its valid\n                        if (!Object.keys(data.options).includes(data.computed))\n                            data.computed = data.default;\n\n                        // Show the correct fields\n                        if (data.computed === 'letsEncrypt') {\n                            this.$props.data.letsEncryptEmail.enabled = true;\n                            this.$props.data.letsEncryptEmail.computed =\n                                this.$props.data.letsEncryptEmail.value;\n\n                            this.$props.data.sslCertificate.enabled = false;\n                            this.$props.data.sslCertificate.computed = '';\n                            this.$props.data.sslCertificateKey.enabled = false;\n                            this.$props.data.sslCertificateKey.computed = '';\n                        } else {\n                            this.$props.data.sslCertificate.enabled = true;\n                            this.$props.data.sslCertificate.computed =\n                                this.$props.data.sslCertificate.value;\n                            this.$props.data.sslCertificateKey.enabled = true;\n                            this.$props.data.sslCertificateKey.computed =\n                                this.$props.data.sslCertificateKey.value;\n\n                            this.$props.data.letsEncryptEmail.enabled = false;\n                            this.$props.data.letsEncryptEmail.computed = '';\n                        }\n                    }\n                },\n                deep: true,\n            },\n            // Ensure there is a default email for Let's Encrypt\n            '$props.data.letsEncryptEmail': {\n                handler(data) {\n                    if (!data.computed.trim()) {\n                        data.computed = `info@${this.$parent.$props.data.server.domain.computed}`;\n                    }\n                },\n                deep: true,\n            },\n            '$parent.$props.data.server.domain': {\n                handler(data) {\n                    if (!this.$props.data.letsEncryptEmail.value.trim()) {\n                        this.$props.data.letsEncryptEmail.computed = `info@${data.computed}`;\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport Server from './server.vue';\nimport HTTPS from './https.vue';\nimport PHP from './php.vue';\nimport Python from './python.vue';\nimport ReverseProxy from './reverse_proxy.vue';\nimport Routing from './routing.vue';\nimport Logging from './logging.vue';\nimport Restrict from './restrict.vue';\nimport Onion from './onion.vue';\n\nexport default [Server, HTTPS, PHP, Python, ReverseProxy, Routing, Logging, Restrict, Onion];\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/logging.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">\n                    access_log {{ $t('templates.domainSections.logging.byDomain') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${accessLogEnabledChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"accessLogEnabled\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.logging.enableForThisDomain') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"$props.data.accessLogEnabled.computed\"\n                        :class=\"`control field is-horizontal is-expanded${\n                            accessLogPathChanged ? ' is-changed' : ''\n                        }`\"\n                    >\n                        <input\n                            v-model=\"accessLogPath\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.accessLogPath.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"$props.data.accessLogEnabled.computed\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    access_log {{ $t('templates.domainSections.logging.arguments') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${accessLogParametersChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"accessLogParameters\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.accessLogParameters.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">\n                    access_log {{ $t('templates.domainSections.logging.forRedirects') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${redirectAccessLogChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"redirectAccessLog\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">\n                    error_log {{ $t('templates.domainSections.logging.byDomain') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${errorLogEnabledChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"errorLogEnabled\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.logging.enableForThisDomain') }}\n                            </PrettyCheck>\n                        </div>\n                        <div\n                            v-if=\"$props.data.errorLogEnabled.computed\"\n                            :class=\"`control field is-horizontal is-expanded${\n                                errorLogPathChanged ? ' is-changed' : ''\n                            }`\"\n                        >\n                            <input\n                                v-model=\"errorLogPath\"\n                                class=\"input\"\n                                type=\"text\"\n                                :disabled=\"!errorLogPathEnabled\"\n                                :placeholder=\"$props.data.errorLogPath.default\"\n                            />\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"$props.data.errorLogEnabled.computed\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    error_log {{ $t('templates.domainSections.logging.level') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field is-horizontal\">\n                    <div\n                        v-for=\"value in $props.data.errorLogLevel.options\"\n                        :class=\"`control${\n                            errorLogLevelChanged && value === errorLogLevel ? ' is-changed' : ''\n                        }`\"\n                    >\n                        <div class=\"radio\">\n                            <PrettyRadio\n                                v-model=\"errorLogLevel\"\n                                :value=\"value\"\n                                class=\"p-default p-round p-fill p-icon\"\n                            >\n                                {{ value }}\n                            </PrettyRadio>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">\n                    error_log {{ $t('templates.domainSections.logging.forRedirects') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${redirectErrorLogChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"redirectErrorLog\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import {\n        accessLogPathDefault,\n        accessLogParamsDefault,\n        errorLogPathDefault,\n        errorLogPathDisabled,\n        errorLogLevelDefault,\n        errorLogLevelOptions,\n        errorLogLevelDisabled,\n    } from '../../util/logging.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n    import PrettyRadio from '../inputs/radio.vue';\n\n    const defaults = {\n        accessLogEnabled: {\n            default: true,\n            enabled: true,\n        },\n        accessLogPath: {\n            default: accessLogPathDefault,\n            enabled: true,\n        },\n        accessLogParameters: {\n            default: accessLogParamsDefault,\n            enabled: true,\n        },\n        redirectAccessLog: {\n            default: false,\n            enabled: true,\n        },\n        errorLogEnabled: {\n            default: true,\n            enabled: true,\n        },\n        errorLogPath: {\n            default: errorLogPathDefault,\n            enabled: true,\n        },\n        errorLogLevel: {\n            default: errorLogLevelDefault,\n            options: [errorLogLevelDisabled, ...errorLogLevelOptions],\n            enabled: true,\n        },\n        redirectErrorLog: {\n            default: false,\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'DomainLogging', // Component name\n        display: 'common.logging', // Display name for tab (i18n key)\n        key: 'logging', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            PrettyRadio,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'logging'), // Getters & setters for the delegated data\n        watch: {\n            '$props.data.errorLogLevel': {\n                handler(data) {\n                    // disable `error_log` path selection if log level is set to `none`\n                    if (data.computed === errorLogLevelDisabled) {\n                        this.$props.data.errorLogPath.enabled = false;\n                        this.$props.data.errorLogPath.computed = errorLogPathDisabled;\n                    } else if (!this.$props.data.errorLogPath.enabled) {\n                        this.$props.data.errorLogPath.enabled = true;\n                        this.$props.data.errorLogPath.computed =\n                            this.$props.data.errorLogPath.value;\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/onion.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-margin-top\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.onion.onionLocation') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${onionLocationChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"onionLocation\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.onionLocation.placeholder\"\n                        />\n                    </div>\n\n                    <template v-if=\"!onionLocationChanged\">\n                        <div class=\"control\">\n                            <label class=\"text\">\n                                {{\n                                    $t(\n                                        'templates.domainSections.onion.provideAnOnionLocationToSetOnionLocationHeader',\n                                    )\n                                }}\n                            </label>\n                        </div>\n                        <div class=\"control\">\n                            <label class=\"text\">\n                                {{\n                                    $t(\n                                        'templates.domainSections.onion.letsVisitorsKnownOnionServicesIsAvailable',\n                                    )\n                                }}\n                            </label>\n                        </div>\n                        <div class=\"control\">\n                            <label class=\"text\">\n                                <ExternalLink\n                                    :text=\"\n                                        $t(\n                                            'templates.domainSections.onion.learnMoreAboutOnionServices',\n                                        )\n                                    \"\n                                    link=\"https://community.torproject.org/onion-services/\"\n                                ></ExternalLink>\n                            </label>\n                        </div>\n                    </template>\n\n                    <div\n                        v-if=\"incorrectEnding\"\n                        class=\"control\"\n                    >\n                        <label class=\"text message is-warning\">\n                            <span class=\"message-body\">\n                                {{\n                                    $t(\n                                        'templates.domainSections.onion.onionLocationExpectedToEndWithOnion',\n                                    )\n                                }}\n                            </span>\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import ExternalLink from 'do-vue/src/templates/external_link.vue';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n\n    const defaults = {\n        onionLocation: {\n            default: '',\n            placeholder: '<your-onion-address>.onion',\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'DomainOnion', // Component name\n        display: 'templates.domainSections.onion.onion', // Display name for tab (i18n key)\n        key: 'onion', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            ExternalLink,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'onion'), // Getters & setters for the delegated data\n            incorrectEnding() {\n                return (\n                    this.onionLocationChanged &&\n                    !this.$props.data.onionLocation.computed.endsWith('.onion')\n                );\n            },\n            hasWarnings() {\n                return this.incorrectEnding;\n            },\n        },\n        watch: {\n            '$props.data.onionLocation': {\n                handler(data) {\n                    // Drop http(s)://\n                    data.computed = data.computed.replace(/^https?:\\/\\//, '');\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/php.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div\n            v-if=\"!phpEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.php') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control is-changed\">\n                        <label class=\"text\">\n                            {{ $t('templates.domainSections.php.phpIsDisabled') }}\n                            <template v-if=\"$parent.$props.data.reverseProxy.reverseProxy.computed\">\n                                <br />\n                                {{\n                                    $t(\n                                        'templates.domainSections.php.phpCannotBeEnabledWithReverseProxy',\n                                    )\n                                }}\n                            </template>\n                            <template v-if=\"$parent.$props.data.python.python.computed\">\n                                <br />\n                                {{\n                                    $t('templates.domainSections.php.phpCannotBeEnabledWithPython')\n                                }}\n                            </template>\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-else\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.php') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${phpChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"php\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.php.enablePhp') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"phpServerEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label has-margin-top\">\n                <label class=\"label\">{{ $t('templates.domainSections.php.phpServer') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${phpServerChanged ? ' is-changed' : ''}`\">\n                        <VueSelect\n                            ref=\"phpServerSelect\"\n                            v-model=\"phpServer\"\n                            :options=\"phpServerOptions\"\n                            :clearable=\"false\"\n                            :reduce=\"(s) => s.value\"\n                        ></VueSelect>\n                    </div>\n\n                    <div\n                        v-if=\"phpServerCustomEnabled\"\n                        :class=\"`control${phpServerCustomChanged ? ' is-changed' : ''}`\"\n                    >\n                        <input\n                            v-model=\"phpServerCustom\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.phpServerCustom.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"phpBackupServerEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label has-margin-top\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.php.phpBackupServer') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${phpBackupServerChanged ? ' is-changed' : ''}`\">\n                        <VueSelect\n                            ref=\"phpBackupServerSelect\"\n                            v-model=\"phpBackupServer\"\n                            :options=\"phpBackupServerOptions\"\n                            :clearable=\"false\"\n                            :reduce=\"(s) => s.value\"\n                        ></VueSelect>\n                    </div>\n\n                    <div\n                        v-if=\"phpBackupServerCustomEnabled\"\n                        :class=\"`control${phpBackupServerCustomChanged ? ' is-changed' : ''}`\"\n                    >\n                        <input\n                            v-model=\"phpBackupServerCustom\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.phpBackupServerCustom.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"wordPressRulesEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.php.wordPressRules') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${wordPressRulesChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"wordPressRules\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.php.enableWordPressRules') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"drupalRulesEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.php.drupalRules') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${drupalRulesChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"drupalRules\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.php.enableDrupalRules') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"magentoRulesEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.php.magentoRules') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${magentoRulesChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"magentoRules\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.php.enableMagentoRules') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"joomlaRulesEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.php.joomlaRules') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${joomlaRulesChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"joomlaRules\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.php.enableJoomlaRules') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import VueSelect from 'vue-select';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    // Value -> i18n key\n    const serverOptions = {\n        '127.0.0.1:9000': 'templates.domainSections.php.tcp',\n        '/var/run/hhvm/sock': 'templates.domainSections.php.hhvmSocket',\n        '/var/run/hhvm/hhvm.sock': 'templates.domainSections.php.hhvmSocket',\n        '/var/run/php/php7.1-fpm.sock': 'templates.domainSections.php.php71Socket',\n        '/var/run/php/php7.2-fpm.sock': 'templates.domainSections.php.php72Socket',\n        '/var/run/php/php7.0-fpm.sock': 'templates.domainSections.php.php70Socket',\n        '/var/run/php/php7.3-fpm.sock': 'templates.domainSections.php.php73Socket',\n        '/var/run/php/php7.4-fpm.sock': 'templates.domainSections.php.php74Socket',\n        '/var/run/php/php8.0-fpm.sock': 'templates.domainSections.php.php80Socket',\n        '/var/run/php/php8.1-fpm.sock': 'templates.domainSections.php.php81Socket',\n        '/var/run/php/php8.2-fpm.sock': 'templates.domainSections.php.php82Socket',\n        '/var/run/php/php-fpm.sock': 'templates.domainSections.php.phpSocket',\n        custom: 'templates.domainSections.php.custom',\n    };\n\n    const hiddenValues = ['', 'custom'];\n\n    const defaults = {\n        phpServer: {\n            default: '/var/run/php/php-fpm.sock',\n            options: serverOptions,\n            enabled: true,\n        },\n        phpServerCustom: {\n            default: 'unix:/var/run/php/php-fpm.sock',\n            enabled: false,\n        },\n        phpBackupServer: {\n            default: '',\n            options: { '': 'templates.domainSections.php.disabled', ...serverOptions },\n            enabled: true,\n        },\n        phpBackupServerCustom: {\n            default: 'unix:/var/run/php/php-fpm.sock',\n            enabled: false,\n        },\n        php: {\n            default: true,\n            enabled: true,\n        },\n        wordPressRules: {\n            default: false,\n            enabled: true,\n        },\n        drupalRules: {\n            default: false,\n            enabled: true,\n        },\n        magentoRules: {\n            default: false,\n            enabled: true,\n        },\n        joomlaRules: {\n            default: false,\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'DomainPHP', // Component name\n        display: 'common.php', // Display name for tab (i18n key)\n        key: 'php', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            VueSelect,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'php'), // Getters & setters for the delegated data\n            phpServerOptions() {\n                return Object.entries(this.$props.data.phpServer.options).map(([key, value]) =>\n                    this.formattedOption(key, value),\n                );\n            },\n            phpBackupServerOptions() {\n                return Object.entries(this.$props.data.phpBackupServer.options).map(\n                    ([key, value]) => this.formattedOption(key, value),\n                );\n            },\n        },\n        watch: {\n            // If the Reverse proxy or Python is enabled, PHP will be forced off\n            '$parent.$props.data': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.reverseProxy.reverseProxy.computed || data.python.python.computed) {\n                        this.$props.data.php.enabled = false;\n                        this.$props.data.php.computed = false;\n                    } else {\n                        this.$props.data.php.enabled = true;\n                        this.$props.data.php.computed = this.$props.data.php.value;\n                    }\n                },\n                deep: true,\n            },\n            // Disable everything if PHP is disabled\n            '$props.data.php': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.phpServer.enabled = true;\n                        this.$props.data.phpServer.computed = this.$props.data.phpServer.value;\n                        this.$props.data.phpBackupServer.enabled = true;\n                        this.$props.data.phpBackupServer.computed =\n                            this.$props.data.phpBackupServer.value;\n                        this.$props.data.wordPressRules.enabled = true;\n                        this.$props.data.wordPressRules.computed =\n                            this.$props.data.wordPressRules.value;\n                        this.$props.data.drupalRules.enabled = true;\n                        this.$props.data.drupalRules.computed = this.$props.data.drupalRules.value;\n                        this.$props.data.magentoRules.enabled = true;\n                        this.$props.data.magentoRules.computed =\n                            this.$props.data.magentoRules.value;\n                        this.$props.data.joomlaRules.enabled = true;\n                        this.$props.data.joomlaRules.computed = this.$props.data.joomlaRules.value;\n                    } else {\n                        this.$props.data.phpServer.enabled = false;\n                        this.$props.data.phpServer.computed = '';\n                        this.$props.data.phpBackupServer.enabled = false;\n                        this.$props.data.phpBackupServer.computed = '';\n                        this.$props.data.wordPressRules.enabled = false;\n                        this.$props.data.wordPressRules.computed = false;\n                        this.$props.data.drupalRules.enabled = false;\n                        this.$props.data.drupalRules.computed = false;\n                        this.$props.data.magentoRules.enabled = false;\n                        this.$props.data.magentoRules.computed = false;\n                        this.$props.data.joomlaRules.enabled = false;\n                        this.$props.data.joomlaRules.computed = false;\n                    }\n                },\n                deep: true,\n            },\n            // Check server selection is valid\n            '$props.data.phpServer': {\n                handler(data) {\n                    if (data.enabled) {\n                        // This might cause recursion, but seems not to\n                        if (!Object.keys(data.options).includes(data.computed))\n                            data.computed = data.default;\n\n                        // Show the custom box\n                        this.$props.data.phpServerCustom.enabled = data.computed === 'custom';\n                        return;\n                    }\n\n                    // Hide custom if disabled\n                    this.$props.data.phpServerCustom.enabled = false;\n                },\n                deep: true,\n            },\n            // Check backup server selection is valid\n            '$props.data.phpBackupServer': {\n                handler(data) {\n                    if (data.enabled) {\n                        // This might cause recursion, but seems not to\n                        if (!Object.keys(data.options).includes(data.computed))\n                            data.computed = data.default;\n\n                        // Show the custom box\n                        this.$props.data.phpBackupServerCustom.enabled = data.computed === 'custom';\n                        return;\n                    }\n\n                    // Hide custom if disabled\n                    this.$props.data.phpBackupServerCustom.enabled = false;\n                },\n                deep: true,\n            },\n            // Ensure 'Custom'/'Disabled' get translated in VueSelect on language switch\n            '$i18n.locale'() {\n                if (!this.$refs.phpServerSelect) return false;\n                const updated = this.phpServerOptions.find(\n                    (x) => x.value === this.$refs.phpServerSelect.$data._value.value,\n                );\n                if (updated) this.$refs.phpServerSelect.$data._value = updated;\n                const updatedBackup = this.phpBackupServerOptions.find(\n                    (x) => x.value === this.$refs.phpBackupServerSelect.$data._value.value,\n                );\n                if (updatedBackup) this.$refs.phpBackupServerSelect.$data._value = updatedBackup;\n            },\n        },\n        methods: {\n            formattedOption(key, value) {\n                return {\n                    label: `${this.$t(value)}${hiddenValues.includes(key) ? '' : `: ${key}`}`,\n                    value: key,\n                };\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/presets.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div class=\"container\">\n        <div\n            class=\"header-group\"\n            :style=\"{ cursor: interacted ? 'pointer' : undefined }\"\n            @click=\"toggleCollapse\"\n        >\n            <h3>{{ $t('templates.domainSections.presets.presets') }}</h3>\n            <a\n                v-if=\"interacted\"\n                class=\"button is-tiny\"\n            >\n                <i :class=\"`fas fa-angle-${expanded ? 'up' : 'down'}`\"></i>\n            </a>\n        </div>\n\n        <template v-if=\"!$parent.$props.data.hasUserInteraction || expanded\">\n            <div\n                v-if=\"$parent.$props.data.hasUserInteraction\"\n                class=\"message is-warning\"\n            >\n                <p class=\"message-body\">\n                    {{ $t('templates.domainSections.presets.itLooksLikeYouCustomisedTheConfig') }}\n                </p>\n            </div>\n\n            <div class=\"buttons-group\">\n                <a\n                    v-for=\"(preset, key) in $props.data\"\n                    :class=\"`button${preset.computed ? ' is-primary' : ''}`\"\n                    @click=\"setPreset(key)\"\n                >\n                    {{ $t(preset.display) }}\n                </a>\n            </div>\n        </template>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import analytics from '../../util/analytics.js';\n\n    const defaults = {\n        frontend: {\n            default: false,\n            display: 'templates.domainSections.presets.frontend', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    !data.php.php.computed &&\n                    !data.python.python.computed &&\n                    !data.reverseProxy.reverseProxy.computed &&\n                    data.routing.index.computed === 'index.html' &&\n                    data.routing.fallbackHtml.computed\n                );\n            },\n        },\n        php: {\n            default: true,\n            display: 'common.php', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.php.php.computed &&\n                    data.routing.index.computed === 'index.php' &&\n                    data.routing.fallbackPhp.computed &&\n                    !data.routing.fallbackHtml.computed &&\n                    !data.php.wordPressRules.computed &&\n                    !data.php.drupalRules.computed &&\n                    !data.php.magentoRules.computed &&\n                    !data.php.joomlaRules.computed\n                );\n            },\n        },\n        django: {\n            default: false,\n            display: 'common.django', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.python.python.computed &&\n                    data.python.djangoRules.computed &&\n                    !data.routing.root.computed\n                );\n            },\n        },\n        nodejs: {\n            default: false,\n            display: 'templates.domainSections.presets.nodeJs', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return data.reverseProxy.reverseProxy.computed && !data.routing.root.computed;\n            },\n        },\n        singlePageApplication: {\n            default: false,\n            display: 'templates.domainSections.presets.singlePageApplication', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.php.php.computed &&\n                    data.routing.index.computed === 'index.html' &&\n                    data.routing.fallbackHtml.computed\n                );\n            },\n        },\n        wordPress: {\n            default: false,\n            display: 'common.wordPress', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.routing.index.computed === 'index.php' &&\n                    data.routing.fallbackPhp.computed &&\n                    !data.routing.fallbackHtml.computed &&\n                    data.php.wordPressRules.computed &&\n                    !data.php.drupalRules.computed &&\n                    !data.php.magentoRules.computed &&\n                    !data.php.joomlaRules.computed\n                );\n            },\n        },\n        drupal: {\n            default: false,\n            display: 'common.drupal', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.routing.index.computed === 'index.php' &&\n                    data.routing.fallbackPhp.computed &&\n                    !data.routing.fallbackHtml.computed &&\n                    !data.php.wordPressRules.computed &&\n                    data.php.drupalRules.computed &&\n                    !data.php.magentoRules.computed &&\n                    !data.php.joomlaRules.computed\n                );\n            },\n        },\n        magento: {\n            default: false,\n            display: 'common.magento', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.routing.index.computed === 'index.php' &&\n                    data.routing.fallbackPhp.computed &&\n                    !data.routing.fallbackHtml.computed &&\n                    !data.php.wordPressRules.computed &&\n                    !data.php.drupalRules.computed &&\n                    data.php.magentoRules.computed &&\n                    !data.php.joomlaRules.computed\n                );\n            },\n        },\n        joomla: {\n            default: false,\n            display: 'common.joomla', // i18n key\n            enabled: true,\n            computedCheck(data) {\n                return (\n                    data.routing.index.computed === 'index.php' &&\n                    data.routing.fallbackPhp.computed &&\n                    !data.routing.fallbackHtml.computed &&\n                    !data.php.wordPressRules.computed &&\n                    !data.php.drupalRules.computed &&\n                    !data.php.magentoRules.computed &&\n                    data.php.joomlaRules.computed\n                );\n            },\n        },\n    };\n\n    export default {\n        name: 'DomainPresets', // Component name\n        display: 'templates.domainSections.presets.presets', // Display name for tab (i18n key)\n        key: 'presets', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        data() {\n            return {\n                expanded: false,\n            };\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'presets', false), // Getters & setters for the delegated data\n            interacted() {\n                return this.$parent.$props.data.hasUserInteraction;\n            },\n        },\n        watch: {\n            // When any data changes, check if it still matches a preset\n            '$parent.$props.data': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    Object.keys(this.$props.data).forEach((preset) => {\n                        this.$props.data[preset].computed =\n                            this.$props.data[preset].computedCheck(data);\n                    });\n                },\n                deep: true,\n            },\n        },\n        methods: {\n            setPreset(key) {\n                // Set that we're using this preset\n                Object.keys(this.$props.data).forEach((preset) => (this[preset] = preset === key));\n                this.presetEvent(key, this.interacted);\n\n                // Restore some specific defaults first\n                this.$parent.resetValue('server', 'domain');\n                this.$parent.resetValue('php', 'php');\n                this.$parent.resetValue('php', 'wordPressRules');\n                this.$parent.resetValue('php', 'drupalRules');\n                this.$parent.resetValue('php', 'magentoRules');\n                this.$parent.resetValue('php', 'joomlaRules');\n                this.$parent.resetValue('python', 'python');\n                this.$parent.resetValue('python', 'djangoRules');\n                this.$parent.resetValue('reverseProxy', 'reverseProxy');\n                this.$parent.resetValue('routing', 'root');\n                this.$parent.resetValue('routing', 'index');\n                this.$parent.resetValue('routing', 'fallbackHtml');\n                this.$parent.resetValue('routing', 'fallbackPhp');\n\n                switch (key) {\n                    case 'frontend':\n                        this.$parent.setValue('php', 'php', false);\n                        this.$parent.setValue('routing', 'index', 'index.html');\n                        this.$parent.setValue('routing', 'fallbackHtml', true);\n                        break;\n\n                    case 'php':\n                        // Defaults should be PHP\n                        break;\n\n                    case 'django':\n                        this.$parent.setValue('php', 'php', false);\n                        this.$parent.setValue('python', 'python', true);\n                        this.$parent.setValue('python', 'djangoRules', true);\n                        this.$parent.setValue('routing', 'root', false);\n                        break;\n\n                    case 'nodejs':\n                        this.$parent.setValue('php', 'php', false);\n                        this.$parent.setValue('reverseProxy', 'reverseProxy', true);\n                        this.$parent.setValue('routing', 'root', false);\n                        break;\n\n                    case 'singlePageApplication':\n                        this.$parent.setValue('routing', 'index', 'index.html');\n                        this.$parent.setValue('routing', 'fallbackHtml', true);\n                        break;\n\n                    case 'wordPress':\n                        this.$parent.setValue('php', 'wordPressRules', true);\n                        break;\n\n                    case 'drupal':\n                        this.$parent.setValue('php', 'drupalRules', true);\n                        break;\n\n                    case 'magento':\n                        this.$parent.setValue('php', 'magentoRules', true);\n                        break;\n\n                    case 'joomla':\n                        this.$parent.setValue('php', 'joomlaRules', true);\n                        break;\n                }\n            },\n            presetEvent(name, overwrite = false) {\n                analytics({\n                    category: 'Preset',\n                    action: overwrite ? 'Overwritten' : 'Applied', // TODO: Is overwritten the best word here?\n                    label: name,\n                });\n            },\n            toggleCollapse() {\n                if (this.interacted) {\n                    this.expanded = !this.expanded;\n                }\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/python.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div\n            v-if=\"!pythonEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.python') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{ $t('templates.domainSections.python.pythonIsDisabled') }}\n                            <template v-if=\"$parent.$props.data.reverseProxy.reverseProxy.computed\">\n                                <br />\n                                {{\n                                    $t(\n                                        'templates.domainSections.python.pythonCannotBeEnabledWithReverseProxy',\n                                    )\n                                }}\n                            </template>\n                            <template v-if=\"$parent.$props.data.php.php.computed\">\n                                <br />\n                                {{\n                                    $t(\n                                        'templates.domainSections.python.pythonCannotBeEnabledWithPhp',\n                                    )\n                                }}\n                            </template>\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-else\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.python') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${pythonChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"python\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.python.enablePython') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"djangoRulesEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.python.djangoRules') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${djangoRulesChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"djangoRules\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.python.enableDjangoRules') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        python: {\n            default: false,\n            enabled: false,\n        },\n        djangoRules: {\n            default: false,\n            enabled: false,\n        },\n    };\n\n    export default {\n        name: 'DomainPython', // Component name\n        display: 'common.python', // Display name for tab (i18n key)\n        key: 'python', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'python'), // Getters & setters for the delegated data\n        watch: {\n            // If the Reverse proxy or PHP is enabled, Python will be forced off\n            '$parent.$props.data': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.reverseProxy.reverseProxy.computed || data.php.php.computed) {\n                        this.$props.data.python.enabled = false;\n                        this.$props.data.python.computed = false;\n                    } else {\n                        this.$props.data.python.enabled = true;\n                        this.$props.data.python.computed = this.$props.data.python.value;\n                    }\n                },\n                deep: true,\n            },\n            // Disable Django if Python is disabled\n            '$props.data.python': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.djangoRules.enabled = true;\n                        this.$props.data.djangoRules.computed = this.$props.data.djangoRules.value;\n                    } else {\n                        this.$props.data.djangoRules.enabled = false;\n                        this.$props.data.djangoRules.computed = false;\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/restrict.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"columns\">\n            <div class=\"column\">\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">GET</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${getMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"getMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">POST</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${postMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"postMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">PUT</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${putMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"putMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">PATCH</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${patchMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"patchMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">DELETE</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${deleteMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"deleteMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"column\">\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">HEAD</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${headMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"headMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">CONNECT</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${connectMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"connectMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">OPTIONS</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${optionsMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"optionsMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"field is-horizontal\">\n                    <div class=\"field-label\">\n                        <label class=\"label\">TRACE</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field\">\n                            <div :class=\"`control${traceMethodChanged ? ' is-changed' : ''}`\">\n                                <div class=\"checkbox\">\n                                    <PrettyCheck\n                                        v-model=\"traceMethod\"\n                                        class=\"p-default p-curve p-fill p-icon\"\n                                    >\n                                        {{\n                                            $t(\n                                                'templates.domainSections.restrict.disableForThisDomain',\n                                            )\n                                        }}\n                                    </PrettyCheck>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div\n            v-if=\"hasAtLeastOneEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.restrict.responseCode') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${responseCodeChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model.number=\"responseCode\"\n                            :class=\"['input', validResponseCode ? '' : 'is-danger']\"\n                            type=\"number\"\n                            min=\"100\"\n                            step=\"1\"\n                            :placeholder=\"$props.data.responseCode.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        getMethod: {\n            default: false,\n            enabled: true,\n        },\n        postMethod: {\n            default: false,\n            enabled: true,\n        },\n        putMethod: {\n            default: false,\n            enabled: true,\n        },\n        patchMethod: {\n            default: false,\n            enabled: true,\n        },\n        deleteMethod: {\n            default: false,\n            enabled: true,\n        },\n        headMethod: {\n            default: false,\n            enabled: true,\n        },\n        connectMethod: {\n            default: false,\n            enabled: true,\n        },\n        optionsMethod: {\n            default: false,\n            enabled: true,\n        },\n        traceMethod: {\n            default: false,\n            enabled: true,\n        },\n        responseCode: {\n            default: 405,\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'DomainRestrict', // Component name\n        display: 'common.restrict', // Display name for tab (i18n key)\n        key: 'restrict', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        data() {\n            return {\n                validResponseCode: true,\n            };\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'restrict'), // Getters & setters for the delegated data\n            hasAtLeastOneEnabled() {\n                return (\n                    Object.keys(this.$props.data).filter(\n                        (k) => this.$props.data[k].computed && k !== 'responseCode',\n                    ).length > 0\n                );\n            },\n        },\n        watch: {\n            '$props.data.responseCode': {\n                handler(data) {\n                    if (data.computed && /^[1-5][0-9][0-9]$/.test(data.computed)) {\n                        this.validResponseCode = true;\n                    } else {\n                        this.validResponseCode = false;\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/reverse_proxy.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div\n            v-if=\"!reverseProxyEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.reverseProxy') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{ $t('templates.domainSections.reverseProxy.reverseProxyIsDisabled') }}\n                            <template v-if=\"$parent.$props.data.php.php.computed\">\n                                <br />\n                                {{\n                                    $t(\n                                        'templates.domainSections.reverseProxy.reverseProxyCannotBeEnabledWithPhp',\n                                    )\n                                }}\n                            </template>\n                            <template v-if=\"$parent.$props.data.python.python.computed\">\n                                <br />\n                                {{\n                                    $t(\n                                        'templates.domainSections.reverseProxy.reverseProxyCannotBeEnabledWithPython',\n                                    )\n                                }}\n                            </template>\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-else\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.reverseProxy') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div :class=\"`field${reverseProxyChanged ? ' is-changed' : ''}`\">\n                    <div class=\"control\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"reverseProxy\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.reverseProxy.enableReverseProxy') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"pathEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.path') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div :class=\"`field${pathChanged ? ' is-changed' : ''}`\">\n                    <div class=\"control\">\n                        <input\n                            v-model=\"path\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.path.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"proxyPassEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">proxy_pass</label>\n            </div>\n            <div class=\"field-body\">\n                <div :class=\"`field${proxyPassChanged ? ' is-changed' : ''}`\">\n                    <div class=\"control\">\n                        <input\n                            v-model=\"proxyPass\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.proxyPass.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"proxyHostHeaderEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.reverseProxy.proxyHostHeader') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div :class=\"`field${proxyHostHeaderChanged ? ' is-changed' : ''}`\">\n                    <div class=\"control\">\n                        <input\n                            v-model=\"proxyHostHeader\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.proxyHostHeader.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        reverseProxy: {\n            default: false,\n            enabled: false,\n        },\n        path: {\n            default: '/',\n            enabled: false,\n        },\n        proxyPass: {\n            default: 'http://127.0.0.1:3000',\n            enabled: false,\n        },\n        proxyHostHeader: {\n            default: '$host',\n            enabled: false,\n        },\n    };\n\n    export default {\n        name: 'DomainReverseProxy', // Component name\n        display: 'common.reverseProxy', // Display name for tab (i18n key)\n        key: 'reverseProxy', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'reverseProxy'), // Getters & setters for the delegated data\n        watch: {\n            // If the PHP or Python is enabled, the Reverse proxy will be forced off\n            '$parent.$props.data': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.php.php.computed || data.python.python.computed) {\n                        this.$props.data.reverseProxy.enabled = false;\n                        this.$props.data.reverseProxy.computed = false;\n                    } else {\n                        this.$props.data.reverseProxy.enabled = true;\n                        this.$props.data.reverseProxy.computed =\n                            this.$props.data.reverseProxy.value;\n                    }\n                },\n                deep: true,\n            },\n            // Disable all options if Reverse proxy is disabled\n            '$props.data.reverseProxy': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.path.enabled = true;\n                        this.$props.data.path.computed = this.$props.data.path.value;\n                        this.$props.data.proxyPass.enabled = true;\n                        this.$props.data.proxyPass.computed = this.$props.data.proxyPass.value;\n                        this.$props.data.proxyHostHeader.enabled = true;\n                        this.$props.data.proxyHostHeader.computed =\n                            this.$props.data.proxyHostHeader.value;\n                    } else {\n                        this.$props.data.path.enabled = false;\n                        this.$props.data.path.computed = '';\n                        this.$props.data.proxyPass.enabled = false;\n                        this.$props.data.proxyPass.computed = '';\n                        this.$props.data.proxyHostHeader.enabled = false;\n                        this.$props.data.proxyHostHeader.computed = '';\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/routing.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">root</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${rootChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"root\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"indexEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">index</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div\n                        v-for=\"value in $props.data.index.options\"\n                        :class=\"`control${indexChanged && value === index ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"radio\">\n                            <PrettyRadio\n                                v-model=\"index\"\n                                :value=\"value\"\n                                class=\"p-default p-round p-fill p-icon\"\n                            >\n                                {{ value }}\n                            </PrettyRadio>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"fallbackHtmlEnabled || fallbackPhpEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.routing.fallbackRouting') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div\n                        v-if=\"fallbackHtmlEnabled\"\n                        :class=\"`control${fallbackHtmlChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"fallbackHtml\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                index.html\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"fallbackPhpEnabled\"\n                        :class=\"`control${fallbackPhpChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"fallbackPhp\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                index.php\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"fallbackPhpPathEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.routing.fallbackRoutingPhpPath') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div :class=\"`field${fallbackPhpPathChanged ? ' is-changed' : ''}`\">\n                    <div class=\"control\">\n                        <input\n                            v-model=\"fallbackPhpPath\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.fallbackPhpPath.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"legacyPhpRoutingEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.routing.legacyPhpRouting') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${legacyPhpRoutingChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"legacyPhpRouting\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.domainSections.routing.enableLegacyRouting') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n    import PrettyRadio from '../inputs/radio.vue';\n\n    const defaults = {\n        root: {\n            default: true,\n            enabled: true,\n        },\n        index: {\n            default: 'index.php',\n            options: ['index.html', 'index.php'],\n            enabled: true,\n        },\n        fallbackHtml: {\n            default: false,\n            enabled: true,\n        },\n        fallbackPhp: {\n            default: true,\n            enabled: true,\n        },\n        fallbackPhpPath: {\n            default: '/api/',\n            enabled: false,\n        },\n        legacyPhpRouting: {\n            default: false,\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'DomainRouting', // Component name\n        display: 'templates.domainSections.routing.routing', // Display name for tab (i18n key)\n        key: 'routing', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            PrettyRadio,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'routing'), // Getters & setters for the delegated data\n        watch: {\n            // Disable all options (expect legacy php) if root is disabled\n            '$props.data.root': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.index.enabled = true;\n                        this.$props.data.index.computed = this.$props.data.index.value;\n                        this.$props.data.fallbackHtml.enabled = true;\n                        this.$props.data.fallbackHtml.computed =\n                            this.$props.data.fallbackHtml.value;\n                        this.$props.data.fallbackPhp.enabled = true;\n                        this.$props.data.fallbackPhp.computed = this.$props.data.fallbackPhp.value;\n                    } else {\n                        this.$props.data.index.enabled = false;\n                        this.$props.data.index.computed = '';\n                        this.$props.data.fallbackHtml.enabled = false;\n                        this.$props.data.fallbackHtml.computed = false;\n                        this.$props.data.fallbackPhp.enabled = false;\n                        this.$props.data.fallbackPhp.computed = false;\n                    }\n                },\n                deep: true,\n            },\n            // Only enable PHP path if both fallback routing options enabled\n            '$props.data': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.fallbackHtml.computed && data.fallbackPhp.computed) {\n                        this.$props.data.fallbackPhpPath.enabled = true;\n                        this.$props.data.fallbackPhpPath.computed =\n                            this.$props.data.fallbackPhpPath.value;\n                    } else {\n                        this.$props.data.fallbackPhpPath.enabled = false;\n                        this.$props.data.fallbackPhpPath.computed = '';\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/domain_sections/server.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field-row\">\n            <div class=\"field\">\n                <label class=\"label\">{{ $t('templates.domainSections.server.domain') }}</label>\n                <div :class=\"`control${domainChanged ? ' is-changed' : ''}`\">\n                    <input\n                        v-model=\"domain\"\n                        class=\"input\"\n                        type=\"text\"\n                        :placeholder=\"domainDefault\"\n                    />\n                </div>\n            </div>\n\n            <div class=\"field\">\n                <label class=\"label\">{{ $t('common.path') }}</label>\n                <div :class=\"`control${pathChanged ? ' is-changed' : ''}`\">\n                    <input\n                        v-model=\"path\"\n                        class=\"input\"\n                        type=\"text\"\n                        :placeholder=\"`/var/www/${domain}`\"\n                    />\n                </div>\n            </div>\n\n            <div class=\"field\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.server.documentRoot') }}\n                </label>\n                <div :class=\"`control${documentRootChanged ? ' is-changed' : ''}`\">\n                    <input\n                        v-model=\"documentRoot\"\n                        class=\"input\"\n                        type=\"text\"\n                        :placeholder=\"documentRootDefault\"\n                    />\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"duplicateDomain\"\n            class=\"field\"\n        >\n            <div class=\"control\">\n                <label class=\"text message is-warning\">\n                    <span class=\"message-body\">\n                        {{\n                            $t('templates.domainSections.server.oneOrMoreOtherDomainsAreAlsoNamed')\n                        }}\n                        <code class=\"slim\">{{ $props.data.domain.computed }}</code>\n                        .\n                        {{\n                            $t(\n                                'templates.domainSections.server.thisWillCauseIssuesWithConfigGeneration',\n                            )\n                        }}\n                    </span>\n                </label>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.server.wwwSubdomain') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${wwwSubdomainChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"wwwSubdomain\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                (www.{{ $props.data.domain.computed }})\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"cdnSubdomainEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.server.cdnSubdomain') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${cdnSubdomainChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cdnSubdomain\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                (cdn.{{ $props.data.domain.computed }})\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.domainSections.server.redirectSubdomains') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${redirectSubdomainsChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"redirectSubdomains\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                ({{ wwwSubdomain ? `${domain}, ` : '' }}*.{{\n                                    $props.data.domain.computed\n                                }}\n                                <i class=\"fas fa-long-arrow-alt-right\"></i>\n                                {{ wwwSubdomain ? 'www.' : '' }}{{ $props.data.domain.computed }})\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.domainSections.server.listen') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field has-addons\">\n                    <div class=\"control\">\n                        <a class=\"button is-static\">IPv4</a>\n                    </div>\n                    <div :class=\"`control is-expanded${listenIpv4Changed ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"listenIpv4\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"listenIpv4Default\"\n                        />\n                    </div>\n                </div>\n                <div class=\"field has-addons\">\n                    <div class=\"control\">\n                        <a class=\"button is-static\">IPv6</a>\n                    </div>\n                    <div :class=\"`control is-expanded${listenIpv6Changed ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"listenIpv6\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"listenIpv6Default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import { serverDomainDefault } from '../../util/defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        domain: {\n            default: serverDomainDefault,\n            enabled: true,\n        },\n        path: {\n            default: '',\n            computed: `/var/www/${serverDomainDefault}`, // No default value, but a default computed\n            enabled: true,\n        },\n        documentRoot: {\n            default: '/public',\n            enabled: true,\n        },\n        wwwSubdomain: {\n            default: false,\n            enabled: true,\n        },\n        cdnSubdomain: {\n            default: false,\n            enabled: false,\n        },\n        redirectSubdomains: {\n            default: true,\n            enabled: true,\n        },\n        listenIpv4: {\n            default: '*',\n            enabled: true,\n        },\n        listenIpv6: {\n            default: '::',\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'DomainServer', // Component name\n        display: 'templates.domainSections.server.server', // Display name for tab (i18n key)\n        key: 'server', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'server'), // Getters & setters for the delegated data\n            duplicateDomain() {\n                return (\n                    this.$parent.$parent.$data.domains.filter(\n                        (d) => d && d.server.domain.computed === this.$props.data.domain.computed,\n                    ).length > 1\n                );\n            },\n            hasWarnings() {\n                return this.duplicateDomain;\n            },\n        },\n        watch: {\n            '$props.data.domain': {\n                handler(data) {\n                    // Ignore www. if given, enable WWW subdomain\n                    if (data.computed.startsWith('www.')) {\n                        data.computed = data.computed.slice(4);\n                        this.wwwSubdomain = true;\n                    }\n\n                    // Use default if empty\n                    if (!data.computed.trim()) {\n                        data.computed = data.default;\n                    }\n\n                    // Ensure there is a default path\n                    if (!this.$props.data.path.value.trim()) {\n                        this.$props.data.path.computed = `/var/www/${data.computed}`;\n                    }\n                },\n                deep: true,\n            },\n            // Only allow CDN when WWW is enabled first\n            '$props.data.wwwSubdomain': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.computed) {\n                        this.$props.data.cdnSubdomain.enabled = true;\n                        this.$props.data.cdnSubdomain.computed =\n                            this.$props.data.cdnSubdomain.value;\n                    } else {\n                        this.$props.data.cdnSubdomain.enabled = false;\n                        this.$props.data.cdnSubdomain.computed = false;\n                    }\n                },\n                deep: true,\n            },\n            // Ensure there is a default path\n            '$props.data.path': {\n                handler(data) {\n                    if (!data.computed.trim()) {\n                        data.computed = `/var/www/${this.$props.data.domain.computed}`;\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/footer.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div class=\"footer\">\n        <div class=\"container\">\n            <p>\n                <button\n                    type=\"button\"\n                    class=\"button is-primary is-small\"\n                    @click=\"handleScrollToTop\"\n                >\n                    {{ $t('templates.footer.backToTop') }}\n                </button>\n            </p>\n            <p>\n                {{ $t('templates.footer.thisToolIs') }}\n                <ExternalLink\n                    :text=\"$t('templates.footer.openSourceOnGitHub')\"\n                    link=\"https://github.com/digitalocean/nginxconfig.io\"\n                ></ExternalLink>\n                {{ $t('templates.footer.underThe') }}\n                <ExternalLink\n                    :text=\"$t('templates.footer.mit')\"\n                    link=\"https://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE\"\n                ></ExternalLink>\n                {{ $t('templates.footer.license') }}\n                {{ $t('templates.footer.weWelcomeFeedbackAndContributions') }}\n            </p>\n            <p>\n                {{ $t('templates.footer.originallyCreatedBy') }}\n                <ExternalLink\n                    :text=\"$t('templates.footer.balintSzekeres')\"\n                    link=\"https://b4lint.hu/\"\n                ></ExternalLink>\n                ,\n                {{ $t('templates.footer.maintainedBy') }}\n                <ExternalLink\n                    :text=\"$t('templates.footer.digitalOcean')\"\n                    link=\"https://github.com/digitalocean/nginxconfig.io\"\n                ></ExternalLink>\n                .\n            </p>\n        </div>\n    </div>\n</template>\n\n<script>\n    import ExternalLink from 'do-vue/src/templates/external_link.vue';\n\n    export default {\n        name: 'Footer',\n        components: {\n            ExternalLink,\n        },\n        methods: {\n            handleScrollToTop: () => {\n                window.scrollTo({ top: 0 });\n\n                document\n                    .querySelectorAll('.column-scroll-y')\n                    .forEach((column) => column.scrollTo({ top: 0 }));\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div class=\"panel\">\n        <div class=\"tabs\">\n            <ul>\n                <li\n                    v-for=\"tab in tabs\"\n                    :class=\"tabClass(tab.key)\"\n                >\n                    <a @click=\"showTab(tab.key)\">\n                        {{ $t(tab.display) }}{{ changes(tab.key) }}\n                        <i\n                            v-if=\"warnings(tab.key)\"\n                            class=\"fas fa-exclamation-triangle\"\n                        ></i>\n                    </a>\n                </li>\n            </ul>\n        </div>\n\n        <component\n            :is=\"tab\"\n            v-for=\"tab in tabs\"\n            :key=\"tab.key\"\n            :ref=\"tab.key\"\n            :data=\"$props.data[tab.key]\"\n            :style=\"{ display: active === tab.key ? undefined : 'none' }\"\n            class=\"container\"\n        ></component>\n\n        <div class=\"navigation-buttons\">\n            <a\n                v-if=\"previousTab !== false\"\n                class=\"button is-mini\"\n                @click=\"showPreviousTab\"\n            >\n                <i class=\"fas fa-long-arrow-alt-left\"></i>\n                <span>{{ $t('common.back') }}</span>\n            </a>\n            <a\n                v-if=\"nextTab !== false\"\n                class=\"button is-primary is-mini\"\n                @click=\"showNextTab\"\n            >\n                <span>{{ $t('common.next') }}</span>\n                <i class=\"fas fa-long-arrow-alt-right\"></i>\n            </a>\n        </div>\n    </div>\n</template>\n\n<script>\n    import analytics from '../util/analytics.js';\n    import isChanged from '../util/is_changed.js';\n    import Sections from './global_sections/index.js';\n\n    const delegated = Sections.reduce((prev, tab) => {\n        prev[tab.key] = tab.delegated;\n        return prev;\n    }, {});\n\n    export default {\n        name: 'Global',\n        delegated, // Data the parent will present here\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        data() {\n            return {\n                active: Sections[0].key,\n                tabs: Sections,\n            };\n        },\n        computed: {\n            nextTab() {\n                const tabs = this.$data.tabs.map((t) => t.key);\n                const index = tabs.indexOf(this.$data.active) + 1;\n                if (index < tabs.length) return tabs[index];\n                return false;\n            },\n            previousTab() {\n                const tabs = this.$data.tabs.map((t) => t.key);\n                const index = tabs.indexOf(this.$data.active) - 1;\n                if (index >= 0) return tabs[index];\n                return false;\n            },\n        },\n        methods: {\n            changesCount(tab) {\n                return Object.keys(this.$props.data[tab]).filter((key) =>\n                    isChanged(this.$props.data[tab][key], tab, key),\n                ).length;\n            },\n            changes(tab) {\n                const changes = this.changesCount(tab);\n                if (changes) return ` (${changes.toLocaleString()})`;\n                return '';\n            },\n            warnings(tab) {\n                if (!Object.prototype.hasOwnProperty.call(this.$refs, tab)) return false;\n                return this.$refs[tab][0].hasWarnings || false;\n            },\n            setValue(tab, key, val) {\n                Object.assign(this.$props.data[tab][key], { value: val, computed: val });\n            },\n            resetValue(tab, key) {\n                this.setValue(tab, key, this.$props.data[tab][key].default);\n            },\n            tabClass(tab) {\n                const classes = [];\n                if (tab === this.$data.active) classes.push('is-active');\n                if (this.changesCount(tab)) classes.push('is-changed');\n                const tabs = this.$data.tabs.map((t) => t.key);\n                if (tabs.indexOf(tab) < tabs.indexOf(this.$data.active)) classes.push('is-before');\n                return classes.join(' ');\n            },\n            showTab(target) {\n                // Analytics\n                analytics({\n                    category: 'Global',\n                    action: 'Tab clicked',\n                    label: `${this.$data.active}, ${target}`,\n                });\n\n                // Go!\n                this.$data.active = target;\n            },\n            showPreviousTab() {\n                // Analytics\n                analytics({\n                    category: 'Global',\n                    action: 'Back clicked',\n                    label: `${this.$data.active}, ${this.previousTab}`,\n                });\n\n                // Go!\n                this.$data.active = this.previousTab;\n            },\n            showNextTab() {\n                // Analytics\n                analytics({\n                    category: 'Global',\n                    action: 'Next clicked',\n                    label: `${this.$data.active}, ${this.nextTab}`,\n                });\n\n                // Go!\n                this.$data.active = this.nextTab;\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/docker.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.globalSections.docker.docker') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field is-horizontal is-aligned-top\">\n                    <a\n                        class=\"button is-primary is-tiny\"\n                        @click=\"applyDockerTweaks\"\n                    >\n                        {{ $t('templates.globalSections.docker.applyDockerTweaks') }}\n                    </a>\n                    <p>\n                        {{ $t('templates.globalSections.docker.applyDockerTweaksForNginx') }}\n                        <br />\n                        <small\n                            v-html=\"\n                                $t('templates.globalSections.docker.applyDockerTweaksExplainer')\n                            \"\n                        ></small>\n                    </p>\n                </div>\n            </div>\n        </div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.globalSections.docker.dockerfile') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${dockerfileChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"dockerfile\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.docker.includeDockerfile') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <div\n            v-if=\"dockerfile\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.docker.dockerCompose') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${dockerComposeChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"dockerCompose\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.docker.includeDockerCompose') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import analytics from '../../util/analytics.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        dockerfile: {\n            default: false,\n            enabled: true,\n        },\n        dockerCompose: {\n            default: false,\n            enabled: false,\n        },\n    };\n\n    export default {\n        name: 'GlobalDocker', // Component name\n        display: 'templates.globalSections.docker.docker', // Display name for tab (i18n key)\n        key: 'docker', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'docker'), // Getters & setters for the delegated data\n        watch: {\n            // Disable docker-compose if dockerfile is disabled\n            '$props.data.dockerfile': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.dockerCompose.enabled = true;\n                        this.$props.data.dockerCompose.computed =\n                            this.$props.data.dockerCompose.value;\n                    } else {\n                        this.$props.data.dockerCompose.enabled = false;\n                        this.$props.data.dockerCompose.computed = false;\n                    }\n                },\n                deep: true,\n            },\n        },\n        methods: {\n            applyDockerTweaks() {\n                analytics('apply_docker_tweaks', 'Presets');\n                this.$parent.setValue('nginx', 'user', 'nginx');\n                this.$parent.setValue('nginx', 'pid', '/var/run/nginx.pid');\n                this.$parent.setValue('docker', 'dockerfile', true);\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/https.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.globalSections.https.portReuse') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${portReuseChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"portReuse\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.https.enableReuseOfPort') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"!sslProfileEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.globalSections.https.sslProfile') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{ $t('templates.globalSections.https.httpsMustBeEnabledOnOneSite') }}\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <template v-else>\n            <div class=\"field is-horizontal is-aligned-top\">\n                <div class=\"field-label\">\n                    <label class=\"label\">\n                        {{ $t('templates.globalSections.https.sslProfile') }}\n                    </label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field\">\n                        <div class=\"field\">\n                            <div\n                                v-for=\"(name, value) in $props.data.sslProfile.options\"\n                                :class=\"`control${\n                                    sslProfileChanged && value === sslProfile ? ' is-changed' : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"sslProfile\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"field is-horizontal is-aligned-top\">\n                <div class=\"field-label\">\n                    <label class=\"label\">\n                        {{ $t('templates.globalSections.https.ocspDnsResolvers') }}\n                    </label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field\">\n                        <div :class=\"`control${ocspCloudflareChanged ? ' is-changed' : ''}`\">\n                            <div class=\"checkbox\">\n                                <PrettyCheck\n                                    v-model=\"ocspCloudflare\"\n                                    class=\"p-default p-curve p-fill p-icon\"\n                                >\n                                    {{ $t('templates.globalSections.https.cloudflareResolver') }}\n                                </PrettyCheck>\n                            </div>\n                        </div>\n                        <div\n                            v-if=\"$props.data.ocspCloudflare.computed\"\n                            class=\"control field is-horizontal is-expanded\"\n                        >\n                            <div\n                                v-for=\"(name, value) in $props.data.ocspCloudflareType.options\"\n                                :class=\"`control${\n                                    ocspCloudflareTypeChanged && value === ocspCloudflareType\n                                        ? ' is-changed'\n                                        : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"ocspCloudflareType\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div :class=\"`control${ocspGoogleChanged ? ' is-changed' : ''}`\">\n                            <div class=\"checkbox\">\n                                <PrettyCheck\n                                    v-model=\"ocspGoogle\"\n                                    class=\"p-default p-curve p-fill p-icon\"\n                                >\n                                    {{ $t('templates.globalSections.https.googlePublicDns') }}\n                                </PrettyCheck>\n                            </div>\n                        </div>\n                        <div\n                            v-if=\"$props.data.ocspGoogle.computed\"\n                            class=\"control field is-horizontal is-expanded\"\n                        >\n                            <div\n                                v-for=\"(name, value) in $props.data.ocspGoogleType.options\"\n                                :class=\"`control${\n                                    ocspGoogleTypeChanged && value === ocspGoogleType\n                                        ? ' is-changed'\n                                        : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"ocspGoogleType\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div :class=\"`control${ocspOpenDnsChanged ? ' is-changed' : ''}`\">\n                            <div class=\"checkbox\">\n                                <PrettyCheck\n                                    v-model=\"ocspOpenDns\"\n                                    class=\"p-default p-curve p-fill p-icon\"\n                                >\n                                    {{ $t('templates.globalSections.https.openDns') }}\n                                </PrettyCheck>\n                            </div>\n                        </div>\n                        <div\n                            v-if=\"$props.data.ocspOpenDns.computed\"\n                            class=\"control field is-horizontal is-expanded\"\n                        >\n                            <div\n                                v-for=\"(name, value) in $props.data.ocspOpenDnsType.options\"\n                                :class=\"`control${\n                                    ocspOpenDnsTypeChanged && value === ocspOpenDnsType\n                                        ? ' is-changed'\n                                        : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"ocspOpenDnsType\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div :class=\"`control${ocspQuad9Changed ? ' is-changed' : ''}`\">\n                            <div class=\"checkbox\">\n                                <PrettyCheck\n                                    v-model=\"ocspQuad9\"\n                                    class=\"p-default p-curve p-fill p-icon\"\n                                >\n                                    {{ $t('templates.globalSections.https.quad9') }}\n                                </PrettyCheck>\n                            </div>\n                        </div>\n                        <div\n                            v-if=\"$props.data.ocspQuad9.computed\"\n                            class=\"control field is-horizontal is-expanded\"\n                        >\n                            <div\n                                v-for=\"(name, value) in $props.data.ocspQuad9Type.options\"\n                                :class=\"`control${\n                                    ocspQuad9TypeChanged && value === ocspQuad9Type\n                                        ? ' is-changed'\n                                        : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"ocspQuad9Type\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n\n                        <div :class=\"`control${ocspVerisignChanged ? ' is-changed' : ''}`\">\n                            <div class=\"checkbox\">\n                                <PrettyCheck\n                                    v-model=\"ocspVerisign\"\n                                    class=\"p-default p-curve p-fill p-icon\"\n                                >\n                                    {{ $t('templates.globalSections.https.verisign') }}\n                                </PrettyCheck>\n                            </div>\n                        </div>\n                        <div\n                            v-if=\"$props.data.ocspVerisign.computed\"\n                            class=\"control field is-horizontal is-expanded\"\n                        >\n                            <div\n                                v-for=\"(name, value) in $props.data.ocspVerisignType.options\"\n                                :class=\"`control${\n                                    ocspVerisignTypeChanged && value === ocspVerisignType\n                                        ? ' is-changed'\n                                        : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"ocspVerisignType\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div\n                v-if=\"letsEncryptRootEnabled\"\n                class=\"field is-horizontal\"\n            >\n                <div class=\"field-label\">\n                    <label class=\"label\">\n                        {{ $t('templates.globalSections.https.letsEncryptWebroot') }}\n                    </label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field\">\n                        <div :class=\"`control${letsEncryptRootChanged ? ' is-changed' : ''}`\">\n                            <input\n                                v-model=\"letsEncryptRoot\"\n                                class=\"input\"\n                                type=\"text\"\n                                :placeholder=\"$props.data.letsEncryptRoot.default\"\n                            />\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div\n                v-if=\"letsEncryptCertRootEnabled\"\n                class=\"field is-horizontal\"\n            >\n                <div class=\"field-label\">\n                    <label class=\"label\">\n                        {{ $t('templates.globalSections.https.letsEncryptCertRoot') }}\n                    </label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field\">\n                        <div :class=\"`control${letsEncryptCertRootChanged ? ' is-changed' : ''}`\">\n                            <input\n                                v-model=\"letsEncryptCertRoot\"\n                                class=\"input\"\n                                type=\"text\"\n                                :placeholder=\"$props.data.letsEncryptCertRoot.default\"\n                            />\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </template>\n    </div>\n</template>\n\n<script>\n    import clone from 'clone';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n    import PrettyRadio from '../inputs/radio.vue';\n\n    const ipType = {\n        default: 'ipv4',\n        options: {\n            ipv4: 'templates.globalSections.https.ipv4Only', // i18n key\n            ipv6: 'templates.globalSections.https.ipv6Only', // i18n key\n            both: 'templates.globalSections.https.ipv4AndIpv6', // i18n key\n        },\n        enabled: true,\n    };\n\n    const validOptionCheck = (data) => {\n        if (data.enabled)\n            if (!Object.keys(data.options).includes(data.computed)) data.computed = data.default;\n    };\n\n    const defaults = {\n        portReuse: {\n            default: false,\n            enabled: true,\n        },\n        sslProfile: {\n            default: 'intermediate',\n            options: {\n                modern: 'templates.globalSections.https.mozillaModern', // i18n key\n                intermediate: 'templates.globalSections.https.mozillaIntermediate', // i18n key\n                old: 'templates.globalSections.https.mozillaOld', // i18n key\n            },\n            enabled: true,\n        },\n        ocspCloudflare: {\n            default: true,\n            enabled: true,\n        },\n        ocspCloudflareType: clone(ipType),\n        ocspGoogle: {\n            default: true,\n            enabled: true,\n        },\n        ocspGoogleType: clone(ipType),\n        ocspOpenDns: {\n            default: true,\n            enabled: true,\n        },\n        ocspOpenDnsType: clone(ipType),\n        ocspQuad9: {\n            default: false,\n            enabled: true,\n        },\n        ocspQuad9Type: clone(ipType),\n        ocspVerisign: {\n            default: false,\n            enabled: true,\n        },\n        ocspVerisignType: clone(ipType),\n        letsEncryptRoot: {\n            default: '/var/www/_letsencrypt/',\n            enabled: true,\n        },\n        letsEncryptCertRoot: {\n            default: '/etc/letsencrypt/live/',\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'GlobalHTTPS', // Component name\n        display: 'common.https', // Display name for tab (i18n key)\n        key: 'https', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            PrettyRadio,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'https'), // Getters & setters for the delegated data\n        watch: {\n            // Check SSL profile is valid\n            '$props.data.sslProfile': {\n                handler: validOptionCheck,\n                deep: true,\n            },\n            // Check IP type is valid\n            '$props.data.ocspCloudflareType': {\n                handler: validOptionCheck,\n                deep: true,\n            },\n            '$props.data.ocspGoogleType': {\n                handler: validOptionCheck,\n                deep: true,\n            },\n            '$props.data.ocspOpenDnsType': {\n                handler: validOptionCheck,\n                deep: true,\n            },\n            '$props.data.ocspQuad9Type': {\n                handler: validOptionCheck,\n                deep: true,\n            },\n            '$props.data.ocspVerisignType': {\n                handler: validOptionCheck,\n                deep: true,\n            },\n            '$parent.$parent.$data.domains': {\n                handler(data) {\n                    let httpsEnabled = false,\n                        leEnabled = false;\n\n                    for (const domain of data) {\n                        // Enable HTTPS server settings if any site uses HTTPS\n                        if (\n                            domain &&\n                            domain.https &&\n                            domain.https.https &&\n                            domain.https.https.computed\n                        ) {\n                            this.$props.data.sslProfile.enabled = true;\n                            this.$props.data.sslProfile.computed =\n                                this.$props.data.sslProfile.value;\n                            this.$props.data.ocspCloudflare.enabled = true;\n                            this.$props.data.ocspCloudflare.computed =\n                                this.$props.data.ocspCloudflare.value;\n                            this.$props.data.ocspGoogle.enabled = true;\n                            this.$props.data.ocspGoogle.computed =\n                                this.$props.data.ocspGoogle.value;\n                            this.$props.data.ocspOpenDns.enabled = true;\n                            this.$props.data.ocspOpenDns.computed =\n                                this.$props.data.ocspOpenDns.value;\n                            this.$props.data.letsEncryptRoot.enabled = true;\n                            this.$props.data.letsEncryptRoot.computed =\n                                this.$props.data.letsEncryptRoot.value;\n                            httpsEnabled = true;\n                        }\n\n                        // Enable LE webroot if any site uses LE\n                        if (\n                            domain &&\n                            domain.https &&\n                            domain.https.certType &&\n                            domain.https.certType.computed === 'letsEncrypt'\n                        ) {\n                            this.$props.data.letsEncryptRoot.enabled = true;\n                            this.$props.data.letsEncryptRoot.computed =\n                                this.$props.data.letsEncryptRoot.value;\n                            leEnabled = true;\n                        }\n                    }\n\n                    if (!httpsEnabled) {\n                        this.$props.data.sslProfile.enabled = false;\n                        this.$props.data.sslProfile.computed = '';\n                        this.$props.data.ocspCloudflare.enabled = false;\n                        this.$props.data.ocspCloudflare.computed = false;\n                        this.$props.data.ocspGoogle.enabled = false;\n                        this.$props.data.ocspGoogle.computed = false;\n                        this.$props.data.ocspOpenDns.enabled = false;\n                        this.$props.data.ocspOpenDns.computed = false;\n                        this.$props.data.letsEncryptRoot.enabled = false;\n                        this.$props.data.letsEncryptRoot.computed = '';\n                    }\n\n                    if (!leEnabled) {\n                        this.$props.data.letsEncryptRoot.enabled = false;\n                        this.$props.data.letsEncryptRoot.computed = '';\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport HTTPS from './https.vue';\nimport Security from './security.vue';\nimport Python from './python.vue';\nimport ReverseProxy from './reverse_proxy.vue';\nimport Performance from './performance.vue';\nimport Logging from './logging.vue';\nimport NGINX from './nginx.vue';\nimport Docker from './docker.vue';\nimport Tools from './tools.vue';\n\nexport default [HTTPS, Security, Python, ReverseProxy, Performance, Logging, NGINX, Docker, Tools];\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/logging.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">error_log</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${errorLogEnabledChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"errorLogEnabled\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"$props.data.errorLogEnabled.computed\"\n                        :class=\"`control field is-horizontal is-expanded${\n                            errorLogPathChanged ? ' is-changed' : ''\n                        }`\"\n                    >\n                        <input\n                            v-model=\"errorLogPath\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.errorLogPath.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"$props.data.errorLogEnabled.computed\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    error_log {{ $t('templates.globalSections.logging.level') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field is-horizontal\">\n                    <div\n                        v-for=\"value in $props.data.errorLogLevel.options\"\n                        :class=\"`control${\n                            errorLogLevelChanged && value === errorLogLevel ? ' is-changed' : ''\n                        }`\"\n                    >\n                        <div class=\"radio\">\n                            <PrettyRadio\n                                v-model=\"errorLogLevel\"\n                                :value=\"value\"\n                                class=\"p-default p-round p-fill p-icon\"\n                            >\n                                {{ value }}\n                            </PrettyRadio>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label\">\n                <label class=\"label\">log_not_found</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${logNotFoundChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"logNotFound\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t(\n                                        'templates.globalSections.logging.enableFileNotFoundErrorLogging',\n                                    )\n                                }}\n                                error_log\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('templates.globalSections.logging.logformat') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div\n                        v-if=\"cloudflareEnabled\"\n                        :class=\"`control${cloudflareChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cloudflare\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.enableCloudflare') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"cfRayEnabled\"\n                        :class=\"`control${cfRayChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cfRay\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.cfRay') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"cfConnectingIpEnabled\"\n                        :class=\"`control${cfConnectingIpChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cfConnectingIp\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.cfConnectingIp') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"xForwardedForEnabled\"\n                        :class=\"`control${xForwardedForChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"xForwardedFor\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.xForwardedFor') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"xForwardedProtoEnabled\"\n                        :class=\"`control${xForwardedProtoChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"xForwardedProto\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.xForwardedProto') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"trueClientIpEnabled\"\n                        :class=\"`control${trueClientIpChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"trueClientIp\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.trueClientIp') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"cfIpCountryEnabled\"\n                        :class=\"`control${cfIpCountryChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cfIpCountry\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.cfIpCountry') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"cfVisitorEnabled\"\n                        :class=\"`control${cfVisitorChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cfVisitor\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.cfVisitor') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                    <div\n                        v-if=\"cdnLoopEnabled\"\n                        :class=\"`control${cdnLoopChanged ? ' is-changed' : ''}`\"\n                    >\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"cdnLoop\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.logging.cdnLoop') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import {\n        errorLogPathDefault,\n        errorLogLevelDefault,\n        errorLogLevelOptions,\n    } from '../../util/logging.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n    import PrettyRadio from '../inputs/radio.vue';\n\n    const defaults = {\n        errorLogEnabled: {\n            default: false,\n            enabled: true,\n        },\n        errorLogPath: {\n            default: errorLogPathDefault,\n            enabled: true,\n        },\n        errorLogLevel: {\n            default: errorLogLevelDefault,\n            options: errorLogLevelOptions,\n            enabled: true,\n        },\n        logNotFound: {\n            default: false,\n            enabled: true,\n        },\n        cloudflare: {\n            default: false,\n            enabled: true,\n        },\n        cfRay: {\n            default: true,\n            enabled: false,\n        },\n        cfConnectingIp: {\n            default: true,\n            enabled: false,\n        },\n        xForwardedFor: {\n            default: false,\n            enabled: false,\n        },\n        xForwardedProto: {\n            default: false,\n            enabled: false,\n        },\n        trueClientIp: {\n            default: false,\n            enabled: false,\n        },\n        cfIpCountry: {\n            default: false,\n            enabled: false,\n        },\n        cfVisitor: {\n            default: false,\n            enabled: false,\n        },\n        cdnLoop: {\n            default: false,\n            enabled: false,\n        },\n    };\n\n    export default {\n        name: 'GlobalLogging', // Component name\n        display: 'common.logging', // Display name for tab (i18n key)\n        key: 'logging', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            PrettyRadio,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'logging'), // Getters & setters for the delegated data\n        watch: {\n            // Show Cloudflare header options if Cloudflare is enabled\n            '$props.data.cloudflare': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.cfRay.enabled = true;\n                        this.$props.data.cfRay.computed = this.$props.data.cfRay.value;\n                        this.$props.data.cfConnectingIp.enabled = true;\n                        this.$props.data.cfConnectingIp.computed =\n                            this.$props.data.cfConnectingIp.value;\n                        this.$props.data.xForwardedFor.enabled = true;\n                        this.$props.data.xForwardedFor.computed =\n                            this.$props.data.xForwardedFor.value;\n                        this.$props.data.xForwardedProto.enabled = true;\n                        this.$props.data.xForwardedProto.computed =\n                            this.$props.data.xForwardedProto.value;\n                        this.$props.data.trueClientIp.enabled = true;\n                        this.$props.data.trueClientIp.computed =\n                            this.$props.data.trueClientIp.value;\n                        this.$props.data.cfIpCountry.enabled = true;\n                        this.$props.data.cfIpCountry.computed = this.$props.data.cfIpCountry.value;\n                        this.$props.data.cfVisitor.enabled = true;\n                        this.$props.data.cfVisitor.computed = this.$props.data.cfVisitor.value;\n                        this.$props.data.cdnLoop.enabled = true;\n                        this.$props.data.cdnLoop.computed = this.$props.data.cdnLoop.value;\n                    } else {\n                        this.$props.data.cfRay.enabled = false;\n                        this.$props.data.cfRay.computed = false;\n                        this.$props.data.cfConnectingIp.enabled = false;\n                        this.$props.data.cfConnectingIp.computed = false;\n                        this.$props.data.xForwardedFor.enabled = false;\n                        this.$props.data.xForwardedFor.computed = false;\n                        this.$props.data.xForwardedProto.enabled = false;\n                        this.$props.data.xForwardedProto.computed = false;\n                        this.$props.data.trueClientIp.enabled = false;\n                        this.$props.data.trueClientIp.computed = false;\n                        this.$props.data.cfIpCountry.enabled = false;\n                        this.$props.data.cfIpCountry.computed = false;\n                        this.$props.data.cfVisitor.enabled = false;\n                        this.$props.data.cfVisitor.computed = false;\n                        this.$props.data.cdnLoop.enabled = false;\n                        this.$props.data.cdnLoop.computed = false;\n                    }\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/nginx.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.nginx.nginxConfigDirectory') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${nginxConfigDirectoryChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"nginxConfigDirectory\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.nginxConfigDirectory.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">worker_processes</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${workerProcessesChanged ? ' is-changed' : ''}`\">\n                        <VueSelect\n                            v-model=\"workerProcesses\"\n                            :options=\"$props.data.workerProcesses.options\"\n                            :clearable=\"false\"\n                        ></VueSelect>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">user</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${userChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"user\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.user.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">pid</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${pidChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"pid\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.pid.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">client_max_body_size</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field has-addons\">\n                    <div\n                        :class=\"`control is-expanded${\n                            clientMaxBodySizeChanged ? ' is-changed' : ''\n                        }`\"\n                    >\n                        <input\n                            v-model.number=\"clientMaxBodySize\"\n                            class=\"input\"\n                            type=\"number\"\n                            min=\"0\"\n                            step=\"1\"\n                            :placeholder=\"$props.data.clientMaxBodySize.default\"\n                        />\n                    </div>\n                    <div class=\"control\">\n                        <a class=\"button is-static\">\n                            {{ $t('templates.globalSections.nginx.mb') }}\n                        </a>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">types_hash_max_size</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${typesHashMaxSizeChanged ? ' is-changed' : ''}`\">\n                        <VueSelect\n                            v-model=\"typesHashMaxSize\"\n                            :options=\"$props.data.typesHashMaxSize.options\"\n                            :clearable=\"false\"\n                        ></VueSelect>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">types_hash_bucket_size</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${typesHashBucketSizeChanged ? ' is-changed' : ''}`\">\n                        <VueSelect\n                            v-model=\"typesHashBucketSize\"\n                            :options=\"$props.data.typesHashBucketSize.options\"\n                            :clearable=\"false\"\n                        ></VueSelect>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import VueSelect from 'vue-select';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n\n    const defaults = {\n        nginxConfigDirectory: {\n            default: '/etc/nginx/',\n            computed: '/etc/nginx', // We use a watcher to trim trailing slashes\n            enabled: true,\n        },\n        workerProcesses: {\n            default: 'auto',\n            options: ['auto', ...Array.from({ length: 16 }, (_, i) => i + 1)],\n            enabled: true,\n        },\n        user: {\n            default: 'www-data',\n            enabled: true,\n        },\n        pid: {\n            default: '/run/nginx.pid',\n            enabled: true,\n        },\n        clientMaxBodySize: {\n            default: 16,\n            enabled: true,\n        },\n        typesHashMaxSize: {\n            default: 2048,\n            options: Array.from({ length: 8 }, (_, i) => Math.pow(2, i + 6)),\n            enabled: true,\n        },\n        typesHashBucketSize: {\n            default: 64,\n            options: Array.from({ length: 10 }, (_, i) => Math.pow(2, i + 4)),\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'GlobalNGINX', // Component name\n        display: 'common.nginx', // Display name for tab (i18n key)\n        key: 'nginx', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            VueSelect,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'nginx'), // Getters & setters for the delegated data\n        watch: {\n            // Clean nginx directory of trailing slashes\n            '$props.data.nginxConfigDirectory': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.enabled)\n                        if (data.computed.endsWith('/'))\n                            data.computed = data.computed.replace(/\\/+$/, '');\n                },\n                deep: true,\n            },\n            // Check worker processes selection is valid\n            '$props.data.workerProcesses': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.enabled)\n                        if (!data.options.includes(data.computed)) data.computed = data.default;\n                },\n                deep: true,\n            },\n            // Check client max body size value is valid\n            '$props.data.clientMaxBodySize': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.enabled) if (data.computed < 0) data.computed = 0;\n                },\n                deep: true,\n            },\n            // Check hash max size selection is valid\n            '$props.data.typesHashMaxSize': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.enabled)\n                        if (!data.options.includes(data.computed)) data.computed = data.default;\n                },\n                deep: true,\n            },\n            // Check hash bucket size selection is valid\n            '$props.data.typesHashBucketSize': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.enabled)\n                        if (!data.options.includes(data.computed)) data.computed = data.default;\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/performance.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.disableHtmlCaching') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${disableHtmlCachingChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"disableHtmlCaching\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t(\n                                        'templates.globalSections.performance.enableDisableHtmlCaching',\n                                    )\n                                }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.gzipCompression') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${gzipCompressionChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"gzipCompression\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t('templates.globalSections.performance.enableGzipCompression')\n                                }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal is-aligned-top\">\n            <div class=\"field-label has-small-margin-top\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.brotliCompression') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${brotliCompressionChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"brotliCompression\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t(\n                                        'templates.globalSections.performance.enableBrotliCompression',\n                                    )\n                                }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n\n                    <div\n                        v-if=\"showBrotliWarning\"\n                        class=\"control\"\n                    >\n                        <label class=\"text message is-warning\">\n                            <span class=\"message-body\">\n                                {{\n                                    $t(\n                                        'templates.globalSections.performance.brotliIsANonStandardModule',\n                                    )\n                                }}\n                                <ExternalLink\n                                    :text=\"\n                                        $t(\n                                            'templates.globalSections.performance.brotliGoogleNgxBrotliProject',\n                                        )\n                                    \"\n                                    link=\"https://github.com/google/ngx_brotli\"\n                                ></ExternalLink>\n                                {{\n                                    $t(\n                                        'templates.globalSections.performance.brotliForBuildingNginxWithBrotli',\n                                    )\n                                }}\n                            </span>\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.expirationForAssets') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${assetsExpirationChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"assetsExpiration\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.assetsExpiration.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.expirationForMedia') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${mediaExpirationChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"mediaExpiration\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.mediaExpiration.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.expirationForSvgs') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${svgExpirationChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"svgExpiration\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.svgExpiration.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.performance.expirationForFonts') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${fontsExpirationChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"fontsExpiration\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.fontsExpiration.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import ExternalLink from 'do-vue/src/templates/external_link.vue';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        disableHtmlCaching: {\n            default: false,\n            enabled: true,\n        },\n        gzipCompression: {\n            default: true,\n            enabled: true,\n        },\n        brotliCompression: {\n            default: false,\n            enabled: true,\n        },\n        assetsExpiration: {\n            default: '7d',\n            enabled: true,\n        },\n        mediaExpiration: {\n            default: '7d',\n            enabled: true,\n        },\n        svgExpiration: {\n            default: '7d',\n            enabled: true,\n        },\n        fontsExpiration: {\n            default: '7d',\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'GlobalPerformance', // Component name\n        display: 'templates.globalSections.performance.performance', // Display name for tab (i18n key)\n        key: 'performance', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            ExternalLink,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'performance'), // Getters & setters for the delegated data\n            showBrotliWarning() {\n                return this.$props.data.brotliCompression.computed;\n            },\n            hasWarnings() {\n                return this.showBrotliWarning;\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/python.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div\n            v-if=\"!pythonServerEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.python.pythonServer') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{ $t('templates.globalSections.python.pythonMustBeEnabledOnOneSite') }}\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-else\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.python.pythonServer') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${pythonServerChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"pythonServer\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.pythonServer.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n\n    const defaults = {\n        pythonServer: {\n            default: '/tmp/uwsgi.sock',\n            enabled: false,\n        },\n    };\n\n    export default {\n        name: 'GlobalPython', // Component name\n        display: 'common.python', // Display name for tab (i18n key)\n        key: 'python', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: computedFromDefaults(defaults, 'python'), // Getters & setters for the delegated data\n        watch: {\n            // Enable Python server settings if any site uses Python\n            '$parent.$parent.$data.domains': {\n                handler(data) {\n                    for (const domain of data) {\n                        if (\n                            domain &&\n                            domain.python &&\n                            domain.python.python &&\n                            domain.python.python.computed\n                        ) {\n                            this.$props.data.pythonServer.enabled = true;\n                            this.$props.data.pythonServer.computed =\n                                this.$props.data.pythonServer.value;\n                            return;\n                        }\n                    }\n                    this.$props.data.pythonServer.enabled = false;\n                    this.$props.data.pythonServer.computed = '';\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/reverse_proxy.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div\n            v-if=\"!reverseProxyEnabled\"\n            class=\"field is-horizontal is-aligned-top\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">{{ $t('common.reverseProxy') }}</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{\n                                $t(\n                                    'templates.globalSections.reverseProxy.reverseProxyMustBeEnabledOnOneSite',\n                                )\n                            }}\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <template v-else>\n            <div class=\"field is-horizontal\">\n                <div class=\"field-label\">\n                    <label class=\"label\">proxy_connect_timeout</label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field has-addons\">\n                        <div\n                            :class=\"`control is-expanded${\n                                proxyConnectTimeoutChanged ? ' is-changed' : ''\n                            }`\"\n                        >\n                            <input\n                                v-model.number=\"proxyConnectTimeout\"\n                                class=\"input\"\n                                type=\"number\"\n                                min=\"0\"\n                                step=\"1\"\n                                :placeholder=\"$props.data.proxyConnectTimeout.default\"\n                            />\n                        </div>\n                        <div class=\"control\">\n                            <a class=\"button is-static\">\n                                {{ $t('templates.globalSections.reverseProxy.seconds') }}\n                            </a>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"field is-horizontal\">\n                <div class=\"field-label\">\n                    <label class=\"label\">proxy_send_timeout</label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field has-addons\">\n                        <div\n                            :class=\"`control is-expanded${\n                                proxySendTimeoutChanged ? ' is-changed' : ''\n                            }`\"\n                        >\n                            <input\n                                v-model.number=\"proxySendTimeout\"\n                                class=\"input\"\n                                type=\"number\"\n                                min=\"0\"\n                                step=\"1\"\n                                :placeholder=\"$props.data.proxySendTimeout.default\"\n                            />\n                        </div>\n                        <div class=\"control\">\n                            <a class=\"button is-static\">\n                                {{ $t('templates.globalSections.reverseProxy.seconds') }}\n                            </a>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"field is-horizontal\">\n                <div class=\"field-label\">\n                    <label class=\"label\">proxy_read_timeout</label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field has-addons\">\n                        <div\n                            :class=\"`control is-expanded${\n                                proxyReadTimeoutChanged ? ' is-changed' : ''\n                            }`\"\n                        >\n                            <input\n                                v-model.number=\"proxyReadTimeout\"\n                                class=\"input\"\n                                type=\"number\"\n                                min=\"0\"\n                                step=\"1\"\n                                :placeholder=\"$props.data.proxyReadTimeout.default\"\n                            />\n                        </div>\n                        <div class=\"control\">\n                            <a class=\"button is-static\">\n                                {{ $t('templates.globalSections.reverseProxy.seconds') }}\n                            </a>\n                        </div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"field is-horizontal\">\n                <div class=\"field-label\">\n                    <label class=\"label\">Coexistence with X-Forwarded-*</label>\n                </div>\n                <div class=\"field-body\">\n                    <div class=\"field\">\n                        <div class=\"field\">\n                            <div\n                                v-for=\"(name, value) in $props.data.proxyCoexistenceXForwarded\n                                    .options\"\n                                :class=\"`control${\n                                    proxyCoexistenceXForwardedChanged &&\n                                    value === proxyCoexistenceXForwarded\n                                        ? ' is-changed'\n                                        : ''\n                                }`\"\n                            >\n                                <div class=\"radio\">\n                                    <PrettyRadio\n                                        v-model=\"proxyCoexistenceXForwarded\"\n                                        :value=\"value\"\n                                        class=\"p-default p-round p-fill p-icon\"\n                                    >\n                                        {{ $t(name) }}\n                                    </PrettyRadio>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </template>\n    </div>\n</template>\n\n<script>\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyRadio from '../inputs/radio.vue';\n\n    const defaults = {\n        proxyConnectTimeout: {\n            default: 60,\n            computed: '60s', // We use a watcher to append 's'\n            enabled: false,\n        },\n        proxySendTimeout: {\n            default: 60,\n            computed: '60s', // We use a watcher to append 's'\n            enabled: false,\n        },\n        proxyReadTimeout: {\n            default: 60,\n            computed: '60s', // We use a watcher to append 's'\n            enabled: false,\n        },\n        proxyCoexistenceXForwarded: {\n            default: 'passOn',\n            options: {\n                passOn: 'templates.globalSections.reverseProxy.passOn', // i18n key\n                remove: 'templates.globalSections.reverseProxy.remove', // i18n key\n            },\n            enabled: false,\n        },\n    };\n\n    const validTimeout = (data) => {\n        let val = parseFloat(data.computed);\n\n        // Use default if we've got an invalid setting\n        if (isNaN(val)) {\n            val = data.default;\n        }\n\n        // Set the value with 's' appended\n        data.computed = `${val}s`;\n    };\n\n    export default {\n        name: 'GlobalReverseProxy', // Component name\n        display: 'common.reverseProxy', // Display name for tab (i18n key)\n        key: 'reverseProxy', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyRadio,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        data() {\n            return {\n                reverseProxyEnabled: false,\n            };\n        },\n        computed: computedFromDefaults(defaults, 'reverseProxy'), // Getters & setters for the delegated data\n        watch: {\n            // Disable all options if Reverse proxy is disabled\n            '$parent.$parent.$data.domains': {\n                handler(data) {\n                    for (const domain of data) {\n                        if (\n                            domain &&\n                            domain.reverseProxy &&\n                            domain.reverseProxy.reverseProxy &&\n                            domain.reverseProxy.reverseProxy.computed\n                        ) {\n                            this.$data.reverseProxyEnabled = true;\n                            this.$props.data.proxyConnectTimeout.enabled = true;\n                            this.$props.data.proxyConnectTimeout.computed =\n                                this.$props.data.proxyConnectTimeout.value;\n                            this.$props.data.proxySendTimeout.enabled = true;\n                            this.$props.data.proxySendTimeout.computed =\n                                this.$props.data.proxySendTimeout.value;\n                            this.$props.data.proxyReadTimeout.enabled = true;\n                            this.$props.data.proxyReadTimeout.computed =\n                                this.$props.data.proxyReadTimeout.value;\n                            this.$props.data.proxyCoexistenceXForwarded.enabled = true;\n                            this.$props.data.proxyCoexistenceXForwarded.computed =\n                                this.$props.data.proxyCoexistenceXForwarded.value;\n                            return;\n                        }\n                    }\n\n                    this.$data.reverseProxyEnabled = false;\n                    this.$props.data.proxyConnectTimeout.enabled = false;\n                    this.$props.data.proxyConnectTimeout.computed = '';\n                    this.$props.data.proxySendTimeout.enabled = false;\n                    this.$props.data.proxySendTimeout.computed = '';\n                    this.$props.data.proxyReadTimeout.enabled = false;\n                    this.$props.data.proxyReadTimeout.computed = '';\n                    this.$props.data.proxyCoexistenceXForwarded.enabled = false;\n                    this.$props.data.proxyCoexistenceXForwarded.computed = '';\n                },\n                deep: true,\n            },\n            // Ensure the timeouts are valid numbers\n            '$props.data.proxyConnectTimeout': {\n                handler: validTimeout,\n                deep: true,\n            },\n            '$props.data.proxySendTimeout': {\n                handler: validTimeout,\n                deep: true,\n            },\n            '$props.data.proxyReadTimeout': {\n                handler: validTimeout,\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/security.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">Referrer-Policy</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${referrerPolicyChanged ? ' is-changed' : ''}`\">\n                        <VueSelect\n                            v-model=\"referrerPolicy\"\n                            :options=\"$props.data.referrerPolicy.options\"\n                            :clearable=\"false\"\n                        ></VueSelect>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            :class=\"`field is-horizontal${hasWordPress && !hasUnsafeEval ? ' is-aligned-top' : ''}`\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">Content-Security-Policy</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${contentSecurityPolicyChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"contentSecurityPolicy\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.contentSecurityPolicy.default\"\n                        />\n                    </div>\n                    <div\n                        v-if=\"hasWordPress && !hasWordPressUnsafeEval\"\n                        class=\"control\"\n                    >\n                        <label class=\"text message is-warning\">\n                            <span\n                                class=\"message-body\"\n                                v-html=\"\n                                    $t(\n                                        'templates.globalSections.security.whenUsingWordPressUnsafeEvalIsOftenRequiredToAllowFunctionality',\n                                    )\n                                \"\n                            />\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">Permissions-Policy</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${permissionsPolicyChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"permissionsPolicy\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.permissionsPolicy.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">server_tokens</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${serverTokensChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"serverTokens\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">limit_req</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${limitReqChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"limitReq\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">security.txt</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${securityTxt ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"securityTxt\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('common.enable') }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"$props.data.securityTxt.computed\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\">security.txt path</label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${securityTxtChanged ? ' is-changed' : ''}`\">\n                        <input\n                            v-model=\"securityTxtPath\"\n                            class=\"input\"\n                            type=\"text\"\n                            :placeholder=\"$props.data.securityTxtPath.default\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import VueSelect from 'vue-select';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        referrerPolicy: {\n            default: 'no-referrer-when-downgrade',\n            options: [\n                'no-referrer',\n                'no-referrer-when-downgrade',\n                'origin',\n                'origin-when-cross-origin',\n                'same-origin',\n                'strict-origin',\n                'strict-origin-when-cross-origin',\n                'unsafe-url',\n            ],\n            enabled: true,\n        },\n        contentSecurityPolicy: {\n            default:\n                \"default-src 'self' http: https: ws: wss: data: blob: 'unsafe-inline'; frame-ancestors 'self';\",\n            enabled: true,\n        },\n        permissionsPolicy: {\n            default: 'interest-cohort=()',\n            enabled: true,\n        },\n        serverTokens: {\n            default: false,\n            enabled: true,\n        },\n        limitReq: {\n            default: false,\n            enabled: true,\n        },\n        securityTxt: {\n            default: false,\n            enabled: true,\n        },\n        securityTxtPath: {\n            default: '~/security.txt',\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'GlobalSecurity', // Component name\n        display: 'templates.globalSections.security.security', // Display name for tab (i18n key)\n        key: 'security', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            VueSelect,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'security'), // Getters & setters for the delegated data\n            hasWordPress() {\n                return this.$parent.$parent.$data.domains.some(\n                    (d) => d && d.php.wordPressRules.computed,\n                );\n            },\n            hasWordPressUnsafeEval() {\n                return (\n                    this.$props.data.contentSecurityPolicy.computed.match(\n                        /(default|script)-src[^;]+'self'[^;]+'unsafe-inline'[^;]+'unsafe-eval'[^;]*;/,\n                    ) !== null\n                );\n            },\n            hasWarnings() {\n                return this.hasWordPress && !this.hasWordPressUnsafeEval;\n            },\n        },\n        watch: {\n            // Check referrer policy selection is valid\n            '$props.data.referrerPolicy': {\n                handler(data) {\n                    // This might cause recursion, but seems not to\n                    if (data.enabled)\n                        if (!data.options.includes(data.computed)) data.computed = data.default;\n                },\n                deep: true,\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/global_sections/tools.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.tools.modularizedStructure') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${modularizedStructureChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"modularizedStructure\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{\n                                    $t(\n                                        'templates.globalSections.tools.enableModularizedConfigFiles',\n                                    )\n                                }}\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div\n            v-if=\"symlinkVhostEnabled\"\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-label\">\n                <label class=\"label\"></label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div :class=\"`control${symlinkVhostChanged ? ' is-changed' : ''}`\">\n                        <div class=\"checkbox\">\n                            <PrettyCheck\n                                v-model=\"symlinkVhost\"\n                                class=\"p-default p-curve p-fill p-icon\"\n                            >\n                                {{ $t('templates.globalSections.tools.enableSymLinksFrom') }}\n                                sites-available/\n                                {{ $t('templates.globalSections.tools.to') }} sites-enabled/\n                            </PrettyCheck>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.tools.shareConfiguration') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <input\n                            v-model=\"shareLink\"\n                            class=\"input\"\n                            type=\"text\"\n                            readonly=\"readonly\"\n                            @click=\"select\"\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\">\n                <label class=\"label\">\n                    {{ $t('templates.globalSections.tools.resetConfiguration') }}\n                </label>\n            </div>\n            <div class=\"field-body\">\n                <div class=\"field is-grouped\">\n                    <div class=\"control\">\n                        <a\n                            class=\"button is-danger is-outline is-mini\"\n                            @click=\"resetGlobal\"\n                        >\n                            {{ $t('templates.globalSections.tools.resetGlobalConfig') }}\n                        </a>\n                    </div>\n                    <div\n                        v-if=\"hasDomain\"\n                        class=\"control\"\n                    >\n                        <a\n                            class=\"button is-danger is-outline is-mini\"\n                            @click=\"resetDomains\"\n                        >\n                            {{ $t('templates.globalSections.tools.resetAllDomains') }}\n                        </a>\n                    </div>\n                    <div\n                        v-if=\"hasDomain\"\n                        class=\"control\"\n                    >\n                        <a\n                            class=\"button is-danger is-outline is-mini\"\n                            @click=\"removeDomains\"\n                        >\n                            {{ $t('templates.globalSections.tools.removeAllDomains') }}\n                        </a>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div class=\"field is-horizontal\">\n            <div class=\"field-label\"></div>\n            <div class=\"field-body is-vertical\">\n                <div\n                    v-for=\"domainData in $parent.$parent.activeDomains\"\n                    class=\"field is-horizontal\"\n                >\n                    <div class=\"field-label\">\n                        <label class=\"label\">{{ domainData[0].server.domain.computed }}</label>\n                    </div>\n                    <div class=\"field-body\">\n                        <div class=\"field is-grouped\">\n                            <div class=\"control\">\n                                <a\n                                    class=\"button is-danger is-outline is-mini\"\n                                    @click=\"resetDomain(domainData[1])\"\n                                >\n                                    {{ $t('templates.globalSections.tools.resetDomainConfig') }}\n                                </a>\n                            </div>\n                            <div class=\"control\">\n                                <a\n                                    class=\"button is-danger is-outline is-mini\"\n                                    @click=\"removeDomain(domainData[1])\"\n                                >\n                                    {{ $t('templates.globalSections.tools.removeDomain') }}\n                                </a>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <Modal\n            ref=\"confirmModal\"\n            :title=\"confirmTitle\"\n        >\n            <p>{{ confirmBody }}</p>\n            <a\n                class=\"button is-danger is-outline\"\n                @click=\"doConfirmAction\"\n            >\n                {{ $t('templates.globalSections.tools.yesImSure') }}\n            </a>\n            <a\n                class=\"button is-outline\"\n                @click=\"$refs.confirmModal.close()\"\n            >\n                {{ $t('templates.globalSections.tools.noCancel') }}\n            </a>\n        </Modal>\n    </div>\n</template>\n\n<script>\n    import Modal from 'do-vue/src/templates/modal.vue';\n    import delegatedFromDefaults from '../../util/delegated_from_defaults.js';\n    import computedFromDefaults from '../../util/computed_from_defaults.js';\n    import shareQuery from '../../util/share_query.js';\n    import analytics from '../../util/analytics.js';\n    import PrettyCheck from '../inputs/checkbox.vue';\n\n    const defaults = {\n        modularizedStructure: {\n            default: true,\n            enabled: true,\n        },\n        symlinkVhost: {\n            default: true,\n            enabled: true,\n        },\n    };\n\n    export default {\n        name: 'GlobalTools', // Component name\n        display: 'templates.globalSections.tools.tools', // Display name for tab (i18n key)\n        key: 'tools', // Key for data in parent\n        delegated: delegatedFromDefaults(defaults), // Data the parent will present here\n        components: {\n            PrettyCheck,\n            Modal,\n        },\n        props: {\n            data: Object, // Data delegated back to us from parent\n        },\n        data() {\n            return {\n                confirmTitle: '',\n                confirmBody: '',\n                confirmAction: () => {},\n            };\n        },\n        computed: {\n            ...computedFromDefaults(defaults, 'tools'), // Getters & setters for the delegated data\n            hasDomain() {\n                return this.$parent.$parent.activeDomains.length > 0;\n            },\n            shareQuery() {\n                return shareQuery(this.$parent.$parent.activeDomains, this.$parent.$props.data);\n            },\n            shareLink() {\n                const base = `${window.location.protocol}//${window.location.host}${window.location.pathname}`;\n                return `${base}${this.shareQuery}`;\n            },\n        },\n        watch: {\n            // When the share link changes, update the site query\n            shareQuery(query) {\n                window.history.replaceState({}, '', `${window.location.pathname}${query || ''}`);\n            },\n            // Disable symlink if modularized structure is disabled\n            '$props.data.modularizedStructure': {\n                handler(data) {\n                    if (data.computed) {\n                        this.$props.data.symlinkVhost.enabled = true;\n                        this.$props.data.symlinkVhost.computed =\n                            this.$props.data.symlinkVhost.value;\n                    } else {\n                        this.$props.data.symlinkVhost.enabled = false;\n                        this.$props.data.symlinkVhost.computed = false;\n                    }\n                },\n                deep: true,\n            },\n        },\n        methods: {\n            confirm(title, body, callback) {\n                this.$data.confirmTitle = title;\n                this.$data.confirmBody = body;\n                this.$data.confirmAction = callback;\n                this.$refs.confirmModal.open();\n            },\n            doConfirmAction() {\n                this.$refs.confirmModal.close();\n                this.$data.confirmAction();\n            },\n            doResetDomain(domain) {\n                if (!domain) return;\n\n                Object.values(domain).forEach((category) => {\n                    Object.values(category).forEach((property) => {\n                        property.value = property.default;\n                        property.computed = property.default;\n                    });\n                });\n            },\n            doRemoveDomain(index) {\n                this.$set(this.$parent.$parent.$data.domains, index, null);\n            },\n            resetGlobal() {\n                this.confirm(\n                    this.$t('templates.globalSections.tools.resetGlobalConfig'),\n                    this.$t('templates.globalSections.tools.resetGlobalConfigBody'),\n                    () => {\n                        // Analytics\n                        this.resetGlobalEvent();\n\n                        // Do the reset\n                        Object.values(this.$parent.$props.data).forEach((category) => {\n                            Object.values(category).forEach((property) => {\n                                property.value = property.default;\n                                property.computed = property.default;\n                            });\n                        });\n                    },\n                );\n            },\n            resetDomain(index) {\n                if (index >= this.$parent.$parent.$data.domains.length) return;\n                const domain = this.$parent.$parent.$data.domains[index];\n                if (!domain) return;\n\n                this.confirm(\n                    this.$t('templates.globalSections.tools.resetDomainConfig'),\n                    `${this.$t(\n                        'templates.globalSections.tools.areYouSureYouWantToResetAllConfigurationOptionsForThe',\n                    )}\n                    ${domain.server.domain.computed}\n                    ${this.$t('templates.globalSections.tools.domain')}`,\n                    () => {\n                        // Analytics\n                        this.resetDomainEvent(domain.server.domain.computed);\n\n                        // Do the reset\n                        this.doResetDomain(domain);\n                    },\n                );\n            },\n            removeDomain(index) {\n                if (index >= this.$parent.$parent.$data.domains.length) return;\n                const domain = this.$parent.$parent.$data.domains[index];\n                if (!domain) return;\n\n                this.confirm(\n                    this.$t('templates.globalSections.tools.removeDomain'),\n                    `${this.$t('templates.globalSections.tools.areYouSureYouWantToRemoveThe')}\n                    ${domain.server.domain.computed}\n                    ${this.$t('templates.globalSections.tools.domainConfiguration')}`,\n                    () => {\n                        // Analytics\n                        this.removeDomainEvent(domain.server.domain.computed);\n\n                        // Do the removal\n                        this.doRemoveDomain(index);\n                    },\n                );\n            },\n            resetDomains() {\n                this.confirm(\n                    this.$t('templates.globalSections.tools.resetAllDomainsConfig'),\n                    this.$t('templates.globalSections.tools.resetAllDomainsConfigBody'),\n                    () => {\n                        // Analytics\n                        this.resetDomainsEvent(\n                            this.$parent.$parent.activeDomains.map(\n                                (x) => x[0].server.domain.computed,\n                            ),\n                            this.$parent.$parent.activeDomains.length,\n                        );\n\n                        // Do the reset\n                        for (let i = 0; i < this.$parent.$parent.$data.domains.length; i++) {\n                            this.doResetDomain(this.$parent.$parent.$data.domains[i]);\n                        }\n                    },\n                );\n            },\n            removeDomains() {\n                this.confirm(\n                    this.$t('templates.globalSections.tools.removeAllDomains'),\n                    this.$t('templates.globalSections.tools.removeAllDomainsBody'),\n                    () => {\n                        // Analytics\n                        this.removeDomainsEvent(\n                            this.$parent.$parent.activeDomains.map(\n                                (x) => x[0].server.domain.computed,\n                            ),\n                            this.$parent.$parent.activeDomains.length,\n                        );\n\n                        // Do the removal\n                        for (let i = 0; i < this.$parent.$parent.$data.domains.length; i++) {\n                            this.doRemoveDomain(i);\n                        }\n                    },\n                );\n            },\n            resetGlobalEvent() {\n                analytics({\n                    category: 'Tools',\n                    action: 'Global settings reset',\n                });\n            },\n            resetDomainEvent(name) {\n                analytics({\n                    category: 'Tools',\n                    action: 'Site reset',\n                    label: name,\n                });\n            },\n            removeDomainEvent(name) {\n                analytics({\n                    category: 'Tools',\n                    action: 'Removed site',\n                    label: name,\n                });\n\n                // Also fire the general site removal event\n                this.$parent.$parent.removeSiteEvent(\n                    this.$parent.$parent.activeDomains.length - 1,\n                    name,\n                );\n            },\n            resetDomainsEvent(names, count) {\n                analytics({\n                    category: 'Tools',\n                    action: 'All sites reset',\n                    label: names.join(', '),\n                    value: count,\n                });\n            },\n            removeDomainsEvent(names, count) {\n                analytics({\n                    category: 'Tools',\n                    action: 'All sites removed',\n                    label: names.join(', '),\n                    value: count,\n                });\n\n                // Also fire the general site removal event\n                for (let i = 0; i < this.$parent.$parent.$data.domains.length; i++)\n                    this.$parent.$parent.removeSiteEvent(\n                        this.$parent.$parent.activeDomains.length - i - 1,\n                        names[i],\n                    );\n            },\n            select(event) {\n                event.target.setSelectionRange(0, event.target.value.length);\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/inputs/checkbox.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <PrettyCheck>\n        <!-- Set the FontAwesome check as the default extra -->\n        <template #extra>\n            <slot name=\"extra\">\n                <i class=\"icon fas fa-check\"></i>\n            </slot>\n        </template>\n\n        <!-- Load in all other slots -->\n        <template\n            v-for=\"(_, slot) in $slots\"\n            #[slot]=\"scope\"\n        >\n            <slot\n                :name=\"slot\"\n                v-bind=\"scope || {}\"\n            />\n        </template>\n    </PrettyCheck>\n</template>\n\n<script setup>\n    import PrettyCheck from 'do-vue/src/templates/pretty-checkbox-vue/pretty_check.vue';\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/inputs/radio.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <PrettyRadio>\n        <!-- Set the FontAwesome check as the default extra -->\n        <template #extra>\n            <slot name=\"extra\">\n                <i class=\"icon fas fa-check\"></i>\n            </slot>\n        </template>\n\n        <!-- Load in all other slots -->\n        <template\n            v-for=\"(_, slot) in $slots\"\n            #[slot]=\"scope\"\n        >\n            <slot\n                :name=\"slot\"\n                v-bind=\"scope || {}\"\n            />\n        </template>\n    </PrettyRadio>\n</template>\n\n<script setup>\n    import PrettyRadio from 'do-vue/src/templates/pretty-checkbox-vue/pretty_radio.vue';\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/prism/bash.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div @copied=\"copied\">\n        <pre><code class=\"language-bash\">{{ cmd }}</code></pre>\n    </div>\n</template>\n\n<script>\n    import { info } from '../../util/log.js';\n\n    export default {\n        name: 'BashPrism',\n        props: {\n            cmd: String,\n        },\n        mounted() {\n            info(`Highlighting ${this.$props.cmd}...`);\n            window.Prism.highlightAllUnder(this.$el);\n        },\n        methods: {\n            copied(event) {\n                this.$emit('copied', event.detail.text);\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/prism/docker.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div\n        :class=\"`column ${half ? 'is-half' : 'is-full'} is-full-mobile is-full-tablet`\"\n        @copied=\"copied\"\n    >\n        <h3 v-html=\"name\"></h3>\n        <pre><code class=\"language-docker\" v-html=\"conf\"></code></pre>\n    </div>\n</template>\n\n<script>\n    import 'prismjs/components/prism-docker.js';\n    import { info } from '../../util/log.js';\n\n    export default {\n        name: 'DockerPrism',\n        props: {\n            name: String,\n            conf: String,\n            half: Boolean,\n        },\n        mounted() {\n            info(`Highlighting ${this.$props.name}...`);\n            window.Prism.highlightAllUnder(this.$el);\n        },\n        methods: {\n            copied(event) {\n                this.$emit('copied', event.detail.text);\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/prism/nginx.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div\n        :class=\"`column ${half ? 'is-half' : 'is-full'} is-full-mobile is-full-tablet`\"\n        @copied=\"copied\"\n    >\n        <h3 v-html=\"name\"></h3>\n        <pre><code class=\"language-nginx\" v-html=\"conf\"></code></pre>\n    </div>\n</template>\n\n<script>\n    import { info } from '../../util/log.js';\n\n    export default {\n        name: 'NginxPrism',\n        props: {\n            name: String,\n            conf: String,\n            half: Boolean,\n        },\n        mounted() {\n            info(`Highlighting ${this.$props.name}...`);\n            window.Prism.highlightAllUnder(this.$el);\n        },\n        methods: {\n            copied(event) {\n                this.$emit('copied', event.detail.text);\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/prism/yaml.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div\n        :class=\"`column ${half ? 'is-half' : 'is-full'} is-full-mobile is-full-tablet`\"\n        @copied=\"copied\"\n    >\n        <h3 v-html=\"name\"></h3>\n        <pre><code class=\"language-yaml\" v-html=\"conf\"></code></pre>\n    </div>\n</template>\n\n<script>\n    import 'prismjs/components/prism-yaml.js';\n    import { info } from '../../util/log.js';\n\n    export default {\n        name: 'YamlPrism',\n        props: {\n            name: String,\n            conf: String,\n            half: Boolean,\n        },\n        mounted() {\n            info(`Highlighting ${this.$props.name}...`);\n            window.Prism.highlightAllUnder(this.$el);\n        },\n        methods: {\n            copied(event) {\n                this.$emit('copied', event.detail.text);\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/setup.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div class=\"setup\">\n        <div class=\"panel\">\n            <div class=\"tabs\">\n                <ul>\n                    <li\n                        v-for=\"tab in tabs\"\n                        :class=\"tabClass(tab.key)\"\n                    >\n                        <a @click=\"showTab(tab.key)\">{{ $t(tab.display) }}</a>\n                    </li>\n                </ul>\n            </div>\n\n            <component\n                :is=\"tab\"\n                v-for=\"tab in tabs\"\n                :key=\"tab.key\"\n                :data=\"$props.data\"\n                :style=\"{ display: active === tab.key ? undefined : 'none' }\"\n                class=\"container\"\n            ></component>\n\n            <div class=\"navigation-buttons\">\n                <a\n                    v-if=\"previousTab !== false\"\n                    class=\"button is-mini\"\n                    @click=\"showPreviousTab\"\n                >\n                    <i class=\"fas fa-long-arrow-alt-left\"></i>\n                    <span>{{ $t('common.back') }}</span>\n                </a>\n                <a\n                    v-if=\"nextTab !== false\"\n                    class=\"button is-primary is-mini\"\n                    @click=\"showNextTab\"\n                >\n                    <span>{{ $t('common.next') }}</span>\n                    <i class=\"fas fa-long-arrow-alt-right\"></i>\n                </a>\n            </div>\n        </div>\n\n        <div class=\"buttons is-centered\">\n            <a\n                class=\"button is-success\"\n                @click=\"downloadTar\"\n            >\n                {{ $t('templates.setup.downloadConfig') }}\n            </a>\n            <a\n                ref=\"copyTar\"\n                class=\"button is-primary\"\n            >\n                {{ $t('templates.setup.copyBase64') }}\n            </a>\n        </div>\n    </div>\n</template>\n\n<script>\n    import Tar from 'memory-tar-create';\n    import ClipboardJS from 'clipboard';\n    import analytics from '../util/analytics.js';\n    import Sections from './setup_sections/index.js';\n\n    export default {\n        name: 'Setup',\n        props: {\n            data: Object,\n        },\n        data() {\n            return {\n                active: Sections[0].key,\n                tabs: Sections,\n            };\n        },\n        computed: {\n            nextTab() {\n                const tabs = this.$data.tabs.map((t) => t.key);\n                const index = tabs.indexOf(this.$data.active) + 1;\n                if (index < tabs.length) return tabs[index];\n                return false;\n            },\n            previousTab() {\n                const tabs = this.$data.tabs.map((t) => t.key);\n                const index = tabs.indexOf(this.$data.active) - 1;\n                if (index >= 0) return tabs[index];\n                return false;\n            },\n            domainCount() {\n                return this.$props.data.domains.filter((d) => d !== null).length;\n            },\n            tarName() {\n                const domains = this.$props.data.domains\n                    .filter((d) => d !== null)\n                    .map((d) => d.server.domain.computed);\n                return `nginxconfig.io-${domains.join(',')}.tar.gz`;\n            },\n        },\n        mounted() {\n            this.setupCopy(this.$refs.copyTar);\n        },\n        methods: {\n            tabClass(tab) {\n                if (tab === this.$data.active) return 'is-active';\n                const tabs = this.$data.tabs.map((t) => t.key);\n                if (tabs.indexOf(tab) < tabs.indexOf(this.$data.active)) return 'is-before';\n                return undefined;\n            },\n            tarContents() {\n                const data = {};\n\n                // Add all our config files to the tar\n                for (const fileName in this.$props.data.confFiles) {\n                    if (!Object.prototype.hasOwnProperty.call(this.$props.data.confFiles, fileName))\n                        continue;\n                    data[fileName] = { contents: this.$props.data.confFiles[fileName] };\n\n                    // If symlinks are enabled and this is in sites-available, symlink to sites-enabled\n                    if (\n                        this.$props.data.global.tools.symlinkVhost.computed &&\n                        fileName.startsWith('sites-available')\n                    )\n                        data[fileName.replace(/^sites-available/, 'sites-enabled')] = {\n                            target: `../${fileName}`,\n                        };\n                }\n\n                return new Tar(data).gz();\n            },\n            downloadTar() {\n                // Analytics\n                analytics({\n                    category: 'Setup',\n                    action: 'Downloaded tar file',\n                    label: this.tarName,\n                    value: this.domainCount,\n                });\n\n                // Do tar generation\n                this.tarContents().download(this.tarName);\n            },\n            copyTar() {\n                // Analytics\n                analytics({\n                    category: 'Setup',\n                    action: 'Copied base64 tar',\n                    label: this.tarName,\n                    value: this.domainCount,\n                });\n\n                // Do tar generation\n                const path = `${this.$props.data.global.nginx.nginxConfigDirectory.computed}/${this.tarName}`;\n                return this.tarContents().base64(path);\n            },\n            setupCopy(elm) {\n                const resetText = (originalText) => {\n                    setTimeout(() => {\n                        elm.textContent = originalText;\n                    }, 5000);\n                };\n\n                const clipboard = new ClipboardJS(elm, {\n                    text: this.copyTar,\n                });\n\n                clipboard.on('success', (e) => {\n                    const originalTextCopy = elm.textContent;\n                    elm.textContent = this.$t('templates.app.copied');\n                    e.clearSelection();\n                    resetText(originalTextCopy);\n                });\n\n                clipboard.on('error', () => {\n                    const originalTextCopy = elm.textContent;\n                    elm.textContent = 'Press Ctrl + C to copy';\n                    resetText(originalTextCopy);\n                });\n            },\n            showTab(target) {\n                // Analytics\n                analytics({\n                    category: 'Setup',\n                    action: 'Tab clicked',\n                    label: `${this.$data.active}, ${target}`,\n                });\n\n                // Go!\n                this.$data.active = target;\n            },\n            showPreviousTab() {\n                // Analytics\n                analytics({\n                    category: 'Setup',\n                    action: 'Back clicked',\n                    label: `${this.$data.active}, ${this.previousTab}`,\n                });\n\n                // Go!\n                this.$data.active = this.previousTab;\n            },\n            showNextTab() {\n                // Analytics\n                analytics({\n                    category: 'Setup',\n                    action: 'Next clicked',\n                    label: `${this.$data.active}, ${this.nextTab}`,\n                });\n\n                // Go!\n                this.$data.active = this.nextTab;\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/setup_sections/certbot.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <ol v-if=\"letsEncryptActive\">\n            <li>\n                <p>\n                    {{\n                        $t('templates.setupSections.certbot.commentOutSslDirectivesInConfiguration')\n                    }}\n                    <br />\n                </p>\n                <BashPrism\n                    :key=\"sitesAvailable\"\n                    :cmd=\"`sed -i -r 's/(listen .*443)/\\\\1; #/g; s/(ssl_(certificate|certificate_key|trusted_certificate) )/#;#\\\\1/g; s/(server \\\\{)/\\\\1\\\\n    ssl off;/g' ${sitesAvailable}`\"\n                    @copied=\"codeCopiedEvent('Disable ssl directives')\"\n                ></BashPrism>\n\n                <div class=\"text message is-warning\">\n                    <p\n                        class=\"message-body\"\n                        v-html=\"$t('templates.setupSections.certbot.sslOffDeprecationWarning')\"\n                    />\n                </div>\n            </li>\n\n            <li>\n                <p>\n                    {{ $t('templates.setupSections.certbot.reloadYourNginxServer') }}\n                    <br />\n                </p>\n                <BashPrism\n                    cmd=\"sudo nginx -t && sudo systemctl reload nginx\"\n                    @copied=\"codeCopiedEvent('Reload nginx')\"\n                ></BashPrism>\n            </li>\n\n            <li>\n                <p>\n                    {{ $t('templates.setupSections.certbot.obtainSslCertificatesFromLetsEncrypt') }}\n                    <br />\n                </p>\n                <BashPrism\n                    :key=\"certbotCmds\"\n                    :cmd=\"certbotCmds\"\n                    @copied=\"codeCopiedEvent('Obtain certificates using certbot')\"\n                ></BashPrism>\n            </li>\n\n            <li>\n                <p>\n                    {{\n                        $t('templates.setupSections.certbot.uncommentSslDirectivesInConfiguration')\n                    }}\n                    <br />\n                </p>\n                <BashPrism\n                    :key=\"sitesAvailable\"\n                    :cmd=\"`sed -i -r -z 's/#?; ?#//g; s/(server \\\\{)\\\\n    ssl off;/\\\\1/g' ${sitesAvailable}`\"\n                    @copied=\"codeCopiedEvent('Enable ssl directives')\"\n                ></BashPrism>\n            </li>\n\n            <li>\n                <p>\n                    {{ $t('templates.setupSections.certbot.reloadYourNginxServer') }}\n                    <br />\n                </p>\n                <BashPrism\n                    cmd=\"sudo nginx -t && sudo systemctl reload nginx\"\n                    @copied=\"codeCopiedEvent('Reload nginx (2)')\"\n                ></BashPrism>\n            </li>\n\n            <li>\n                <p>\n                    {{\n                        $t(\n                            'templates.setupSections.certbot.configureCertbotToReloadNginxOnCertificateRenewal',\n                        )\n                    }}\n                    <br />\n                </p>\n                <BashPrism\n                    cmd=\"echo -e '#!/bin/bash\\nnginx -t && systemctl reload nginx' | sudo tee /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh\"\n                    @copied=\"codeCopiedEvent('Create nginx auto-restart on renewal')\"\n                ></BashPrism>\n                <BashPrism\n                    cmd=\"sudo chmod a+x /etc/letsencrypt/renewal-hooks/post/nginx-reload.sh\"\n                    @copied=\"codeCopiedEvent('Enable execution of auto-restart')\"\n                ></BashPrism>\n            </li>\n        </ol>\n\n        <div\n            v-else\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{\n                                $t(\n                                    'templates.setupSections.certbot.certbotDoesNotNeedToBeSetupForYourConfiguration',\n                                )\n                            }}\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import BashPrism from '../prism/bash.vue';\n    import analytics from '../../util/analytics.js';\n\n    export default {\n        name: 'SetupCertbot',\n        display: 'templates.setupSections.certbot.certbot', // i18n key\n        key: 'certbot',\n        components: {\n            BashPrism,\n        },\n        props: {\n            data: Object,\n        },\n        computed: {\n            letsEncryptDir() {\n                return this.$props.data.global.https.letsEncryptRoot.computed.replace(/\\/+$/, '');\n            },\n            letsEncryptActive() {\n                for (const domain of this.$props.data.domains) {\n                    if (domain && domain.https.certType.computed === 'letsEncrypt') {\n                        return true;\n                    }\n                }\n                return false;\n            },\n            sitesAvailable() {\n                if (!this.$props.data.global.tools.modularizedStructure.computed)\n                    return `${this.$props.data.global.nginx.nginxConfigDirectory.computed}/nginx.conf`;\n\n                const enabledAvailable = this.$props.data.global.tools.symlinkVhost.computed\n                    ? 'available'\n                    : 'enabled';\n                return this.$props.data.domains\n                    .filter((domain) => domain.https.certType.computed === 'letsEncrypt')\n                    .map(\n                        (domain) =>\n                            `${this.$props.data.global.nginx.nginxConfigDirectory.computed}/sites-${enabledAvailable}/${domain.server.domain.computed}.conf`,\n                    )\n                    .join(' ');\n            },\n            certbotCmds() {\n                return this.$props.data.domains\n                    .filter((domain) => domain.https.certType.computed === 'letsEncrypt')\n                    .map((domain) =>\n                        [\n                            'certbot certonly --webroot',\n                            `-d ${domain.server.domain.computed}`,\n                            domain.server.wwwSubdomain.computed\n                                ? `-d www.${domain.server.domain.computed}`\n                                : null,\n                            domain.server.cdnSubdomain.computed\n                                ? `-d cdn.${domain.server.domain.computed}`\n                                : null,\n                            `--email ${domain.https.letsEncryptEmail.computed}`,\n                            `-w ${this.letsEncryptDir}`,\n                            '-n --agree-tos --force-renewal',\n                        ]\n                            .filter((x) => x !== null)\n                            .join(' '),\n                    )\n                    .join('\\n');\n            },\n        },\n        methods: {\n            codeCopiedEvent(step) {\n                analytics({\n                    category: 'Setup',\n                    action: 'Code snippet copied',\n                    label: `certbot: ${step}`,\n                });\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/setup_sections/download.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <ol>\n            <li>\n                <p>\n                    <span\n                        v-html=\"$t('templates.setupSections.download.downloadTheGeneratedConfig')\"\n                    ></span>\n                    <b>\n                        &nbsp;\n                        <a @click=\"$parent.downloadTar\">{{ $parent.tarName }}</a>\n                    </b>\n                    <br />\n                    <span\n                        v-html=\"$t('templates.setupSections.download.andUploadItToYourServers')\"\n                    ></span>\n                    <code class=\"slim\">\n                        {{ $props.data.global.nginx.nginxConfigDirectory.computed }}\n                    </code>\n                    {{ $t('templates.setupSections.download.directory') }}\n                </p>\n                <p>\n                    {{ $t('templates.setupSections.download.or') }}\n                    <b>\n                        <a ref=\"copyTar\">\n                            {{\n                                $t(\n                                    'templates.setupSections.download.copyBase64StringOfCompressedConfig',\n                                )\n                            }}\n                        </a>\n                    </b>\n                    <span\n                        v-html=\"\n                            $t(\n                                'templates.setupSections.download.pasteItInYourServersCommandLineAndExecute',\n                            )\n                        \"\n                    ></span>\n                </p>\n            </li>\n\n            <li>\n                <p>\n                    <span\n                        v-html=\"\n                            $t(\n                                'templates.setupSections.download.navigateToYourNginxConfigurationDirectoryOnYourServer',\n                            )\n                        \"\n                    ></span>\n                    <br />\n                    <BashPrism\n                        :key=\"$props.data.global.nginx.nginxConfigDirectory.computed\"\n                        :cmd=\"`cd ${$props.data.global.nginx.nginxConfigDirectory.computed}`\"\n                        @copied=\"codeCopiedEvent('Navigate to nginx config directory')\"\n                    ></BashPrism>\n                </p>\n            </li>\n\n            <li>\n                <p>\n                    <span\n                        v-html=\"\n                            $t(\n                                'templates.setupSections.download.createABackupOfYourCurrentNginxConfiguration',\n                            )\n                        \"\n                    ></span>\n                    <br />\n                    <BashPrism\n                        cmd=\"tar -czvf nginx_$(date +'%F_%H-%M-%S').tar.gz nginx.conf sites-available/ sites-enabled/ nginxconfig.io/\"\n                        @copied=\"codeCopiedEvent('Create nginx config backup tar')\"\n                    ></BashPrism>\n                </p>\n            </li>\n\n            <li>\n                <p>\n                    <span\n                        v-html=\"\n                            $t(\n                                'templates.setupSections.download.extractTheNewCompressedConfigurationArchiveUsingTar',\n                            )\n                        \"\n                    ></span>\n                    <br />\n                    <BashPrism\n                        :key=\"$parent.tarName\"\n                        :cmd=\"`tar -xzvf ${$parent.tarName} | xargs chmod 0644`\"\n                        @copied=\"codeCopiedEvent('Extract new nginx config tar')\"\n                    ></BashPrism>\n                </p>\n            </li>\n        </ol>\n    </div>\n</template>\n\n<script>\n    import BashPrism from '../prism/bash.vue';\n    import analytics from '../../util/analytics.js';\n\n    export default {\n        name: 'SetupDownload',\n        display: 'templates.setupSections.download.download', // i18n key\n        key: 'download',\n        components: {\n            BashPrism,\n        },\n        props: {\n            data: Object,\n        },\n        mounted() {\n            this.$parent.setupCopy(this.$refs.copyTar);\n        },\n        methods: {\n            codeCopiedEvent(step) {\n                analytics({\n                    category: 'Setup',\n                    action: 'Code snippet copied',\n                    label: `download: ${step}`,\n                });\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/setup_sections/go_live.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <p>\n            <b>{{ $t('templates.setupSections.goLive.letsGoLive') }}</b>\n            🎉\n        </p>\n        <p>\n            {{ $t('templates.setupSections.goLive.reloadNginxToLoadInYourNewConfiguration') }}\n            <br />\n            <BashPrism\n                cmd=\"sudo nginx -t && sudo systemctl reload nginx\"\n                @copied=\"codeCopiedEvent('Reload nginx')\"\n            ></BashPrism>\n        </p>\n    </div>\n</template>\n\n<script>\n    import BashPrism from '../prism/bash.vue';\n    import analytics from '../../util/analytics.js';\n\n    export default {\n        name: 'SetupGoLive',\n        display: 'templates.setupSections.goLive.goLive', // i18n key\n        key: 'goLive',\n        components: {\n            BashPrism,\n        },\n        props: {\n            data: Object,\n        },\n        methods: {\n            codeCopiedEvent(step) {\n                analytics({\n                    category: 'Setup',\n                    action: 'Code snippet copied',\n                    label: `goLive: ${step}`,\n                });\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/templates/setup_sections/index.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport Download from './download.vue';\nimport SSL from './ssl.vue';\nimport Certbot from './certbot.vue';\nimport GoLive from './go_live.vue';\n\nexport default [Download, SSL, Certbot, GoLive];\n"
  },
  {
    "path": "src/nginxconfig/templates/setup_sections/ssl.vue",
    "content": "<!--\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n-->\n\n<template>\n    <div>\n        <ol v-if=\"diffieHellmanValue || letsEncryptActive\">\n            <li v-if=\"diffieHellmanValue\">\n                <p>\n                    <span\n                        v-html=\"\n                            $t(\n                                'templates.setupSections.ssl.generateDiffieHellmanKeysByRunningThisCommandOnYourServer',\n                            )\n                        \"\n                    ></span>\n                    <br />\n                    <BashPrism\n                        :key=\"`${$props.data.global.nginx.nginxConfigDirectory.computed}-${diffieHellmanValue}`\"\n                        :cmd=\"`openssl dhparam -out ${$props.data.global.nginx.nginxConfigDirectory.computed}/dhparam.pem ${diffieHellmanValue}`\"\n                        @copied=\"codeCopiedEvent('Generate diffie-hellman keys')\"\n                    ></BashPrism>\n                </p>\n            </li>\n\n            <li v-if=\"letsEncryptActive\">\n                <p>\n                    <span\n                        v-html=\"\n                            $t(\n                                'templates.setupSections.ssl.createACommonAcmeChallengeDirectoryForLetsEncrypt',\n                            )\n                        \"\n                    ></span>\n                    <br />\n                    <BashPrism\n                        :key=\"letsEncryptDir\"\n                        :cmd=\"`mkdir -p ${letsEncryptDir}`\"\n                        @copied=\"codeCopiedEvent('Create let\\'s encrypt directory')\"\n                    ></BashPrism>\n                    <BashPrism\n                        :key=\"`${nginxUser}-${letsEncryptDir}`\"\n                        :cmd=\"`chown ${nginxUser} ${letsEncryptDir}`\"\n                        @copied=\"codeCopiedEvent('Set let\\'s encrypt directory ownership')\"\n                    ></BashPrism>\n                </p>\n            </li>\n        </ol>\n\n        <div\n            v-else\n            class=\"field is-horizontal\"\n        >\n            <div class=\"field-body\">\n                <div class=\"field\">\n                    <div class=\"control\">\n                        <label class=\"text\">\n                            {{\n                                $t(\n                                    'templates.setupSections.ssl.noAdditionalStepsAreNeededToSetUpSslForNginx',\n                                )\n                            }}\n                        </label>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</template>\n\n<script>\n    import BashPrism from '../prism/bash.vue';\n    import analytics from '../../util/analytics.js';\n\n    export default {\n        name: 'SetupSSL',\n        display: 'templates.setupSections.ssl.sslInit', // i18n key\n        key: 'ssl',\n        components: {\n            BashPrism,\n        },\n        props: {\n            data: Object,\n        },\n        computed: {\n            letsEncryptDir() {\n                return this.$props.data.global.https.letsEncryptRoot.computed.replace(/\\/+$/, '');\n            },\n            nginxUser() {\n                return this.$props.data.global.nginx.user.computed;\n            },\n            diffieHellmanValue() {\n                switch (this.$props.data.global.https.sslProfile.computed) {\n                    case 'intermediate':\n                        return 2048;\n                    case 'old':\n                        return 1024;\n                    case 'modern':\n                    default:\n                        return 0;\n                }\n            },\n            letsEncryptActive() {\n                for (const domain of this.$props.data.domains) {\n                    if (domain && domain.https.certType.computed === 'letsEncrypt') {\n                        return true;\n                    }\n                }\n                return false;\n            },\n        },\n        methods: {\n            codeCopiedEvent(step) {\n                analytics({\n                    category: 'Setup',\n                    action: 'Code snippet copied',\n                    label: `ssl: ${step}`,\n                });\n            },\n        },\n    };\n</script>\n"
  },
  {
    "path": "src/nginxconfig/util/analytics.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { info } from './log.js';\n\nexport default ({ category, action, label, value, nonInteraction }) => {\n    info('Analytics event:', { category, action, label, value, nonInteraction });\n\n    /*try {\n        // Google Analytics\n        window.ga('send', 'event', {\n            eventCategory: category,\n            eventAction: action,\n            eventLabel: label,\n            eventValue: value,\n            nonInteraction,\n        });\n    } catch (_) {\n        // If analytics fail, don't block anything else\n    }*/\n\n    try {\n        // Google Tag Manager\n        window.dataLayer = window.dataLayer || [];\n        window.dataLayer.push({\n            event: 'nginx_tool',\n            category,\n            action,\n            label,\n            value,\n            nonInteraction,\n        });\n    } catch (_) {\n        // If analytics fail, don't block anything else\n    }\n\n    try {\n        // Segment\n        window.analytics.track('Web Interaction', {\n            category,\n            action,\n            label,\n            value,\n            nonInteraction,\n        });\n    } catch (_) {\n        // If analytics fail, don't block anything else\n    }\n};\n\n/*\nAll analytics events in app:\n\n# Initial language set (from browser or query param)\n\nFile: app.vue\nCategory: 'Language'\nAction: 'Set'\nLabel: language pack name\nNon-interaction: true\n\n# User manually changing tool language\n\nFile: app.vue\nCategory: 'Language'\nAction: 'Set'\nLabel: language pack name\nNon-interaction: false\n\n# Initial domains set (from query params)\n\nFile: app.vue\nCategory: 'Site'\nAction: 'Added'\nValue: total number of sites active in tool\nNon-interaction: true\n\n# User adding a domain\n\nFile: app.vue\nCategory: 'Site'\nAction: 'Added'\nValue: total number of sites active in tool\nNon-interaction: false\n\n# User removing a domain\n\nFile: app.vue\nCategory: 'Site'\nAction: 'Removed'\nLabel: domain name being removed\nValue: total number of sites active in tool after removal\n\n# Initial split column mode (will always be disabled)\n\nFile: app.vue\nCategory: 'Split column'\nAction: 'Disabled'\nNon-interaction: true\n\n# User changing the column mode\n\nFile: app.vue\nCategory: 'Split column'\nAction: 'Disabled' / 'Enabled'\nNon-interaction: false\n\n# User applying a preset\n\nFile: domain_sections/presets.vue\nCategory: 'Preset'\nAction: 'Applied'\nLabel: preset internal name\n\n# User applying a preset with previous customisations\n\nFile: domain_sections/presets.vue\nCategory: 'Preset'\nAction: 'Overwritten'\nLabel: preset internal name\n\n# User resetting global settings\n\nFile: global_sections/tools.vue\nCategory: 'Tools'\nAction: 'Global settings reset'\n\n# User resetting a domain\n\nFile: global_sections/tools.vue\nCategory: 'Tools'\nAction: 'Site reset'\nLabel: domain name being reset\n\n# User removing a domain in the tools tab\n\nNote: This will also trigger the regular site removal event in app.vue\nFile: global_sections/tools.vue\nCategory: 'Tools'\nAction: 'Removed site'\nLabel: domain name being removed\n\n# User resetting all domains\n\nFile: global_sections/tools.vue\nCategory: 'Tools'\nAction: 'All sites reset'\nLabel: comma-separated list of domain names being reset\nValue: total number of domains being reset\n\n# User removing all domains\n\nNote: This will also trigger the regular site removal event in app.vue for each domain removed\nFile: global_sections/tools.vue\nCategory: 'Tools'\nAction: 'All sites removed'\nLabel: comma-separated list of domain names being removed\nValue: total number of domains being removed\n\n# User clicking a tab in global settings\n\nFile: global.vue\nCategory: 'Global'\nAction: 'Tab clicked'\nLabel: from tab, to tab\n\n# User clicking back in global settings\n\nFile: global.vue\nCategory: 'Global'\nAction: 'Back clicked'\nLabel: from tab, to tab\n\n# User clicking next in global settings\n\nFile: global.vue\nCategory: 'Global'\nAction: 'Next clicked'\nLabel: from tab, to tab\n\n# User clicking a tab in domain settings\n\nFile: domain.vue\nCategory: 'Site'\nAction: 'Tab clicked'\nLabel: from tab, to tab\n\n# User clicking back in domain settings\n\nFile: domain.vue\nCategory: 'Site'\nAction: 'Back clicked'\nLabel: from tab, to tab\n\n# User clicking next in domain settings\n\nFile: domain.vue\nCategory: 'Site'\nAction: 'Next clicked'\nLabel: from tab, to tab\n\n# User clicking a tab in setup\n\nFile: setup.vue\nCategory: 'Setup'\nAction: 'Tab clicked'\nLabel: from tab, to tab\n\n# User clicking back in setup\n\nFile: setup.vue\nCategory: 'Setup'\nAction: 'Back clicked'\nLabel: from tab, to tab\n\n# User clicking next in setup\n\nFile: setup.vue\nCategory: 'Setup'\nAction: 'Next clicked'\nLabel: from tab, to tab\n\n# User downloading the config\n\nFile: setup.vue\nCategory: 'Setup'\nAction: 'Downloaded tar file'\nLabel: name of the tar file (incl. domain names)\nValue: total number of active domains\n\n# User copying the base64 config\n\nFile: setup.vue\nCategory: 'Setup'\nAction: 'Copied base64 tar'\nLabel: name of the tar file (incl. domain names)\nValue: total number of active domains\n\n# User copying a code snippet in setup\n\nFile: setup.vue\nCategory: 'Setup'\nAction: 'Code snippet copied'\nLabel: tab name: a summary of the code snippet\n\n# User copying a config file\n\nFile: app.vue\nCategory: 'Config files'\nAction: 'Code snippet copied'\nLabel: name of file without nginx directory\n\n# Droplet callout is rendered\n\nFile: callouts/droplet.vue\nCategory: 'Droplet callout'\nAction: 'Visible'\nNon-interaction: true\n\n# User clicks on droplet callout\n\nFile: callouts/droplet.vue\nCategory: 'Droplet callout'\nAction: 'Clicked'\n\n# Contribute callout is rendered (on scroll)\n\nFile: callouts/contribute.vue\nCategory: 'Contribute callout'\nAction: 'Visible'\nNon-interaction: true\n\n# User clicks on contribute callout\n\nFile: callouts/contribute.vue\nCategory: 'Contribute callout'\nAction: 'Clicked'\n\n# User closes the contribute callout\n\nFile: callouts/contribute.vue\nCategory: 'Contribute callout'\nAction: 'Closed'\n\n*/\n"
  },
  {
    "path": "src/nginxconfig/util/angular_backwards_compatibility.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport isObject from './is_object.js';\n\nconst oldBool = (val) => (val.toString().trim() === '' ? true : val);\n\nconst globalMap = {\n    ssl_profile: ['https', 'sslProfile'],\n    resolver_cloudflare: ['https', 'ocspCloudflare', oldBool],\n    resolver_google: ['https', 'ocspGoogle', oldBool],\n    resolver_opendns: ['https', 'ocspOpenDns', oldBool],\n    directory_letsencrypt: ['https', 'letsEncryptRoot'],\n\n    referrer_policy: ['security', 'referrerPolicy'],\n    content_security_policy: ['security', 'contentSecurityPolicy'],\n    server_tokens: ['security', 'serverTokens', oldBool],\n    limit_req: ['security', 'limitReq', oldBool],\n\n    php_server: ['php', 'phpServer'],\n    php_server_backup: ['php', 'phpBackupServer'],\n\n    python_server: ['python', 'pythonServer'],\n\n    gzip: ['performance', 'gzipCompression', oldBool],\n    brotli: ['performance', 'brotliCompression', oldBool],\n    expires_assets: ['performance', 'assetsExpiration'],\n    expires_media: ['performance', 'mediaExpiration'],\n    expires_svg: ['performance', 'svgExpiration'],\n    expires_fonts: ['performance', 'fontsExpiration'],\n\n    access_log: ['logging', 'accessLog'],\n    error_log: ['logging', 'errorLog'],\n    log_not_found: ['logging', 'logNotFound', oldBool],\n\n    directory_nginx: ['nginx', 'nginxConfigDirectory'],\n    worker_processes: ['nginx', 'workerProcesses'],\n    user: ['nginx', 'user'],\n    pid: ['nginx', 'pid'],\n    client_max_body_size: ['nginx', 'clientMaxBodySize'],\n\n    file_structure: [\n        'tools',\n        'modularizedStructure',\n        (val) => val.toLowerCase().trim() === 'modularized',\n    ],\n    symlink: ['tools', 'symlinkVhost', oldBool],\n};\n\nconst domainMap = {\n    domain: ['server', 'domain'],\n    path: ['server', 'path'],\n    document_root: ['server', 'documentRoot'],\n    non_www: ['server', 'wwwSubdomain', (val) => !oldBool(val)],\n    cdn: ['server', 'cdnSubdomain', oldBool],\n    redirect: ['server', 'redirectSubdomains', oldBool],\n    ipv4: ['server', 'listenIpv4'],\n    ipv6: ['server', 'listenIpv6'],\n\n    https: ['https', 'https', oldBool],\n    http2: ['https', 'http2', oldBool],\n    force_https: ['https', 'forceHttps', oldBool],\n    hsts: ['https', 'hsts', oldBool],\n    hsts_subdomains: ['https', 'hstsSubdomains', oldBool],\n    hsts_preload: ['https', 'hstsPreload', oldBool],\n    cert_type: [\n        'https',\n        'certType',\n        (val) => (val.toLowerCase().trim() === 'custom' ? 'custom' : 'letsEncrypt'),\n    ],\n    email: ['https', 'letsEncryptEmail'],\n    ssl_certificate: ['https', 'sslCertificate'],\n    ssl_certificate_key: ['https', 'sslCertificateKey'],\n\n    php: ['php', 'php', oldBool],\n    wordpress: ['php', 'wordPressRules', oldBool],\n    drupal: ['php', 'drupalRules', oldBool],\n    magento: ['php', 'magentoRules', oldBool],\n\n    python: ['python', 'python', oldBool],\n    django: ['python', 'djangoRules', oldBool],\n\n    proxy: ['reverseProxy', 'reverseProxy', oldBool],\n    proxy_path: ['reverseProxy', 'path'],\n    proxy_pass: ['reverseProxy', 'proxyPass'],\n\n    root: ['routing', 'root', oldBool],\n    index: ['routing', 'index'],\n    fallback_html: ['routing', 'fallbackHtml', oldBool],\n    fallback_php: ['routing', 'fallbackPhp', oldBool],\n    fallback_php_path: ['routing', 'fallbackPhpPath'],\n    php_legacy_routing: ['routing', 'legacyPhpRouting', oldBool],\n\n    access_log_domain: ['logging', 'accessLog', oldBool],\n    error_log_domain: ['logging', 'errorLog', oldBool],\n};\n\n// Handle converting the old query format from nginxconfig.io-angular to our new query params\nexport default (data) => {\n    // Hold any mapped global data\n    const mappedGlobal = {};\n\n    // Handle converting global settings & storing domains\n    for (const key in data) {\n        if (!Object.prototype.hasOwnProperty.call(data, key)) continue;\n\n        // Map old global settings to their new ones\n        if (key in globalMap && !isObject(data[key])) {\n            const map = globalMap[key];\n\n            mappedGlobal[map[0]] = mappedGlobal[map[0]] || {};\n            mappedGlobal[map[0]][map[1]] = map.length < 3 ? data[key] : map[2](data[key]);\n            continue;\n        }\n\n        // If not a global setting and if this is an integer\n        // Then, this is probably an old domain, so we'll try to convert it as such\n        if (!isNaN(parseInt(key))) {\n            data.domains = isObject(data.domains) ? data.domains : {};\n            data.domains[key] = data[key];\n        }\n    }\n\n    // Overwrite mapped global data\n    data.global = { ...(data.global || {}), ...mappedGlobal };\n\n    // Handle converting domain settings\n    if ('domains' in data && isObject(data.domains)) {\n        for (const key in data.domains) {\n            // Don't include inherited props\n            if (!Object.prototype.hasOwnProperty.call(data.domains, key)) continue;\n\n            // Check this is an object\n            if (!isObject(data.domains[key])) continue;\n\n            // Hold any mapped data\n            const mappedData = {};\n\n            // Handle converting old domain settings to new ones\n            for (const key2 in data.domains[key]) {\n                // Don't include inherited props\n                if (!Object.prototype.hasOwnProperty.call(data.domains[key], key2)) continue;\n\n                // Don't convert objects\n                if (isObject(data.domains[key][key2])) continue;\n\n                // Map old settings to their new ones\n                if (key2 in domainMap) {\n                    const map = domainMap[key2];\n                    mappedData[map[0]] = mappedData[map[0]] || {};\n                    mappedData[map[0]][map[1]] =\n                        map.length < 3 ? data.domains[key][key2] : map[2](data.domains[key][key2]);\n                }\n            }\n\n            // Overwrite mapped properties\n            data.domains[key] = { ...data.domains[key], ...mappedData };\n        }\n    }\n};\n"
  },
  {
    "path": "src/nginxconfig/util/browser_language.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport { fromSep } from './language_packs.js';\n\nexport default (availablePacks) => {\n    if (typeof window === 'object' && typeof window.navigator === 'object') {\n        const userLocales = new Set();\n\n        // Get the user languages\n        if (Array.isArray(window.navigator.languages))\n            window.navigator.languages.forEach((locale) => userLocales.add(locale));\n        if (typeof window.navigator.language === 'string')\n            userLocales.add(window.navigator.language);\n        if (Intl && 'DateTimeFormat' in Intl)\n            if (Intl.DateTimeFormat().resolvedOptions().locale !== 'und')\n                userLocales.add(Intl.DateTimeFormat().resolvedOptions().locale);\n\n        // Try to find an exact region/language match\n        const exactMatch = [...userLocales.values()].find((locale) =>\n            availablePacks.includes(fromSep(locale, '-')),\n        );\n        if (exactMatch) return fromSep(exactMatch, '-');\n\n        // Build a map of languages to pack\n        const i18nPackLanguages = availablePacks.reduce((map, pack) => {\n            const lang = pack.match(/^[a-z]+/)[0];\n            if (!(lang in map)) map[lang] = pack;\n            return map;\n        }, {});\n\n        // Try to match a user language to a pack language\n        const langMatch = [...userLocales.values()].find((x) =>\n            Object.keys(i18nPackLanguages).includes(x.split('-')[0].toLowerCase()),\n        );\n        if (langMatch) return i18nPackLanguages[langMatch.split('-')[0].toLowerCase()];\n\n        return false;\n    }\n};\n"
  },
  {
    "path": "src/nginxconfig/util/camel_to_snake.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (str) => str.replace(/[\\w]([A-Z])/g, (m) => `${m[0]}_${m[1]}`).toLowerCase();\n"
  },
  {
    "path": "src/nginxconfig/util/common_hsts.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (domains) => {\n    return (\n        domains.every((d) => d.https.hsts.computed) &&\n        (domains.every((d) => d.https.hstsSubdomains.computed) ||\n            domains.every((d) => !d.https.hstsSubdomains.computed)) &&\n        (domains.every((d) => d.https.hstsPreload.computed) ||\n            domains.every((d) => !d.https.hstsPreload.computed))\n    );\n};\n"
  },
  {
    "path": "src/nginxconfig/util/computed_from_defaults.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport isChanged from './is_changed.js';\n\nexport default (defaults, cat, isInteraction = true) => {\n    return Object.keys(defaults).reduce((prev, key) => {\n        prev[key] = {\n            get() {\n                return this.$props.data[key].value;\n            },\n            set(value) {\n                // Save user interaction if value changed\n                if (\n                    isInteraction &&\n                    this.$parent &&\n                    'data' in this.$parent.$props &&\n                    'hasUserInteraction' in this.$parent.$props.data &&\n                    !this.$parent.$props.data.hasUserInteraction &&\n                    this.$props.data[key].value !== value\n                )\n                    this.$parent.$props.data.hasUserInteraction = true;\n\n                this.$props.data[key].value = value;\n                this.$props.data[key].computed = value;\n            },\n        };\n        prev[key + 'Default'] = {\n            get() {\n                return this.$props.data[key].default;\n            },\n        };\n        prev[key + 'Enabled'] = {\n            get() {\n                return this.$props.data[key].enabled;\n            },\n        };\n        prev[key + 'Changed'] = {\n            get() {\n                return isChanged(this.$props.data[key], cat, key);\n            },\n        };\n        return prev;\n    }, {});\n};\n"
  },
  {
    "path": "src/nginxconfig/util/deep_merge.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (target, source) => {\n    const merge = (target, source) => {\n        Object.keys(source).forEach((key) => {\n            if (source[key] && typeof source[key] === 'object') {\n                merge((target[key] = target[key] || {}), source[key]);\n                return;\n            }\n            target[key] = source[key];\n        });\n    };\n    merge(target, source);\n};\n"
  },
  {
    "path": "src/nginxconfig/util/defaults.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport const serverDomainDefault = 'example.com';\n"
  },
  {
    "path": "src/nginxconfig/util/delegated_from_defaults.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (defaults) => {\n    return Object.keys(defaults).reduce((prev, key) => {\n        prev[key] = {\n            value: defaults[key].default,\n            computed: defaults[key].default,\n            ...defaults[key],\n        };\n        return prev;\n    }, {});\n};\n"
  },
  {
    "path": "src/nginxconfig/util/export_data.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nconst categoriesExport = (categories) => {\n    const categoriesData = {};\n\n    // Work through each category\n    for (const category in categories) {\n        // Ignore presets\n        if (category === 'presets') continue;\n        const categoryData = {};\n\n        // Go over each property in the category\n        for (const property in categories[category]) {\n            // If the user input differs from the default, they changed it, so we save it\n            const propertyData = categories[category][property];\n            if (propertyData.value !== propertyData.default) {\n                categoryData[property] = propertyData.value;\n            }\n        }\n\n        // If there were any property changes, save the category\n        if (Object.keys(categoryData).length) {\n            categoriesData[category] = categoryData;\n        }\n    }\n\n    return categoriesData;\n};\n\nexport default (domains, global) => {\n    const exportData = {};\n\n    // Handle domains\n    // Always save changes, even if none, so we can replicate the correct number of domains\n    exportData.domains = domains\n        .map((domain) => categoriesExport(domain[0]))\n        .reduce((prev, current, index) => {\n            prev[index] = current;\n            return prev;\n        }, {});\n\n    // Handle global\n    // If there were any category changes, save global changes\n    const globalData = categoriesExport(global);\n    if (Object.keys(globalData).length) {\n        exportData.global = globalData;\n    }\n\n    return exportData;\n};\n"
  },
  {
    "path": "src/nginxconfig/util/get_ssl_certificate.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport const getSslCertificate = (domain, global) => {\n    if (domain.https.certType.computed === 'letsEncrypt')\n        return `${global.https.letsEncryptCertRoot.computed.replace(/\\/+$/, '')}/${\n            domain.server.domain.computed\n        }/fullchain.pem`;\n\n    if (domain.https.sslCertificate.computed) return domain.https.sslCertificate.computed;\n\n    return `${global.nginx.nginxConfigDirectory.computed.replace(/\\/+$/, '')}/ssl/${\n        domain.server.domain.computed\n    }.crt`;\n};\n\nexport const getSslCertificateKey = (domain, global) => {\n    if (domain.https.certType.computed === 'letsEncrypt')\n        return `${global.https.letsEncryptCertRoot.computed.replace(/\\/+$/, '')}/${\n            domain.server.domain.computed\n        }/privkey.pem`;\n\n    if (domain.https.sslCertificateKey.computed) return domain.https.sslCertificateKey.computed;\n\n    return `${global.nginx.nginxConfigDirectory.computed.replace(/\\/+$/, '')}/ssl/${\n        domain.server.domain.computed\n    }.key`;\n};\n"
  },
  {
    "path": "src/nginxconfig/util/import_data.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport qs from 'qs';\nimport clone from 'clone';\nimport Domain from '../templates/domain.vue';\nimport isObject from './is_object.js';\nimport angularBackwardsCompatibility from './angular_backwards_compatibility.js';\nimport vueBackwardsCompatibility from './vue_backwards_compatibility.js';\n\nconst applyCategories = (categories, target) => {\n    // Work through each potential category\n    for (const category in categories) {\n        // Avoid inheritance\n        if (!Object.prototype.hasOwnProperty.call(categories, category)) continue;\n\n        // Ignore presets\n        if (category === 'presets') continue;\n\n        // Check this is a real category\n        if (!(category in target)) continue;\n\n        // Check this is an object\n        if (!isObject(categories[category])) continue;\n\n        // Work through each potential setting in this category\n        for (const key in categories[category]) {\n            // Avoid inheritance\n            if (!Object.prototype.hasOwnProperty.call(categories[category], key)) continue;\n\n            // Check this is a real key\n            if (!(key in target[category])) continue;\n\n            // Apply the value\n            target[category][key].value = categories[category][key];\n            target[category][key].computed = categories[category][key];\n        }\n    }\n};\n\nexport default (query, domains, global, nextTick) =>\n    new Promise((resolve) => {\n        const data = qs.parse(query, {\n            ignoreQueryPrefix: true,\n            allowDots: true,\n            parseArrays: false,\n            decoder(value) {\n                value = decodeURIComponent(value);\n\n                // If it's a set of digits, parse it as a float\n                if (/^(\\d+|\\d*\\.\\d+)$/.test(value)) return parseFloat(value);\n\n                // If it matches a keyword, convert it\n                let keywords = {\n                    true: true,\n                    false: false,\n                    null: null,\n                    undefined: undefined,\n                };\n                if (value in keywords) return keywords[value];\n\n                // Otherwise, leave it as is\n                return value;\n            },\n        });\n\n        // Handle converting nginxconfig.io-angular params to the current version\n        angularBackwardsCompatibility(data);\n\n        // Handle converting vue params to the current version\n        vueBackwardsCompatibility(data);\n\n        // Handle domains\n        if ('domains' in data && isObject(data.domains)) {\n            // Work through all valid integer keys in the object\n            const keys = Object.keys(data.domains)\n                .map((x) => parseInt(x))\n                .filter((x) => !isNaN(x));\n            for (let i = 0; i < Math.max(...keys) + 1; i++) {\n                // If the key doesn't exist or this isn't a valid object, assume it was an untouched example domain\n                if (!keys.includes(i) || !isObject(data.domains[i])) {\n                    domains.push(clone(Domain.delegated));\n                    continue;\n                }\n\n                // Create a new domain (assume it has had custom user settings)\n                // Push transforms the object to a proxy, so re-fetch the proxy from the array\n                const domainImported = domains[domains.push(clone(Domain.delegated)) - 1];\n                domainImported.hasUserInteraction = true;\n\n                // Apply the initial values on the next Vue tick, once the watchers are ready\n                nextTick(() => applyCategories(data.domains[i], domainImported));\n            }\n        } else {\n            // If no configured domains, add a single default\n            domains.push(clone(Domain.delegated));\n        }\n\n        // Handle global settings\n        if ('global' in data) {\n            // If this is an object, apply any potential data\n            if (isObject(data.global)) applyCategories(data.global, global);\n        }\n\n        // Resolve after everything has updated\n        nextTick(() => nextTick(() => resolve(data)));\n    });\n"
  },
  {
    "path": "src/nginxconfig/util/is_changed.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (prop, cat, key) => {\n    // Show as changed when enabled & not default\n    // Show php as changed when completely disabled (by reverse proxy or python)\n    return (\n        (prop.enabled && prop.value !== prop.default) ||\n        (cat === 'php' && key === 'php' && prop.computed !== prop.default)\n    );\n};\n"
  },
  {
    "path": "src/nginxconfig/util/is_object.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (obj) => Object.prototype.toString.call(obj) === '[object Object]';\n"
  },
  {
    "path": "src/nginxconfig/util/language_packs.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport const defaultPack = 'en';\n\nexport { default as defaultPackData } from '../i18n/en/index.js';\n\nexport const toSep = (pack, sep) =>\n    pack\n        .match(/^([a-z]+)([A-Z]*)$/)\n        .slice(1)\n        .map((x) => x.toLowerCase())\n        .filter((x) => !!x)\n        .join(sep);\n\nexport const fromSep = (pack, sep) =>\n    pack.split(sep, 2)[0].toLowerCase() + (pack.split(sep, 2)[1] || '').toUpperCase();\n\n// Export a static array of all language packs\nexport const availablePacks = Object.freeze([\n    'de',\n    'en',\n    'es',\n    'fr',\n    'ja',\n    'pl',\n    'ptBR',\n    'ru',\n    'zhCN',\n    'zhTW',\n    'fa',\n]);\n"
  },
  {
    "path": "src/nginxconfig/util/log.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport const info = process.env.NODE_ENV !== 'production' ? console.info.bind(console) : () => {};\nexport const log = process.env.NODE_ENV !== 'production' ? console.log.bind(console) : () => {};\n\nexport const warn = console.warn.bind(console);\nexport const error = console.error.bind(console);\n"
  },
  {
    "path": "src/nginxconfig/util/logging.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport const accessLogPathDefault = '/var/log/nginx/access.log';\nexport const accessLogParamsDefault = 'buffer=512k flush=1m';\n\nexport const errorLogPathDefault = '/var/log/nginx/error.log';\nexport const errorLogPathDisabled = '/dev/null';\nexport const errorLogLevelDefault = 'warn';\nexport const errorLogLevelOptions = Object.freeze([\n    'debug',\n    'info',\n    'notice',\n    'warn',\n    'error',\n    'crit',\n    'alert',\n    'emerg',\n]);\nexport const errorLogLevelDisabled = 'none';\n\nexport const getDomainAccessLog = (domain, global) => {\n    let path = domain.logging.accessLogPath.computed.trim();\n    if (!path) {\n        path = accessLogPathDefault;\n    }\n\n    return (\n        path +\n        (global.logging.cloudflare.computed ? ' cloudflare' : ' combined') +\n        (domain.logging.accessLogParameters.computed.trim()\n            ? ` ${domain.logging.accessLogParameters.computed.trim()}`\n            : '')\n    );\n};\n\nexport const getDomainErrorLog = (domain) => {\n    let path = domain.logging.errorLogPath.computed.trim();\n    if (!path) {\n        path = errorLogPathDefault;\n    }\n\n    const errorLogLevel = errorLogLevelOptions.includes(domain.logging.errorLogLevel.computed)\n        ? ` ${domain.logging.errorLogLevel.computed}`\n        : '';\n    return `${path}${errorLogLevel}`;\n};\n"
  },
  {
    "path": "src/nginxconfig/util/php_path.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (domain, backup = false) => {\n    const key = `php${backup ? 'Backup' : ''}Server`;\n    if (domain.php[key].computed === 'custom') return domain.php[`${key}Custom`].computed;\n    return (domain.php[key].computed[0] === '/' ? 'unix:' : '') + domain.php[key].computed;\n};\n"
  },
  {
    "path": "src/nginxconfig/util/php_upstream.js",
    "content": "/*\nCopyright 2021 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (domain) => `php_${domain.server.domain.computed.replace(/\\./g, '_')}`;\n"
  },
  {
    "path": "src/nginxconfig/util/prism_bundle.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport Clipboard from 'clipboard';\nimport Prism from 'prismjs';\nimport 'prismjs/components/prism-nginx.js';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/plugins/keep-markup/prism-keep-markup.js';\nimport 'prismjs/plugins/toolbar/prism-toolbar.js';\nimport 'prismjs/plugins/toolbar/prism-toolbar.css';\n\nimport { warn } from './log.js';\n\n// Custom copy to clipboard (based on the Prism one)\nconst copyToClipboard = () => {\n    if (!Prism.plugins.toolbar) {\n        warn('Copy to Clipboard loaded before Toolbar.');\n        return;\n    }\n\n    Prism.plugins.toolbar.registerButton('copy-to-clipboard', (env) => {\n        const linkCopy = document.createElement('button');\n        linkCopy.textContent = 'Copy';\n\n        const element = env.element;\n        const clip = new Clipboard(linkCopy, {\n            text: () => element.textContent,\n        });\n\n        const resetText = () => {\n            setTimeout(() => {\n                linkCopy.textContent = 'Copy';\n            }, 5000);\n        };\n\n        const emitEvent = () => {\n            linkCopy.dispatchEvent(\n                new CustomEvent('copied', {\n                    bubbles: true,\n                    detail: { text: element.textContent },\n                }),\n            );\n        };\n\n        clip.on('success', () => {\n            linkCopy.textContent = 'Copied!';\n            emitEvent();\n            resetText();\n        });\n\n        clip.on('error', () => {\n            const isMac = navigator.platform.includes('Mac');\n            linkCopy.textContent = `Press ${isMac ? 'Cmd' : 'Ctrl'}+C to copy`;\n            resetText();\n        });\n\n        return linkCopy;\n    });\n};\n\ncopyToClipboard();\n"
  },
  {
    "path": "src/nginxconfig/util/share_query.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport qs from 'qs';\nimport exportData from './export_data.js';\n\nexport default (domains, global) => {\n    const data = exportData(domains, global);\n    const query = qs.stringify(data, { allowDots: true });\n    return `${query.length > 1000 ? '#' : ''}${query.length ? '?' : ''}${query}`;\n};\n"
  },
  {
    "path": "src/nginxconfig/util/snake_to_camel.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport default (str) =>\n    str.replace(/_(\\w)/g, (m) => `${m[0].replace('_', '')}${m[1].toUpperCase()}`);\n"
  },
  {
    "path": "src/nginxconfig/util/ssl_profiles.js",
    "content": "/*\nCopyright 2020 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\n// https://github.com/mozilla/ssl-config-generator/blob/master/src/static/guidelines/5.0.json\nexport default {\n    modern: {\n        name: 'Mozilla Modern',\n        protocols: ['TLSv1.3'],\n        ciphers: [\n            // 'TLS_AES_256_GCM_SHA384',\n            // 'TLS_AES_128_GCM_SHA256',\n            // 'TLS_CHACHA20_POLY1305_SHA256',\n        ],\n        server_preferred_order: false,\n        dh_param_size: false,\n        oldest_clients: [\n            'Firefox 63',\n            'Android 10.0',\n            'Chrome 70',\n            'Edge 75',\n            'Java 11',\n            'OpenSSL 1.1.1',\n            'Opera 57',\n            'Safari 12.1',\n        ],\n    },\n    intermediate: {\n        name: 'Mozilla Intermediate',\n        protocols: ['TLSv1.2', 'TLSv1.3'],\n        ciphers: [\n            // 'TLS_AES_256_GCM_SHA384',\n            // 'TLS_AES_128_GCM_SHA256',\n            // 'TLS_CHACHA20_POLY1305_SHA256',\n            'ECDHE-ECDSA-AES128-GCM-SHA256',\n            'ECDHE-RSA-AES128-GCM-SHA256',\n            'ECDHE-ECDSA-AES256-GCM-SHA384',\n            'ECDHE-RSA-AES256-GCM-SHA384',\n            'ECDHE-ECDSA-CHACHA20-POLY1305',\n            'ECDHE-RSA-CHACHA20-POLY1305',\n            'DHE-RSA-AES128-GCM-SHA256',\n            'DHE-RSA-AES256-GCM-SHA384',\n        ],\n        server_preferred_order: false,\n        dh_param_size: 2048,\n        oldest_clients: [\n            'Firefox 27',\n            'Android 4.4.2',\n            'Chrome 31',\n            'Edge',\n            'IE 11 on Windows 7',\n            'Java 8u31',\n            'OpenSSL 1.0.1',\n            'Opera 20',\n            'Safari 9',\n        ],\n    },\n    old: {\n        name: 'Mozilla Old',\n        protocols: ['TLSv1', 'TLSv1.1', 'TLSv1.2', 'TLSv1.3'],\n        ciphers: [\n            // 'TLS_AES_256_GCM_SHA384',\n            // 'TLS_AES_128_GCM_SHA256',\n            // 'TLS_CHACHA20_POLY1305_SHA256',\n            'ECDHE-ECDSA-AES128-GCM-SHA256',\n            'ECDHE-RSA-AES128-GCM-SHA256',\n            'ECDHE-ECDSA-AES256-GCM-SHA384',\n            'ECDHE-RSA-AES256-GCM-SHA384',\n            'ECDHE-ECDSA-CHACHA20-POLY1305',\n            'ECDHE-RSA-CHACHA20-POLY1305',\n            'DHE-RSA-AES128-GCM-SHA256',\n            'DHE-RSA-AES256-GCM-SHA384',\n            'DHE-RSA-CHACHA20-POLY1305',\n            'ECDHE-ECDSA-AES128-SHA256',\n            'ECDHE-RSA-AES128-SHA256',\n            'ECDHE-ECDSA-AES128-SHA',\n            'ECDHE-RSA-AES128-SHA',\n            'ECDHE-ECDSA-AES256-SHA384',\n            'ECDHE-RSA-AES256-SHA384',\n            'ECDHE-ECDSA-AES256-SHA',\n            'ECDHE-RSA-AES256-SHA',\n            'DHE-RSA-AES128-SHA256',\n            'DHE-RSA-AES256-SHA256',\n            'AES128-GCM-SHA256',\n            'AES256-GCM-SHA384',\n            'AES128-SHA256',\n            'AES256-SHA256',\n            'AES128-SHA',\n            'AES256-SHA',\n            'DES-CBC3-SHA',\n        ],\n        server_preferred_order: true,\n        dh_param_size: 1024,\n        oldest_clients: [\n            'Firefox 1',\n            'Android 2.3',\n            'Chrome 1',\n            'Edge 12',\n            'IE8 on Windows XP',\n            'Java 6',\n            'OpenSSL 0.9.8',\n            'Opera 5',\n            'Safari 1',\n        ],\n    },\n};\n"
  },
  {
    "path": "src/nginxconfig/util/types_extensions.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nexport const gzipTypes =\n    'text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml';\n\nexport const extensions = {\n    assets: 'css(\\\\.map)?|js(\\\\.map)?',\n    fonts: 'ttf|ttc|otf|eot|woff2?',\n    svg: 'svgz?',\n    images: 'jpe?g|png|gif|ico|cur|heic|webp|tiff?',\n    audio: 'mp3|m4a|aac|ogg|midi?|wav',\n    video: 'mp4|mov|webm|mpe?g|avi|ogv|flv|wmv',\n    docs:\n        'pdf|' +\n        'docx?|dotx?|docm|dotm|' +\n        'xlsx?|xltx?|xlsm|xltm|' +\n        'pptx?|potx?|pptm|potm|ppsx?',\n    html: 'html?',\n};\n"
  },
  {
    "path": "src/nginxconfig/util/vue_backwards_compatibility.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport isObject from './is_object.js';\nimport deepMerge from './deep_merge.js';\nimport {\n    accessLogPathDefault,\n    accessLogParamsDefault,\n    errorLogPathDefault,\n    errorLogPathDisabled,\n    errorLogLevelDefault,\n} from './logging.js';\nimport { serverDomainDefault } from './defaults.js';\n\n// Migrate old logging settings to new ones\nconst migrateLogging = (data) => {\n    if (Object.keys(data).length === 0) return;\n\n    const globalLogging =\n        'logging' in data.global && isObject(data.global.logging) ? data.global.logging : {};\n\n    // global access_log\n    const [globalAccessLogPath, ...globalAccessLogParameters] = (\n        globalLogging.accessLog || accessLogPathDefault\n    ).split(' ');\n    const globalAccessLogEnabled =\n        !('accessLog' in globalLogging) || // accessLog was enabled by default and might not appear at all\n        (globalAccessLogPath !== '' && globalAccessLogPath !== 'off'); // *or* someone turned it off explicitly\n\n    // global error_log\n    const [globalErrorLogPath, ...globalErrorLogLevel] = (\n        globalLogging.errorLog || `${errorLogPathDefault} ${errorLogLevelDefault}`\n    ).split(' ');\n    const globalErrorLogEnabled =\n        !('errorLog' in globalLogging) || // errorLog was enabled by default and might not appear at all\n        (globalErrorLogPath !== '' && globalErrorLogPath !== errorLogPathDisabled); // *or* someone turned it off explicitly\n\n    // set global access_log / error_log files for every domain UNLESS it was explicitly\n    // enabled for the domain\n    for (const key in data.domains) {\n        if (!Object.prototype.hasOwnProperty.call(data.domains, key)) continue;\n\n        const perDomainServer = {\n            domain: serverDomainDefault,\n            ...('server' in data.domains[key] && isObject(data.domains[key].server)\n                ? data.domains[key].server\n                : {}),\n        };\n        const perDomainLogging =\n            'logging' in data.domains[key] && isObject(data.domains[key].logging)\n                ? data.domains[key].logging\n                : {};\n\n        // access_log\n        let accessLogEnabled = globalAccessLogEnabled,\n            accessLogPath = globalAccessLogPath;\n        const accessLogParameters = globalAccessLogParameters.join(' ') || accessLogParamsDefault;\n\n        const perDomainAccessLogEnabled = !!perDomainLogging.accessLog;\n        if (perDomainAccessLogEnabled) {\n            accessLogEnabled = true;\n            accessLogPath = accessLogPath.replace(\n                /([^/]+)\\.log$/,\n                `${perDomainServer.domain}.$1.log`,\n            );\n        }\n\n        // error_log\n        let errorLogEnabled = globalErrorLogEnabled,\n            errorLogPath = globalErrorLogPath;\n        const errorLogLevel = globalErrorLogLevel.join(' ') || errorLogLevelDefault;\n\n        const perDomainErrorLogEnabled = !!perDomainLogging.errorLog;\n        if (perDomainErrorLogEnabled) {\n            errorLogEnabled = true;\n            errorLogPath = errorLogPath.replace(\n                /([^/]+)\\.log$/,\n                `${perDomainServer.domain}.$1.log`,\n            );\n        }\n\n        data.domains[key].logging = {\n            accessLogEnabled,\n            accessLogPath,\n            accessLogParameters,\n            errorLogEnabled,\n            errorLogPath,\n            errorLogLevel,\n            ...perDomainLogging,\n        };\n    }\n};\n\n// Handle converting the old query format to our new query params\nexport default (data) => {\n    // Handle converting old domain settings to new ones\n    if ('global' in data && isObject(data.global)) {\n        // Handle specifics global data\n        const mappedData = {\n            php: {},\n        };\n\n        // Keys to map\n        const keysToMap = {\n            php: ['phpServer', 'phpServerCustom', 'phpBackupServer', 'phpBackupServerCustom'],\n        };\n\n        for (const key in data.global) {\n            if (!Object.prototype.hasOwnProperty.call(data.global, key)) continue;\n\n            // Skip if key doesn't need to be mapped\n            if (!Object.prototype.hasOwnProperty.call(keysToMap, key)) continue;\n\n            for (const key2 in data.global[key]) {\n                if (!Object.prototype.hasOwnProperty.call(data.global[key], key2)) continue;\n\n                if (keysToMap[key].includes(key2)) {\n                    mappedData[key][key2] = data.global[key][key2];\n                }\n            }\n        }\n\n        for (const key in data.domains) {\n            if (!Object.prototype.hasOwnProperty.call(data.domains, key)) continue;\n\n            // Deep merge the mapped data\n            deepMerge(data.domains[key], mappedData);\n        }\n    }\n\n    migrateLogging(data);\n};\n"
  },
  {
    "path": "src/static/robots.txt",
    "content": "User-agent: *\nDisallow: /\n"
  },
  {
    "path": "test/testBrowserLanguage.js",
    "content": "/*\nCopyright 2024 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport browserLanguage from '../src/nginxconfig/util/browser_language.js';\n\nclass MockLocales {\n    static languages = [];\n\n    static language = null;\n\n    static IntlBackup = null;\n\n    static navigator = null;\n\n    static setNavigatorLanguages(langs) {\n        MockLocales.languages = langs;\n        return this;\n    }\n\n    static setNavigatorLanguage(lang) {\n        MockLocales.language = lang;\n        return this;\n    }\n\n    static setDateTimeLocale(locale) {\n        MockLocales.IntlBackup = Intl;\n        if (!locale) {\n            // eslint-disable-next-line no-global-assign\n            Intl = undefined;\n            return this;\n        }\n\n        const newDateTimeFormat = new Intl.DateTimeFormat(locale);\n        // eslint-disable-next-line no-global-assign\n        Intl = {\n            DateTimeFormat() {\n                return newDateTimeFormat;\n            },\n        };\n        return this;\n    }\n\n    static restoreDateTimeLocale() {\n        // eslint-disable-next-line no-global-assign\n        Intl = MockLocales.IntlBackup;\n        MockLocales.IntlBackup = null;\n        return this;\n    }\n\n    static setNavigator(navigator) {\n        MockLocales.navigator = window.navigator;\n        window.navigator = navigator;\n        return this;\n    }\n\n    static restoreNavigator() {\n        window.navigator = MockLocales.navigator;\n        MockLocales.navigator = null;\n        return this;\n    }\n}\n\nObject.defineProperty(window.navigator, 'languages', {\n    get: () => {\n        return MockLocales.languages || [];\n    },\n});\n\nObject.defineProperty(window.navigator, 'language', {\n    get: () => {\n        return MockLocales.language || null;\n    },\n});\n\ndescribe('browserLanguage', () => {\n    test('Selects the first available exact match for language/region', () => {\n        MockLocales.setDateTimeLocale(undefined);\n\n        MockLocales.setNavigatorLanguages(['zh-CN', 'zh', 'en-US', 'en']);\n        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');\n\n        MockLocales.setNavigatorLanguages(['zh-TW', 'zh', 'en-US', 'en']);\n        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhTW');\n\n        MockLocales.setNavigatorLanguages(['zh', 'en-US', 'en']);\n        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');\n\n        MockLocales.restoreDateTimeLocale();\n    });\n\n    test('Selects the first available language match based on language/region', () => {\n        MockLocales.setDateTimeLocale(undefined);\n\n        MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'en-US']);\n        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');\n\n        MockLocales.restoreDateTimeLocale();\n    });\n\n    test('Selects the first available language match based on language alone', () => {\n        MockLocales.setDateTimeLocale(undefined);\n\n        MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'zh']);\n        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');\n\n        MockLocales.restoreDateTimeLocale();\n    });\n\n    test('Returns false when there is no available match', () => {\n        MockLocales.setDateTimeLocale(undefined);\n\n        MockLocales.setNavigatorLanguages(['ja-JP', 'ja']);\n        expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();\n\n        MockLocales.restoreDateTimeLocale();\n    });\n\n    describe('Different sources for user locale', () => {\n        test('language, languages and Intl locale are `undefined`', () => {\n            MockLocales.setNavigatorLanguages(undefined);\n            MockLocales.setNavigatorLanguage(undefined);\n            MockLocales.setDateTimeLocale(undefined);\n            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();\n            MockLocales.restoreDateTimeLocale();\n        });\n\n        test('language is `en`, languages and Intl locale are `undefined`', () => {\n            MockLocales.setNavigatorLanguage('en');\n            MockLocales.setNavigatorLanguages(undefined);\n            MockLocales.setDateTimeLocale(undefined);\n            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');\n            MockLocales.restoreDateTimeLocale();\n        });\n\n        test('language and Intl locale are `undefined`, languages is `en-US, en`', () => {\n            MockLocales.setNavigatorLanguage(undefined);\n            MockLocales.setNavigatorLanguages(['en-US', 'en']);\n            MockLocales.setDateTimeLocale(undefined);\n            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');\n            MockLocales.restoreDateTimeLocale();\n        });\n\n        test('navigator is `undefined` and Intl locale is `en-US`', () => {\n            MockLocales.setNavigator(undefined);\n            MockLocales.setDateTimeLocale('en-US');\n            expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');\n            MockLocales.restoreDateTimeLocale();\n            MockLocales.restoreNavigator();\n        });\n    });\n});\n"
  },
  {
    "path": "vue.config.js",
    "content": "/*\nCopyright 2022 DigitalOcean\n\nThis code is licensed under the MIT License.\nYou may obtain a copy of the License at\nhttps://github.com/digitalocean/nginxconfig.io/blob/master/LICENSE or https://mit-license.org/\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and / or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions :\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nimport webpack from 'webpack';\nimport { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer';\nimport DuplicatePackageCheckerPlugin from 'duplicate-package-checker-webpack-plugin';\nimport WebpackRequireFrom from 'webpack-require-from';\nimport { URL, fileURLToPath } from 'url';\n\nexport default {\n    publicPath: './',\n    outputDir: 'dist',\n    filenameHashing: false, // Don't hash the output, so we can embed on the DigitalOcean Community\n    productionSourceMap: false,\n    devServer: {\n        historyApiFallback: false, // Don't serve index.html for 404s in dev\n    },\n    configureWebpack: {\n        node: false, // Disable Node.js polyfills (Buffer etc.) -- This will be default in Webpack 5\n        plugins: [\n            // Fix dynamic imports from CDN (inject as first entry point before any imports can happen)\n            { apply: compiler => {\n                compiler.options.entry.app.import.unshift(\n                    fileURLToPath(new URL('src/nginxconfig/build/webpack-dynamic-import.js', import.meta.url)),\n                );\n            } },\n            new WebpackRequireFrom({ methodName: '__webpackDynamicImportURL', suppressErrors: true }),\n            // Pass the env in for logging\n            new webpack.EnvironmentPlugin({ NODE_ENV: 'development' }),\n            // Analyze the bundle\n            new BundleAnalyzerPlugin({ analyzerMode: 'static', openAnalyzer: false }),\n            new DuplicatePackageCheckerPlugin(),\n        ],\n    },\n    chainWebpack: config => {\n        // Inject resolve-url-loader into the SCSS loader rules (to allow relative fonts in do-bulma to work)\n        for (const rule of ['vue-modules', 'vue', 'normal-modules', 'normal']) {\n            config.module.rule('scss')\n                .oneOf(rule)\n                .use('resolve-url-loader')\n                .loader('resolve-url-loader')\n                .before('sass-loader')\n                .end()\n                .use('sass-loader')\n                .loader('sass-loader')\n                .tap(options => ({ ...options, sourceMap: true }));\n        }\n\n        // Use a custom HTML template\n        config.plugin('html').tap(options => {\n            options[0].template = fileURLToPath(new URL('build/index.html', import.meta.url));\n            return options;\n        });\n    },\n};\n"
  }
]